Learning a computer language is not going to be as hard as learning a communication language. Since most of the syntax (grammar in layman’s terms) is going to stay the same. Mastering the syntax, rather than the language itself, is one of the best (I feel it to be the best) way by which you can start to code within a few days.Take up a project
Whenever you want to learn a language don’t just go to some online tutorial website, sign up for an account and subscribe to a course and learn it. It can get you started, but nothing will get you as close to mastering it as when you do it on your own. Because whenever you learn something without knowing where you’re going to will end up in a mess.
I always suggest people to take up a project in which you will code with the language you want to learn. That’s how I did it. My first language was PHP, which I used to build ShortCine (A place for watching short films). I didn’t know even a single thing in PHP before that. Initially I learned the basic things like for loops and DB connections and developed the platform.
That was the most horrible code I have ever written. So how do you get better?Modularize Your Project
Once you’re comfortable with the basics of the language and you want to optimize the horrible code, you need to learn about how to make it modular. The best way to do this is to breakdown the project into smaller problems and code for each individual thing.
In the first version of my platform there were only two pages, film listing and single film show page. This was very limited but the code was pretty big. Never a good combination.
Later I moved the platform to a framework. This let me move around my modules logically, like one for User, one for Films, and so on.
I used CodeIgniter. I developed a proper database and made up the entire system with smaller and smaller modules.Consider Better Solutions
Okay, CodeIgniter was good, but not great. I had to move on. So I searched for a better framework. That’s how I found Laravel. So I jumped into Laravel which was another huge learning curve for me. And somehow I rewrote the entire platform in Laravel.
And this time I developed the User modules as well as lot more like Heart a Film, Review A Film, Rate A Film and so many more.
I started loving Laravel as it was powerful and kept me in the comfort of PHP. But another problem arose, as my application started to grow it was harder to manage even with Laravel. Which was kind of confusing for me. Even though it has all those tools like ORM, and Routing and much more, I still wasn’t satisfied. Then came the next step.The Language Jump
Since Laravel started to bring me headaches, I wanted to move to a better solution, but I couldn’t find any in PHP. So I started searching for some better languages.
So I jumped into Ruby has it has a powerful and popular framework called Ruby On Rails. But this time I didn’t learn much in Ruby as I already knew the basics of programming from PHP, it was kind of same in Ruby.
So I directly started to code in Rails. Initially it was even more horrible to understand than Laravel. But when I understood how it works I was addicted to it, it felt like home. And even now for big projects I prefer Rails.
Later I also open sourced my code in GitHub. You can have a look at it, fork it and even make contributions.
This is a companion discussion topic for the original entry at https://www.skcript.com/svr/learning-computer-language/