What's so difficult about being a software developer in 2023?
Published: 2023-01-31 20:08:18

A lot of interesting events happened lately. Big companies letting people go, even if they were with the company for a long time. Shocking as it is, it's been a long time coming. Software development is hard, really hard. It's not a hammer and chisel that you'd need a year to master, 5 years to become a master craftsman and a lifetime to become an artist. Programming isn't a form of art. It's more a craft than anything else. It takes time, effort and a tiny grain of talent - like anything else.

But how complex is it, actually?

## Complexity for the rest of us

I find that generally speaking, putting things into perspective helps people understand the meaning of something. That tends to sink in better. Most adults use some form of mechanical transportation like a bike, scooter, car or plane. Let's use that to our advantage.

### Learning curve

Learning to _make the computer do what we need it to do_ on the most basic level takes about the same as learning to drive a motorbike. I don't mean passing the driver's license exam, but just basic handling, maybe switching gears and turning without visiting the hospital. It's not impossible, but takes time and effort. Funny enough, young people seem more courageous. It is just easier to learn to drive a motorbike on your friend's rusty old-timer when you're 15. There's a lot of fun in the process, which helps a lot to get it right. Even if you trip and fall, the worst thing that can happen in such a controlled environment will be [_a few broken dishes_](https://www.youtube.com/watch?v=aRncrzyD5R4).

It feels like you could conquer the world! Then you learn that besides just going straight and around the block, there are rules you need to follow to limit the chance of messing things up. You learn to pass the exam and if you've spent enough time learning you will succeed. Once you're allowed to take off on your own for the first time, all of a sudden, the motorbike has like 200 HP and can do wheelie for miles on end. That, however brief, fascination either ends with someone dead or scarred enough to stop being irresponsible. That's when you either learn or fail. Generally speaking, youth goes by its own set of rules that rarely carry on into adulthood.

Once you get a bit older, a car is more what you need. So, you learn and practice passing the driver's license. This, as all drivers will tell you, doesn't make you a racing driver - far from it. Suddenly, you go slower than the motorbike, but you also carry more passengers. The responsibility rises and so does your insurance cost. In many countries, there are additional rules for drivers with less than a year of experience that include speed limits, number of passengers. In extreme cases, for the first 6 months, you might be required to have a seasoned driver to always be present in the car. You know, just to keep you safe in those rare cases you'll panic, close your eyes and let it happen. That should eliminate the urge to go all _pedal to the metal_, but we've all been there, and we've all done it, didn't we? Just this one time to see if it will do 160, empty road, no one in sight, YOLO!

### Congratulations! You're a junior!

Then there's a period of _I know I'm in control_, where you don't really think about everything you do. Instead, you let your muscle memory take over. You operate on a whole new level. You're turning the car, shifting gears in the process and accelerating - all at the same time without even thinking about it. It's all so natural, cool and easy. Switching from one car to another does take a bit of effort, but it is generally possible to even switch between different transmission types (and then to realize what an idiot you were _sticking to the stick_) and it's not that big of a deal.

### Congratulations! You're a software developer!

I'd say that most people will end their passion for driving there. There are more important things in life than realizing your youth passion for becoming the next Michael Schumacher. Not only is racing kind of dangerous, but it's also costly. And it requires significant effort to be any good at it.

But then there are situations in life where you need to go to the UK, rent a car and go to The City. Well, my friend, that's a whole different story. Nothing works the same, muscle memory works against every instinct you have. It's a horror! And then _they_ come right at you! Crazy people those Brits are! (I love you guys, you know that, right? <3). But if you do it slowly, step by step, your muscles will learn. It takes a while to get the basics off the ground. For example, the driver's seat is on the other side of the car, go figure! I dare you to try to not make that mistake the first time you'll be getting in. It's a bit funny, enlightening, stressful, but at the same time interesting and rewarding once you give it some time.

### Congratulations! You just discovered the other side! (backend/frontend)

You are still not Robert Kubica, you're a responsible citizen after all, but you can easily drive anywhere in the world. Nothing can stop you, and it feels fucking outstanding! That does mean something. It's been a long road so far, but the reward is worth the effort.

In some rare cases, you might want to make a living driving a truck. That's a cool idea, definitely not for everyone, but it pays the bills. Training is a bitch, costs a fortune and the exam is really hard. After you pass it, you don't have enough practice, but you know the rules, and you can consciously apply them to your daily routine. It's still stressful to park at the ramp, but with each time, you get more and more used to the procedures, red tape and people around you. Then, one day, you feel it's almost effortless. You make more and more money and life gets easier.

### Congratulations! You just became a senior developer!

You probably work on your own, using some kind of distributed system to find people you can carry transport for. At this point, it isn't so much about the driving, but more about handling the business. You just became a businessman, so all of a sudden your taxes look differently, you've got options you didn't have before.

For example, you now could lease more cars, hire more drivers and expand the business. It really requires great effort, and very seldom people get to run a million-dollar enterprise. But if you do, you're the architect of your own success. You can effectively communicate with all kinds of people, you're responsible enough not to do crazy moves that will cost you, or your company, its existence. You need to coordinate a ton of things, and you wouldn't believe how crazy some situations can get! If you and your business survive for a few years and keeps growing, you are among the lucky ones.

All glory be to you!

### Congratulations! You just became an architect!

You don't drive anymore, and if then very seldom, constantly on the phone, keeping the business going.

To keep things simple, let's follow that story to the end where your company grew beyond your wildest dreams, you now are the boss of all bosses and don't really work anymore. You're there, but the business is so well-designed it rarely, if ever, requires your immediate intervention. You're more responsible for the overall direction where the company should go. If it should grow or shrink, whether the fleet should go all electric or not. Those are the _important_ or _live changing_ decisions that you are uniquely suited to make.

### Congratulations! You just became the chief architect!

As you can see, up to a given level there are rules that when followed keep you on the rails. Some of those rules you will break, that's inevitable. With time, you'll learn the consequences of your choices. It's not something you can learn from someone. I mean, of course that'd be absolutely wonderful if we could transplant clones of individual synapses from someone _who's been there and done it_, but that's not how the world works. **We learn by failing**.

At one point, you might want to give someone advice that'll save them a ton of time and produce exceptional results, but it's rarely the case the person will actually follow it. They are in a different place and this advice might plain and simple be no good for them. With time, you learn how to _sell your ideas_, maybe you could become active with the local community, give a bit back to the world. After all, it feels great to help others! It feels like you can cure world hunger, AIDS and syphilis - all before lunch, with plenty of time for an afternoon golf session with the prime minister. Now, that you have a lot more time on your hands, it seems to be an adequate option for your personal growth.

### Congratulations! You just became a mentor!

That's the end of the story. The last thing is to realize where the industry is at, given the analogy.

- half of the developers have less than five years of any kind of experience, that includes the basics, maybe up to the trial period of 6 months of driving under supervision
- about 85% of developers are incapable of creative thinking
- about 75% of developers are incapable of constructive problem-solving
- nobody learns from technical literature anymore because there is no time for it. The industry learns from documentation that is half-baked and rushed to production, but has ready to copy and paste examples that you can tailor to your needs. Plus, the books are difficult to understand if you lack the basics
- the industry drastically overestimates candidates during interviews. It is not uncommon to hire someone right off the school as a senior, just because
- it pays a lot, everyone wants to make _easy_ money, and...
- the demand for new software is ridiculous!
- on top of all this, every damn car handles completely differently and is obsolete after you've learned to get it off the ground. Some drive forward, some drive forward and backwards, and some fly sideways and upside down. Literally. And there is a new model every 5 minutes, that you need to be able to handle or else you won't find a job.

## Closing thoughts

There are and always will be people who at a young age, through their brilliant minds and hard work, achieve fantastic results. But that is not everybody and is indeed an exception signifying the rule. You can always learn more, you can always get better, but that comes at a cost of time, blood and sweat and tears, and **not** because you just want it to happen.