I recently finished reading Outliers, a book about successful people and the characteristics that let them achieve the best of their performance.
This powerful knowledge can be applied to any field in life. This entry will explore the key points I consider essential to becoming an outlier developer, especially when all seem easy to achieve and become.
1. Love what you do
This is the first thing every successful people have in common. They started with a dream, and they were devoted to their objective to discover more about what they were doing. Many of them didn't start thinking about money or fame. They were curious about one topic and dedicated all their time and available resources to discover more of what they were doing. Here I have to add that many of them were in an advantageous position. Bill Gates, for example, gained access to a computer much before many college students. By the time we entered the College, he had a strong background in programming and had access to a computer, while their partners needed to wait in labs to use one computer.
Yes, the world is unfair, some people have an advantage over us, but still, there are things you could do if you really want to advance in your career because when you want something, you'll find a way to practice. It will be harder for you than the others, maybe you'll need to work extra, save every penny to buy a computer, or pay for a trainer or a book, but when you achieve that, you will be unstoppable. And here comes the next topic.
2. Practice 10,000 hours
Ten thousand hours seems to be the mean hours a person needs to embrace an activity to be considered a professional. It's the magical number when you can say that you dominate a task.
I knew a developer who was "committed" to his career, only from 9 to 6. After that, he never attended a meetup, rinsed a book, or joined a community of developers. So is he really committed to his career? In my opinion, no. I can say he was committed to his job as a developer. Still, since he was only attending events during their office hours, sincerely, I think he is far from becoming an excellent developer.
Successful people are committed to themselves, put their objectives before anything, and do things to achieve them. Not only during labor hours. The more you practice, the more you gain experience in different areas. This growth can't occur if you are only exposed to the same projects.
Practice isn't the thing you do once you're good. It's the thing you do that makes you good.
3. Practical intelligence
Also known as street smarts, this is the ability to survive in a world where the theory fails. I'm sure you have met people who can solve problems with practical hacks. This guy who solves problems in seconds, even when they were not technically prepared for it.
This kind of intelligence (cunning) can also be applied to your work, not just in code but in life.
How to develop it? Besides the technical reading you are doing and your courses, you continually build your side thinking with puzzles, brainteasers, and that kind of intelligence kids use to play. Sometimes the answer to your code is beyond logical and mathematical thinking.
Think beyond the visible, and the solution becomes more evident.
4. IQ doesn't guarantee success
To become an outlier developer, you will need more than a high IQ, technical skills, and practical intelligence. Which ability I'm talking about? Social skills!
In our industry, the cliche exists that the developers are solitary people who prefer to interact through a computer than attend parties and chat with real people. However, you'll find that the successful developers (and people) grant a level of communication.
Nobody likes to ask a grumpy guy a question, and nobody wants to share a pull request with a conceited developer who will always find a way to diminish my work.
These social skills go beyond small talk and good manners. This ability will help you from the negotiation of a rise to the next opportunity in your career and project. You don't know when you will meet the editorial agent who can publish your book or the lady/boy you want to spend the rest of your life with, so don't trust only your IQ. If you want some recommendations on improving this topic, let me know in the comments, and I'll resume all the books I've read on the subject.
5. Survive the errors
The book exposes the following "The typical accident involves seven consecutive human errors. One of the pilots does something wrong that by itself is not a problem. Then one of them makes another error on top of that, which still does not amount to catastrophe combined with the first error. But then they make a third error on top of that, and then another and another and another and another, and it is the combination of all those errors that lead to disaster."
If you can admit your errors, learn from them, and advance your career, you'll become an achiever.
Last year I received a call from a company I was looking for. I prepared myself and studied algorithms and data structures. Still, after all my efforts, I lost the opportunity because I misunderstood the position, they were looking for a manager, and I was focused on my developer skills.
That hurt me a lot, but it was the price I had to pay to rethink what I was doing and the path I wanted to follow.
In conclusion, to become an Outlier developer, you must be an advocate for your passion and follow it. If you really desire something, you'll find a way to learn more and achieve the things you need to advance in your career. Because everyone wants to become a successful one, but just a few really do the required items.