DEV Community

loading...

How to become a Successful Developer

krowser profile image Krowser Web Services ・8 min read

For me, being a software developer is one of the best jobs in the world. I love to code and getting paid for it is just awesome. But the weather isn’t always bright, and I’ve struggled so many times in my career that I’m constantly reflecting on my situation and trying to remind myself what I’m capable of.

To support you and your careers, I’ve written down seven pieces of advice I found to be very important for my career. Spend time trying each of them and see if they help you in your current situation.

Don’t Sell Yourself Short
This is one of the most important lessons I had to learn, and it took me about 10 years to realize it. These days, if you work in tech, and specifically as a software engineer, you’re a scarce resource. Normally, I don’t like it when people see their staff as resources because they’re humans after all. But in this case, I used the term to underline the importance and to make this as clear as possible for you:

  • Companies need you, not the other way around. Let me elaborate on this some more. The U.S. market alone is currently facing a 500,000+ shortage in software developers. This gap will increase exponentially over the next five to 10 years due to increasing demand and demographic changes. The same applies to other countries and continents.

All the countless hours you put into learning new technologies, all the nights you spent working on your coding skills — it pays off.

  • Software engineer is probably the job with the highest demand. Being aware of this — and more importantly, being able to use this — will not only give you better career opportunities with higher salaries, but it will ultimately result in much higher self-confidence. And that will help you not only in business but also in life.

Invest in You and Your Career
The tech industry is one of the fastest-changing industries today — if not the fastest. Sometimes, it’s hard to keep track of the ever-evolving ecosystem of software development, especially when it comes to web development. But to stay relevant, every engineer must keep learning new technologies, programming languages, frameworks, techniques, best practices, skills, etc.

The good thing about being a software engineer is that learning can be done from home or the office most of the time, and you can choose from a variety of sources, such as books, eBooks, blog posts, online courses, trainings, podcasts, and more.

However, when learning something new, you need to invest both money and time. Prices vary heavily between formats and so does quality. But what matters most for the majority of us is time. Time is precious, and time is scarce. Many engineers have full-time jobs, and learning happens before or after work, or during the weekend and holidays. So it almost always becomes a trade-off between family, free time for yourself, and learning.

But it’s necessary to invest in your skills and career. So here’s what you really should do:

You need to invest smartly.
And when I say invest smartly, I mean that you shouldn’t follow every new framework or technology blindly.

  • Don’t practice React.js today, Vue.js tomorrow, and Angular next week.
  • Don’t learn advanced JavaScript concepts if you haven’t mastered the basics yet.
  • Don’t switch between courses, books, and trainings.

Rather, you should check in with yourself. See where you’re standing now.

  • Do you like working on the front end or back end?
  • Are you a visual type or do you love numbers?
  • What projects are you currently working on and what will help you with them?
  • What technologies, frameworks, and languages are in demand in your area?
  • Do you want to learn something new for a concrete reason (new job, higher salary, change of careers) or just for fun?
  • What technologies are already established but still hot topics?

Have a time budget and dedicate it to what’s important to you. Check courses and their quality before spending time on them. And if you choose to spend your precious time on something, be committed and stick to it. We tend to lose interest after some time and chase the next cool thing.

Don’t do that — be smart!

Leave Toxic Bosses and Workplaces

“When you are 20 to 30 years old, you should follow a good boss and join a good company to learn how to do things properly.” — Jack Ma (Alibaba)

That’s a good point from Jack Ma. But what it doesn’t say is what you should do when you realize that your boss or your current job isn’t what you expected when you began working for the company.

Having a boss who doesn’t support you isn’t good for you, your self-confidence, and your career. Having a boss that actively (maybe even intentionally) hurts your career is even worse. Some bosses are sociopaths, or they’re just very difficult to deal with. Some are just not good leaders.

In the end, if you come to the conclusion that for one or another reason you can’t bring your A-Game because of your boss, I would advise changing your job more often than not. I know from my own experience and from many others:

  • Bosses don’t change. Many of us are a bit lazy when it comes to changing jobs, and some are afraid. And then we tend to think that it’s not so bad after all — only to realize a few weeks later that nothing changed and it’s still bad. You’re a software engineer in high demand. Don’t let some incapable person or a toxic workplace drag you down.

