Which programming language should I learn first? INFOGRAPHIC

Generally speaking, I would recommend that anyone start with either Java or C#, and then learn JavaScript if you want to get into web development. C++ is probably the best to begin with if you're able and willing to learn some of the difficulties that come with it.
 
Python is a good option for computer vision and imaging, but if python is your first language you may find it difficult to learn other languages partially because of the syntax differences. Because Python does not require as much syntax as most other languages, it's a language that is one of the easiest to learn.

C++ is another good option, but as x BlueRobot mentioned there's a steep learning curve with C++. C++ is a good option for a lot of things though and once you learned C++ decently it makes things a lot easier for you to learn other languages faster.


Just my two cent in case you learn either languages and want to learn something else as well. Depending on your choice, you may have a bigger challenge ahead in learning.
 
This infographic is ancient. It has so many flaws:
  1. It has pure C in it! Is there even an IDE for pure C? Starting with a non-object-oriented programming language is a huge mistake anyway.
  2. Recommending C++ for game development is weird; there are so many game engines for JavaScript and C# right now, including Unity. And anyway, C++ for game development is only practical on Windows.
  3. It doesn't even mention data sciences. R, Julia, and F# fall in that area.
  4. Maturity isn't the only element that drives the choice between JavaScript and PHP. JavaScript works best on the client side (despite Node.js,) while PHP is a strictly server-side language.
 
It has pure C in it! Is there even an IDE for pure C?
Yes and it is still used quite extensively. Driver still use pure C to an extent as well as embedded systems.

Starting with a non-object-oriented programming language is a huge mistake anyway.
How so? OOP isn't some magical answer to solve all programming problems. It's a paradigm which can be suitable in some situations and not suitable in others.

C++ for game development is only practical on Windows.
Again, how? You can simply compile the program for a different architecture and different operating system.

It doesn't even mention data sciences. R, Julia, and F# fall in that area.
These are very specialised languages which are used to solve a particular set of problems. Someone who has never programmed before will not need to know these immediately.
 
Yes and it is still used quite extensively. Driver still use pure C to an extent as well as embedded systems.
You just contributed one more item to the list of the infographic's flaws. What can I say? The author must have thought, "you wanna get started and learn, but you're not a kid? Oh, I know. Read the dragon book and develop device drivers! And forget that you can do that with C++/WinRT, Rust, Delphi, etc."

How so? OOP isn't some magical answer to solve all programming problems. It's a paradigm which can be suitable in some situations and not suitable in others.
OOP gained popularity and stayed popular because it was a great innovation. Not all paradigms are created equal.

Again, how? You can simply compile the program for a different architecture and different operating system.
I said impractical, not impossible. You can, if you know you'll live for 200 years, can spend 200 years on a video game, have nothing better to do with your 200 years, and most importantly, don't want to release your game for Android, iOS, and macOS.

These are very specialised languages which are used to solve a particular set of problems.
You are describing R alone. F# and Julia are general-purpose. Julia is Python's rival. But I can see that author of the infographic was a Python lover.

Someone who has never programmed before will not need to know these immediately
I know many university alumni who have never learned a programming language other than one of these.
 
You just contributed one more item to the list of the infographic's flaws. What can I say? The author must have thought, "you wanna get started and learn, but you're not a kid? Oh, I know. Read the dragon book and develop device drivers! And forget that you can do that with C++/WinRT, Rust, Delphi, etc."
How is learning C a flaw? Almost every commonly used modern language derives from C in some aspect. C++ is C with classes added.

OOP gained popularity and stayed popular because it was a great innovation. Not all paradigms are created equal.
I wasn't suggesting that OOP isn't a great innovation, but I believe many programmers fall into the trap of picking something because it's popular rather than because it's required. And I still disagree with the statement about one paradigm being better than the other. Look at C# now, it's taken what was good from so many other paradigms, hence it's popularity among professional developers.

and most importantly, don't want to release your game for Android, iOS, and macOS.
Desktop and mobile games have totally different interfaces and underlying architectures, you would probably need to develop a separate version if you had a complex game.

You are describing R alone. F# and Julia are general-purpose.
Then why state F# and Julia fall into that category then? It seemed that you were inferring that those languages should be used for data science only. I know that they can be used for problems other than data science, but it doesn't mean that they suitable for those other problem domains.

But I can see that author of the infographic was a Python lover.
They may have been; everyone has their biases. Python is a great beginner language and has some great libraries.

I know many university alumni who have never learned a programming language other than one of these.
I know many university alumni who haven't; what's your point?
 
I wasn't suggesting that OOP isn't a great innovation
Good. (I know, you said a lot of other things, but I think they amount to "we disagree.")

Desktop and mobile games have totally different interfaces and underlying architectures, you would probably need to develop a separate version if you had a complex game.
Exactly what I was saying. And exactly the opposite of what the diagram says. It mustn't mislead people interested in developing games for mobile devices to go that way. Or at least, the "3D/Gaming" label must read "3D/Gaming on PC". Even on PCs, you can create games with JavaScript + WebAssembly + WebGL.

Then why state F# and Julia fall into that category then? It seemed that you were inferring that those languages should be used for data science only. I know that they can be used for problems other than data science, but it doesn't mean that they suitable for those other problem domains.
Exactly! So, can't you see the diagram's flaw? If not, let's take it from the top. The diagram in question starts by asking "Why do you want to learn programming?" One important branch omitted from this diagram is, "Make money → Get a job → Which platform/field → data sciences." There are several possibilities here: R, F#. Julia, and probably more.

Now, R is a strictly specialized programming language for statistical computing. Julia is a general-purpose language and can be used to write any app, but many of its features are well-suited for numerical analysis and computational science. (The same thing cannot be said for any other general-purpose programming language.) F# is more on the general side because its brothers (C# and VB.NET) have access to all the same libraries. But data scientists may feel more at home with its linguistic features.
 
@FleetCommand
I don't have a programming background so I can't add to the debate. I simply thought it was cool.

An infographic usually doesn't cover the entirety of a subject, it's a synopsis.

We get it, you are a programmer and you "know your stuff". 🥇🎉💯

Thanks!
 
Well, I didn't know it is a competition. We're in the Lounge anyway, so I'll lay back, chill, covertly spy that bloke sunbathing outside, and try not to lick my lips too conspicuously.
 

Has Sysnative Forums helped you? Please consider donating to help us support the site!

Back
Top