Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> "Should I learn saws or screwdrivers?"

The answer to this question is unequivocally "screwdrivers". The answer to the original question (if you find yourself asking it), is "Python."

The analogy is perfect for this situation, but the answer provided here is wrong.

The original question [1] is unqualified, so I will take a liberty or two here and assume that they're new to programming and want to learn more. And since there's no real dichotomy here, I'll infer they're really asking "should I learn C++ or Python [first]?"

Well, C++ is indeed a saw and while they're incredibly capable, injuries are included for free. Python, like a screwdriver offers maximum utility. Learn Python first.

> Do you think someone could be a top-flight carpenter knowing only one?

Who cares about being a top-flight carpenter? Just figure out how to open up the battery pack for your kids' toys and you will be a hero. Whether you're starting a career in CS or you just want to cleanup the data in the office's mega-spreadsheet-that-has-all-our-critical-info, start with Python. Get that productivity that enables a positive feedback loop of design/test.

I started with C/C++ before Python existed and it was just so easy to get stuck on several classes of failures that were difficult to understand without outside help. Python has some of those but IMO far fewer.

[1] https://www.quora.com/Should-I-learn-C++-or-Python



I would actually disagree if you're learning programming. C++ will teach you far more. Python, for all it's advantages, is C++, with all sorts of restrictions imposed on what you can do (e.g. shared_ptr for everything, with the pros and cons of that).

It'll be hard for a while, but you will have learned a lot when you get there.

Python is what everyone's switching to because it's easier. If that's your goal, just build stuff and don't care about how it works, then sure, go python. And I would encourage you to learn Python (and Java, and Go, and Haskell, and Prolog, ...) to get more tools in the toolbox eventually.


At many Universities and Colleges, Python is taken as their first programming course. Then for the second and/or third course you study Java and/or C++.


The Java course is a waste of time, the language does not bring anything new against Python when compared to C++.

Only a few Java specific things and an emphasis on patterns and workarounds for things you cannot do directly because the language is so limited.

Java is a decent first choice, but not a second one.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: