I respectfully disagree. C is a GREAT language. It is as powerful a modern language as you will find. But IMHO, learning to program in C, is like learning to hit a fast ball from Randy Johnson. Learn to crawl before you walk. You have two different camps on the programming front: Procedural and Object Oriented (OO). And because black and white are just too limiting, you have a billion shades of gray in between. Languages that incorporate pieces of both camps. For pure OO programming, you really only have one choice in a modern language, Ruby. It takes OO to a purist stage, and therefore is my choice in recommendation for learning this style of programming. Once you learn pure OO, you will be able to appreciate the non-pure elements of languages like Python, Java, and C++. For procedural programming, I generally suggest, Bash. Yep, Bash. It has many of the features you need, without allowing you access to step on other programs (bad pointer assignments, or even pointers at all). From Bash, I like to look at (at least from a training standpoint) Perl as a more complex version of bash. It will fill in many of the missing pieces. As Keith said, if you then go on to C, C will make many of the other languages far more clear. C opens up all the keys to the kingdom. But until you know enough to understand the questions, C can be overwhelming. I recommend learning C, but only once you understand programming better. Some people say, to learn a procedural language first, then learn object orientation. Others say learn OO, its more modern and then go on to procedural languages like C only if you need to. My opinion is that it does not matter. As a professional programmer, and Sys Admin (I work both sides of this fence), I have different needs for different situations. As a professional I mix multiple languages together quite often (right now I am working on a multi-platform [i.e. Linux, Mac, and Windows] library, so I am using Ruby, then making it accessible to automation on our Linux servers by writing a Bash access library on top of that). So, I say, just learn one, don't worry about it. The difference between OO and procedural is organizational. An integer is an integer, a string is a string, but how you manipulate it may differ. Its more important that you get programming concepts down, than it is to learn any one particular language. My advice, and I have given this often... Learn Ruby. IRB gives you an excellent playground. Its interpreted so you do not have to deal with the compile/make cycle. And you can build some useful, multi-platform things with it. You can extend it with a Web Application platform (Rails), and run may of your programs on Windows and Macs, not just Linux. Show off your work, and get encouragement from others. Once you feel like you know what you are doing... Pick another language, like Perl, or C. The most important advice is, sorry Nike, Just Do It. Kevin Fries On Mon, 2011-12-19 at 09:23 -0800, keith smith wrote: > > I would second starting with C. I learned and used several languages > before taking a C class. C helped me understand the others. > --------------------------------------------------- PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us To subscribe, unsubscribe, or to change your mail settings: http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss