Photo by Clay Banks
January 06, 2020 by Christian
What other field has the space to allow its practitioners to spend such a large chunk of their time on teaching themselves new skills? When I was a high school teacher, getting approval or funding for attending a small workshop or even scheduling some time to talk with other teachers about the actual craft of teaching was absurdly difficult for a variety of reasons, but mostly because no one had any time to do such things. As a web developer, I’d say easily 40 percent of my time is spent researching and learning. What a time to be alive!
Fortunately, I’ve also been realizing that this weakness is really based on a false premise: namely, that I’ll somehow make the “wrong” choice in what to focus on. I’ve finally realized that there are no real wrong choices, or at least no absolutely wrong ones (okay, maybe don’t study Flash I guess). Any particular language, framework, tool, etc. is just an implementation variant in solving some underlying root problem, like building a user interface or persisting data. Being able to identify the low-level patterns and commonalities that transcend these choices so that they can be recognized and applied elsewhere is what matters. I could choose to intensively study FORTRAN for some reason, and even though I doubt it would be directly relevant to where I want to go, I’ll bet I would get more out of it than shallowly reading tutorials about more relevant things like Redis.
So with that, I’d like to push myself to change that this year by making some calculated choices about what I want to learn in-depth, and discipline myself to ignore spending precious time on everything else. Here’s the working list:
GraphQL - Writing a really good API seems really difficult these days, and I like the thesis that it’s probably a smell that the way we write and use applications has evolved beyond the current de facto standard (REST). Being able to flexibly and surgically query for data seems really powerful. Make APIs fun again!
New language: Python - While I’ll always be a JS fanboy, I’d like to become reasonably proficient with another scripting language. Python seems incredibly popular in many contexts, and I’d like to learn the basics / maybe implement a flask server as a project.
Data Structures / Algorithms - As I find myself more interested in the backend side of web development, I definitely find myself bumping up against my lack of formal training in computer science. I’m not sure how far I’ll get with this one, but I’d like to at least learn some basics in this category that I can build on continuously.
That seems like plenty (maybe too ambitious!). If I can make progress on 3/4 of those things by 2021, I’ll call it a successful year.