I wouldn't say I 'learned' any programming language before Python. When I say learned, I mean read at LEAST 1 book on it. Preferably 2-3 at minimum.
By my standards, my list goes like this-
- Python
and that's it for the most part. I mean, you couldn't ask me any questions on idiomatic programming in any of the list below.. I'd have to look it up for sure. So I didn't really 'know' or learn them IMO to say I'm an 'idiomatic C# programmer'. Maybe had a class on them. I think this applies to more people's list than than it appears.
I've dabbled in C, and compiled programs and so forth.. that doesn't mean I put it on my path of languages throughout my programming career.
If I had to put together some sort of chronology-
- QBASIC at 8 or 9 yr old
- some other form of BASIC at junior high (and HTML, basic webpages)
- VB6 at HS
- JS at the university (and CSS/HTML but those obviously aren't programming languages)
- also attempted Java/C# in college but never really stuck to it
- Python
I've also used Powershell and SQL and other non-programming 'languages' similar to CSS/HTML/ColdFusion, on and off. Worked through a book on Node.js.
Needless to say I'm crazy about Python.. I just find it very applicable to the types of problems I am trying to solve in my work and personal projects. Web or local.
I get real problems solved and with little over-engineering creeping in. In my office we use mostly C#, I'm just as likely than the C# guys to tackle the exact same type of 'big problems' they are. In fact, for the 'big problems' I have a massive advantage using Python as its reference implementation is crossplatform. But they are not as excited as I am to solve smaller problems, they'd rather just buy software for something I can solve easier and end up having reusable code for the future by scripting it out in Python. Or they will use something else, like Powershell. But honestly, most of them only know C#, not PS. So us Python guys have the swiss army knife. None of my fellow programmers that I know, truly know or use the 'best tool for the job'. They say they do, but there's simply too much stuff out there to know and they use the 'best tool available from what they know'.
I know my way around C#/PS but I'm a Python zealot (maybe not for life, but for the forseeable future, 10 to 15 years more).
If you could, how would you guys reorder these progressions, how valuable do you think the reordering would be, and why?
Doesn't have to be paragraphs, just basic reasons.
I would have started with Python, and ended with Python. My reasoning is that most 'programmers' are avoiding webfront end programming. This is the other half of programming today. Sitting around squeezing out performance in binary is important- but not as important as it was in 1978. If learning another programming language, I'd pick Javascript and spend my time keeping up on the latest web frontend techniques. That's hard to do, but worth a lot.
Since I made my first webpage back in 1995, I've personally gone from basic HTML, then to fancying up a webpage by hiding elements using JS and widgets, to pushing out to an HTML template, and pretty much ended there. I haven't used JQuery, Angular.js and whatever else out there that is a must-know IMO. Way more important than knowing 8 mostly overlapping and thus irrelevant programming languages.
If you can learn 8 programming languages to the point where you can code up a project without referring to learning resources while you do it (aka really learning it), AND keep up on web front-end tech, then you are the man.
I'm not the man, I just solve a lot of real problems in an expeditious manner.
Obviously you mainly need to use what helps you in your current job.. for me that's where I found Python fits my needs.
Really though, I am open to something else.. just no practical use yet. I'm always keeping my eye out for the programming language that solves (IMO) what is today's big problem- multithreaded/core/node programming in a way that is no different from single threaded programming.
No one has done that yet.
Once we get there, I'll abandon Python. But, honestly at that point, Python will be one of the best 'legacy' languages anyway IMO so it's a win/win/win.