- Sep 19, 2000
- 10,284
- 138
- 106
I've been in the business professionally since 1990, and started programming in 1975. In that time I can count the number of really good developers I have worked with on both hands and have some fingers left over. I think it's that way in almost any business: you have those who love what they are doing and excel at it; and you have those for whom it's just a day job. I believe programming, by its nature, stretches the gap between those two poles such that the really good developers are much more productive than the average developers.
I thought I would start a new thread for this just because it is an interesting topic that really doesn't belong in a discussion about c vs c++ in embedded systems
So Mark, where do you think the disconnect is? Is it just the way we teach programming in general? IMO this is one of the bigger problems, we do a lot to enable monkey programmers and punish those that would dare break out of the system.
For my school at least (At least in the starting classes, it kind of weans away in the upper level, however, they instead focus on team effort rather then individual ability) we focus so much on getting a program that EXACTLY fits the mold that we are given. Yeah, we are given the freedom to come up with our own function names, but any creativity is generally punished or just not encouraged (not that the assignments allow for much creativity). For example, we had to make a calendar program for one of my first classes that was able to print out a calendar given a date. So, I researched the subject of making calendars and found/implemented the doomsday algorithm. My teacher made me go back and do it the dumb way (IE loop through from some starting date calculating how many days are in the month and when the new starting date was, or something along those lines).
Stuff like that happen too frequently IMO. Rather, I think starting classes should set the bar higher. So what if a lot of kids drop out, they do anyways after about their sophmore year (Our school has about 120 students that start in the CS program, They graduate around 5).
IDK, IMO programming isn't THAT hard. If you follow the rules you write, everything works. When you break the rules, everything falls apart. It seems, however, that many approach it like a manufacturing plant. They want to take all pre-written code, slap it together with as minimal work as possible, and call it a product.
IE
Code:
if (thing1)
{
doSomething(thing1, 1);
}
else if (thing2);
{
doSomething(thing2, 2);
}
else if (thing3);
{
doSomething(thing3, 3);
}
I see statements like this ALL the time. Even in upper level classes.