[Solved] What programming languages should I learn?
Since I started this blog, I have gotten quite a few emails asking me “What programming languages do you recommend for X?” I often finding myself writing something along the lines of
I would honestly recommend python. Something about me being biased because I know and love it. Usually say something about the competing technology with a back handed insult. Also if they are starting out I would recommend a language that enforces better OO (Object Orientated) practices than python, like Java (don’t hate me but it’s true).
Then I go on to say something like you should try to learn one of each language type compiled, scripting and functional language. Never pin hole yourself. Always try to be aware of the differences when encountering these languages
Keep in tune with trends that appear in fields of interest (web development, mobile) but you don’t have to learn every new “IT” language.
Keep reading the blog or else statement.
Name goes here.
So I have decided to write this blog post to safe my readers time, as well as keep my sanity. Don’t get me wrong I love hearing from my readers. Its just I am writing the same email over and over. You know who you are. Grr.
Again these are just my opinions and the only thing I do professionally is being a bad ass aside from writing code.
- Dusty’s Pick - Python/Django
- Dying Technology - PHP
- Others - Ruby/Ruby on Rails
Why you ask? You learn design patterns like MVC which is the basis for django and ruby on rails. PHP is an ugly language hard to learn, but it does get the job done. I feel though these other technologies are growing and allow for easier and quicker development experience.
Integrated Development Environment
- Dusty’s Pick - Eclipse
- Pro Bros - Vim/Emacs
- Windows Boys - Notepad++
You should be a master in one of these. It increases your productivity as well as increased ease when coding in some languages. I would recommend for beginners Eclipse! Why? Because of Twilight and the fact that it has extensive plugin architecture that includes almost every development language. Older guys swear by Vim/Emacs, its has big learning curve but people swear by it afterwards. Notepad++ for your portable use and allows you to download it quick and to comfort zone for off site development.
- Dusty’s Pick - Java
- OS and Applications - C/C++
- The Other C - C#
The reason I recommend Java easiest to learn quickly and it creates a clear and concise way to show the power of OO programming without the clutter and mess of syntax that C/C++ are known for. Now, on the other hand for “performance" reasons most programs you see are written in either C/C++ which have interesting ways about going compiling from the sources you will end up writing yourself which is a skill within itself. Writing make files and dependency management. So learning them for that added benefit is worth it. I don’t know much about C# but people I know love it so here is a generic Wikipedia link.
There is so much, where should I begin? Forget all that I say pick one and stick with it, until you can plan out how to solve every problem from start to finish with thinking crap how am I going to do that. Once you reach that level, switch languages. But always ask yourself how would I do it in that language, what about this one? YA DIGG?