Rants on software, computing, and any other topic I feel like.

Monday, February 21, 2005

Getting into Software

Ok, here at work, we've been looking for new developers. And the range of resumes reminded me of one of my favorite mad rants. That rant is all about these people who "get into" programming, as if it's something you can figure out in a weekend and do a great job at. They wear the badge of "self-taught" like it's a *good* thing. Why is it that people think that one of the most intellectuallydemanding professions in modern times is something that one can simply read a couple books about and be an expert? The software development world is full of people who have degrees in things like philosophy, civil engineering, and english who at some point realized that they weren't making any money in their chosen profession and so "got into" computers. Guess what folks, my two year old can "get into" computers. But that usually ends up with me extracting pieces of fruit snack from drive bays.

Just because they've read a few books down at Barnes and Noble doesn't mean that they're going to be a pro software developer, or the next Linus Torvalds. Here's what they say in defense of their untenable position, "There are people without degrees who have been very successful in computers without training." True, but those folks are either very smart, or very lucky. The reality is that most people aren't that smart, and by definition, most people aren't lucky. They just need to stop thinking that magic is going to happen, and they're going to become Master Programmers by reading "Get Sweet Game Programming Skills in 21 Days". Just because one can follow some instructions on how to write a program to compute the area of a circle, doesn't mean that you're going to writing a word processor anytime now.

Programming is hard. Programming requires some training. Programming requires someone who can think through difficult problems and explain them to a computer.

Another thing that people just "get into" is management. This is another profession that while may seem simple, actually requires some training to do well. Why do you think people get their MBAs? For kicks? Wrong. Amazingly, an MBA is actually taught things in those classes he's taking. He's learning lessons learned by others in the real world. He's learned theory about economics, so he can decide how much to pay their employees without bankrupting the organization. Why are there so many incompetent managers out there? Same reason that there are so many incompetent programmers out there. The low levels of the profession are easy enough to fake that almost any nitwit can get by without actually knowing anything about the profession itself.

Back to programmers. This is all about reinventing the wheel. When a scientist begins his work, he doesn't spend ten minutes at www.physics-for-dummies.com reading a tutorial and then proceed to make some "sweet experiments". They spend years in training, and then after all that, they still spend much of their time learning about their particular area so that they can build on the work that has been done before them. Many hours have been used to study how best to write software, so that it is fast, easy to use, and efficient. These aren't just some random useless ideas like those thrown around in discussions in english literature classes. They're important useful stuff that someone isn't going to understand unless they spend some time learning them.

You're not going to figure out the theory of special relativity by thinking about light and time. Einstein could do that. You can't.
Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?