BECOME A BETTER PROGRAMMER
New technologies are emerging every year, what you learn now is old in a year or two. Without a passion for coding and for learning, you'll soon or later be stressed and unemployable.
As a freelance developer, I move around teams and projects and need to be up to date. I cannot sleep. Being a single parent and having the chronic autoimmune disease does not help.
In the last few years, I doubled my rate, I have (almost) passive income on the side, I can choose projects that interest me and teams I want to work with.
How was I able to do it? Well, I use a couple of strategies. I'll be sharing my tips in my articles.
What we'll talk about in this article:
- being a generalist vs being a specialist vs being a polymath
- from analysis to intuition
- tools & strategies I use to research technology
You can also watch a video version of this article:
Being a Generalist vs Being a Specialist vs Being a Polymath
Generalist is a jack of all trades. He/she is familiar with current technology trends. Generalists are rare…and, therefore, precious.
The specialist has a deep knowledge of a specific area. Too many believe that specializing in something simply means not knowing about other things. A specialist means you have expert knowledge of a specific subject. Chatbots are one of my specialties.
Polymath is someone who becomes competent in at least three diverse domains and integrates them into a top skillset. Meaning you can be a great developer, and also be great in biology, writing, dancing, art, whatever your heart desires. If you become an expert in two or three fields you are a polymath.
Many polymaths, including Charles Darwin, Leonardo da Vinci, Marie Curie, Richard Feynman claimed not to have exceptional natural intelligence.
What they have is endless hunger to improve their skills. Their brain is wired to always seek new things to learn. Polymaths either have long lists of books to read or are subscribed to different online articles or blogs.
MY OPINION and my experiences have been like this:
It's super hard to be a top 1% specialist in one single topic. It's way easier to be in the top 25% of two or three niches.
Find two or three areas in your life you are good at and work your way to become one of the experts. Then learn to combine these areas in all the projects you do. You'll be on your way to success.
How to research new technologies and stay up to date as a developer?
From Analysis to Intuition
The information you can read and consume every day can be overwhelming. You need to roll out new features, remove bugs, live. Sometimes a day would need to stretch to at least 72 hours to be able to do it all.
Since the day cannot stretch you must be careful not to feel overwhelmed, not to be a victim of stress.
With stress your ability to make rational decisions decline. For example in a high-stress environment, your ability to read other people's facial expressions rapidly declines. Stay away from stress!
Analyzing all the articles, all the frameworks, all the tools could cause a panic attack. But being behind in tech makes you obsolete in a few years too.
What do I propose?
I propose a 40–70 rule with a pinch of intuition.
What is a 40–70 rule?
Colin Powell, the former Secretary of State, is famous for his 40–70 rule. He said that a leader should make a decision when he has between 40% and 70% of the information available. If they make the decision with less than 40% of the information, they are shooting from the hip. But waiting for more than 70% of the information delays the decision unnecessarily.
In most situations, focusing on a few, but crucial facts, while blocking out all the rest, is enough to make a good enough decision.
Intuition is the best and fastest information filtering system you have. Using your gut feeling might be the best tool for choosing what technology to use and what technology to explore.
Before I go deeper into 40–70 rule and intuition let's dive deeper into three approaches for technology research I use.
Three Approaches for Research
3 approaches:
- talk to people you work with and exchange ideas
- research similar projects, alternatives, and trends
- do an overall analysis of technology trends
Talk to co-workers
The first one is simple. You need to talk to people you do projects with. Since they are in the same field they will bring you ideas. They will give you hands-on experience with any tool or framework they use.
But don't rely only on the people you work with.
Research similar projects
To research similar projects I use GitHub Explore. It will help you find repos that are close to your interests.
This one is a no-brainer: ask Google. If I'm looking for alternatives to a tool I use query <NameOfTheTool> vs
And Google suggests alternatives for me. For example, if I was looking for alternatives to my favorite NLP tool Dialogflow I would write "DialogFlow vs ". Google would suggest alternatives I can research.
To search trends I scan news sites like Hacker News, Slashdot, DZone, Diginomica, Reddit, Medium, Decipher Zone, VentureBeat. Not every day, and not all the time.
I'm also subscribed to newsletters and listen to podcasts. One of my favorites podcasts is Syntax from Wes Bos and Scott Tolinski.
The overall analysis of technology trends
I do an analysis of technology trends every few months. I use the following tools:
ThoughWorks Radar helps you track changes in techniques, tools platforms, languages, and frameworks.
By using the radar you can get an objective assessment across your entire technology portfolio. You can assess what is working well, and what is not working that well. Radar helps you with the standardization of assessing and innovating new technologies. It will help you analyze the maturity of technology you and your team are using.
They have 4 levels of maturity of a technology:
- hold — don't start with anything inside this level. It's the technology in the sunset.
- assess — promising new technologies that have an interesting story of they solve a certain problem in an interesting way.
- trial — technology is good, you might want to try it in some pilot project and you might consider putting it to more important projects
- adopt — technologies that have proven themselves in multiple contexts and can be adopted where applicable
StachShare is a community that helps developers and engineers discover and compare software tools. I find it interesting to browse the big guy/gal's stacks. You can see what companies like Pinterest, Uber, Airbnb, and other giants are using.
GitHub Trending will show you trending repos you can explore.
What I do is create a Tech radar of my own. In it, I add all the tools, frameworks I explore. When I have an overview I decide where I want to go deeper.
I use Google trends and Stackoverflow trends to determine the maturity of the technology.
You don't need to do this often. Twice a year can be enough.
But set time to research. You will create a list of all technology that is on the radar.
Research demand for technical skills on the market. Use job posting and career websites to find out which skills are in high demand and in low demand. Compare the skills available via these companies with the high-demand list you compiled.
You will check which technology is on the rise and what is in decline.
Both ends of the technology adoption curve might prove to be lucrative. Working on bleeding edge technology or helping companies to get up to date when they go into a rut, is the point of the most profit.
Make a list of early, middle, and late adoption technologies based on today's market. Push yourself to find as many technologies in each part of the spectrum as possible.
You can draw how these technologies relate to another. Use the tools I suggest above.
Exploit market imbalances — go where the other companies/developers won't go.
Many companies are doing solutions that are in high demand. Focusing on niche technologies is a strategy that (not necessarily) makes the competition less fierce.
When you have as many technologies mapped out as you can think of, mark the ones that you consider yourself strong in. And find the ones you want to explore.
One tip though: don't overdo research. Remember the 40–70 rule? Make a decision when he has between 40% and 70% of the information available. And use intuition.
Key Takeaways From the Article
- talk to people you work with, but don't rely only on the people around you
- explore similar projects so you can become a specialist in one field
- do an overall analysis every few months so you can stay up to date
- use the 40–70 rule and use your intuition
- think strategical
If you liked this article you might enjoy these ones too:
Have a great day :)