A question for this learned group on software engineering... If you were to recommend a programming language to a young engineer-to-be (maybe software engineer or maybe hardware) to study before college, what would it be given the following criteria? The selection shouldn't be based on educational merits per se, but on usefulness to one's career, conformance to current programming philosophies, availability (open, free, etc), ease of picking it up (good dev environment), and it's ability for rapid development (prefer something that will do console and windowed apps). The programming environment and language should be free/open and can be run on Linux AND Windows. Ability to create an exe as opposed to interpreted is preferred, and stability ranks high too. Some of those criteria may not seem important in an educational setting, but they are to a young self-educational setting... ;) Just to start the thinking off, I'll comment on a few choices. C - while good all around, is long in the tooth and not the easiest to pick up and use, especially in a windows env. C++ - better, but more complex and like C, not a rapid dev env. VB - rapid and easy to pick up and do something useful, can make exe's, but Windows only, now only .NET (.NET=bad), and the language isn't exactly mainstream. I was thinking the field might consist of Perl, Ruby, Python, etc, but will leave it to you to choose. I've used Fortran, C, Pascal, Basic, Smalltalk, LISP, and a few others and I would also not suggest them (nor COBOL ;). Think in terms of keeping him on the right track from a programming/engineering perspective and when he gets out in 5-6 years ;) whatever it is will still be 'current' and the 5-6 years he's played with it will be useful experience and good for the resume... TIA, Skip -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist