This thread has a lot of great answers:
I tried to comment, but was not able to really put my finger on the stuff I'm not interested in learning. Instead I simply read, and I believe there is a lot of wisdom in some of these answers. Enjoy!
The modern frontend toolchain is where I'm tapping out on the "full-stack" idea. I can do everything I need to do with server-rendered templating languages; if I'm working on something that requires getting serious about understanding React or Vue or Webpack, I'm going to be working with someone who knows React or Vue or Webpack. I can work out what's going on in there well enough to fix problems and add minor features, but I'm profoundly disinterested in digging deeper.
Machine Learning. I see it thrown around everywhere as the new thing to do, and I just can't build up the energy to dig into the complexities (both with the science behind it and the massive amount of different libraries available).
VIM and DevOps are actually on my current list haha, although that's also on the advice of my current manager. My own list includes:
- Virtual Reality
- Additional backend langauges other than Ruby (part of my current job)
- Arduino or Raspberry Pi
I want to include calculus as well, but my manga book on Calculus always pulls me back in.
Great question!
the list could be endless if I start adding things like SAP :D
These are the things that pop in my mind right now:
blockchain: I'm honestly totally bored to death everytime I hear someone mention "blockchain". It's not rational, I just tune out. Probably my subconscious is trying to protect me from the hype
kubernetes: super useful, just not particularly interested. More interested in what comes next, I need one more level of abstraction
AR/VR: reality is way more interesting for now :D
internet of things: except real sensors in urban environments... why are we doing this to us?
hardware: I don't remember the last time that I built a computer. Probably in high school. I keep a distant eye on what's going on in storage and memory advancements though.
AI/ML: turn down the hype. Learning something about ML is quite useful though
PHP/Wordpress/Drupal: I know, I know. I shouldn't judge a book by its cover
DevOps. BlockChain. Angular.
It's really hard not to fall for shiny object syndrome, so I think you really have to keep that focus in mind of what your goals are for being a developer <3. Thanks for posting this, as always ali :)
The things you have on the list are on mine as well.
Not so long ago I wanted to learn everything and thought it is possible. Some job descriptions made me feel that I need to know everything. Now I know better - there is too much and I need to specialise to achieve any notable results and satisfaction from my work.
Basically, I focus on frontend now, and mostly on logic and architecture, not appearance. I can do CSS but I don't like it. I can do backend in javascript but there is more interesting stuff for me on the frontend. For now I want to learn React and everything around it, on a deeper level.
Everything else is not on my "to learn list" at the moment.
The thread has a lot of other great answers I didn't highlight. The point is that managing your own expectations and being okay with the fact that you'll never learn everything is important.
Nobody is telling you that you can't change your mind later, but it's okay to fall behind in certain areas of software development while going deeper on others. Managing this interplay is important for your career evolution.
Here is a somewhat related post, addressing the other end of the generalist-specialist concern:
Happy coding ❤️
Top comments (12)
FOMO is the enemy of focus.😞
Wisdom right here.
I don't know.
On the one hand, I think you're right, learning everything wastes your time, if you want to do something, find the tools that make doing it simple for you and be done with it.
On the other hand, there are many people out there who do things the old way and don't want to change it, even if it has considerable down-sides doing so.
"We don't need the Cloud!"
"Web UIs are too slow, we need to do it in C++!"
"Monoliths are much easier to maintain!"
"Mainframes are more efficient!"
I agree, but the comments here are generally pretty reasonable. There are problems on both ends of the spectrum. Landing in a sensible middle area is pretty important.
It's really about context more than anything. Monoliths are easier to maintain when they encapsulate less complexity than is worth the microservice effort overhead. Asynchronous web UIs can be unacceptably slow for some purposes. Breaking out a planet-scale distributed datastore when you have a few hundred megabytes of data tops is stupid. Framing an issue as a case of extreme, flawed, and diametrically opposed perspectives dueling around a sensible center tends to be overly simplistic.
Yes, and it's not easy.
I for one would say serverless is the future and blockchains are a fad.
But maybe it's the other way around?
I think these things are becoming important, but we are in fairly painful early days in both.
I don’t think there’s anything wrong with hanging back and catching on once some of the dust has settled.
Learning is not binary you learn or you don't. It is more a question of to what degree you choose to learn. Even to answer the question "what are you not interested in learning?" with, for example, "Angular", means you know enough about the subject to choose not to proceed further with it. If you are a backend developer you may have very little desire to explore frontend frameworks but you probably know what frontend frameworks are and their purpose, and I'd bet a lot more than you know about something else completely remote like molecular biology.
Personally I try to be familiar at a very high level with current trends in technology, looking out for things that could possibly help me be more effective day to day, at work or play. The degree to which I immerse myself is dependent on how promising the particular technology seems to me for the things I am working on, either professionally or as a hobby.
IMO, the software world is a massive ocean. I live on a tiny island, so it makes sense to know that island really well. After I've become intimately familiar with my island, I can then swim over to the next and learn some things over there.
I work mostly with Angular and other frontend technologies, so that's where my focus lies. I don't have any need for ML, AI, or AR in my day to day so I don't make an effort to find time to study those topics. But it has been greatly beneficial to learn about build processes, CI/CD, and other tools and tech that can help with what I'm actually working on.
Additionally, @aspittel made another post that touches on the general "shiny object" issues discussed in some of these comments:
Navigating the Spooky World of JavaScript
Ali Spittel
This also reminds me of a post I made a couple years ago:
The Zen of Missing Out on The Next Great Programming Tool
Ben Halpern
@ben can you remove line from css
container .body {
font-family: Palatino, 'Palatino Linotype', 'Palatino LT STD', 'Book Antiqua', Georgia, serif;
}
Very hard to read single post on desktop.
Is easy to identify what is not needed only when there's a clear focus on what is that one wants to accomplish first.