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.
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…
“Choose a job you love, and you will never have to work a day in your life” — Confucius
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 makes you understand that the things you don’t know you don’t know are where the knowledge hides