Which is More Important: Hard or Soft Skills for Programmers?
You’re waiting at the front-desk of Google’s campus in Boulder, Colorado, waiting for your coding interview to start. Across from you in the lobby sit two other candidates:
- A charismatic airpods-flaunting developer who can charm the pants off of anyone in the room but requires an agonizing 8 hours to get a linked list working
- A programming prodigy who writes games in assembly, but is such a colossal jerk that nobody will play their game anyways
Which of them will provide more fierce competition for the job spot? Let’s tackle the age-old question: Which is more important, hard or soft skills for programmers?
First I’ll annoyingly explain what hard and soft skills are, but then we’ll dive into the reason I wanted to write this article: the rectangle analogy. This analogy will help you understand where you should be spending your time improving to maximize your chances of landing a job.
Hard Skills: The Foundation
First things first: what are hard skills? These are the tangible, measurable abilities that you need to get the job done. As a developer, you’ll need to:
- Code in specific languages - like Python, JavaScript, or Golang.
- Use technologies and tools - such as Git, Docker, or AWS.
- Understand DSA - because nobody wants to be that developer who can’t reverse a string without Googling it first.
- A boatload of other things - because programming is a vast and ever-expanding field.
Importance of hard skills for landing a job
Hard skills are the bread and butter of your programming career. They’re an absolute requirement for most programming positions, and they demonstrate your technical competency. In fact, if you could only have one type of skill, hard skills would be more important. After all, it’s pretty tough to write code without, you know, actually knowing how to code.
Keep hardening your hard skills
The tech world moves at breakneck speed, and if you’re not continuously leveling up your hard skills, you’re gonna get left in the dust. Remember, Rome wasn’t built in a day, and neither is your programming expertise. Invest time and effort in learning new languages, tools, and techniques over time.
You don’t need to be an expert on everything, but you need to know how to deliver working code that solves real problems within your domain. If you want to be a back-end developer and work at SaaS companies, then you should at the very least:
- Have a solid understanding of a couple of programming languages like Python and Go
- Be able to set up and use a SQL database
- Know how to build a REST API using those technologies
- Know how to deploy that API to a cloud platform like AWS or GCP
Soft Skills
Soft skills, on the other hand, are the intangible, interpersonal abilities that can give your career a nice boots. They might not be as easy to quantify as hard skills but they’re nearly as vital. Soft skills include:
- Charisma - people like working with fun people.
- Communication and writing abilities - so you can articulate your ideas and keep everyone in the loop.
- Kindness and empathy - because you’re working with humans, and humans don’t like assholes.
- Hard work and follow-through - if you’re good, but you don’t deliver, then no one cares.
Importance of soft skills for long-term success
Soft skills are the secret sauce that can propel your career to new heights. They facilitate collaboration and teamwork, making it easier for you to work with others and get the job done. Plus, having solid soft skills can enhance your overall job satisfaction and career growth. After all, nobody wants to work with a genius who’s also a jerk.
Hard skills are a requirement to get a job in tech, but assuming the gap in hard skills between two candidates is similar, I’ve actually seen the more charismatic and likable candidate get the job over the slightly more technically competent one. Why? Managers are people, and people like working with other people they like.
How do I improve my soft skills?
If you have a crappy personality, don’t worry too much. You don’t need to be a brilliant orator or a master of the written word just to get a job as a code monkey. The number one rule should be easy to follow: don’t be an asshole. If you do that, you’re halfway there.
The related follow-up rule is to balance confidence and humility. If you’re a kind, open-minded developer that knows what you’re talking about, you’ll do great.
The Rectangle Analogy: Combining Hard and Soft Skills
Now that we’ve explored both hard and soft skills, let’s dive into the rectangle analogy to understand how they work together. Imagine your hard skills are the length of a rectangle, while your soft skills represent the width. The area of this rectangle corresponds to your probability of landing a job. The larger the area, the better your chances of finding a gig that suits your skillset.

This means the equation for your job probability is:
hard_skills * soft_skills = job_probability
To maximize job_probability with the least amount of effort, spend more time on whichever skill you tend to lack. The area of a square is larger than the area of a lopsided rectangle with the same perimeter.
The misconception of limited skill points
If you’re thinking this sounds a bit like a Dungeons & Dragons character sheet where you have a limited number of skill points to allocate, that’s not how the real world works. In the real world, you can just get more skill points. You can excel in both hard and soft skills.
- I’ve worked with amazing people who are easy to get along with and are brilliant programmers
- I’ve also worked with incompetent jerks who are somehow also bad at writing code
If you work hard and do your best, you can be both a great programmer and a great person. It’s not an either-or situation. In the immortal words of Shia LaBeouf, “Just do it!”
Related Articles
Do You Need to Blog to Get a Coding Job?
Apr 17, 2023 by Lane Wagner - Boot.dev co-founder and backend engineer
As the founder of Boot.dev, I’ve worked with countless students who are eager to break into the tech industry. And time and time again, I see the same question pop up: “Do I need to start a blog to get a coding job?”
It's Not About the Job Openings
Mar 30, 2023 by Lane Wagner - Boot.dev co-founder and backend engineer
I talk to boatloads of students who are starting to learn to code, and invariably they are hyper-concerned about which programming languages and technologies they should be learning.
How can I Get a Job as a Python Programmer?
Mar 27, 2023 by Natalie Schooner - Computer science educator and technical writer
How to Get a Job as a Python Programmer “How much Python do I need to know to get a job? Do I need a degree?” I asked Jo, a hiring manager I’d met at a Python networking event, nervously.
How to Get a Job as a Golang Developer
Mar 20, 2023 by Natalie Schooner - Computer science educator and technical writer
Step 1: Learn Golang. Step 2: Apply for jobs. Step 3: Get accepted. When I started researching this article, that was the first answer that came up on Reddit. It’s short and punchy, but it’s not very useful, is it? (The second answer was a joke that because “Go” only has two letters, some search bars don’t accept it since they need three or more characters to search.)