Moving the Goalposts
…to make sure you’ll never become an expert!
If the goalposts are moving constantly, one can score only accidentally.
As if it’s not bad enough that business requirements are generally kludgy, software developers have a tendency to make life as difficult as possible for themselves. Yes, I’m talking about the ever-changing landscape of software development, with a plethora of new programming languages, frameworks, libraries, and what have you. How many ways are there to skin proverbial cat? Let’s find out.
Ooh, you don’t know SvelteJS? Sorry, we’re using it. Never mind that you have knowledge in other stacks and that it is easily transferable!
If you spent any time at all searching for a developer job, you’ve seen an example of an all-encompassing job description. All the buzzwords are there: They want a front-end developer, with experience with .NET, Java, Python, Ruby on Rails, all of the front-end frameworks, including jQuery.
That’s the real problem: by reading a JD, one should have a clear idea of what the position is all about. After reading these “catch-all” JDs, one can’t help by wonder what are they building over there?!
It seems that every developer and their grandma out there is releasing a framework/library these days. That’s especially true in Frond End development, where I — unfortunately — live. What’s all this noise about? Why don’t we — developers — concentrate our efforts on creating a stable platform that everybody’s going to use? It seems that instead of going deep (into a field), we are going ever wide, with no end in sight.
There’s a term for that, and it’s called “Digital Prospecting”.
Need for Stability
When stability becomes a habit, maturity and clarity follow.- B.K.S. Iyengar
In order to become an expert in any given field, the field needs to remain stable long enough so one can conquer it. If the goalposts are moving too often, one’s chance of becoming an expert is diminishing with every move. As soon as you gain some knowledge and expertise in any given domain, well — things change, often dramatically.
We, as developers, praise ourselves to be fairly intelligent. That may be true on an individual level, but as a group, we behave as any other herd.
Look, there’s a new shiny object over there! Let’s try it!
By doing so, we only shoot ourselves in the proverbial foot.
The Elusive Expertise
An expert is a man who has made all the mistakes which can be made, in a narrow field. — Niels Bohr
So, how can you possibly become an expert in a given field, when all of the above is conspiring against it? One for sure can’t follow all of that.
- Learn about core programming principles, don’t worry too much about the newest hype/fads. If they’re worth it, they’ll become mainstream.
- Focus on algorithms and data structures. Everything else is just noise.
- Understand that as a developer, you’re just labor for hire. You have no say in the project, you’re not a stakeholder.
- Businesses by and large don’t care what stacks we use. For them, it’s all about deadlines and finished projects. Why don’t we, as devs, make our lives easier and be a bit more focused?
- Sofware development is a great field, but the way it’s implemented is just chaotic. Find your niche, don’t try to conquer everything.