How I learned JavsScript
About me
I'm a professional software developer with over two decades of experience. For many years my expertise was game development (client side) and design. 2 years ago I have decided to make a career shift and start focusing on front end development. I soon discovered Angular 2 and have been working as a freelancer for corporate projects.
Why I wanted to learn JavsScript
A client of mine approached me with a task of migrating an existing Flash project I originally built for him to standard web.
How I approached learning JavsScript
Flash's ActionScript and JavsScript are both EcmaScript compliant, so the syntax itself was quite easy to pick up. The challenge was writing clear code and using ES6 to keep with the times. I decided to try several techniques simultaneously until I was certain which one fitted me best. I didn't need too much beyond some written tutorials and YouTube videos to fill up the gaps.
Challenges I faced
The client wasn't 100% clear about the specs, which is something I'm no stranger to. But in order to keep sanity, I had to keep the code modular and be on top of my game, otherwise I would have gotten lost in the project. Also there were the usual annoyances, such as browser support, but all in all none of that was a big deal.
Key takeaways
- I used jQuery for DOM selectors and style manipulations. In retrospect this wasn't necessary. I'm quite comfortable with vanilla JS manipulations. However jQuery does a brilliant job of XML traversing, which I did need.
- XML sucks. JSON is better.
- Challenging myself to different styles of code and forcing myself to become comfortable with arrow functions paid in spades.
- I have created a single page app. I'm very proud of it, but it gave me a good perspective on the merits of frameworks such as Angular.
Tips and advice
- Nothing beats real work with real money and deadlines in order to learn new things! Even though I charged nickles for the project it was the best investment of my career. It wouldn't have happened with a personal project or something for free. The commitment factor works.
- Break down the code into modular and logical sections. Otherwise you'll find yourself lost trying to trap a bug hiding inside a huge source file.
- Try to stay up to date with coding trends.
Final thoughts and next steps
I've already moved beyond vanilla JS. But my takeaway is to expand my knowledge further. Currently in the process of expanding my stack to the server side.