I don’t agree with the language advice. Different languages teach different things.
C is a good language for learning how the machine works, what memory looks like at a low level, and so forth. It’s lousy for getting most practical work done in.
Python is a nice language for munging text and other data. It’s pretty good these days for numerical work, graph generation, and so forth (thanks to numpy and matplotlib.)
JavaScript is good if you want to use a web browser to interact with your programs, and if you’re prepared to also learn HTML alongside learning to program.
My sense is that Java/C#/ObjectiveC/C++ are too complex to be really good “first languages”. Useful professionally, useful for many kinds of programming, but not great for learning.
There are a lot of good intro-programming resources for Java, C, and Python. My impression is that Java and Python are the most popular “first languages” academically. I don’t believe Ada has nearly as much traction in that niche, which means there will be less support..
I think probably Python is the best bet, all-in-all.
C++ is a better language than C in every single regard, including to learn. You don’t need to learn OOP or exception handling to use C++, but you can still use proper strings, streams, and so on. There is absolutely no reason to use C rather than C++, except when you’re building libraries for existing C architectures. The only thing C teaches that C++ doesn’t is bad habits. If you ever had to work with C++ code written by a C coder you know what I mean.
Python is a nice language, but if you want to learn how to code for the sake of improving your quality of logical thinking, I don’t see any advantage it has over scripting languages, which are easier to learn. Same thing with Javascript.
By the way, Pascal was specifically developed as a language for teaching, and Ada improved on that. The only reason schools today mostly don’t teach Pascal/Ada anymore is because C (and later C++) emerged as the dominant language in the industry, mostly due to its performance and because you can go all the way down to assembly if you want to. So a language great for teaching was largely abandoned in favour of a language great for making money. Similar things are now happening with web-languages like Java, Javascript, HTML5, PHP, …
So I guess it’s best to decide what your priorities are and proceed from there.
I don’t agree with the language advice. Different languages teach different things.
C is a good language for learning how the machine works, what memory looks like at a low level, and so forth. It’s lousy for getting most practical work done in.
Python is a nice language for munging text and other data. It’s pretty good these days for numerical work, graph generation, and so forth (thanks to numpy and matplotlib.)
JavaScript is good if you want to use a web browser to interact with your programs, and if you’re prepared to also learn HTML alongside learning to program.
My sense is that Java/C#/ObjectiveC/C++ are too complex to be really good “first languages”. Useful professionally, useful for many kinds of programming, but not great for learning.
There are a lot of good intro-programming resources for Java, C, and Python. My impression is that Java and Python are the most popular “first languages” academically. I don’t believe Ada has nearly as much traction in that niche, which means there will be less support..
I think probably Python is the best bet, all-in-all.
C++ is a better language than C in every single regard, including to learn. You don’t need to learn OOP or exception handling to use C++, but you can still use proper strings, streams, and so on. There is absolutely no reason to use C rather than C++, except when you’re building libraries for existing C architectures. The only thing C teaches that C++ doesn’t is bad habits. If you ever had to work with C++ code written by a C coder you know what I mean.
Python is a nice language, but if you want to learn how to code for the sake of improving your quality of logical thinking, I don’t see any advantage it has over scripting languages, which are easier to learn. Same thing with Javascript.
By the way, Pascal was specifically developed as a language for teaching, and Ada improved on that. The only reason schools today mostly don’t teach Pascal/Ada anymore is because C (and later C++) emerged as the dominant language in the industry, mostly due to its performance and because you can go all the way down to assembly if you want to. So a language great for teaching was largely abandoned in favour of a language great for making money. Similar things are now happening with web-languages like Java, Javascript, HTML5, PHP, …
So I guess it’s best to decide what your priorities are and proceed from there.