We've had this question asked before I believe but it does no harm in asking it again and again. After all, opinions change as does the software ecosystem. Quincy Larson of FreeCodeCamp.com asked this question via Medium: What programming language should you learn first? He thinks JavaScript is the way to go and his arguments are cogent and well thought out. However, I am somewhat hesitant to suggest someone learn to code in JavaScript first. My first programming language (in 1981!) was Fortran on a Control Data mainframe. The interactive environment the OS provided was pretty simple and the language provided few opportunities to hang yourself. JavaScript, by comparison, while it may not have those evil pointers of C/C++, it offers functional features and plenty of rope to hang oneself.
So, opinions please.
(Score: 2) by dyingtolive on Friday November 04 2016, @07:30PM
You either go for something simple and straightforward with lots of easy buttons like python. It's powerful enough to actually do things, while "friendly," or you go with something like C/C++ because it rips the bandaid off and lets you glimpse into the reality of what you're actually working with.
Also, fuck javascript.
Don't blame me, I voted for moose wang!
(Score: 1, Insightful) by Anonymous Coward on Friday November 04 2016, @07:40PM
I agree.
Python should be the first language you learn, because it has great tutorials, it's everywhere, and you can use it for serious things if need be.
Then you learn C/C++ when you need to extend Python.
I'm not going into the C vs C++ fight right now.
(Score: 3, Funny) by mhajicek on Friday November 04 2016, @07:41PM
Whenst thou gazeth into the C, the C also gazeth into thee.
The spacelike surfaces of time foliations can have a cusp at the surface of discontinuity. - P. Hajicek
(Score: 3, Touché) by ikanreed on Friday November 04 2016, @07:57PM
I feel like that's a perfect modern parallel to "Ceterum censeo Carthaginem esse delendam."
(Score: 0) by Anonymous Coward on Friday November 04 2016, @07:58PM
Personally, I love python. I think its one of the greatest langs out there because of its simplicity and power. However as a first language its not perfect. Its not using the ubiquitous C-style syntax and has a lot of specifics that don't translate well (or at all) to other languages. Its super easy to learn and from that perspective alone it makes for a great first language. But as a starter language that is supposed to serve as a jumping-off point for other languages, I don't think Python is the best choice (although I'm loathe to suggest any other).
(Score: 1) by Ethanol-fueled on Friday November 04 2016, @11:25PM
C++ for intermediate/hard-mode, Java for easy mode. Both if you have enough free time.
And for the reasons you specified, fuck no, not Python.
(Score: 0) by Anonymous Coward on Saturday November 05 2016, @08:25AM
For beginners, Python also has the issue that you can do things in a horrible, overcomplicated way, or you can do it in a nice and clean way.
The nice and clean way is not obvious and to even find it documented often requires searching for it after going "there must be a better way".
Without guidance and knowing about this, no beginner will end up with nice clean code in Python (I have also objections to significant whitespace, it makes change review and even merges a real challlenge - I kind of don't think a programming language that by design is incompatible with good change management and version control will teach people the right thing).
I am certainly biased, but I still think a modern Pascal variant is a good place to start, to be amended with an IDE like lazarus.
Usability similar to C# without having to go proprietary and Windows-only (and yes, especially when it comes to UI but also many other things C# is in practice still Windows-only).
(Score: 3, Interesting) by sjames on Sunday November 06 2016, @06:44AM
There are some pitfalls to Python as a starter language, but many advantages as well. It supports a wide variety of approaches to a problem, so it is possible to write a program in many styles including old-fashioned procedural programming, object oriented, or even functional. It presents a wide enough variety that when learning a second language there will probably be a relatable feature in Python. Especially when used in a teaching environment, that means wide coverage of concepts without having to change languages.