In the last post I wrote titled Learning for 2016, I listed several web technologies that I may cover this year on my blog. The idea was to give readers a chance to comment on what appealed to them the most. Part of writing that post was to set out an expectation as to what 2016 will look like on my blog. I also asked: What makes you feel anxious? I had a number of emails from readers, all of which had a similar theme. They were anxious about most of the technologies I listed, or what happens if they learn technology x and it’s replaced by technology y. Or that in their day job they are stuck using ‘older’ technologies and are anxious that their skills will become stale. These are all valid concerns.
The Sad State of Web Development - This post is a satire on the current state of web development. Be warned, it contains some colourful language!
Angular 2 First App Post-Mortem - This post was shared a lot with commentary about the level of complexity described in the post i.e. there is too much!
There have also been a number of posts debating whether to use a 3rd party framework (Angular, Ember et al.) vs. a custom-built framework. This post does a great job of synthesising the topic: Application developers, we need to have a talk.
Each of these posts generated a lot of comments and activity via social media. Many feel frustrated by the numerous web technologies and complexity, and others feel it’s part of the job.
The following tweets do a good job of contrasting the many points of view:
1 . Frustrated with Complexity
2 . Defending Complexity
When a developer complains about having to learn something new, I assume they don't understand the underlying premise of their job.— Jeremy Wilken (@gnomeontherun) December 9, 2015
My thoughts on this, which neatly sets up the theme of 2016 and this blog, can be consolidated into two points:
2. Whatever framework you’re using now, learn it really, really well.
Knowing a framework’s principles, strengths and weaknesses has helped me significantly when faced with learning newer frameworks. There is often overlap among frameworks, and when I’ve been faced with learning a radically different framework, it’s often been the case that it’s pitched against the weakness of the frameworks that I do know. I still had to work hard to understand the new concepts, but I understood why they were different which gave me a head start in building up a mental model.
We must ask ourselves, how well do we know the framework that we’re currently using the most? Do we know what design patterns it uses and why? Do we know how it does templating? Model binding? Does it have its own event handling mechanism? How does testing work? I used to use ASP.Net MVC a lot and invested a lot of time learning that framework, which gave me a foundation in MVC that enabled me to effortlessly transfer to AngularJS. I’ve since done a lot with AngularJS, and if you’ve read my posts on unit testing in AngularJS, you can see how I’ve taken a deep dive into how unit testing works (i.e. I practice what I preach).