> However, let it be no mistake that the worst > competent programmers I've ever seen are all (very good) engineers.
I agree. Except for the competent part. Many of the engineers in my field of study were terrible with anything computer related - even though computers were essential to the degree. > Engineering is not Computer Science And hence the different names/colleges/text books/occupations/spelling/etc. > and the Engineering Discipline by > itself ill-prepares one to be a competent computer scientist. Most of my thread spoke about programmers rather than computer scientists. I'd argue in a similar vein that the Computer Science discipline ill-prepares one to be a competent programmer. This takes us to the "science vs craft" debate. Knowing theory is great in theory. Tackling a problem and solving it when it shouldn't have been possible - but only because you didn't know it was "impossible" is even better. This is where "non-CS" types seem to excel - their code may not be beautiful, and they may have poor optimizations, and they may have screwed up an easy algorithm or design pattern - but they solve the problems none-the-less (not all "non-CS" types, but some). It has more to do with MacGyverism than anything else. > Of course, some of the almost-worst programmers (competent or no) that I > have seen have a CS degree, so take it with a grain of salt. (Notice I > didn't say they were computer scientists) Agreed. > Remember that computers are permeating everything. I should've noticed. Rats. :) They are permeating everything AND becoming usable by people without any CS knowledge. > Computer programming > isn't the hard part. Software engineering isn't even the hard part. > There are and will always be experts in a field writing excellent > programs for their field that don't have a formal CS background. I've seen plenty of these types. They usually make a bundle of money because they are able to write niche software that fills a gap nobody else can fill (for lack of in-depth experience). It may not be extensible, well thought out prose, but it works. > Computer Science, on the other hand, is a field of its own and for good > reason. Many people have no idea that there is a field of Computer > Science; they think it means "learning to program and/or be a great > programmer/software engineer". I think this is the problem. Most people seeking a CS degree are really seeking to learn how to program or how to be a software engineer. Little do they realize that that isn't what CS is trying to teach. CS will get them closer to their goal than most disciplines. > It is a bit mystical, and it's not easy > to explain to the layperson Agreed. > but it's a necessary foundation for > computing nonetheless. Hmmmmm. I find the word "computing" a little fuzzy here. I think there are plenty of use cases that show people who have gotten much done while computing without any CS foundation at all - unless the using of existing tools which were built with a CS foundation counts (but that is as useful as saying a Surgeon wielding a stainless steel scalpel needed the "necessary" foundations of metallurgy and manufacturing). We should to careful not to elevate the tools above the accomplishment (though those who accomplish great things should acknowledge the existing tools/foundations they built upon). Ok. Moving along. I think I've accomplished nothing here. Paul /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
