Andy, Disclaimer: I'm a Python newbie, although I've been developing software for many years.
(In my humble opinion,) Luke makes some critically important points here. The first one has to do with programming ~concepts~. LP> As an introductory language to Computer Science I'd recommend LP> Python. You spend less time trying to understand the language LP> itself and more time learning abstract concepts like how a merge LP> sort works, inheritance, classes, 'self', and things like that. LP> Once you understand all of these things, C++ will be greatly LP> easier to pick up, as should most Object-Oriented languages be. I LP> think if you start with C++, you'll get discouraged. Perhaps not, LP> but that's how it worked with me. ... LP> As it turns out, all of the classes at my school are in C++. But LP> despite the fact that I came here with barely any C++ experience, LP> I had _programming_ experience, and that, as they say, made all LP> the difference. I went from C to C++ and had an extremely difficult time with shifting my thinking to object orientation. Once I learned the basics of O-O programming, I've found it very easy to shift from one language to another. As a contract developer for hire, and in my work as an employee at Tyrell Software, I frequently run into situations where, for whatever reason, I need to use a language that I know nothing about. Example: On my current project at Tyrell Software, the decision was made to use a load-testing package named The Grinder. (I highly recommend The Grinder: http://grinder.sourceforge.net/) The load-testing part of the project was handed to me. I knew I would have some questions about Python, so I asked who our resident Python Guru was. They told me, "You are, now." Sometimes you need to learn fast. Having learned the basic concepts, when going to a new language, I have to devote much of my learning time to language syntax issues, rather than learning the basics all over again. Don't let anyone tell you that language X is superior to language Y. In one particular instance that may be so, but in the grand scheme of things it all evens out. Different languages do different things better and worse than other languages, but the O-O concepts remain the same. (This week, I'm being paid to write Python code, so Python is clearly the superior language. :-) ) LP> ... you can use packages and such to keep your code manageable. LP> It's probably a good idea to keep your code separated from the LP> get-go when you reach the time to make your game, because it'll LP> eventually get to the point where you'll need to break it apart, LP> so you'd be doing yourself a favor. Packages, modules, libraries -- whatever you want to call them -- are the way to go. If you put a little bit of thought into them when writing them, most things can be reused at some future time. Most code you write will be code that you will write over and over. Try to keep your pieces small and generic, except, or course, where you need to do a specific step that applies to your current project only. Good luck on your project. Chuck -- ====================================================================== Chuck Coker, Software Developer [EMAIL PROTECTED] Tyrell Software Corporation http://www.tyrell.com Office: +1 949 458 1911 x 203 Cell: +1 714 326 5939 ====================================================================== _______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
