How to be a better developer: the human side of things
In my last post I described ways to learn and grow our technical skills more quickly. However, if no one wants to work with us, it won't matter how good our technical skills are. So be kind. To everyone.
Time and time again, the developers I have been most consistently impressed with possess a similar combination of traits. They’re empathetic and humble. They ask questions well and listen closely. They’re proactive and positive, and they persevere. In the next paragraphs I’ll describe these characteristics a little more fully and identify some of the behaviors we can adopt to further develop these traits in ourselves.
- Software always comes back to people. No matter how unrelated projects can seem, there is always a person involved—whether it's the next person in the codebase, your coworkers, or the end user,.
- Ultimately people are what matter, so seek and be aware of others' perspectives and understanding.
- Share knowledge and credit.
- Be willing to learn from others and look for opportunities to do so. You can learn something from everyone.
- People have potential for growth in more than just technical skills, so pay attention to what others do well (for instance, the rest of the items in this list).
Questioning & Listening:
- When you don't understand what's being explained, don't pretend you do. Ask for clarification.
- Be respectful of others' time by trying to understand your own question: What do you know? What do you not know? Be as specific as possible about your understanding and think about how you’re framing your question before you ask it.
- 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 the person you’re talking to doesn’t understand, you need to explain it better. Do more to figure out what isn't clear and try again.
- Look for opportunities to update documentation.
- Notice bugs you might fix.
- Take initiative when you finish something by finding a new task rather than waiting to be assigned something. 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. Teams work better when they feel connected, so ask your teammates how they're doing and say hi to coworkers. Little efforts make a difference. Be that difference.
- Make your communication with others positive, and be kind in your self-talk.
- Do not compare yourself to others. You have little control over anyone but yourself, so someone else's competence really isn't relevant.
- Succeeding over time as a developer has an awful lot to do with simply choosing to stick with it.
- Everyone has ups and downs. The people who have lasted have made a lot of mistakes and they've seen similar errors dozens of times. They understand now because they've solved the same or related issue repeatedly.
- "Expert" developers are just people who have failed a lot more than you have, learned from it, and kept on keeping on.
The suggestions I’ve listed are intended to be helpful as you’re interacting with others, but also to give you perspective in your self-reflection. There will never be enough time to learn or do everything you want to, but that’s okay. So, be nice to yourself as you determine which path works best for you.
Just remember, there's more to you than only this. Exercise, hobbies, friends; these things matter. Take care of yourself along the way
You can do it.
You've got this.
Kelly de Vries is a software engineer at Lumen Learning and she co-founded the Portland Junior Developer meetup. She continually seeks to create opportunities for entry level developers to advance their careers, and she has a black pug who has his own Instagram account (@otto_depug). Find Kelly on LinkedIn.