Hello there ,
Hello there ,
I’ve always preferred to learn things on an as-needed basis. If I didn’t plan on writing a C++ plugin, I wouldn’t learn C++. I think, in general, the time you would spend learning a new language just for the sake of it would be better spent learning one language in greater depth.
What you learn is influenced by what other people are using. If all programming jobs were in Python, I would probably be learning Python.
Each language has it’s own features and is used more in specific industries.
I follow Stefan Mischook on YouTube. He discusses what languages/tech to learn quite often.
Or, if you want to extend your skillset with one of the most recent programming languages, you could get into something like Golang or Elixir.
I’d be more inclined to recommend C++ since it follows OOP methodologies and is a compiled language (not interpreted like many of the others), and will help you learn how the CPU and memory work behind the scenes, which will aid you in writing more performant code.
Or, depending on which side you’re on when it comes to Android vs iOS, you could learn either Kotlin (Android) or Swift (iOS). Or if you want to take advantage of .NET Core, that’d be a good reason to learn C#.
Also keep in mind that it’s always good to learn a language or technology that’s going to stick around for a long time. And by that I mean something database-oriented. SQL isn’t going anywhere for a long time for relational databases, and if you don’t already know it, it’s something every developer should know whether they’re front-end or back-end—whether in the form of MySQL, T-SQL, or PostgreSQL (all three are collectively very popular in industry). And you should definitely learn a NoSQL database as well, whether it’s MongoDB, Cassandra, or Redis. Node.js interfaces extremely well with MongoDB of course, but there are SQL drivers that help it interface with popular relational databases like SQLite and PostgreSQL, so if your goal is to become full-stack, you might want to consider learning PostgreSQL in particular (which is a safe choice as it’s very popular).
@astv99 That should keep him busy
I’ve always followed my own rule of “I learn it as it pertains to my goals (professional or personal)”. I’m interested in front-end only (for now) so I’m learning languages and frameworks that pertain to FE. If/when I become interested in back-end I’ll start learning one of those languages.
If you are seeking employment with a company that works predominantly in Node then you’d want to learn Node. But if you are seeking to be a front-end freelance developer then there’s nothing wrong with knowing JS and the billion frameworks/libraries associated with it.
This is, of course, only my opinion and it could differ from yours or others
thank you for the detailed reply I appreciate that
@jacobbogers As far as Atwood’s Law, the “cool” languages come and go. And there are always fanatical followers that think it is the ultimate language. I remember similar things being said about C, C++, and Java. Don’t get me wrong - JS has some strengths. But don’t get sucked into the hype. It’s a good language and is my focus too. But there are other great languages out there with other strengths. And who know what will happen in the next years.
The easiest way to evaluate tech without learning it is just to look at what is actually used in the industry. If it is heavily used, then it’s a viable technology.
@kevinSmith, of course, nobody can predict the future, and even languages evolve heavily over time to meet the challenges of the current day.
Maybe in the future, it will be replaced by something much better suited to fulfill “Atwoods’ law”
Who is to say…
I went to a meet up tonight that discussed this exactly. The presenter said, there will be developers who mock learning whatever language they personally think is useless… and to ignore people like that. Learn with a purpose, like to reach your goals, whether a personal project or cause it’s required professionally, but make sure you do what interests you, regardless of if it interests someone else.
Something else, learning your first language is hard, and your second is hard, but then you get used to picking up on the differences and your next language doesn’t feel so hard… a good skill to have when you land a job and they require you to learn their stack, which happens.
Dude do NOT listen to that guy.
C++ is great. Yeah yeah yeah it is blazing fast and whatever…
Learn C++. It will be very nice for companies to see that you know it. And it can be very valuable.
I’ve seen developers laugh at C++ programmers because they say something like “I can write that in Assembly!”
Whatever. Who cares. And that’s the point. You know who cares about what programming languages you know? The companies you are applying too. And what do most of those companies care about right now? Node.js. It’s huge.
Yes, he said that, but his principle is about “weakest possible language”, in 2018 this is JS, tomorrow it can be something else, the principle will hold true regardless
I totally agree with this!
But I also think that every developer must be a good programmer and master OOP, algorithms and data structures.
So, I recomend you to learn C++ since it’s 100% OOP language. With C++ you gonna understand better how things work at low level, eg memory management and processes’ scheduling. Once you master how to use pointers, you can do almost anything in Unix based operating systems.
C++ opens up a range of new possibilities like Linux and Electronics programming (Arduino and Raspberry Pi). You can have a new hobby developing some electronics crafts or so.
I think there is also something to be said about throwing practicality out the window and just having fun learning a language. I took a course last semester where we just learned 3 languages shallowly; Scheme/LISP, Haskell, and Prolog. I will NEVER have any practical use out of Scheme, but I cannot convey how much fun it was using that language.