This probably is the most frequent asked question: programming language choice. Well, there are literally hundreds even thousands of programming languages out there. Several have gained sweet popularity, some have been discontinued, buried along with obsolete technologies. Some languages have lasted to date, some other just get illusive overhyped.
That, of course, make total beginners get confused. What should I learn? Where can I find help if I get stuck? This short article would probably help you clear your path to choose a programming language.
For a total noob, I would strongly recommend you to give a try for a scripting language. Any scripting language will do! Back then, I personally used AutoHotkey for my personal projects. I have made literally hundreds of scripts to try each AutoHotkey capabilities, it enables you to build GUI program, DLL function call, and background application.
Yes it has some drawbacks:
- It’s slow to execute! Well, who need high-performance execution when you just want to learn how does program work? Learning is about understanding the underlying mechanisms, not to produce a high-performance program.
- It’s too permissive and error-prone! Yes, scripting language won’t prevent you to change myName = “Jimmy” to myName = 3.141528, but by keep training in this “too permissive” environment, you will be responsible enough to make sure your code is semantically correct, not dependent on compiler warnings and error messages.
As time goes, you’ll make less unnecessary errors, and that’s a very good skill!
My point is, get your feet wet! All you need is to understand how to program, get familiar with it and you’re ready to advance to the next level.
Now the situation if different, you’ve already mastered scripting language, and you’ve produced lots of funky programs. Now what?
Actually, I really don’t need to answer that. Naturally, you’ll find out that your current favorite scripting language can’t do everything. You need more and more power, you need more flexibilities, you need more features! And you curious to try another full-blown language. Yes, you’ll develop your own curiosity. You try other languages that fit your needs more, and because you’re already familiar with coding, you easily grasp old concepts, and ready to acquire new skillset.
Personally, I tried C, I love it because it offers high flexibility, low-level enough, but still human-readable.
Then I tried C# because C won’t fit my need to build high-level enterprise applications. Now I mainly code in C# for my work.
Then I tried Python, it’s a scripting language, but there are immense cool libraries, so I mainly code in Python for my side project and testing purpose.
Because I’m an electrical engineering student, I also learn VHDL, Verilog, Haskell which has a very different paradigm, but I easily get it through because I’ve written lots of code.
That’s all guy! Hope you can choose your first, second, third language as well. Coding is really fun when you understand how to do it, and you have problems need to be solved.