Where it all began
jQuery spaghetti: a dish we all ate
This was more than sufficient for me to get by and realize many cool projects and I eventually started learning more about programming and how to write better-structured code. Being the only front-end developer at my first job, I had no-one to look up to or to learn from within the company, so I constantly needed to push myself to learn and discover new tools and technologies. Eventually, as the projects grew bigger, the jQuery as I had been writing it became more difficult to manage and hard to change for my backend colleagues. So I started learning how to structure my jQuery code by writing my own reusable jQuery plugins and I dove into some more advanced concepts through some CodeSchool advanced jQuery courses such as event delegation, hoisting, scope, and prototypes.
Coming back to a transformed landscape
Vanilla JS still had its quirks (for me)
React and ES6
While ramping up my vanilla JS skills, I also learned React, and coincidentally ES6, at that same time. For a new project, I quickly had to learn React. As I am a visual learner, I turned to CodeSchool again for their great React course by Sergio Cruz. It gave me all the essential knowledge I needed to get started working on real projects. React may seem simple at first, but you definitely need to get some working experience time in doing the same things over and over to fully assimilate the reactive way of programming. But once I did, I never want to go back to the old jQuery way of manipulating the DOM.
As the scope of my first React project expanded, I realized that the basics would still allow me to finish building my app, but it felt like the codebase quickly became less maintainable and scalable. For example, as the app grew, managing and passing down state many layers deep into the component tree or opening a modal component several layers up became ‘problematic’. I felt like there should be better solutions out there to structure React apps and that’s why I wanted to perfect my React skills. I did so by taking an Advanced React.js course by Samer Buna and Building Applications with React and Redux in ES6 by Cory House, both on PluralSight. These were both excellent courses which gave me great insights in how I could structure apps for scalability, use Redux and immutable patterns for easy and predictable state management, improve performance, render my apps server side, get started with unit testing and many more advanced concepts.
But I’m new, where should I start?
But frameworks come and go. Instead of learning all new frameworks, try becoming a better programmer in general. Try to understand the concepts behind the libraries or dive into functional programming. But most of all, build lot’s of things and get stuck.. and once you get unstuck, you probably learned something.