There are others out there that deserve you more.

Consider Doing a Side Hustle
I love doing side projects even if I’m in a permanent role. It’s not the money that keeps me motivated to do so, even though money is a valid reason as well (but more money does come with more pressure…). But the reason I like doing side projects is because they help me constantly challenge my mind.

When you work on products or services for companies and clients, it’s not uncommon that you use the technologies your company uses or the client requests. While I still love coding, that can become boring after some time, and you might not be using the latest tech. Many companies still use Java 6,7, or 8 even though we already have Java 11. Or PHP without frameworks like Laravel.

My point is that a side hustle — even if it will consume time — will be good for your career in the long run because you can stay up-to-date with new tech, work on open source projects and add them to your portfolio and CV, and engage with the community, which is beneficial for your network.

Side projects let you learn new things and keep you motivated.

Work on Your LinkedIn Profile
Taking care of one or more social profiles is something I didn’t spend much time on in the early years of my career. I was fresh from university, I applied for three or four jobs, and I was hired for one of them. Everything seemed fine, and I thought I would work for that company my whole life.

Boy was I wrong. Not only did my feelings about the job change, but I was constantly jealous of co-workers receiving calls from headhunters and recruiters.

Even today, I see many, many extremely talented engineers stay in their positions with the same salary they had years ago because nobody knows what they’re capable of.

Having a profile on LinkedIn will give you exposure to recruiters, potential employers, and like-minded people. It will help you present your skills, connect with other people who share the same interests, and find new job opportunities. But let me state something very important for you:

A poorly maintained profile is worse than no profile.

You should spend some of your precious time and/or money enhancing and updating your profile constantly. I’ll share with you a few tips based on my experience with LinkedIn over the past couple of years.

  • Have a profile picture that represents you in a good manner. No party pictures, but as a developer you also don’t need to wear a suit.
  • Have a profile slogan that tells what you’re capable of and what you have to offer. Something like, “Senior JavaScript Developer with 10 years of professional working experience.”
  • Use the summary for two to three sentences about who you are and what your major skills are.
  • Describe each of your job experiences with one to two short sentences, and optimize for keywords like Java, React, and HTML that recruiters and algorithms look for.
  • Skills and endorsements are a great way to stand out from others. List all your technical and non-technical skills (I would suggest listing more technical skills) and try to get endorsed for each of them. Ask your friends and colleagues for endorsements, endorse other peoples’ skills and ask nicely if they’ll endorse yours as well, or join LinkedIn groups (e.g. JavaScript) and ask for mutual endorsements. Don’t forget that you can have your three top skills be sticky, and they will show up first in your profile. Make use of that!
  • Certificates are optional. If you have them, show them.

Don’t Hesitate to Ask Questions
One thing that I often recognize with myself and others is that as we get more experience— especially when we get a new title like team lead or senior developer — we think that we can no longer ask questions because that would undermine our reputation.

This is completely wrong!

Whether you’re just starting your career as a software developer or have 10+ years experience, if you don’t know something, ask! Nobody knows everything. Nobody can know everything. The software industry constantly changes at a furious speed.

In addition, asking questions from time to time will help you establish a healthy relationship with your co-workers. If junior developers notice that their opinions are being heard, it will help increase their self-confidence.

And by asking questions, we can discover new solutions to problems that we would have never thought of because the longer we work in a certain environment, the more we’re stuck in terms of our thinking.

So I encourage you, beginner to professional, keep asking questions. Not only will it help you personally, but it will also help your environment.

Being a software engineer that knows how to write clean and maintainable code, how to deploy code into cloud services, and how to fix bugs in emergency situations is, of course, a great thing. But in today’s world, that’s simply not enough.

If you want to become a senior developer, you need to work on other skills as well. Most of the time, you’re working in a team. One of the biggest threats for any project is miscommunication. You constantly have to communicate — with other developers, with product managers, with project sponsors, with clients. You have to present new ideas and features and defend measures that your team committed to.

