Becoming a successful software developer goes beyond having technical skills. Here are 21 things that make great software developers and tips that will help you be one.
1) Be results-oriented:
What I’ve found to be effective is aiming for results. Over
time, results are better than perfection because you’ll have more experience.
You can work on one application for two years trying to make it perfect, but
you’ll grow a lot more if you work on a couple of different applications in
that same two year period.
2) Read:
I read a lot. I read people’s code, articles, and what other
developers are saying online. Reading can broaden your horizons. Maybe you have
one particular way of solving a problem, but if you see how Person X solves or
approaches that same problem, you’ll become aware of other approaches.
3) Join a local community:
In Kenya, we call developers who don’t interact with other
developers or join communities, bedroom devs. With time you find what you know
is limited and biased. And it’s easy as a human being, I guess because of our
psychology, to think you’re the best and that you know it all, and not receive
feedback. But the more you interact with other developers, the more you gain
knowledge to solve problems differently.
4) Avoid shortcuts:
A client might come with a low budget, but that doesn’t mean
you build a substandard product. To me, that is not ethical. This is a
profession and although your client can’t read your code, be ethical. Build in
a way that when you see it next year, you will be proud reading your code.
5) Be consistent:
If you decide that this is a path that you want to take, you
have to be consistent. A bunch of people run into tech because they “think”
that software developers make a lot of money, and I don’t know about that. All
I know is that your income as a software developer, like any other profession,
is based on market demand.
If you’re somebody that adds a lot of value, a company will
pay you a huge sum of money because they understand what value you bring to the
team. However, if you are a mediocre developer that doesn’t add value and you
come into tech expecting to make a lot of money and get the best jobs, no. The
best developers will take those jobs.
Being consistent in your learning is very important. You
can’t say that you want to be a good developer and not write code consistently.
There’s no magic. I believe in the saying; practice makes perfect. So my first
key is that if you write code over time, you’ll become a good developer.
6) Read Code:
Go to an open source project or one at your company and look
at their pull request. Read code from developers that you think are good
developers. It will help you write better code because you’ll learn new ways of
doing things. You might read someone’s code and see something you’ve never
encountered before.
That’s an opportunity to ask, “Hey, what were you trying to
achieve here?” Then you can be educated on another way of doing something, so
the next time when you’re writing your own code, you can apply what you
learned. You shouldn’t just copy code and not try to understand what they’re
doing. Instead, read, understand, and ask questions when necessary.
7) Teach:
When you learn something new, try sharing it because you
can’t teach what you don’t know. Attempting to share what you know will push
you to get a deep understanding of the topic because you wouldn’t want to
disgrace yourself by writing something inaccurate. The Internet will roast you.
I’m not saying you have to be an expert because sometimes, even when you share,
you’ll make mistakes. However, you’ll grow from the process of creating the
content to share and from people giving you constructive feedback.
8) Share your work:
In Kenya, we have this thing where people get good jobs and
never tell anyone about their process or success. I guess it is common in a lot
of places too. We don’t share our stories enough. This is another thing I
learned from my East and West African friends. Those guys share their stories,
inspire each other, and help each other grow.
So that’s one of the things that we’re trying to do with our
communities. We want people to be proud of their work and inspire each other.
9) Collaboration:
I’m a big fan of teamwork. You can’t solve most of these
tech problems on your own, especially in Africa. You need people from different
backgrounds to collaborate to make things happen.
10) Consistency:
Always be learning. When it comes to software development or
tech in general, don’t stop learning. Also, always stick to whatever skill you
are learning, master it, so you have a base, and then you’ll be good to learn
anything else.
11) Technical skills:
You have to learn the skills of the trade. Practice solving
problems and thinking on your feet. Also, try to understand the “why” behind
decisions. This will allow you to build stable products with maintainable and
scalable codebases. The technical side is easier because there are a thousand
and one tutorials online you can learn from if you’re really interested.
12) Communication:
During the pandemic, I worked remotely, which meant I woke
up, sat at home, and worked with a team on the other side of the continent. The
only time I saw my team was when we jumped on a video call, and that didn’t happen
too often in a day. So how do you keep your team members informed on what is
happening with you? You have to communicate! Communicate early and communicate
frequently.
13) Professionalism:
The little acts of professionalism, like showing up on time,
being online, always responding when someone pings you with a message, goes a
long way.
Regardless of how great of a developer you are, if your
communication and professional skills are not good enough. You’ll always fall
short because the technical skills are the easiest to learn.
14) Support of Peers:
My first real paying job was a client in the UK.
After months of being overworked, one day I was pushing my
code, and the database server crashed. Panicking because the application was
live, I contacted the other developer in India, “do you have an idea of what
happened?” He said, no.
Feeling really stressed out and pissed, I called a friend of
mine. He told me to take a breath and that these things happen. And that stress
will only make me feel like there’s no solution when there is.
He was right; I brought back the platform in a few
days.
Honestly, I think without my friend’s encouragement, I
wouldn’t have pushed through and finished. Since he didn’t see it as the end of
the world, I stopped thinking it was.
15) Mentor:
Having a mentor had the most significant impact on my
development. At the first company I worked at post-graduation, I always went to
my mentor whenever I had a question or problem. He’d tell me about new
technologies and the current trends in software development. My advice to
younger developers is to find someone who has the experience that you can learn
from. Learn how they got there and maybe follow in their footsteps.
I see a lot of developers are lost, wondering, “Should I do
backend, front-end, or mobile?” Some even attempt to learn all three at the
same time. But if you have a mentor, they’ll guide you in the process and help
speed up your development.
16) Have humility:
Also, you can learn from anyone. Some people think, “I’m
older than this person, I should know more than you.” So they’re too proud to
ask. No, learn from each other. If you don’t know something, ask, and learn.
When I got to Hubtel, my old job, I didn’t know React. There was a young guy
who just finished his national service that did. I got assigned a React
project, and he was there to help and answer my questions. It’s all about
teamwork.
17) Be language agnostic:
Even though you’ll probably start with Python or JavaScript.
It’s imperative that when you’re learning that you don’t focus on languages,
but on the mindset in the framework that each language teaches you to work
within. You want to be that person who can adapt and develop a skill set in any
language on mobile or web development. So be ready to pivot.
18) Develop emotional intelligence:
Engineers are known for usually lacking E.Q. so it’s a way
to make yourself stand out. You want to be phenomenal in your skillset and the
work you produce, but you also need to be a rock star in building your brand
and working with people. Those intangible skills are critical to your success
in the workplace.
19) Have an entrepreneurial spirit:
People think you need to be an entrepreneur, and that’s not
what I mean. I actually think too many people want to start their own business
and sometimes they probably shouldn’t. What I mean is wherever you are, you
should have ideas. Create projects and launch initiatives when you see gaps. If
you do that, there’s no place you won’t be successful because you’ll be
challenging the status quo. A lot of people only want to do what they’re given
well, but the extraordinary people find ways to change or enhance what they
were not even supposed to do in the first place.
20) Patience:
If you want to start writing code or get into the tech
field, I'd advise you to take it slow. In tech, people try to be experienced or
super devs in two weeks or a month. But being a good dev takes time; it could
take you years. So you have to take it slow and try to understand the fundamentals
of what you're trying to learn.
Also, be specific, don't try to learn about machine
learning, networking, cybersecurity, mobile development, and web development
all at once. Choose one path, master it, then move on. It's not bad having a
lot of skills, but mastering a technology step by step is the best thing.
Developing your skills is a process; it's like swimming. If
you read a book about swimming and then get into the swimming pool, you're not
going to be the best swimmer in the world. You need consistent practice before
you can perfect something.
21) Project-based learning:
For people that are starting up, there's this tendency to
dive into tutorials. We call it tutorial purgatory. They'll watch tutorials on
tutorials and never go and build. Project-based learning is the best way to
sharpen your skills, not watching tutorials. Learn a topic then put it into
practice. Building is where learning comes from.