Updated: Apr 29, 2020
Here is the list of the top 5 programming languages to learn in 2020 if you have money in mind, lot's of it:
1. C - The concrete foundation of most modern programming languages. It is excellent for beginners as it leaves out all the fat and works extremely well with embedded projects and programs that need to speak directly to hardware.
2. Python - This is a beautifully simple and extremely versatile language with a cute logo. It works well with raspberry pi projects, automating tasks, simple games and computer desktop applications. If you need a large, very helpful community with actual real world use behind a language this is where you should be. If I wasn't wrapped up in programming chips in C so much I would be wrapped up in Python. I can't say enough. This should be the "go-to" for the majority of people because it is fun and easy to learn and can be very useful even in a corporate setting. Get started coding Python here!
3. Java - Used all across the board and highly valued by most companies. As they say, Java is on billions of devices and programs, etc. It's a safe bet for anyone investing their precious time in learning and all of the tools and courses are available free by the Java developers themselves. It's the first language I went to and had no idea what I was doing but I was able to follow their tutorials. I recommend Java because it is widely used and has a very large professional community backing it. If you don't choose Python, try the Java Dev Kit here!
4. C# - Used in the Unity Engine to develop games and some 3D animations. It's a great language for anyone including NASA who claims to have sent robots to Mars programmed with this language. Microsoft has a decent, organized landing page for you to check out and see if C# is your note.
These are my own interpretations and personal opinions and I'm not afraid to share them.
Why should you listen to my opinion?
Because I'm not a "programmer guy", I'm a hobbyist coder who has tried a bit of everything. I know how hard and how useless some languages can be yet you will find heated arguments on forums and of course mindless hours of video content on Youtube trying to shove it all down your throat.
I started out with Java and after spending some time with it realized why it wasn't what I wanted to keep doing.
I spent time with Arduino language which is basically a wrapping, dumbed down version of C++ and C.
Through discovering what I didn't like and what didn't work I found what I really liked and what really worked.
I would like to acknowledge how confusing it is for anyone new to the "programming industry" or those studying programming languages as a hobby.
There are a ridiculous amount of programming languages available and there is an easy way to decide what you should start learning. I call it The Rule of ONE.
My advice to you is go with WHATEVER you want, but only ONE programming language.
If you try to learn a bunch of different languages you will be like peanut butter spread way too thin. No one will want you, you will not have a portfolio to show to potential employers or even showcase for yourself and friends.
So, what do you do, especially when starting out?
Get really, really good at one language.
Then, get really really good at one type of program.
The third piece of advice that will make you much more comfortable and successful is a strange one but has worked with pretty much any hobby or industry. Go slow.
If you don't like the sound of that because you think you are some kind of coding savant, then reword it this way: Go at the pace that you can keep up with.
All of these languages are worth your time but like I advised. Choose ONE and stick with it!
Wake up everyday and review your notes of what you learned the day before.
This sounds so elementary but it is vital for progressing as fast as you are hoping to.
Have a journal to write these notes that you keep on your desk or in view throughout the day. If it is out of sight it is out of mind and you won't use it.
Fill it with all of your ideas for programs, applications, hardware setups, etc.
Do not attempt to organize it!!!
If you are like me, you will be tempted to do so and end up not writing anything because you are trying to categorize everything before you give it a chance. It's unfair and unreasonable. Give your ideas and studies a chance. Write them all diagonally, draw sketches and mind maps on the lined paper, break all the rules of a ruled notebook.
By doing so, you will free yourself of the judgmental prison your mind attempts to create to protect yourself from failure.
If you catch yourself doing this, acknowledge it, laugh and proceed to scribble in that notebook. Throw it around the room. I post sticky notes that take up alot of blank space which never gets used. But that's good because the space is actually getting used!
When learning any new coding language, you will feel horrible about your progress, many times.
The antidote is simple: Realize each minute you spend on coding or programming is more experience for you taking you closer and closer to your dreams.
You ARE a powerful being.
You require TIME to manifest your power.
Consistency unlocks your power.
I hope you read these a few more times and realize how simple your future is.
My favorite language for 2020 and beyond is C because the benefits of programming in C in 2020 are I can still think like a human but talk to hardware at a lower level than higher languages can. This gives me more control over my projects thus giving me more accuracy such as when controlling motors and servos. Doing so also keeps me focused on what I actually want done with the hardware (the microchip) and the components. I love it and that says a lot coming from a guy who was never good at math. I respect math, I love it now, it's beautiful. I just couldn't wrap my head around it in school. Everyone struggles with some facet of education or life and that's ok, that's the experience that is life.
Learning to code, learning programming, learning electronics and robotics is a noble endeavor and if no one tells you that, I will.
It is equivalent to deep space travel with a box of string and some gum.
At first you think, "How the Hell Can I EVER Do This".
Then after you send everyone home from your pity party, you snap out of it and remember that "thing" you wanted to create.
It switches on like an unquenchable spark in the back of your mind.
It is always a challenge.
Setting aside time.
Soldering everything together.
Writing the code.
Realizing something isn't working.
Figuring out why.
Fixing the code.
Realizing you soldered something wrong.
Fixing that, etc.
It is ALWAYS a challenge.
YOU WILL MAKE IT.