Good Advice for Junior Programers is Bad Advice for Seniors
I often see arguments about the validity of advice given on the internet. The vast majority of controversial advice is good advice; however, the nuance of why that advice is good gets lost when the author doesn’t spell out their intent. The intent of the target audience and the biases that make up that advice.
Evolution of Learning
As you learn, the way you learn changes. More importantly, what you need to learn changes. When you started programming, learning syntax of a language was the hardest thing. But as a developer learns more concepts and gains more experience, picking up a new language and its syntax is a weekend adventure. Maybe 2 weekends. Point being, the conversation of what is important to focus on changes.
When you first learn something, you often are taught the wrong thing, only for it to be corrected later on. For example, learning x/0
. A child learning division does not need to have a conversation about what infinity is and the concept of limits.
The same thing happens in the programming world. Or at least that is how it was supposed to happen.
Fuck it, we’ll fix it in post
The vast majority of people learn through various, sporadic sources. Popular YouTuber “Bob” might tell you fantastic beginner advice. But only ever makes beginner level content. More people are entering a field than are experts. That is what it means to be a growing industry. Bob is incentivize to give advice to 10,000 people as opposed to 10. And even if he doesn’t, there is no guarantee that the people who originally heard his antiquated words will followup on their knowledge. They don’t even know their mindset is incorrect.
We are taught simplified assumptions about the industry that help us get a footing. But once we have placed a foot down, we are blinded by the tips that got us here. The unknown unknowns are 1/0
.
No guidance explicitly tells you to fix your known knowns. Except me, right now. Do it. Genuinely have an introspective look on all of your guiding principles. Do they actually make sense? Or are you just doing what someone else told you? It worked for you before, but that doesn’t mean it needs to be a universal truth. Take every opportunity you have to challenge your assumptions, and take on those challenges earnestly. Have an open mind.
Grow. Continue to grow. Fix your flawed assumptions post acquisition.
Examples
Enough about a general idea that various stages of growth require different mindsets; what are some concrete examples?
Language doesn’t matter
This is commonly told to beginners struggling with choice paralysis. Pick a language and just get some experience. All languages are good. Except this advice only takes you so far. At a certain point, yea, the language does matter. And some are better than others at specific tasks.
Optimize code as you go
To an extent, this is always true. However, the advice doesn’t go into what premature optimization is and it doesn’t touch on why it is a bad thing.
Avoid Refactoring Legacy Code™️
Oh wait ,,, this is true. You should listen to this.
There are more examples, but they tend to be specific advice for a type of programmer.
Controversy sells
Sometimes we interpret advice as being bad. Not just bad for person A. But bad for all persons. Sometimes that is true. Other times, you only think it is bad.
One of the saddest realities is that making people argue, is a sure fire way to get more eyes on the content. Many creators purposely act in ways to draw attention to their works. A jarring title, a inflammatory statement, all followed by a very normal out of context piece of information.
If I was to tell you that
JavaScript is the worst language ever.
How would that make you feel? Mixed opinions are sure to flood that statement. How about if I changed the sentence to be:
JavaScript is the worst language for game development.
With added context, this statement now stirs up no emotion. The only people riled up by it, are the smart asses who feel the need to show me why I am “wrong.”
As a developer in __
my statements are correct for my given domain. That does not mean that your opinion about why I am wrong is invalid. There is no one size fits all when it comes to advice. You have 3 options when giving advice.
- Overgeneralize and avoid genuine insight
- Ignore context and potentially give harmful advice to the non-intended audience
- Specify the exact niche you are advising on and alienate anyone slightly outside of that niche
The best advice comes from people who pick option 3. Although they tend to not have as big of an audience, it is clear how you should interpret the given advice. That being said, as long as you know the type of advice being given, you can figure out how to digest it.
Digestion
It is up to the consumer to digest content. A diligent individual will not mindlessly digest information, but carefully interpret intent and apply it to their own biases. Take the time to consider what is being said and how that might apply to your life. There is a time and place for junk food. But be carful to distinguish when you are being mindful vs mindless.
And if you can, find a mentor. Someone who can guide you through the various stages of growth and update your assumptions as you gain experience. A consistent person is easier to learn their biases; rather than figure it out for every single author of a blog you read.