Improving your communication skills doesn’t have to be difficult. Often, it’s the small things that matter. Listen to others respectfully, don’t interrupt when other people are talking, and restrain your ego.

Many companies offer training for their staff that deals with social skills. While many developers think these are a waste of time because nothing will be coded, that’s exactly the wrong approach.

Don’t be that type of person!

A smart developer knows their strengths and weaknesses. Be open-minded, try out things even if other’s try to talk you out of it, and stay in control of your career.

These are some major things I discovered during my career in the software industry. It helped me a lot to work on each of the topics, and I really hope that it will help you too!

Discussion (52)

Collapse
inhuofficial profile image
InHuOfficial • Edited

"Don't hesitate to ask questions"

Truer words have never been spoken, there is a tendency as developers get more experienced to not want to appear like they do not know something. This just leads to endless headaches.

Great article! ❤🦄

Collapse
thebarefootdev profile image
thebarefootdev

Yes 100%!!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
merciyah profile image
Samuel Okoro

True. I 100% agree. The one caveat being: we need an environment of psychological safety to ask questions.

Collapse
inhuofficial profile image
InHuOfficial • Edited

I am not sure exactly what you mean by an environment of psychological safety as that could be quite broad.

Is that fancy talk for you have to believe you can ask a question without someone calling you an idiot or belittling you? 😋 Or do you have a definition that narrows it down a bit.

Collapse
thebarefootdev profile image
thebarefootdev

Awesome article! There is very little else to say here, it was an excellent overview.

If I could be so bold as to add one thing here, from my experience, it would be the following:

Part of communication and asking questions that is invaluable, is to be able to listen to criticism and opinion without becoming defensive. I have learnt (sometimes the hard way) that opinions particularly those you may not agree with, can ofter insight and knowledge alone that you cant find elsewhere. Be willing to listen and read, and see how someone else may do things, and do not automatically jump on the defensive or become aggressive merely as you don't agree. You may not feel they are right or not, but read and try to understand what they are writing about before you reply. If you do enter a discussion, be calm, interested and not merely post something in anger or defensiveness, it looks bad and unprofessional.

This is a great read. Well done!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
valeriavg profile image
Valeria

I'd like to add one more advice: when asked to estimate how long would development take, always add enough time for testing and refining the solution. From my experience this takes more time than coding itself, unless you're making a prototype.

Collapse
code4change profile image
Kayinajah Inyang

Very true 💯 • I'm glad you found the article insightful!

Thank you 😃

Collapse
mollet7 profile image
mollet7

Me fall on this Bosses don’t change. Many of us are a bit lazy when it comes to changing jobs, and some are afraid. And then we tend to think that it’s not so bad after all — only to realize a few weeks later that nothing changed and it’s still bad. I have full time job as IT SUPPORT, i get little time to code.

Collapse
tanmaybanerjee23rd profile image
Tanmay Banerjee • Edited

I was Unix Admin for 1.5 year which was the start of my IT career ......

within the last five months I was just pissed off with the work and work culture....

Though it was technical, I was allowed to write shell scripts where I found opportunity to apply my coding skills but first of all my efforts were not considered to be that great and ignored in a way that made me feel embarrassed and secondly I wanted to be a full time developer ...

So one day I had a heated up discussion with my manager for many reasons and that was the time that made me take the correct decision of my life ... I did resign on that day itself ... :)

I was in notice period for one month ... during the first week of the month I got involved in a job fraud and lost a huge amount of money ... but within the third week I ended up being a full time web developer .... :)

I learned react in the first week of my developer role .... applied for 2 months or so .. on the 3rd month I trained the new joiners in react and redux. On the fifth month I was given the opportunity to technically interview software testers ... I interviewed almost 100 candidates .... :D ... I was able to get these opportunities because it was a start up ...

But then they were not ready to hike my salary up to what they promised on joining that they will do If I show a progress ... I was being paid very less compared to what I was doing ... and then the drama started .... everything changed ... all of my ideas were ignored as if I didn't exist ... After all if they considered they had to hike my salary up .. :D ...

