Are you curious to know what kind of skills are needed to be a good developer? Or if you personally are the “right fit” to be one?
Then you are in the right place!
I’ll probably somewhat shock you with my answers to the most useful skills to have as a developer. I believe that most people have the wrong idea of what is truly needed. And I bet that you think being good at math is on the list! Right?
Well… you will find out soon enough!
I also want to mention a couple of things before we start.
First, is that this is my personal opinion and is based upon my personal experiences working as a professional developer in a consultancy role for a large e-commerce company. If you are interested to know what that is like, I also wrote a post about my 1 year reflections working as a frontend developer. I’m sure that other working developers have had different experiences and would love to disagree with me on this list, or even have completely different views. But of course… I’m more right ;)
Second, is that this article is geared towards a normal web, front end, back end, full stack developer/engineering role. So not towards top tech companies or startups only looking for rockstar developers.
So in other words… for the average Joe or Jane.
1. Problem Solving
I think every developer would agree with me on this one!
You really need to be good at solving problems if you want to be a skilled developer.
It is one of the most fundamental things to programming (and also in life), which the better you are at it… makes your developer life easier.
Can it be learned?
It just takes lots of time, practice and experience to get good at how to best solve particular challenges, problems, tasks, or bugs.
This is something you can be guaranteed to be doing with every task that you work on.
However, the complexity and difficulty can vary significantly.
A problem can be simple in nature, such as how to make an HTML element only be centered on mobile devices.
Or something more complex such as figuring out the best way to implement some logic that determines the correct SEO meta tag information to apply for each page on a website. This is further complicated based upon user interaction, and a set criteria for what qualifies to be indexed on a large e-commerce website.
As you can see… problems are not equal, but both require problem solving skills.
As a junior, or beginner, you will be solving easier types of problems. As you progress with your skills and experience, you move on to other problems that give you grey hair!
And the best way to get good at problem solving is to solve problems. Lots of problems. Start with smaller, simpler ones and continually work your way up to more challenging and difficult problems.
This is the way that you learn and become good at both problem solving and being a developer.
2. Knowing how to be resourceful (AKA: searching on Google)
I don’t care what anyone else tells you, but all developers regularly search for solutions to their problems. Most developers probably start that search on Google.
This is just the developer way.
It is impossible to memorize every single method (or function) that you can use in your programming language, or how to best resolve typical problems on your own.
So this is another very important skill to have.
If you know how to define, or explain, your problem in words it is a massive help. And if you know what to write in a Google search, in order to find relevant information for your problem, it is the other half of the battle.
If you can do both successfully, you will go far.
Because you are using your problem solving skills to find someone else who has already had that same problem that you are facing. And then finding out that some other person has already found the ideal solution to that problem, so you just need to apply it to your own task.
Again… that’s the developer way!
In most cases, there is no need to re-invest the wheel. You just need to be able to find the problem and solution on the internet.
Of course this is geared towards a specific problem or error message, and not something vague or massive.
Are all problems found and resolved on the internet? Of course not! However, the majority (or the most common cases) are!
In other cases, it might be from blog articles or if you are part of any developer communities. These can also be quite helpful.
3. Knowing how to debug your own code
This is another important one and I think all developers would be in agreement with this.
Knowing how to solve bugs (whether they are your own, or created by someone else) is a SUPER useful skill to have.
Otherwise you will have a very hard time as a developer not knowing how to debug code!
This again, goes back to problem solving and being able to logically go through your code (sometimes step by step) to figure out where the issue lies.
Tools such as Chrome DevTools, combined with either setting breakpoints or adding
debugger; into your code will become your best friends.
And even good ole
console.log statements are very helpful in debugging as well.
Oftentimes, just seeing real values printed to the screen (or console), will greatly help assist you in realizing what you have done incorrectly. Or what you need to still do.
Even more experienced developers won’t see the issue all the time by just looking at the code in their IDE.
Learning this skill is pretty much a must as a developer.
4. Knowing when and who to ask for help
This one is a bit funny, because a good portion of programmers are the type who like to figure it out on their own.
However, while this is a really good trait to have in general, it can also lead to a lot of unneeded pain.
There are times when you get stuck and have no idea what to do, or try, next. Yet you keep going, or maybe you give up and in the end you just give yourself more pain and grief.
This is never fun and just leads to frustration and discouragement.
And it is exactly in these moments where you should have asked someone for help a long time ago. But you… instead wanted to figure it out on your own.
So your reward is suffering!
There is no rule to this, but oftentimes if you are stuck for more than half a day, or say a day, you need to accept that you cannot figure out the problem in a reasonable amount of time and need to find some external help.
If you are working in a professional setting, this is easy to do. You just ask your colleagues.
Of course if you are not working in a professional setting with senior developers around, it can be tough/challenging to find help.
Believe me… I was in those shoes many times before, while I was still learning how to program.
This is where being part of a developer community, or asking on StackOverflow, can be your lifesaver.
Often we may be scared (or too embarrassed) to ask for help, but usually there is some developer always willing to help you out.
This is what makes the community so great!
And the last thing I want to point out is, it is also very important knowing who to ask for help.
If you have to ask strangers online, you don’t really have a choice here and just have to try your luck with whoever responds to you.
However, when you are working at a company, this becomes much more important. Asking the wrong person for help can end up leading to a few hours or more being wasted. Mostly because the person didn’t want to say that they “don’t know”, and were just trying to help you.
This just leads to more frustration.
However, when you know who to ask for help, often they are able to resolve your problem within 15 minutes!
Yes… 15 minutes!!
Sometimes it can take much longer if the problem is very challenging, but I’ve found that this generally holds true.
So you may have struggled for a whole day on something and someone could have helped you save at least 7 hours of pain and frustration.
5. Love of Learning
Yuup… you got that right!
If you don’t like learning, then don’t go into programming.
There is no coasting. Things are always changing, improving, getting better in technology and there is always something to learn, or something new to learn.
Learn to live with that.
This is why it’s important to have a general positive attitude towards learning new features, concepts, or even technologies. And if you can also pick up these things relatively quickly, that is a big bonus. While both of these are important, the first one is much more so! It will be something that employers will generally look for in candidates.
A willingness to learn.
This is a skill that will help you to both get a job and when you are working at a job.
Those are what I would say are the 5 most useful skills to have as a developer. This does not cover all skills required to be a good developer, but it gives you an idea of what the important ones are.
Hopefully this made you a bit more motivated if you are considering becoming a developer, or are already on the journey.
I imagine you may want to learn something more (hopefully), so on the topic of learning I want to say one final thing.
If you are considering a career in programming and want to learn what the experience of getting that first developer job was like for me, then have a read of my how I got my first developer job. This is a very long and detailed story of what the journey was like.
And to leave you with some final words of wisdom…
Don’t… stop… learning!
Subscribe to David's Blog
Are you a developer interested in building your own SaaS business?
Get exclusive, behind-the-scenes insights (and first access priority) on my journey and process in building a SaaS business from scratch!
Not sure if this is for you? Then check out my Entrepreneurial Dreams: Build a SaaS Business in 12 Months Challenge.