The endless hype
I've always been getting really hyped about new things, and I feel this has been affecting my progress overall. Meaning, if you always find something new and more (momentarily) interesting to learn, you never master anything. This is not even that "jack of all trades, master of none" type situations, because even though I learn superficially about many things, my knowledge will not reach even the "jack" level. I find something new, get excited, read tons and watch all the videos I find, particularly of type where people describe all the cool and positive things about it. Then, I do nothing. Maybe if it's a language, I install the compiler, create a hello world example, and then that's about it. Every time there comes the part of my internal hype cycle, when I simply lose interest. It's often in the point when it would be time to actually do something concrete with my newfound knowledge. In the rare case that I actually start a project with some goal in mind, it won't be long when working on it simply starts to feel like a bore, making every attempt at returning to it more and more energy-demanding.
So, my question, how to cut the vicious cycle of learning? How to get out of the tutorial hell?
Things I've hyped recently
Elixir
Phoenix framework, especially the liveView seemed really interesting, but never got any deeper into it. As with the Clojure below, the lack of dynamic typing always makes me think twice.
Go
To be honest I'm not sure if this belongs here. I learned the basics and actually built a telegram bot with it, and a tool which people at work actually use. So yeah, This was rare one. Despite it's innate boredom, which is also it's advantage, I really liked how batteries included the standard library (especially for cli and web stuff) seemed to be, and will most likely be using it for some things in the future.
Nim
Typed python, compiled and fast, what not to like? Well, being a niche language, the thing that made me question this endeavor was whether this was worth it, why not learn something even a bit more mainstream and new, like Rust. I did some Advent of code problems with it, and to be honest really liked it. Maybe I'll return to it one day. Maybe.
Rust
This is a tough one. I want to use rust, but it definitely has it's own quirks. After discovering the excellent Crafting Interpreters book, I started to follow the book with rust, with the aim of building a language with it. But there were some simple things that seemed to be so complicated, I got frustrated. Number one issue I faced in the lexer phase of the book was the difficulty of passing strings around. The borrow checker just seemed to make life too difficult. Also a simple thing like creating a global map of already know mappings required an external dependency! Seriously? I want to finish what I started on this one, mainly because programming language creation was one of my big hype topics... But before that, the next thing that swooped in was...
Clojure
I had no previous experience with any lisps, just a vague understanding that they were languages evangelized by some, used in emacs, and had many many many parenthesis. Looking into clojure, I'm still in the middle of the hype cycle, wanting to try it, but not really having any ideas where. The JVM is both something that encourages the experimentation, but also creates an immediate nausea towards the language.
Htmx
Is this it? Is this the approach to finally make me like frontend development? Probably not, but the apparent simplicity is intriguing, as JS is not something I enjoy, at all. With frontend technologies there is always the bonus that creating something web based is the easiest way to have the result being visible to the user, without the command line at least. On the other hand, that means dealing with CSS and the ever changing JS library of the week -hype. It's not that you have to use anything more complex than basic css and vanilla js, but I'm just too drawn to it. Too drawn to the possibility of finding a simple framework that makes it easier for me to do things on the frontend. Things like aesthetics or functionality are important to me, but I lack the mastery, so I'm looking for the perfect crutch.
No way out?
Having superficial knowledge of wide array of topics is not necessarily a bad thing. You appear to be on top of things, and technology is something that can be learned on the go. Actually learning that way is the best way. So when a need arises to deepen one particular topic, at least I'm not starting from the bottom. One thing I want to mention is the mentioned figure of speech, "Jack of all trades, master of none". Whilst this is something occasionally continued with ".. but oftentimes better than master of one", I don't wholly agree with either version. Some time ago a random person on internet wrote "Jack of all trades, master of one". This sounds, if not ideal (few would be better than one), much better. Having a wide toolbelt, albeit shallow, is useful, and if it's accompanied by expertise on one specific area, that's even better.