"Eric Brunson" <[EMAIL PROTECTED]> wrote >> newbie-friendly. My only complaint is that I'm starting to feel >> like I >> won't get much further than that without a computer science degree. > > I'll disagree with you on that, if you can get a PhD in genetics > then > programming should be a snap...
I'm not sure I agree. There is a reason that CS is a degree subject, and that you can get PhDs in it too. There is a lot of advanced programming stuff that does need specialist training to *do it well*. Of course you can do virtually anything with a buit of brute force. But without actually understanding concepts like boolean algenra, lambda and predicate calculii, algorithm design, finite state automata thery etc much will either be inelegant or just cut n paste. I often see comments lie software engineering is different to other engineering because theres no mathematical basis. Thats plain false, and although the basis is less complete and certainly not a unified whole almost every aspect of programming can be validated and proved mathemaically. Programs can be designed and specified formally. But most programmers aren't trained. And those that are are discourageed from doing so because its quicker to "just hack it" As an applied mathematics man you probably know most of that stuff at some levelk. Not surprising since CS started off as a branch of math after all. BTW This trend has been true in almost every engineering discipline and the only thing that corrects it is when companies and programmes start getting sued and put in prison for writing faulty software. (Just like civil engineers were when bridges started falling down, and Electrical engineers were when householders got electrocuted switching on lamps!) > written and you *are* actually the smartest person in the room. At > that > point you have to look other places for your documentation, like the > source code or the RFCs. Absolutely true. Not good but its where we are. (And continuing the simile, the same is true in electronics, sometimes you just have to reverse engineer the circuit board! but you never do it for fun!) (*)BTW My own position is that I majored in Electrical/Electronic engineering but early on decided software was my interest so took every CS related class going. I also spent a lot of time doing background reading (and still do) on the formal math side of CS - formal logic etc being one of those areas where I have an almost constant learning curve. -- Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor