> Btw, I see that you're the author of a Python book. I am using Python for my > work as a researcher. Should, in your opinion, the learning strategy for > somebody like me vis-a-vis somebody who is becoming a professional programmer > be > very much different?
Not in the early days. The art of programming is basically the same and a good program is a good program. However a professional should study a lot more supplementary material, such as the math theory behind programming (predicate and lambda calculii for example, set theory, graph theory, statistics and geometry are all fundamental programming foundations). Also because professionals typically work on much bigger projects (eg the smallest professional project I've ever done had 6 people producing 50,000 lines of code in over 70 files, the largest was 450 people, 3.5million lines in 10,000 files) they need to better understand the use and value of automated build, test and configuration tools. Finally professionals need to understand how to design programs and systems, they need to learn the indistry standard notations such as UML, ERDs and DFDs etc. They need to know about coupling and cohesion (not just the concepts but how to measure them empirically) as well as things like deadlock, race conditions etc... They need a much deeper understanding of the OS and computer hardware, of networks and comms, and so on. In essence they need to really understand what they are doing rather than just finding something that works - or seems to... This is why professional software engineers have degrees in the subject! So in summary a casual programmer who just needs to build something for their own use (or maybe a few colleagues) doesn't need the breadth or depth of a professional who will be building mission critical (even safety critical - think Space Shuttle!) systems, often used by thousands or even millions of (often untrained) users. Regards, Alan G. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor