Here are some traits that I think make developer's great. There is nothing technical here. This is about having the right mindset and being a good person. It's easy to just focus on technical skill, but I believe these traits to be as important as any technical ability.
Be humble
- Feel offended that someone proved you wrong? Hanging on to an idea just because you thought of it? Taking actions that are only in your interest and not the teams? Keep your ego in check.
- Ask the 'dumb' questions.
- Do not seek recognition.
Do the things that no one else wants to
- There is a lot of value to be found in the tasks that everyone avoids. Get stuck in.
- The task is hard? There is an opportunity for growth
- The task is no fun? Do it anyway. Why is it no fun? can it be automated?
Be human
- Connect with people. Do not judge people by what you see on the surface.
- Be mindful how you provide feedback.
- Everyone has off days, and everyone has struggles outside of work. Keep this in mind.
- Be respectful.
- Don't be a jerk
Have fun
- Be sure to laugh a little and don't take things too seriously.
- Do not get caught up with office politics or the pressure of arbitrary deadlines.
- Oftentimes things are just not as important as they are made to be. It's just work at the end of the day.
Take ownership and responsibility.
- The requirements aren't clear? Take responsibility for making them clear. Something not working when deployed? Take responsibility for making it work.
- If you notice yourself pointing the finger at others, ask yourself what you could have done differently.
- Do not seek to blame others when things go wrong. Work out what needs to be done to ensure it does not happen again.
Be a leader
- You can be a leader without a leadership position.
- Set a great example that the rest of the team want to follow.
- Be the go to person for a particular technology / component that interests you.
- Spend time to mentor others and help them grow.
- Speak up when you do not agree, you may hold a better answer.
- Looks for opportunities to be a leader - they are everywhere.
Be disciplined
- Maintain a strong work ethic.
- Strive for high standards and to maintain them.
- Focus on the highest priority task and finish it.
- Optimise repetitive tasks with automation.
- Make mistakes, just try not to make them twice.
Have a growth mindset
- Always be learning.
- Have a beginner's mind.
- If you're not failing, you're not growing. Push yourself to do new things and get outside that comfort zone.
- Work to remove bad habits and instil good habits, in yourself and the team.
- Have a mentor. This does not have to be someone you know or have direct contact with. It could be someone well recognised in the industry that you look up to and follow.
- Reflect on your day, week, month, and year. Ask yourself what you will do differently in the future to keep growing.
- Help others to grow and succeed. Share your knowledge
Stay visible
- Be approachable. Encourage others to come to you for help.
- Make sure people know what your working on and that your making progress.
- Even if you're not making progress and struggling, share it and accept help. Being open and honest helps to build trust.
Be in control of your emotions
- There will be times when work is stressful. Do not get caught up in drama.
- Detach from chaotic moments. Is everyone in a panic because of a production issue? Step back, think clearly, pick the highest priority task, and take action.
Be reliable
- Build trust by consistently delivering and being honest.
- Show your boss that they do not have to keep watch over you. Strive to deliver what they need before they ask for it.
- Commit to things and be sure to deliver them.
Understand business value
- It's easy as programmers to get caught up thinking of a code solution when the problem may be solved without writing a line of code. Think about what value you are providing to the business before coding. Do you even need to write any code?
Stay healthy
- Take care of yourself, physically and mentally.
- Get enough sleep, eat well, and move more.
- Take regular breaks - back / shoulder / wrist (etc) pain is no fun.
- Beware of imposter syndrome and the Dunning-Kruger effect.
Top comments (10)
Yes but ....holy mao, you are scaring the new developers away, putting too much pressure.
This is a great list but is like saying you have to stick with the Bible, being Zen, applying socialism and run a startup while working at a big corporation.
For the readers: Depending on your environment (from peers to the country) many of them could be impossible or hard to achieve. Try to see these kind of articles as a "perfect world to strive for", not as a mandatory mantra that every successful developer applies it every day.
Hi Adrian thanks for your reply. I realise it was a mistake to tag this post as a beginner subject, as some of it may be too heavy for newcomers. I was thinking that it would be useful for beginners to see things to strive for that were not just technical. Thanks for the feedback - I have removed the beginner tag
I totally agree that not every point may be applicable to some environments, and that they are not mandatory to be successful. I usually notice a few of the traits stand out in people, but rarely do you see all of them in one person.
I agree, once you get the hang out of it, spending a few hours in an office you can notice the differences between "great developers" and the ones who are just there for "the job". They both are doing their job, but the first kind want to keep improving everything (themselves, their peers, their project) by changing everything (workflows, procedures, technologies, skills used ...).
A balance there always is, you cannot help everyone, be funny and still professional and do your tasks in the same time. So even if someone can have most of the skills, they don't apply to each situation, each day.
Future/new developers, don't worry, we are humans, we have bad days, we do mistakes.
You've made good points. Definitely, there is always a balance to be had. It may seem like some of the ideas contradict each other because of that balance. Like you say, there is right time and place for some things. Doing these things in the wrong situation could easily make you the opposite of great. :)
I think it is implicit that being perfect is impossible. But what I have found over time is that as you journey through life, you can "collect" these attributes piece by piece. Usually through experience and learning the hard way why they are important.
I take this post as a sort of list of places you want to have visited by the time you come back from your journey.
This is a fantastic list. I agree with it being an almost impossible list to achieve, but even for a beginner knowing that this is where one should head is important to hear from older and hopefully wiser developers. Some of these are general enough to work in other disciplines. I rarely bookmark, but this is worth one.
What a great article! It feels like I need to read every day.
Great article, and it is not just for developers.
About 90% of these tips can be applied to all areas of life.
Great Tips! But was this inspired by Developer Tea's series of the same name? If so, I think you should point that out.
Hi Jacob, thanks for your comment. My post was inspired by many things, but the Developer Tea series was not one of them - I am not familiar with it. I will be sure to check it out!