You are sitting in a conference or meetup presentation about that hot new technology. Everybody around you seems so excited and engaged, but it's twenty minutes into the talk and you can barely keep your eyes open. This stuff is either way over your head or just plain boring. That wouldn't be such a problem except that your mind starts racing.
"Why is this stuff so easy for everyone else, but I'm having so much trouble?"
45 minutes in and the material still seems like its being spoken in a different language. Come time for the Q&A and other attendees are talking about this stuff like it's an established part of best practices.
You go home and try to find some blog posts or YouTube videos and it still seems weird and impossible. You feel some nervous shame and a lot imposter syndrome. Eventually you kind of move on from this topic and life goes on. You still know how to code. You know how to code pretty well.
Let's rewind.
Back to the original scenario. Maybe you're sitting in that conference talk and you do understand what's being discussed on stage, but you're at a loss as to why anyone would want to take that approach. Couldn't they just do this a whole different way?
Four Months later
But then you face a challenge at work. You investigate your options and this idea keeps coming up. It's the same idea people were talking about back in the spring. But this time it makes sense. Somehow. The words in the graphs are now familiar and clear.
The rhetoric is finally starting to make sense because now you understand the context. You have a problem to solve and the insight to take the next step with this hot new technology everyone is talking about.
It's amazing how a bit of insight into the problem is just what you need to understand the solution. It is really hard to go from step zero to step five in technology adoption. The people closest to the pain are the ones at the edge of their seats in the conference talk.
When you need the solution, you'll understand this stuff way better. When you're just trying to keep up, you might get it, but you might also struggle. You might also sit back and think "why would anyone need this" until you really need it.
Necessity is the mother of adoption. If you don't have a burning need to adopt a new practice or technology, it probably is not going to happen. React did not take off because of buzz. It took off because people were extremely frustrated by state management on the client, whether they really knew it or not. Serverless, NoSQL, and lots of other technologies seem silly on some level to many, but they came around because of real need. Some developments were misguided, but if you're sitting back clueless to the problem, the solution is not going to make much sense either.
P.S.
Some people went along with that conference talk just to fit in. It's unclear whether they ever understood the problem. They probably bought into the buzzwords. Now that you're a convert, you're just as skeptical ever about this segment of adopters. That's pretty understandable.
Top comments (5)
Interesting thoughts. This resonates a lot with the self-taught developer that I am.
Creating a sense of urgency seems to have a lot of effects ( positive and negative? ) on people's actions and performances. Again, this is a blog post that could expand on so many other areas of life. I wonder if one could deliberately create such an environment to improve one's performance.
Trying to stay in the development field, contributing to open source or even writing a blog post could probably fall into that category. Pushing your limits to create a proper pull request or a comprehensive blog post.
Assuming that creating this environment, for yourself and by yourself, could change in a good way something. I'd also assume this would require quite a lot of willpower, and therefore, energy.
I don't know, I don't want to do some low-level psychology. Good read!
I'm currently just starting to really understand a couple concepts I was introduced to at least a year ago because I finally have some tangible reasons to think about them. Some other things, like blockchain for example, I had a really hard time wrapping my head around even if I'd heard the concepts a million times because I just didn't have the need to understand the concept.
Yeah, it is a funny thing. We try to learn new things to expand our horizons and become better developers. But if we don't have this immediate need, it's complicated to become more proficient at the thing we are learning.
Personally, from now on, I only dive deep in a new technology if I am expecting to encounter it frequently ( either as a side-project or in my job ). But I find this situation to be a very difficult part of being a programmer.
Fully agree. Extremely interesting in this context too: changelog.com/podcast/260 .
That's why I am way more careful both talking about "hot new technologies" and similar conferences. In those cases, maybe not really understanding a solution due to lack of understanding for the problem is the "best" case. The worst case might be turning towards "hot" technologies just because they are available, spending loads of time and energy building on top of it to just, halfway through this, figure out they do solve a completely different problem and thus are anything but helpful for what you initially need to do. That's why these days, given a few years of right these experiences, I tend to be very cautious about pushing technological solutions and rather propose to start small, start productive and try to focus on just solving problems at hand to see what next step needs to be made. ;)
I used to hand-wave GraphQL as some Facebook nonsense. Now I want to rewrite an application's data layer with neo4j.