• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Taking a programming class this semester: C++ or Python?

LongCoolMother

Diamond Member
So I've had a pretty decent amount of exposure to Java, C, and assembly, and I'm looking to take a programming course this semester in order to learn a new language. It will either be C++ or Python.

I'm hoping to secure an internship this summer, so I think learning C++ would be particularly helpful in that respect, since its used quite widely.

Does anyone think learning Python would be better?
 
C++ will give you way more exposure than Python. Enterprise applications tend to stick to compiled code, as opposed to scripts. Python has its own merits (so do other scripting languages like JavaScript and Ruby on Rails), but you can't sell yourself as just a Python Developer in the real world.

By the way, I heard a few months ago that Py3K - the next version of Python - will break backward-compatibility; meaning anything you learn right now (which I assume would be in Python 2.X), may not be applicable next year. Go with C++.

Just to be fair, I think languages like Python, JavaScript, and Ruby can be picked up easily. On the contrary, concepts that you pick up from a language like C++ are highly applicable in the real world.
 
I would agree with Dhaval00, but I have a couple different reasons.

-Python is a very simple language, If it really interests you... go buy Learning Python by Lutz & Ascher. Its very easy to pick up, and I learned on my own given the above book.

Speaking from some real world internship experience (my university requires 2 years of internship before graduating), Java is the language I've used the most and a fair number of jobs (particularly for lower level programming) will require you to know C++

That being said, how is your algorithms & data structures background? I found that class a lot more useful in my internship interviews than specific languag.

-Brett
 
I vote for python. You might have to look a little harder if you want job specifically as a python programmer, but if you were picking a language just for resume padding, you wouldn't be picking c++ either, you'd be picking more java or some .net. The reason I vote for python is that it's further from what you've done so far. You've got decent coverage of the compiled language area already but there are concepts in scripting languages that you just don't learn to think about with compiled languages (python isn't really that far out there as far as scripting languages go though, ruby and javascript are more interesting). It might change the way you think about programming in other languages but if it doesn't, you've at least covered the area and learned that it's not your style.

The great thing about python is that it's really friggin' handy. I taught myself what I know of it now by using it to parse log files and other various little things that were handy to automate. The interactive interpreter is really nice for learning/debugging/prototyping. I use it to do stuff in my day-to-day work that I never would have considered bothering to try in java.

A couple of counter-points to Dhaval00's post:
1. Youtube is largely implemented in python. It's also in wide usage elsewhere in google. Some of the more adventurous 'enterprise applications' definitely go outside of the compiled sphere (although of course you can compile python).
2. Python 3k will break backwards compatibility, but if you're looking for a job a) there will be 2.x codebases in use forever and b) all your knowledge will be transferable, the only 'breakage' is a few nits that are easily explained and it's even largely possible to automate the translation of source code.
3. Scripting languages can be picked up easily but that doesn't mean they are devoid of interesting, useful concepts. Generally speaking, they have way more interesting, useful concepts than compiled languages, that's why they exist (it isn't because they execute faster! 😉)

I'm just playing devil's advocate here to the pro c++ posts. If I could only learn one, I'd probably do python, but in reality I might opt for the c++ course and teach myself python on the side.
 
I think the plus of using a real language (as opposed to a scripting language) first is that you pick up understanding of types and possibly pointers... what you learn with C++ is likely to be a superset of what you need to use most scripting languages.
 
For employment purposes, I'd say C++, though I think Python is a better programing language personally.
 
I'd go with Python. Why? Jython. If you know java and embrace it then C++ courses are more of a classical view of how to get things done the C++ way. Python gets your feet wet into the little brother of Java known as Jython which basically allows you to run parts of Java Applications that are more script worthy ( and faster ) outside of java while still staying inside your java environment. You use the Java Python interpreter to run your python scripts.

One of the Haliburton subsidiaries that do oil drilling/geographic mapping use home made java tools that my friend builds and a good portion of code, like 1/5 is all Python scripts. Also, you could go and work for CCP in Iceland as an EVE-Online programmer since their server cluster is written in Python and a good portion of the client business logic is as well.

Its powerful man, powerful.
 
Originally posted by: hooflung
Originally posted by: hi tek
I vote c++, its probably harder, but you get a deeper understanding of how OOP works

Deeper understanding about OOP using C++? You are kidding right?

Yeah, wanting to learn OOP is a benefit for learning Python more than C++, IMO. C++ is a procedural language with OOP tacked on.
 
Back
Top