Spoiler: You probably already have these skills… whether or not you know it!
This blog was originally published on Substack. Subscribe to ‘Letters to New Coders’ to receive free weekly posts.
I’m going to say something that might sound controversial: The best developers aren’t necessarily the best coders.
Here’s what I mean by that.
When I was hiring software engineers at Meta and Microsoft, we saw many exceptionally talented candidates apply. When evaluating sometimes dozens of technically proficient candidates, we had to look to other skills as differentiators.
So what was the key difference between those who got hired versus those who didn’t? It wasn’t their technical skills — it was their soft skills.
Soft skills are personal traits, which differ from technical skills like knowing Python basics. While some may argue that soft skills are innate qualities that you either have or don’t, I believe many of these qualities can be cultivated over time.
Whether you’re hunting for your first job or you’re learning to code, I wanted to share 6 surprising traits that can give you a leg up in your coding journey.
The best part? I promise you that these qualities will be differentiators when applying and interviewing to industry jobs.
1. You have a knack for collaboration
If you hoped programming would bring you a quiet career spent solo at your desk, well, I have some bad news: collaboration is essential to being a successful developer.
Crafting simple and effective solutions is all about teamwork. You will always need to rely on junior and senior developers alike for new ideas, feedback, and support. And that’s a good thing: more perspectives make for better software.
Everyone can, and should, nurture their collaboration skills. Being a good collaborator involves various sub-skills, such as being open to feedback, communicating proactively, and treating colleagues with respect.
Once you’re in the workforce, you can grow by taking advantage of collaborative activities that are built into developer workflows, like:
- Code reviews, which provide an opportunity for peers to exchange feedback before changing a software’s code
- Pair programming, where two developers look at the same screen and share thoughts as they write new lines of code.
As a student, you can flex your collaboration skills by working with peers on projects.
2. You’re a creative problem-solver
Do you enjoy the process of discovering the right answer just as much as knowing it? If so, you’re a creative problem-solver.
Programming is all about problem-solving: a developer’s core task is to find optimal ways to approach a solution to a problem. But add creativity to the mix, and you get innovation.
Creative problem-solvers have a knack for crafting intuitive or overlooked solutions to pressing problems. If you have this trait, you can bring an irreplaceable perspective to your team, pointing out solutions that others may have missed.
Creative problem-solvers also make for excellent entrepreneurs, because they’re capable of finding fresh ways to address persistent challenges through transformative technologies.
The great news here is that you can strengthen your creative problem-solving skills over time. The better you get at problem-solving, the more prepared you’ll be to identify unique and novel approaches to problems (one of the best ways to do this is by practicing logic problems, which I talked about more in last week’s post on problem-solving).
3. You enjoy building things
Which of these sounds better to you: exploring the theory of why something works, or seeing something you’ve created in motion?
If you picked the second one, you’re certainly going to be fulfilled by your coding career.
Many developers (myself included) aren’t satisfied with learning theory or abstract concepts alone. They have an itch to get hands-on and build something. Luckily, being a developer lets you work on projects that lead to tangible outcomes that change how people interact with technology every day.
The aptitude for building things is less of a soft skill and more of a trait, but it’s still something you can grow to enjoy over time, and you’ll have lots of opportunities to practice and experiment in your career.
Whether you’re optimizing code or improving a user’s experience, everything you do as a developer will play a role in getting something great into the hands of the people who need it (and if that’s not rewarding, I don’t know what is).
4. You’re empathetic
At its core, effective software development is about understanding people. Ultimately we are building software with and for people. And of course, nothing human-centered will succeed without empathy.
As a teammate or a leader, empathy equips you to better appreciate or relate to your team’s feelings, allowing you to better support them or guide them toward success. As a developer, empathy helps you better understand the genuine needs of your end user to create a tailored solution for them.
Among other things, empathy means you have these abilities:
- Active listening, or the art of being fully present in a conversation. People with this skill recognize a speaker’s emotions and intent, give their undivided attention, and let speakers finish before responding
- Switching perspectives, or the ability to understand someone else’s viewpoint and its nuances
- Proactive foresight, or the mindfulness to anticipate the needs of colleagues and end users alike Whether empathy and its related skills come naturally to you or not, cultivating them over time can help you become a conscientious, trustworthy developer people want to work with.
Here’s a real-world example of empathy’s impact in coding: through perspective-switching, you can help your teammates better understand your code through effective code comments, the notes you leave in your code to explain your reasoning. Comments are most effective if you are skilled at anticipating your reader’s thoughts. The impact of good code comments can range from helping onboard new developers to making debugging easier.
5. You’re a student at heart
Development is a practice of lifelong learning. We all have something new to learn, and something to learn from each other.
If you love learning, you’ll never feel stagnant in a coding career. The tech industry changes fast and there are always new technologies to keep up with. The developers that excel are always ready to stretch their technical skills so they can keep up with the industry and stand out in the market — and they do this through constant practice.
Of course, this learning goes beyond tech skills. With every experience, you’ll also get to nurture your soft skills to grow and advance over time.
6. You’re bold enough to fail
I can’t tell you how many times I’ve encountered the unexpected or made mistakes in my career. So have Steve Jobs, Bjarne Stroustrup, and all the colleagues I respect.
Everybody fails — but what separates great coders from good ones is that they persist anyway.
Failures are inevitable, but they’re also learning opportunities — if you embrace them as such, each mistake will only make you a stronger developer. Failing forward is all about humility and a growth mindset.
Growth doesn’t happen in safe, routine environments: it happens when you step outside your comfort zone.
No matter how big or small the task, we’ll always face challenges and failures. But learning to reframe those failures as teachable moments will make a world of a difference.
You’re at the beginning of a long and exciting journey
The traits I shared today are commonalities I’ve seen in the most accomplished developers in my circle. Having any number of these traits will only help your coding career keep growing and going — and make you an unforgettable team member and hire.
Even if you don’t have the skills I’ve touched on here, it doesn’t mean your career is destined for failure. While you’ll be able to develop some of these traits over time, the truth is that developers come in all shapes and sizes — ultimately, the only traits you need to succeed are determination and a willingness to grow.
As a reminder, you can learn everything you need along the way with Educative’s Learn to Code courses, from writing your first line of code, to strengthening your problem-solving skills, to practicing for your first interview.
Happy learning!
- Fahim