I want to get something off my chest. I’ve been spending today doing house chores while listening to technical videos and podcasts. After my Clubhouse experiment yesterday, I’m thinking critically about how we expect developers to learn and grow. And... it’s a mess y’all.
The quality of information out there is all over the place. The time commitment of doing all of this watching/listening is significant. There is so much content that is seeking people’s attention. And there’s no good way to know if what you’re gonna get is any good.
I’m not about to hop out here and put anybody on blast. People put a lot of effort into creating content. (I know because I started looking into doing it and I’m way too lazy for all that). The problem is there is no good way for people to navigate this marketplace.
I don’t have fully formed thoughts yet. But here are a few reactions.
1. Enough tutorials. Seriously. Enough. A few of them are useful. 1000 of them is not. The market for beginner content is not differentiated enough.
1. Enough tutorials. Seriously. Enough. A few of them are useful. 1000 of them is not. The market for beginner content is not differentiated enough.
I attribute a lot of this to a few confounding factors.
Having a YouTube channel or a podcast is a job now. People are trying to make real money or it’s part of how they differentiate themselves for job marketability. So everybody is doing this.
No shade, this is what it is.
Having a YouTube channel or a podcast is a job now. People are trying to make real money or it’s part of how they differentiate themselves for job marketability. So everybody is doing this.
No shade, this is what it is.
Combine that with the fact that creating beginner content is the most accessible. There are a lot of beginners. Tech is exploding right now. I get it. But just because there is high demand doesn’t meant it can sustain an infinite amount of new content that looks the same.
2. Everything is not beginner content. For some of the same reasons mentioned, there is strong incentive for everybody to say what they’re talking about “easy”, “simple”, “straightforward”, “basic”. Even when what they’re talking about is not all beginner level.
I think has a some pretty insidious side effects. People who are truly beginners are constantly made to feel like they’re not smart enough. Because things that are supposed to be “easy” don’t feel that way to them. I hear this frustration constantly from people.
At the same time, there is very little content that is appropriately labeled as intermediate to advanced. So working developers who still need to grow are made to feel like they should already know everything. They also feel like they’re failing. It’s not great.
What we need is a curriculum for tech topics that grows and goes into more depth over time. We need to help people understand where they are in that journey. As an engineering leader, it is very hard to get people to understand what level they are at. They don’t believe me.
It would be a great service to a working developer to hear something like this.
“That’s pretty advanced, so you may not understand the details for a bit. You’ll have to trust the magic until you can dig in and gain more experience”.
Today that conversation causes tension.
“That’s pretty advanced, so you may not understand the details for a bit. You’ll have to trust the magic until you can dig in and gain more experience”.
Today that conversation causes tension.
3. When we do get to intermediate and advanced topics, we often start to falter. We are not doing a good job helping people to engage with the real complexities they’re going to encounter at work. We start to hand wave and paper over things so we don’t lose people’s interest.
I think this happens for a number of reasons. As a direct result of expanding tech to a wider range of people, going deep on a topic has gone from being impressive to sometimes being obnoxious. Advanced topics don’t just intimidate people. It can actually cause them to disengage.
I think people who *want* to go deep feel that tension and have stopped doing it. With the exception of old heads (mostly where dudes) who were always pretty clueless about that sort of thing. But those people are not gaining a new audience from people coming into the industry.
The surface area of tech and tools has also exploded. You can’t just teach people frontend web dev anymore. You have to teach them how to do it in react or angular or svelt or whatever. All of these *feel* very different even if the underlying principles are the same.
In fact, I would go further and say that these frameworks have obscured the underlying principles so much that they don’t even feel useful to new developers. I’ve actually had people get mad at me about this. Like asking them to learn fundamentals is doing them a disservice.
The outcome of all this is that a lot of people are having a really hard time progressing past the beginner stage of building expertise. This has a bunch of knock on effects on other things like passing technical interviews and seeking promotions at your job. It’s not great.
That’s all for now. I don’t have the answer today. Only pieces of the puzzle. But I want to start sharing these observations in hopes of creating more discourse around it. It’s pretty frustrating for all involved as far as I can see. Students, devs, managers. Everybody.
I have a related but separate rant about this. A lot of content is pointed towards either newbies or people doing greenfield work. Contractors, freelancers, etc. So many videos start with “first run create-react-app”. I’m like bro, we have literally a 1.2 million lines of code. https://twitter.com/jonwinstanley/status/1351309765192912896