The most important skill you need to succeed as a developer

Hint: it’s not a technical one

Pierre Criulanscy
Jan 20, 2019 · 5 min read
Photo by Ben White on Unsplash

I’ve been working as a freelance developer since 2010. I started as a backend PHP / Python developer. I’m now working as a freelance JavaScript / Node.JS software engineer at Le Figaro, a French newspaper. More than 20M people see my work each month. Am I bragging about that? Not at all. Delivering value for that many people is exhilarating. But with power comes great responsibility. To keep a cool head and succeed as a developer, you need this single most critical skill: Humility.

I was 10 when I first started to build websites. I was not yet writing code. I used some WYSIWYG editor. I don’t remember the name, but it was made to create static websites. I created a site about video games that was a copy-cat of a famous french website (due proportion being observed).

It was a thrilling enough experience to give me a new goal: to build a dynamic website from the ground up.

All I needed then was time. And I had plenty of time during the winter holidays when the days were so short it was not worthing to go out at all. I enrolled in some free online courses, and at the age of 12, I had built my first blog-like website. PHP, MySQL, CSS, HTML were my best friends.

A passion was born.

When Passion Becomes the Catalyst

A vivid passion acts as a catalyzer towards a great career. The stage was set for mine.

The Casio Graph 35+ ❤

I spent my whole scholarship (middle school and high school) developing on my Casio Graph 35+ calculator. Many of my French and History teachers should still be asking themselves why I needed this calculator in their lectures. I praise them for inadvertently letting me pursue my passion.

I later enrolled in an engineering school. I had this feeling that I was superior to other students because I was programming since the age of 10! I was not very focused on the different lectures. I was focused on my proper understanding of code, learning by myself all the things I think I needed to learn. What I love the most in programming is the architecting part. Modeling a solution from the ground up is so exciting for me! As you can guess it, I over-engineered ALL the projects I had to work on. This should have put a bug in my ear, it was going to be a lot worse…

It’s a well-known citation, but maybe we should append it with “[…] but don’t forget it’s still a job”. When you’re so passionate about something, it’s easy to forget that it is a job. You overlook the fact that you don’t know everything and that you have responsibilities as a professional.

My firsts working experiences were similar. My clients described me as a very talented developer. An excellent source of proposals despite my young age. A terrific ability to “think outside the box” to solve many problems. A propensity for learning new things quickly. This purposely hyperbolic description might sound like the perfect developer! Not even close.

If you ask my former clients, between 2010 and 2016, if they would be willing to work with me again, you might hear a resounding NO from most of them.

Humility is Key

I forgot the most important thing. Yes, coding is my passion. But it’s also my job. As a software engineer, there are strong expectations about my work that I tend to forget.

My first career’s goal is to be a successful developer. Being successful means different things for different people. For many developers software development is about delivering value for the end user. I share the same definition. You achieve this by writing code. Code that needs to be readable, understandable, scalable. This kind of sound quality code takes time to write, and as we all know: time is money. It’s then tempting to write code that just works. The new feature got released in record time! The product owner is happy! The financial department is happy! The end user is happy! With a sense of accomplishment, the developer is happy!

But if you are so passionate about coding that it hurts you to write code that is “just” good, you’re not happy, and it might be a problem. You strive for perfection. After all, you’ve been developing since an age where many other kids were playing in the backyard. You really can’t write “average” code. Don’t get me wrong, I’m not saying that every passionate developer wants to write perfect code. Perfect code like all kind of perfection does not exist. But as many passionate self-taught developers, you can fall in the “I know better ways to do that than you and I NEED to do it that way” trap. The main issue is that you now write code for you, not for solving the end user problem. To tackle this, you need to embrace humility.

Humility is not a thing you’re going to learn at school. University favor competition between students. The primary objective is to prepare the students for the competition rolling our world of work. But humility is key. It’s the humbleness that gets you across the fact you don’t know everything. The humility opens your ears so you can hear your “not so passionate” co-workers sharing their experience. Experience trumps everything. In an ever-changing environment, specifically in the JavaScript landscape, humility is what pushes you to learn new things, because you are aware of all the things you don’t know. Last, but certainly not least, humility makes you understand that the things you don’t know you don’t know are where the knowledge hides. Humility will make you a way better human being and thus a better software developer.

Pierre Criulanscy

Written by

French fullstack JS developper @Le_Figaro

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade