This is an article that takes other articles to task.
I’ve become increasingly fed up with a certain kind of programming “article”, the ones with titles like “5 Hottest Frameworks in 2020” and “Why Everything You Know about the Command Line is Wrong!”
My problem with them is twofold: first, they’re clickbait. Second, beginning programmers may not realize these articles are clickbait. They run the risk of taking these articles at face value and trying to follow incredibly misguided “advice”. This can lead to a fear of missing out and a lack of direction that eventually devolves into confusion.
So let’s sort this out. Here I’m going to break down why these sorts of articles exist in the first place. If we can understand what’s actually motivating authors to sit down and write this stuff, we can have a lot better idea about the quality of the article’s content.
Basically, if we can reframe these programming clickbait articles as lead-generation tools, everything else falls into place.
Here I want to help beginning programmers identify these articles and understand why they’re so harmful. These are articles that pull you in the opposite direction of fundamentals. And if your goal is to master fundamentals to launch a software engineering career, these articles will absolutely lead you astray.
The programming clickbait articles I’m talking about look an awful lot like “regular” clickbait. They have the same provocative, manipulative titles. Maybe it’s the shiny new thing: “5 Machine Learning Frameworks to Learn in May 2020”. Maybe it’s an unreasonably oversimplified premise: “This One Thing Landed Me My Dream Job at YouTube”. Or maybe it’s a title that’s meant to play on deep-seated fears of not being good enough: “Why You’ll Never Get Hired at Google.”
Maybe you’re sucked in and you click.
Once you do, you’ll often be barraged with strong, opinionated statements. But there’s no compelling evidence to back anything up. So what you’re really looking at is just strongly worded….filler.
So why go to the trouble of pulling together an article that’s so light on content? What’s the actual motivation?
Don’t get me wrong — there’s nothing wrong with marketing. It’s an essential part of every business in some form or another. (Here at Launch School for example, we provide all of our prep material to students free of charge.)
But what’s really confusing for those new to software is the large number of these vapid articles whose only purpose is to feed the lead-generation machine. And this is the core purpose of this programming clickbait.
I got a glimpse of how bad the situation really is while talking recently to someone working in the SEO business. They summarized the article-writing process for me: you literally come up with a title before you have any idea what you’ll say. Then just back-pedal and put something in the article — string a few sentences together and be sure to include lots of links to whatever it is you’re actually promoting.
I think many people expect these sorts of programming clickbait articles to have a promotional tone to them, but “promotional tone” underestimates the problem by an order of magnitude.
From Annoying to Downright Harmful
The actual effects of these articles vary significantly based on your level of programming experience. An experienced engineer would most likely see this type of article as annoying and skip right over it. She’d know better than to fall for the buzzword overload and overly simplistic “advice”.
But a beginning programmer might not. Early on, you may not fully grasp how important it is to study topics carefully and in the right order. And you can’t yet distinguish topics that are on the “critical path” (meaning they are essential knowledge for any software engineer) versus those topics that are just nice to read up on if you have time.
These programming clickbait articles encourage beginners to jump from topic to topic, collecting tidbits of information about this or that new technology. But this is a terrible approach to learning programming for a few reasons.
First, the only reason an author chooses to write one of these articles about a particular topic is because she hopes that topic will garner lots of clicks. That’s it — it’s a marketing decision. It has absolutely nothing to do with whether this is something that’s actually an appropriate topic for a beginning programmer to study.
Second, reading a series of these articles induces FOMO, fear of missing out. Beginners don’t have enough experience to rank topics relative to importance, so they run the risk of thinking every topic is important. “This article says I should learn Git version control internals.” (No, not something on the critical path.) “That article wants me to learn Redux.” (Don’t. It’s a specialized topic you probably don’t need right now.) Being pulled in so many different directions is confusing and ultimately discouraging.
Last, by definition, beginners haven’t yet built a set of strong mental models about fundamental programming topics. So even if you’re able to remember some random facts from a programming clickbait article, you have no place to “hang” that information. You don’t have the larger-scale understanding of programming at this point. You’re like an actor memorizing lines in a foreign language, having no idea what they mean.
A Better Path
It’s a terrible shame to see a beginner turn himself in circles trying to follow “advice” that’s nothing more than thoughtless marketing copy.
So what should beginners do instead?
The answer is simple and doable, but takes some work to implement: master the fundamentals of programming.
To do this, you need to:
- Do away with the distractions, including most tech news
- Be sure your study skills are in top form, and
- Follow a carefully structured curriculum
A curriculum that’s appropriate for a beginner starts off by learning one programming language really well — well enough to allow you to start solving more and more difficult problems. Another goal for one’s first programming language is to help establish sound mental models for programming concepts, which will unlock the ability to learn more languages in the future. This is how you start to build your set of strong mental models that help you navigate the world of programming.
This advice runs counter to the dabbling that programming clickbait articles advocate. Once you’ve done enough experimenting to know that programming is a good fit for you, you stop hopping from one language to another, trying a framework here, playing with this topic there. It’s time for intense focus. Beginners should be slowly mastering fundamental skills at this stage, blissfully unaware of frameworks and whatever it is the cool kids are doing.
After you’ve built a solid foundation in your first programming language, you slowly expand your circle of competency to include foundational topics like networking, databases, then a second programming language. If you stick to this process of thoroughly learning important topics in a logical order, you’re laying the foundation for a rewarding career as a software engineer.
Slow mastery of fundamentals doesn’t always make for catchy article titles, but it does make for solid careers.