Inspired by Dan Abramov's honest thoughts regarding his own expertise, I'd like to dispel any personal delusions in my own understanding of the vast realm of software.
I'm constantly fluttering between new technology, hoping to sink my teeth into something that can perhaps sustain my career - whether that's a certain JS framework, blockchain, Rust, Go, Node, Flutter, serverless, Python, cloud technology, whatever other computing language or tool. But because my experience with each technology is so touch and go, I realize I hardly ever master anything, let alone ingest enough experience with that tool to be useful.
I have this incessant need to find a niche. However, instead of searching, it's time to learn to focus my energy and attention on singular topics that underlie technology. Focus itself is a mental exercise - a trained ability that I admittedly may never have had.
So here is where my skills honestly are:
I still don't know React as well as I think I do! I have much trouble managing my states and UI architecter in a manner that's conducive to scale and maintainability. I constantly have to look up old code to re-teach myself patterns.
I do too many tutorials. I fast-forward through Egghead and Front End Master courses in hopes of having things stick. It's like putting veges on my plate but never eating them.
I make too many 'study' todo items that I insist I have to complete. This is a rather exhaustingly hampering noose on my ability to truly, mentally, relax.
I still forget CSS layouts in flex and grid. How fast things deterioriate when you don't use them daily.
I start porjects and get stuck configuring my tools more often than writing product code.
I choke down too many software engineering podcasts that I don't leave room to enjoy my music and fun podcasts. I mean, I really enjoy my technical podcasts! But it's the moments when I want to listen more leisurely, I don't allow myself that.
I freaking cannot solve algorithms well at all. Cheers to hoping this year of leetcode and my red book can make a dent in my brain.
I dream of doing open source more than actually doing open source. Aka, browsing my GitHub feed and feed is akin my Instagram scrolling time.
So where do I go from here? Lately a motto that I've been finding very useful is "do just-in-time learning, not just-in-case learning." As a general rule of thumb, I think I'll multiply any expected learning time by a factor of 3-5. If, say, a tutorial on Go hovers around 3hr, I'll make sure I invest at least 9hrs total to truly let my brain grok the knowledge.
These past 4 months have been a tidal wave of learning and reforging. Fortunately I'm increasingly able to hone my attention to a few subjects at a time. I've stuck to my motto of just-in-time learning. My learning surface area is still just as wide, but now I handle them much as a Node event loop would: concurrently!