DEV Community

Cover image for What's the Difference Between A Good Developer & A Great One? staff for The DEV Team

Posted on

What's the Difference Between A Good Developer & A Great One?

What do you think: what sets a great developer apart?

Follow the DEVteam for more discussions and online camaraderie!

Top comments (6)

jmfayard profile image
Jean-Michel πŸ•΅πŸ»β€β™‚οΈ Fayard • Edited

That would be my answer

A great developer is a good developer who is at exactly the right place for her.

This idea that there a global meritocracy of developers who are better or worse is an illusion.

A developer may be very knowledgeble but working at Facebook where he helps even more people waste even more time and attention on a single website who wants to sell more ads.

Or a developer may be novice but happens to set up a website that helps some scientists do to his important work.

The second developer does something more meaningful to me.

TLDR: We are problem solvers and we are all solving different problems.

algorodev profile image
Alex Gonzalez

A good developer thinks on build the functionality and writes code that machines understand.

A great developer thinks on product or business and writes code that everyone can understand without an explanation. Code is easy to read and mantain.

quoll profile image
Paula Gearon

This has been coming up a bit for me lately, and I think some of the answers I see here are very insightful. In general, I say that it depends. In some environments, one type of developer works well. In other environments, a very different type of developer is called for.

There are attributes that appear to be universal, such as problem-solving and understanding tools and technologies, but then there are things that matter more in some environments and less in others.

I've been at large companies where the best developers were those who could:

  • Communicate well, and with empathy. This means not just writing and speaking, but understanding what others are saying and their motivations.
  • Write clear, maintainable code. This is code that meets standards, is easy to follow, and is well documented whenever complexity is necessary.
  • Combines these skills in ways that help others. For instance, teaching junior developers how to use new tools, or best practices in writing code.

Conversely, I've been at many startups over the years, and people who have done well with all of those attributes may not contribute what a startup needs. In that environment, the more successful developers demonstrate:

  • An ability to learn quickly, with the curiosity to apply this to new techniques and technologies.
  • Can stay focused on tasks, especially under pressure.
  • Are willing to listen, and not believe they have the solutions to everything.

Depending on the stage a startup has reached, a developer may need a greater ability to communicate, and to lead and teach others. The very best people can make this transition, but even those who can't may still do impressive things early on in a startup's life.

I've seen how curiosity and a desire to try new things can be an impediment in a large organization. Conversely, the people who have the skillset to build robust, reliable systems over time may try to overengineer systems in a startup environment where speed and ability to pivot may be key.

Of course, there are more scenarios than just those represented by corporate vs startup life, and in each one a different set of attributes will make a person stand out. So whatever you're looking for in a developer, you need to consider the current needs of the environment, and how you expect it to evolve over time.

fpaghar profile image
Fatemeh Paghar

The difference between a good developer and a great one is about more than just coding skills. Both can write code, but a great developer has some extra qualities:

Problem-solving: Good developers can solve problems, but great ones can handle complex issues and think creatively to find solutions.

Communication: Great developers can explain things clearly to teammates and clients, while good ones might struggle to communicate technical ideas.

Learning: Great developers are always learning new things, staying up-to-date with the latest technology. Good developers might stick to what they already know.

Attention to Detail: Great developers pay close attention to small details in their code to make sure it's clean and easy to understand. Good developers might miss some of these details.

Adaptability: Great developers can quickly adjust to changes in a project, like learning a new programming language or working with a new team. Good developers might find it harder to adapt.

Empathy: Great developers understand the needs of others, like users or teammates, and design solutions with them in mind. Good developers might not think about this as much.

Leadership: Great developers can lead a team, helping others learn and grow. Good developers might focus more on their own work without helping others as much.

So, while both good and great developers can write code, great developers have extra skills like problem-solving, communication, continuous learning, attention to detail, adaptability, empathy, and leadership.

ssukhpinder profile image
Sukhpinder Singh

A good developer writes code that machines understand.

A great developer writes code that both machines and humans can understand

and occasionally, even their rubber duck sitting near your desk can understand during those intense debugging sessions.

GIF by Disney - Find & Share on GIPHY

Discover & share this Disney GIF with everyone you know. GIPHY is how you search, share, discover, and create GIFs.
yowise profile image

In my opinion, a good developer is the one that knows how the things work and follows very well a known-path. Meanwhile, a great developer is an innovator 😺