Introduction
I believe one of the most common experiences in life is realizing that we no longer belong to a place that once made us feel good. This kind of change is always complicated, especially because, most of the time, it takes us a while to notice that we no longer fit in. But eventually, if we want to keep evolving, we have to choose change.
For almost ten years of my life, I dedicated myself to education. I completed two degrees focused on teaching: Literature and Pedagogy. That meant eight years of academic study, in addition to nearly a decade of classroom experience. I had literally devoted my life to it. But when I turned 30, I realized I no longer fit in that environment. And then the question came: what now?
That’s when I started rethinking my life and the possibilities ahead of me. And, as often happens to all of us, I found myself looking back at my past to try and find answers for my future. And would you believe it? I remembered taking an HTML and CSS course when I was about 14! I had even applied for Computer Science in college, but ended up choosing Literature instead. So maybe that was a path I could take now. And off I went…
Some unplanned choices in my life helped guide me, too: my husband and many of our friends have degrees in Computer Science, so I had people to talk to about this transition. Plus, I was on a sabbatical year, which gave me the time I needed to dive into studying.
So, after talking to many of them, I created a study plan and started working toward becoming a front-end developer.
Part 1 – Studying
Once I had a roadmap of which technologies and programming language I wanted to focus on, I got started. At the time, I used a free course called freeCodeCamp starting with the front-end track, which was my initial goal. The course itself is quite basic, but it helped me understand some fundamental concepts and, more importantly, served as a guide. I used it to take notes on other technologies and topics I would need to study as well.
I also relied heavily on official documentation for the tools I was learning, and I used MDN a lot. Actually, I still use it today! It’s an excellent resource for learning and for clearing up questions about what certain JavaScript methods can (or can’t) do for us.
I dedicated eight hours a day, Monday through Friday, to studying. And that’s how it went for six months, until the opportunity to join the CodeMiner Trainee Program came along.
I have to be honest here, just as I was back then with the friend who referred me to the program: six months is not enough time to become a developer. I know many courses out there sell miracle programs and easy solutions, but that’s just not the reality for most people. I knew I would have to keep studying a lot, on my own, to keep improving and reach even a basic level where I could work with a real client. And that’s exactly what I did (and still do): I make sure to reserve time in my routine for studying.
Part 2 – The Trainee Program
It was when I joined the Codeminer Trainee Program that I realized how important it is to study on your own, but also that we only truly grow as developers within a community. As helpful as great learning resources can be (and I had some good ones), being part of a community helps you discover new concepts, discuss different approaches, and learn best practices.
Writing code that works is relatively easy, but is that code readable? Is it easy to refactor? If someone reads it a few years from now, will they understand it? That’s where best practices come in, and to learn them, we need qualified people to guide us. That’s exactly where the trainee program played a crucial role for me.
The idea behind the program wasn’t just to teach us how to code, but to teach us how to write good code: code that’s not only performant, but also clean and readable.
Part 3 – The first client
The first client is never easy. It’s our first real contact with production code, with very specific deadlines for when a new feature needs to be up and running. And even if we’ve studied these things before, it’s often also the first real experience with sprints, team organization, and learning how to work collaboratively.
You quickly realize that there’s a lot more to it than just code. It’s a very different experience going from studying alone → to studying in a group → to working with a real client. Things start to scale, and no matter how much you’ve studied, there’s always something in a real project that catches you off guard.
In my case, my first client was working on a microservice inside a larger company. Codeminer was responsible for creating components for a dynamic form, where each client could choose which fields should be displayed. During this project, I was able to fix bugs, write E2E tests with Cypress, and eventually started building larger screens. But shortly after that, I moved to another client. I stayed on that project for just four months, but it was a key experience that helped me understand what working with real production code was going to be like from then on.
Still, my performance during that first experience wouldn’t have been nearly as strong without the support of other Codeminers who were already working with the client, and especially without everything I had learned during Codeminer’s trainee program. Studying on my own simply wouldn’t have been enough, it was the trainee program that truly prepared me for working with a real client.
Part 4 – Working with the same client for a few years
Now, I’ve been working with the same client for over two years. Over this time, I’ve gone through many changes within the project to get to where I am today.
I first joined the project because I had learned Cypress with my previous client. And here’s another important lesson I learned: you never know which technology will open the door to your next opportunity. In this field, refusing to learn something on a project often means closing a door to your future.
After Cypress, this company asked if I wanted to learn React Native to help build their mobile app, and once again, I said yes. But always with honesty. Pretending to be an expert in something you’re not will always backfire . On the other hand, showing that you’re open to learning new tools and languages is always well received.
Then, after almost a year and a half working with React Native, I joined the client’s web team, where I now have additional responsibilities: writing code, helping new developers onboard, drafting technical documents for new features, creating tickets in short, over the years, I’ve gone from just someone who writes code to someone who knows the company, understands the product, and actively contributes to shaping the team.
But none of that came for free. It took a lot of studying, many mistakes, learning from failures, and constantly pushing myself to do things I had never done before, just to keep learning and growing. And I wouldn’t have been able to make this journey without the solid foundation I built during Codeminer’s Trainee Program and my first client experience. That combination, the hands-on training and mentorship I received as a trainee, along with the practical challenges I faced early on, gave me the tools and confidence to work across multiple technologies and grow into the role I have today.
Part 5 – What now?
The only thing I’m certain of moving forward is that, in this field, knowledge opens doors, and it’s always essential. Having a community that encourages us to keep learning and helps us stay up to date is just as important.
Focusing only on the technologies we use with a current client can be risky because we never know what the next challenge will be, and new tools and paradigms are constantly emerging. Forming study groups, whether at work or with friends, is extremely valuable and helps us grow faster.
Also, although at first we often have to choose between front-end or back-end to break into tech, keep in mind that having at least a basic understanding of the other stack is very helpful. Over time, try to gradually become a full-stack developer, or at least build the confidence to navigate both sides when needed.
Final thoughts
Changing careers is never easy, but it’s absolutely possible. My journey from teacher to developer wasn’t a straight line, and it certainly wasn’t fast. It took time, consistency, humility to start over, and the willingness to be a beginner again.
Along the way, the support I received from Codeminer made all the difference. The trainee program gave me the foundation I needed to face my first real projects with confidence. And that support didn’t stop there: to this day, I continue to grow through internal study groups, mentorships, and the collaborative culture that Codeminer fosters. Without that structure and guidance, none of this would have been possible.
If you’re thinking about making a similar change, know this: you don’t need to know everything to start, but you do need to start. Keep learning, seek out community, say yes to opportunities, even the ones that scare you, and don’t be afraid to take detours. They might lead you exactly where you need to be.
Tech is a constantly evolving field, and that can feel overwhelming, but it also means that there’s always room for growth, reinvention, and new beginnings.
We want to work with you. Check out our Services page!