-
Get a monthly update on best practices for delivering successful software.
Pathfinder Development is a Software Development company. A large part of our workforce consists of software developers. Yet when we hire our interns and junior developers out of school, we hire Computer Scientists. That may seem like small semantic potatoes, but to me it is emblematic of the deep gulf that exists between the graduates that computer science departments produce and what software development companies like Pathfinder really need.
There are a few things that really get in the way of Comp Sci departments producing good software developers. One of these is the "we are not a trade school" attitude. If you complain to professors that they aren't producing decent software development, dollars to donuts that this is the response you'll get. As I've mentioned before, my parents are both math professors, so I'm more than a little familiar with the culture of academia. In mathematics, having your work applied to something practical is the ultimate indignity. Real mathematicians scorn anything applied!
For Computer Science, which at many universities had it's beginnings in the Math department, there is a touch of this attitude. Combine this with the broad range of Computer Science -- mathemtical, hardware engineering, AI, etc. -- and what professors see as their purpose -- doing research into a norrow specialty and teaching undergrads some basic principles -- and you begin to see why those professors might be a touch resentful at the thought of being a feeder institution for software development firms and departments. Besides, most of those professors probably are not specialized in the area of software engineering, and so are out of their element when it comes to teaching courses in this topic.
But asserting that training software developers is not your main purpose is not an excuse to do it badly. And for so many years we have done it badly. As a graduate student some 20 years ago, I taught undergrads how to program in PASCAL, the same language that I was taught as a high school student some 5 years before. While there are a few notable examples of serious software developed in PASCAL, the idea that this was a practical language that would prepare students for careers in software development was laughable. The reason that PASCAL didn't make it into the commercial arena wasn't because it was some sort of pure language best suited to teach undergrads the basic principles of algorithms and software design. No, it was because it just plain sucked for both purposes.
Universities have gotten better in this regard. Many of them have adopted Java as their primary language, a vast improvement over PASCAL. Unfortunately, many universities don't teach enough OO to make their graduates even moderately dangerous in Java. But the greatest shortcomings aren't something that can be changed by changing the programming language. The two greatest shortcomings of the Comp Sci college education are the twin evils of a lack of team/collaboration experience and the lack of experience with particular application types.
I'll take up these issues and how to solve them in part 2.
Related Services: Full Life Cycle Software Development, Agile Development
Related posts:
Great start. Cannot wait to see what else you come up with. I teach computer science at devry – which is certainly not traditional academia. I’ve subscribed.
Comment by Jason Huber, Wednesday, July 29, 2009 @ 5:12 pm
After being in the workforce now for about 5 years, I really get frustrated when I hear employers complain that their new grads are not already skilled in specific technologies and frameworks.
I’ll admit to being one of those students that would often complain that my courses were too heavy on the theoretical, and light in practicality. But looking back, I’m glad my professors were bright enough to not succumb to the corporate pressure to become trade schools.
University lasts 4 or 5 years at most, while one has the rest of their life, some 40+ years, to develop experience in commercial development. I may never get another chance to study calculus, algorithms, or even statistics. While I wasn’t so happy to be taking these courses at the time, I now am so thankful to have been forced to push my brain to its limits and learn as much as I did.
Even furthermore with regards to the non science classes that I felt were too easy and beneath an ‘aspiring engineer’. Now I spend 50 hours a week on MVC frameworks, class libraries, and Oracle schemas; parts of my brain go dull without the daily influence of subjects like sociology, Spanish, and even philosophy.
Screw greedy employers and corporate HR types that demand recent grads to hit the ground running. In fact, most of them don’t even do that anymore as they just import a few dozen H1Bs from India, and screw the next generation of developers!
Comment by bill, Tuesday, August 4, 2009 @ 2:55 pm