After serving for 1.2 years I landed up with a new job as a backend developer which I was prohibited in the startup... I got my salary doubled ...

Right now I am holding the confidence that I am on my way to build my own app ...handling eveything by myself ... data modelling , system designing ... everything ... about which I was told by the director of my previous startup company that it's not an easy task to do and he is able to because he had 25 years of experience and I had to wait for 25 years to do those ... :D ... I was like I am in 21st century ... I cannot bear this ...

All this said to encourage you ... if you have passion just find the way out and live your designed life ... :) all the best ...

Collapse
code4change profile image
Kayinajah Inyang

Very true 💯 • I hope this article helped

Thank you 😃

Collapse
tanmaybanerjee23rd profile image
Tanmay Banerjee

"In addition, asking questions from time to time will help you establish a healthy relationship with your co-workers. If junior developers notice that their opinions are being heard, it will help increase their self-confidence." ... this is what I have never seen in my 3 years of my IT career ...

the times I have came up with new ideas being a junior .. it was always ignored in a way that I felt ultimate embarrassment that I had to leave the discussion and went to the washroom to relax myself and cry alone ...

remembering those moments while I am writing this comment made tears roll down...

I am still in search of someone who thinks this way and can mentor me ... :)

Collapse
code4change profile image
Kayinajah Inyang

Very true 💯, I'm glad you found the article insightful!

Thank you 😃

Collapse
ivictbor profile image
Ivan Borshchov • Edited

Don't afraid to spend some time for free helping to others. If you do it responsivly it will return to you very quickly with great rewards, as highly paid positions.
Answering on websites like stackoverflow or fixexception would not take much time but will give you more and more expirience and profile visibility. Always be recognizable there. Your name is your future, it should be easy from employee to Google you. So all your karmas and answers are precious.
Contribute on github, create any projects which could be usefull for people or at least commit into existing projects where you can, github gives you everything to check your ability to help without any fear - fork to local repo, change something and submit pull request for review

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
kriska profile image
Kristina Gocheva

A poorly maintained (Linkedin) profile is worse than no profile. - totally.

Collapse
codecast profile image
CodeCast

Loved this! Agree completely

Collapse
jackedwardlyons profile image
Jack Lyons

Excellent article! Here in Australia companies are starting to wake up and realise that developers are hard to find - salaries are slowing starting to increase and the quality of roles coming onto the market are getting much better which is great to see 😀

Collapse
developerantoniosousa profile image
Antonio Sousa

Awesome! Thanks for sharing!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
hugomndez profile image
Hugo Mendez

Great advice!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
codecast profile image
CodeCast

Powerful content! Really enjoyed the read

Collapse
rakeshv07018495 profile image
Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
andreguipeil profile image
André Guimarães Peil

True text man, pretty good!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
princekr700 profile image
Kumar Prince

This is awesome. It will actually help lot of developers ✌

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
alexandrefuente profile image
alexandrefuente

Awesome, thanks for your advices. :)

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
paco profile image
Paco • Edited

Invest in You and Your Career

This goes a long way! Nothing like continuously upskilling yourself with time.

Cool post! 👏

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
faizelgaroeb profile image
faizelGaroeb

This article made my day 😍😍... Thank you for letting me know my self-worth

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
jibijames profile image
jibijames

Made my day

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
tamsrua profile image
tamsrua

Thank you for this article

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
keithmngadi profile image
Keith Mngadi

Great article.

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
glenbradley17 profile image
Glen Bradley

Great advice!

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful!

Thank you 😃

Collapse
anapr365 profile image
Ana Paula da Rosa

Bom conselho

Collapse
code4change profile image
Kayinajah Inyang

Ei, estou feliz que você encontrou o
artigo perspicaz!

Obrigada 😃

Collapse
yosri_gharsi profile image
yosri gharsi

Thank you

Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Collapse
codeprasapro profile image
Collapse
code4change profile image
Kayinajah Inyang

Hey, I'm glad you found the article insightful! Thank you 😃

Forem Open with the Forem app