Throughout my career, a multitude of people have asked me what does it take to become a successful developer?
It’s a common question newbies and those looking to switch careers often ask — mostly because they see the potential paycheck. There is also a Hollywood level of coolness attached to working with computers nowadays. Being a programmer or developer is akin to being a doctor or lawyer. There is job security.
The best part about being a developer is that you can go anywhere and your skills are still mostly relevant. You don’t have to start again from scratch. You’re always in demand and wherever you go, the pay is at minimum very decent in proportion to the country’s cost of living.
But a lot of people who try to enter the profession don’t make it. Around 10.7% of students enrolled in computer science courses drop out within their first year. Only 2 out of the countless people that’s asked me this question actually made it. One is now working as a junior and the other an intermediate developer. Everyone else is still dreaming the dream, fizzled out or moved on.
So what is it that separates those who make it and those who don’t? The answer: the ability to sit at a computer for a long extended time.
The culture of dev work
I can usually tell if a newbie is going to make it past the dreaming stage or not. It’s to do with their ability to sit at a computer for a long extended time and what they chose to do with that time.
There is a misconception that knowledge will magically appear in your head if you wish for it hard enough. But unfortunately we are not plants and we do not absorb wisdom and experience via osmosis. Learning to code is an active process often spent behind a computer screen.
Some prefer it in the form of YouTube videos. Some like the interactivity of code-alongs. Some just like to dive right in and get their fingers dirty with code. But all of them have a common trait — they all can sit in front of the computer and remain entertained by the process of learning, of making, of solving and fixing. They are not Facebooking or scrolling aimlessly through Reddit and YouTube, or looking at cat pics and memes. Rather, they are creating worlds in their heads and figuring out where all the joints and hinges are. They enjoy playing architects and gods behind the soft glowing glare of their multiple screens.
Successful developers and programmers have a distinct personality and affinity for learning. They are self-sufficient and driven by the internal need to solve and create things. And it is this drive that enables them to sit behind a computer for hours on end. They can be social creatures but prefer the solitude of silence inside their minds.
A shift in personality and mindset
Being a developer requires a shift in the way you choose to interact with yourself and the world. The thing with learning anything is that you have to give it time. In an age where we’re always starving for time, something has to go. When it comes to becoming a developer, it’s usually whatever social life you used to have or Netflix series.
Not having a social life is often regarded as a negative thing. However, it’s not always the case. Some people just don’t prefer to go out every single night or every weekend. I’m one of those people. It’s part of my personality and mindset towards learning. I can’t code if I’m not at the computer. I can’t learn new things if I’m not at the computer. I can’t look up frameworks and check out what other developers are saying about them if I’m not at the computer. It’s just the way things are and I accept this reality.
People who make it as developers are the types that actively chooses to sit behind the computer and learn rather than have constant outings with their friends. They don’t mind going out every now and then but to them, it’s not a necessity of life. Not interacting for another human for leisure and recreational purposes for more than a few days is not going to drive them crazy or make them feel lonely. Developers that thrive are often at peace with being alone. They understand that it’s a necessary part of their job if they want to be productive.
Know and understand your learning style
Everyone has their personal learning styles. Some people like things structured. Others tend to prefer a hands-on approach. I tried a computer science class once in University and almost didn’t make it out alive. It turns out that sitting and listening to someone talk about arrays and map reduce without context isn’t really my thing. I couldn’t understand it — not until I started to code things myself.
Learning to code through a traditional college course requires a different skill than learning to code in a work environment. A lot of developers nowadays are self-taught, self-directed and self-driven — the key word in this entire sentence is self. While having a computer science degree can help you get your first foot into the door, especially in major companies like Google, Facebook and Amazon, you still need to do the learning yourself nevertheless. If you’re looking for shortcuts or ways to bypass the learning part of coding, there’s a very high chance that being a developer won’t make you rich or happy in the long run.
What many people don’t realize is that learning to code can be a lonely road. You’re on your own most of the time. Google becomes your best friend. You might get the voices of other developers come through in articles and YouTube videos but if you try and talk to them, it’s like sending a postcard off to someone on the other side of the continent. There is no one to tell you exactly what to do or what path to take — that is something you just have to figure out and adapt to your current needs and situation.
Final words — will you make it?
The answer depends on who you are as a person. Like anything that requires a bit of learning, it will always be hard in the beginning. But learning to code is cumulative. What you figure out now will eventually surface again in the form of another language. Technology moves fast. What was popular last year may not be the next year. But what you must understand is that at the end of the day, all code is the same — just written differently but the fundamentals are mostly the same.
Learning to code is like learning any foreign language for actual use. You can’t route learn it and hope to speak like a fluent native. You have to use it. You have to understand it. You have to practice it — and that requires the one fundamental skill of being able to sit in front of a computer.
When you become a developer, you enter a culture where the most successful developers are self-directed, take interest in understanding and solving problems. This requires a self-taught skill of getting into what is commonly known as ‘the zone’. No one can achieve this for you. Only you can figure this one out. Sometimes playing music helps. Sometimes total silence works better.
This seemingly quiet space is where all the thinking, planning, scoping, bug tracing, learning, adapting and creative solutions exist. Once you are able to learn and master this deep state of enchantment, mostly achieved through sitting for long extended periods of time at a computer, then you’re on the road to becoming a successful developer.