DEV Community

Anja
Anja

Posted on

What do you need to become a great developer?

💡Curiosity
❤️Self-love and belief in yourself
👥ask for help and collab with other devs
📈keep learning + improving
What do you want to add? Happy Sunday. 🐿

Top comments (24)

Collapse
 
isarisariver profile image
Marian

While (!greatDeveloper) {
practice()
}

Just build stuff. Courses are great for the basics, after that start building something. It can be anything that interests you. For example a Twilight quote generator or a vegan recipe search machine. Every project will present new problems which in turn teach you something new that you can use in your next project.

Collapse
 
anja profile image
Anja

Hi Marian, yes projects accelerate your learning rate and inspire you. 😊👍

Collapse
 
ssimontis profile image
Scott Simontis
  • Learn to make a persuasive business case for your proposed solutions. The coolest technical implementation doesn't mean anything if you cannot convince your superiors that it's a good investment and that it will make everyone's lives easier.
  • Automate repetitive tasks. You will learn a lot in the process of automating the task, and it will save you time in the future to work on more interesting ideas.
  • Ask why. Why did the system fail? Why didn't we get any alarms from our APM system before it crashed? Dig a couple layers deep when things go wrong to understand the root cause of the issue. Similarly, bugs may be symptoms of much more serious issues in the codebase that need to be discovered and dealt with.
  • Write good documentation. Preserve knowledge within your organization and make the onboarding process suck less for the next person who comes along.
  • Choose your battles wisely. There's a million things you could fix in some code bases, but what will deliver value now? You can't debate the merits of every fix, sometimes it's fairly evident that code needs to be fixed but the timing isn't right. You can only crusade for so many causes without wiping out the enthusiasm of your coworkers and supervisor, so make sure to get them involved with the cause when it really matters.
Collapse
 
billernet profile image
Bill💡

Excellent list! Agreed on all points.

Stepping back and asking why is a hugely important skill to have. You may be able to say "This broke because xyz happened and we can fix it easily", but ask "why did xyz happen?", "Did xyz cause anything else we've not discovered yet?", "How should we handle xyz in the future?", etc. This applies to all sorts of work in development and doesn't stop at code.

It's also worth repeating that it's repetitive tasks that should be automated. We all know that one person who spends hours automating something which could have been done manually much quicker, and their automation is never used again! Unless you're doing it purely as a learning project, I would recommend only automating tasks that are done frequently, or tasks which are done occasionally, but would benefit from automation to reduce human error.

When writing documentation, don't be afraid to write partial documents as it can be off putting if you think you need to document an entire process at once. You'll find some notes are better than no notes.

Put your documentation in source control! Not only does it protect the history, it also helps make it accessible to other members of the team. I've implemented a build pipeline using Azure Devops and DocFX, where once changes to documentation are committed to the Git repo, the documentation website is rebuilt and deployed with the latest changes.

Collapse
 
anja profile image
Anja

Thanks for sharing all these important points!😊 You should create a separate blog post from them 😊📝

Collapse
 
cchana profile image
Charanjit Chana

Can’t argue with any of those points!

I would add one more which could be controversial: Knowing when to move on 🏃

Sticking around in toxic or a less than ideal environments not only makes it hard to progress yourself as a developer. Even somewhere where it’s challenging, is it the right challenge?

What about your friends at work? For me, real friends have remained so even after we’ve posted.

If you don’t see the signs, you might not be able to help others around you to make them great too. That applies to new starters, juniors or just a colleague who needs some help.

I’ve been guilty of this and stagnated. I feel like I still did a really good job but was I ’great’?

Another would of course be time

Easy to put pressure on yourself, but as with anything you just need to take the time and put in the work!

Collapse
 
anja profile image
Anja • Edited

Hi Charanjit, thank you for adding this! Yes it's very important to have a supportive environment that helps you to grow but at a rate you feel comfortable with. That's an ongoing topic for us devs, keep growing but don't burn out and have enough down time. 🧘‍♀️

Collapse
 
julianoe_ profile image
Julien ✏️

🔍 Know how to research : being able to find answers to your problems is a major building block to progress and solve challenges as a developer.
📝 Share your knowledge : as a developer you often heavily rely on the works other people put in sharing their experience and writing about great things they discovered. Do your part, share yours.

Collapse
 
recursivefaults profile image
Ryan Latta

I think great developers, in addition to the Anja's list, solve real problems. I see a lot of developers focus on the solution side too much.

There is way too much code written that is never executed.

A great developer knows how to involve themselves deeply with customer, user, and stakeholder needs so they have a sense of what problems need to be solved and which ones are just going to be a source of bugs later.

Collapse
 
aminmansuri profile image
hidden_dude

Learn to code defensively:

  • use assertions (or better: permanent assertions)
  • logging
  • unit tests
  • debug your code instead of executing
  • hallway useability reviews
  • rubber ducky code reviews
  • code reviews

The bug is the enemy, pull out all the weapons against them.

Collapse
 
anja profile image
Anja

Thanks for sharing! 😊 What's a hallway usability review?

Collapse
 
aminmansuri profile image
hidden_dude

Actually it's "hallway usability testing"

see this article for an explanation: joelonsoftware.com/2000/08/09/the-...

Collapse
 
toqeer__abbas profile image
Toqeer Abbas

Tea or Coffee 😀

Collapse
 
anja profile image
Anja

True 😄☕️

Collapse
 
bobbyiliev profile image
Bobby Iliev

I recently wrote a post on my 10 Tips for Being an Awesome Developer 🙌

Collapse
 
anja profile image
Anja

Great, will check it out!😊

Collapse
 
darkain profile image
Vincent Milum Jr

Stubbornness. ¯_(ツ)_/¯ At least that's what worked for me. Too damn stubborn to give up on anything.

Collapse
 
anja profile image
Anja

Yes keeping on it is key 😊👍

Collapse
 
andrewbaisden profile image
Andrew Baisden

Great list. I would add planning and having a roadmap of what you want to work on and the problems it could solve.