This post I wrote quite a few years ago now and found in my drafts. I was thinking of deleting it but realised that in 2021, however many years later, it is still relevant so to whoever may find it useful — enjoy. For anyone who wants a blast from the past — here is me mentioning Angular 1.x and backbone as “recent” 😉
In my experience most people who are asking this question are of the junior level, probably writing one of their first ‘proper’ applications that involves changing state, bi-directional data flow and complexity beyond simple web forms. As constructive as the discussion around libraries and frameworks are to me and my peers, they detract from the real question which is — “what direction should I be going in in order to be a good programmer?”
As this question is rarely asked in this way, what ensues is a call-to-arms for framework fanatics to fight their corner about why one framework will destroy the other. I’ve found it to be frightenting and genuinely disheartening to see the originally eager poster lost in the battle attempting to derive reason from madness. Enough drama Ben, get to the point…
The reason I look back on this so fondly is that by making mistakes and observing first-hand the problems with my less-than-perfect architecture taught me vast amounts about the core concepts of programming such as OOP, MVC, DRY and other such three letter accronyms.
Practical next steps
I don’t believe in professing an anti-something opinion without offering a solid, actionable alternative so here are some steps that I took in order to get to where I am today that I would advise for any new(ish) developer looking to progress.
- Pick a project that you would like to make and don’t worry if its been done before
- Once you’ve decided on something to build break it down into smaller chunks and start writing code. Even if the first week doesn’t amount to anything and you end up ditching it all, you will have learnt so much in that process and that is incredibly valuable
- If you are going to use a framework then just pick one and use it. I have mostly used Angular 1.x and Backbone, both of which have plenty of discussions and tutorials to learn from. The ability to learn something new is far more important than what you know
- Once you have built something, look back at it critically and identify its shortcomings — this will give you pointers as to what you need to read to improve
- Crappy code that does something is far better than perfect code that doesn’t.
The important thing here is not to get bogged down in the weekly argument of which library or framework to use. Find something that you think would be useful or cool or silly and build it. Trip up, make mistakes, make something so awful that you’ll never want to show it to anyone, and at the end of the day look at your mess of barely functioning code and proudly say…
“I built something today, what have you done?”