I am going to become a software engineer - and I'd like to be a good one
Tags: personal, career, firstpost
Published: 2024-04-27 09:34:08

## Reflection on the past decade and a half
I've been trying a lot of different professional fields for the first 15 years of my adult life: I've been a teacher, a nurse, a sailing instructor, a manager, an environmental advocate... but I've struggled to find one that fitted.

Still, through the years, something always came back creeping up on me: computers.
During my college years, I've worked in a computer repairshop to make ends meet, and I've liked it a lot.
During my nursing school years, I've discovered Linux, the FOSS ecosystem and the joy of messing up config files, writing bad bash scripts and doing it all again because I had rendered my system unusable. I still do it and I still enjoy it.
When I was a sailing instructor, I had a lot of free time in the winters. Some were spent helping out family and friends, hiking, temping in construction... and during the last one I enrolled in a webdev bootcamp (Ruby/RoR/HTML/CSS/JS). And I loved it. It was hard, there were a lot of new things to understand, the days were long and there was a ton of homework to go through after that, but it was great and exciting.
When I worked for an environmental NGO, I had to set up a kind of custom CMS made of no-code tools with as little paid licenses as possible - I learned a lot about APIs during that time. Although the no-code constraint became more and more frustrating as our community grow and our needs complexified, I enjoyed building a real system that was actually used in production (when it wasn't down because of my mistakes anyway).

I feel very grateful for this part of my life: I was born with a good share of privileges which made it possible to try and try again, to make mistakes along the way knowing that I would never have to face homelessness or racial/gender-based discrimination.

## What I've learned about my professional needs
**A team of peers**
I don't want to be the only person able to do my job, I need to have people to discuss, think, disagree, try things with. When left on my own, I'm much less productive and happy.

**Reasonable challenges**
I love having to solve puzzles, whether they're technical or human. It's what drives me to learn new things and to get better at what I do. It also keeps me engaged - I will get bored and unproductive if I have to do the exact same thing over and over. But I need to have the resources to rise to the challenge - this can be time, access, equipment etc. 

**Quality work**
I want to be proud of my work. I have no interest in churning half-assed stuff whatever the reason is - I've done it a few times and I'm definitely done with it. I don't need my work to be perfect, but I need it to be good enough: first and foremost for me, and then to others.

**Reasonable management**
I've had a few experiences where my managers were actual people who understood that management is a relationship: as such, it needs to include discussions with both parties to try and make it better. It doesn't mean I always got what I wanted out of it, but I felt seen and respected as a human being.

**I want money**
I've experienced different periods of being poor in different ways, and I'd rather not do it again. I don't want to be a millionaire, but I want to be able to afford organic food, travel by train instead of car or plane (train is a lot more expensive than the two others where I live), make rent easily, be able to help out family or friends in difficult times and donate to a few NGOs. This world is stressful enough, I'd rather not add financial difficulties on top.

**Free time**
There are a lot of things that I deem more important than the work I do for the company I work for. And I want to have enough time to do it. Part time and part-remote are ways to ensure that.

There are many other little things, but these feel like the lessons I had to learn the most - either because good management seems a rare thing or because I was so sure I worked better on my own.

## Software engineer?
This career path crosses a lot of boxes that are important to me: I find the subject and the puzzles interesting, lots of jobs are in dev teams, the money is okay even when working part-time, remote work is quite usual in my area and there are enough companies that I'm quite optimistic about finding some where management is not completely stupid. And thanks to my past experiences, I'm fairly confident I can be a good engineer and produce quality work.

## The roadmap
I want to start working as soon as possible to learn things by doing them in a context where they are useful.

I looked for apprenticeship programs and f[ound one that trains students to become "Java Backend Developer[s]"](https://openclassrooms.com/en/paths/884-back-end-developer-java).
I submitted my application and was accepted, I'm now looking for a company to work with.

But a software developer is not a software engineer, and I'll have to work on the side to make up for the holes in the developer cursus.
I turned to reddit to look for recommandations, and I'm quite enthusiast with the [TeachYourselfCS](https://teachyourselfcs.com/) learning track - which I started along the Java lessons.

My plan is to get the apprenticeship started in the next 10 weeks (I'm gonna have to go back on LinkedIn), and spend the next 2 years learning from different sources:
- the course material and projects from the OpenClassrooms training
- the real-life software development from the apprenticeship
- the TechYourselfCS resources
- contributing to opensource projects once I become more able to read code and understand what it actually does

## Last words
This is my first attempt at writing about myself and my plans. I'd like to keep doing it while I progress on my journey - mostly for myself at first because it's not really interesting and for others later, when I'll have more things to share about the journey and the technical matters.

How does this look to you? Are there things you've done or would do differently?