Where to start?

If you are, like me, born in the Seventies, you might remember books. Remember the days when you wanted to learn something and you went to the library or a bookstore? Not anymore, at least not for me. I still buy the occasional book, but only digital ones. The thing with tech books is that after a year or 2 the book is outdated. Well lucky for us the internet is huge and Google (or Bing) is our friend. There are a lot of resources out there and most of them are free. If you want book advice, I really like the “Head first..” series to start with something new. It’s fun and somehow that helps me learning. For reference I think O’Reilly is always a good bet. But I didn’t use any books the past weeks, I used 2 different websites, one free and one paid.

Determine your starting point
Because I’m already a developer my starting point will be different from someone who has no programming knowledge. For me JavaScript is just another language, different syntax, but with lots of familiar concepts. Variables, functions, types, loops, I’ve seen it all before.

A great and free of charge website to learn JavaScript (and more) is Codecademy. This might be more for the beginners, the once who have no programming experience, but I really liked it. Although I didn’t read all the explanations, because I know the basics, I liked the exercises. As a C# developer I must admit I never use the old school loops anymore. I only use “foreach” loops when I’m coding. So it was a long time ago I had to use for, while or do while. And it was good practice. I read somewhere that the mistake every programmer makes is the “being 1 off” mistake. And yes, when writing a for-loop you find yourself often ending up with 1 less or 1 too much in the results.

My absolute favorite source of learning is Pluralsight. It’s not free, but I am lucky, my employer pays the subscription. They have lots of JavaScript courses and I started with an appropriate one: JavaScript for C# developers. It’s by Shawn Wildermuth and he starts with a comparison between the two languages. A lot of concepts are the same, some look the same and some need some more attention. A lot of the concepts that are covered in this training are things that I don’t really think about when I’m programming in C#. That is because I’m so used to it, I use them on a daily basis and as Shawn says, they’re part of your brain muscle. For me learning a new language is using it, and that is why I used Codecademy at the same time, just to practice the concepts.

What have I learned so far?
To be honest, the theory was already present, but I now had some more explanation and practice with it. Shawn used a comparison table in his course that sums it up nicely.

C# JavaScript
Strongly-typed Loosely-typed
Static Dynamic
Classical Prototypal
Classes Functions
Constructors Functions
Methods Functions

Now I have finished both courses, I think I’ll move on to more in depth subjects. And my plan is to focus on the top 3 differences in the above comparison. Hopefully I can write a blog on each of them when I’m done.