Is Python a good start to learning a programming language?

Well I need to get back into writing programs, but it’s been years since I’ve had to do anything like that. I’ve been looking to learn an OO language that eases me back in the whole thing. I’ve seen Python referenced a lot as a good introductory OO language, but I’d appreciate some Dopers’ views on this.

I’ve got an EE and Physics background and structured programming was what I used to do the most of, if that’s of any help.

I’ve never heard of Python. I started programming with Pascal, and OO programming with C++

I found them both quite easy to learn and ‘neat’ to use.

I would stay away from Python, it is not very marketable. I recommend either Java or Microsoft Visual Basic ‘.net’. I wouldn’t waste time trying to ease into programming with an obscure language. The OO languages today are very large with thousands of classes and methods. Put your time into learning a real language / framework. Check out your local community colleges and see if they have programming classes at night. Don’t be intimidated by OO, it’s all just hype. Surf the web, there are a lot of sites that can get you started. Good Luck!

Thanks folks. From what I’d read Python was a nice introduction to OO programing. Its wrapping my head around OO terminology and concepts that I figure will give me the most difficulty.

If you’ve programmed before, C++ is probably a good choice because you don’t need to write object-oriented programs. And there’s nothing more educational than seeing the same program done with objects and without.

After you’re familiar with C++, it’s good to learn Java, because the two languages have similar syntax, but the philosophies behind them are very different.

C++ and Java are also very marketable languages right now.

If you’re starting totally virgin with object-oriented programming, Java is the best way to go. There’s enough discipline to prevent you from learning bad habits, but it’s easy enough and marketable enough to not be a waste of time.

If you’re very confident of your existing C skills, then try C++, even though its OO feels bolted on. Or, if you want to get really obscure, try Objective-C, which is C with good OO concepts, but is not very well known.

When in doubt, go with Java. Better to learn good habits first, then degrade later. :wink:

I’ll agree with everyone that learning Java is the best way to go…the base SDK is free at http://java.sun.com, plus there’s plenty of free IDEs such as Eclipse (http://www.eclipse.org) and JCreator (http://www.jcreator.com), the API documentation is as good as it gets (the Javadocs system is sweet), and there’s no temptations to use the “evil” of structured programming :wink:

If you do use Java, I’d suggest starting with building C-style applications first before moving onto applets, since applets can be a nasty process for a beginning programmer (not to mention an experienced one…)

Not if the Hungarian phrasebook was anything to go by. :slight_smile:

Don’t listen to him. Learning to program is hard, learning a language is easy. I picked up rudimentry Java in 3 weeks and VB in two. After that, anything which I needed done required about 10 minutes of rooting though help files at most. Learning programming concepts, style and paradigms though, takes years. Managers commonly agree that you need at least 5 years industry experience before you can be considered an “experienced” programmer. Add 4 years of college onto that and its a 9 year learning process to become truely proficient in programming. Logically, you should make the learning to program part as easy as possible.

Python is an excellent language for beginners from what I’ve heard. It enforces good style and has all the neat features that other similarly modern languages have. It also isn’t bogged down in trying to be rigidly backwards compatible with a 30 year old language which I find to be a great plus. I would argue not to learn any of the C descendant languages (C, C++, Java, C#.NET etc) specifically for that reason. Too many people had C as their first language and it shows when they program in other languages.

Just to followup on my earlier response, I’ve been programming since the late 70’s and I know C, C++, and Java. I would recommend staying away from C++ and going straight to Java or VB. C++ is messy, the OO is ‘bolted on’ as someone else said, and you can get into trouble with pointers if your not careful. I agree it takes time to learn good design techniques, that’s why I recommended taking classes instead of trying to teach yourself all the way.