Regardless of how good your technical skills are (see part one of this blog post for how to improve them), if no one wants to work with you it won’t matter. So be nice. To everyone. That part should be a given.
Time and time again, the developers I have been most consistently impressed with have some combination of these traits. They are: empathetic, largely absent of ego, have the ability to ask and listen to questions well, are proactive, positive, and they persevere. Obviously that is a lot to hope for in any one individual, but it is certainly a good list to strive for, and we can all benefit from improving any of these skills.
Empathy:
- Rarely do people work in a silo. You need to be able to work well with others.
- Software always comes back to people. No matter how unrelated it can seem, eventually there’s a person involved- whether it’s the next person in the codebase, your coworkers, the end user, or someone else.
- Ultimately people are what matters, so become aware of others’ perspectives and understanding.
Absence of Ego:
- Share knowledge & credit.
- Be willing to learn from others & look for opportunities to do so – you can learn something from everyone.
- You can learn more than just technically – look at what else others do well (e.g., the rest of the items in this list).
Ability to ask and hear questions well:
- First break your question down & see if you can get a better understanding by investigating the problem further.
- When you don’t understand what’s being explained, don’t pretend you do – Ask for clarification.
- Be respectful of others’ time by first trying to understand your question- What do you know? What do you not know? Be as specific as possible about your understanding and your question when you ask.
- Clarify when people ask you questions – Are you understanding what they need? Are they understanding what you’re explaining. Communication is a process, not a one way delivery.
- Teach gently – If they don’t understand, you need to explain it better. Do more to figure out what isn’t clear and try again.
Proactiveness:
- Look for opportunities
- Update documentation (ask if it’s okay to make corrections).
- Notice bugs you might fix.
- Ask your coworkers how they’re doing.
- Help around the office.
- Take initiative when you finish something.
- Start a new task. Don’t just wait to be assigned something.
- If it’s unclear what you should do next, look for opportunities (see the previous list item). Let your manager know what you plan to do and ask if there’s somewhere else you should focus instead – Make that person’s life easier because you are there.
- Reach out and connect with people.
- Interact with others. I know for many of us this can be scary, but teams work better when they feel connected. So say hi to people on your team, in your company, and at meetups. Little efforts like a smile make a difference. Be that difference.
Positivity:
- Make your communication with others positive, but also be kind in your self-talk. Try not to compare yourself to others. You have little control over anyone but yourself, so someone else’s competence really isn’t relevant and will either serve to make you feel incompetent or potentially arrogant.
Perseverance:
- In my observation, succeeding over time as a developer has an awful lot to do with simply choosing to stick with it. Everyone will have ups and downs, the people who have lasted have made a lot of mistakes; that’s why they know what to do- they’ve seen the error dozens of times and now remember or understand because they’ve solved the same, or similar, issue repeatedly. “Expert” developers are just people who have failed a lot more than you have, and have learned from it, and kept on keeping on.
There is no shortcut I am aware of for becoming better at programming. There will never be enough time and you can’t do it all. You have to make choices, and there will be more than one “right” answer. It looks different for everyone and you will have to determine what path works best for you. And remember there’s more to you than just this. Exercise, hobbies, friends; these things matter. Take care of yourself along the way
You can do it. You’ve got this.
Wise words for just being a human being.
Pingback: The Hard Truth on Being a Good Junior Programmer: Interview with Intern Manager Kelly de Vries, Part 1 – Bit by Bit Bootcamp