Being a developer has many advantages. But believe me when I tell you that it’s a long way from a ride at Walt Disney. With the exponential need for developers and the resulting explosion in training, I hear a lot of people selling the job as a Club Med holiday. So why not put a booger in the middle of the face of this perfect reputation? Today I’m going to tell you what people forget to tell you about being a developer.
A developer never rests
In most professions, you learn a lot at the beginning and then you refine your knowledge through experience. I’m telling you right now, you’re doing this as a developer, it’s like turning on the gas and closing the windows. This job is constantly changing, it’s hard and the pace is hellish. Because there’s a big problem with being a developer. Nobody told you that there is no absolute rule in terms of what you have to learn. There’s no one language you have to know or one framework you have to master. Everything is a trend. A trend by definition is fleeting. It makes you cool and sought after by recruiters one moment. And a huge slob the next.
You’re swimming in an ocean of knowledge and if you don’t swim fast enough you get eaten by sharks. So yes, you can learn nothing and do exactly the same thing in the same place for 10 years. But under these conditions, I can tell you that you are not ready for the day of the interview.
Improbable requests
Many people who manage IT projects have no knowledge of IT. This happens very often when you are in a small company. The small company wants to impress its client at a low price. They will promise the client something impossible and then come to you with a big smile. Nobody told you that you had to revolutionize the internet yesterday because of Jean-Michel, the project manager. But it happens all the time. And apart from squeezing your buttocks and trying to find a compromise, it’s hard to get out of this situation. So you leave your small company for a big one. And then another surprise awaits you.
This surprise is called over-engineering. Let me give you a simple example: you have to add a field to a form. It looks simple, but it’s not. Because the form is in a huge production portal. You already have to update the database by updating the migration script launched at the time of the build on the CI at the time of the docker build. If you don’t master bash, docker and the CI-CD, you’re not well and you’re sweating. And you haven’t done anything yet! You still have to update the backend data model, validate the UI side, add unit tests, integration tests, functional tests, pass the code review, pass the QA, deploy on all environments and finally pray that you don’t blow your brains out in production. It took you three days and you had two epileptic fits.
And when you’re not in the business or have never worked on large projects, it’s incomprehensible. From the outside you’re just a moron who can’t add a field to a form. When in fact you’ve just gone through 60 layers of tech to do this. No one told you that you were going to deal with extreme complexity and still look like an idiot. Imagine with a problem more complicated than that? Do you think it’s just for show that there are so many specializations among devs?
Expectation and reality
Many years ago, I arrived at my first internship as fresh as a breeze. I was on top of my game. In my head I thought I was going to develop the new Facebook. Sky is the limit, I’m a hacker like in the movies. And then I got a huge pie in the face.
– Yeah hi, so you’re just going to make Facebook games to suck up as much personal data as possible.
– Ha! OK. So I’m making games, that’s cool!
– But no, shut up, it’s an external company that makes the games, are you stupid or what? You’re just sucking up personal data. And frankly, we want big, dirty, hairy, emails, photos, friends, phones, you put everything in open-bar. No one reads, it clicks OK, let’s go for it.
I might as well tell you that I got out of that hellhole pretty quickly and that this company does not appear on my CV. And now I see you with your hostile look, you’re going to tell me that it’s normal at the beginning to do shitty jobs. But the problem is that it will last for a while. You have the choice between the world’s most boring retirement applications that no one wants to make or showcase sites for copy/pasted syrups. And I’m not even talking about the legacy code! A lot of people just clean up other people’s shit for a while. You’re not going to work for NASA, you’re going to clean up poop. Didn’t anyone tell you that interesting jobs are almost always reserved for experienced developers.
I mean, in a lot of people’s minds, a developer is like a hacker in a hood doing crazy things. A modern day magician who performs black magic every time he touches the keyboard. The reality is quite different.
There’s no magic. There is a lot of upstream thinking. Organising your thinking to transform a real-world problem into a computer solution via a process of abstraction that makes sense. No one told you that you spend more time thinking about a solution than implementing it. You need an absurd level of concentration. You need to maintain that concentration for hours on end alone in front of the screen. Then it’s hours spent googling error codes and reading endless documentation. Didn’t anyone tell you that this job is all about Googling all day long? With the amount of time spent on Stack Overflow and other forums you quickly realize that.
Conclusion
You must have been listening to me cry for at least five minutes. So being a developer is the worst job on earth? I’m a wretch, aren’t I? Of course not. It’s a great job and there are lots of benefits. And if you’re thinking about becoming a developer, I strongly encourage you to give it a try. But it’s far from the paradise you’ve been told it is. Let’s stop presenting this job as the ninth wonder of the world. Let’s accept the reality that sometimes it’s all mouldy. Like all jobs in the world.