4 min. read

June 30, 2020

learn how to learn

How to Keep Up to Date with Technologies as a Software Developer

From dealing with touchy manager relationships to needing advice on what to do when you hate writing tests - you asked your questions and Neil from neilonsoftware.com has some answers.

neil_green_profile

Neil Green, Author of neilonsoftware.com

How do you keep up with the infinite (and overwhelming) amount of information available about the technologies you have learned / are learning?

...

It is a waste of time to try to learn every new technology. Instead, focus on learning how to learn.

The tech industry thrives on the insecurity of software developers. The less a software developer thinks they know, the easier it is to sell them new tech. Top companies like Facebook and Google thrive on this insecurity economy, as it maintains their status as being at the top of the software development hierarchy. These companies present their open source projects as being generous and charitable, but the cold reality is they are self-serving. They want you to be using their frameworks and libraries, not their competitors'. The more developers they lock into their ecosystem, the more of the global software development mind-share they own. Their objective is technical dominance, not to make developers more productive.

The fact that top tech companies do not care about software developer productivity should be self-evident. Do you feel productive when you have to switch technologies every two years? Is it in the best interest of your career or company to drop your output to zero every time a new technology trends on HackerNews and Twitter? Software development is a game of productivity: the more product you can ship to production, the better. Everything that drives the tech economy is reliant on releasing high-quality software that satisfies user needs as quickly as possible. If you are not good at playing this game, your project or startup will fail. A software developer is a factory unto themselves and stopping to learn every new technology halts the factory's production. 

When I talk to software developers today, the situation is always the same: high anxiety and imposter syndrome with a touch of depression. They feel lost and confused about what to learn and to what degree to learn it. The overt bombardment of "You are not good enough to be a real software developer" comes at them from every angle. Training courses, conferences, articles, tweets, and peer pressure reinforces their fear that what they know is not good enough. The fear of missing out hits our colleagues who are self-taught or fresh out of code school the hardest. The industry makes them feel inadequate and worthless, all for the sake of pushing the thinly veiled agenda of "Learn our technologies so that people know we're the best tech company."

The industry makes them feel inadequate and worthless, all for the sake of pushing the thinly veiled agenda of "Learn our technologies so that people know we're the best tech company."

The battlefront of web technologies is where we have the largest body count of software developers with impostor syndrome. The irony is that the latest technologies are mainly niche solutions that are not generally applicable. Many companies need traditional websites and nothing more. There are many high-paying jobs where a master of PHP and jQuery would be orders of magnitude more effective than a novice in React or Angular. However, PHP and jQuery are "old" and "dead," according to top tech companies. If you do not stop what you are doing right now and learn the latest frontend frameworks, you will not be able to get a job and will end up homeless on the street, so the narrative goes. 

Sadly, the message of "learn the latest technologies, or you won't be able to get a job" is not entirely untrue. Technical hiring managers are just as insecure as the software developers they are trying to hire. They don't want to have their competency questioned for posting a job that requires PHP and jQuery, even if those are the best technologies for their project. They want to virtue signal to their management that they are hip to the latest trends, and want to drive innovation at the company. After all, isn't adopting new technologies innovation? Of course it isn't. Innovation doesn't come from the tool you are using; it's a measure of the value of what you produce. When you chase new technologies, you necessarily reduce the rate at which you can build new things, drastically reducing the chances you will create anything novel or exciting. 

Instead of buying into the self-serving corporate hype train of "To be cool, you have to learn our latest technologies," become an expert at learning new things quickly. Learning how to learn is the only critical skill a software developer needs. Would you rather be the software developer who knows a little bit about every new technology or the person who is ready to learn the best tool for what the need right now? The best software developer has no favorite technology and does not follow trends. Their high effectiveness comes from thoroughly understanding the problem before them, and picking the best tool for the job. Is the best tool React? Then learn React. Is the best tool PHP? Then learn PHP. A software developer must be open to everything, but must only learn what they need when they need it based on the context of their current problem. The alternative is endlessly chasing their tail and ending up a frantic, anxious, unproductive, and ineffective version of themselves that is no good to anyone. 

...

Neil writes a lot more about the softer side of software development over at neilonsoftware.com. Check it out!