“I’m sitting in a café in the heart of Madrid, having a cup of coffee, tapping away at my laptop while it rains outside. In a few moments I will walk into my first day as a front-end developer. 10 months ago I was an English teacher in Granada who knew nothing about programming, and now I’m here. How did this happen?”
These were my words of excitement as I prepared for my first day as a front-end developer. Just under a year prior, the world of code was completely foreign to me. If you’re wondering How To Switch To A Career In Computer Programming, and perhaps feel like it’s a distant dream, let me share my journey with you. It’s a testament to the fact that with dedication and the right approach, changing careers to computer programming is absolutely achievable, even if you’re starting from scratch.
Debunking the Myth: No “Special” Requirements
When I first entertained the idea of becoming a developer, I, like many others, would read success stories with a degree of skepticism. I’d subconsciously search for that “special ingredient” in the author’s background – some inherent trait or experience that predisposed them to coding success, something I believed I lacked.
However, through my own experience and observing countless others, I’ve come to realize that this notion is simply untrue. There are no “special” prerequisites to embark on a career in computer programming. I won’t sugarcoat it; the path demands effort and commitment. But the encouraging truth is that the necessary ingredients are within everyone’s reach. Success in this field hinges on qualities accessible to all: a willingness to work diligently, a thirst for continuous learning, and unwavering consistency. You need the grit to persevere through challenges, to silence those moments of self-doubt when you question your capabilities. That’s the real formula, and it’s a formula anyone can adopt with practice and determination.
My starting point was completely unrelated to technology. I had no prior formal education in computer science, no savings for expensive bootcamps, a demanding full-time job, and wasn’t exactly in my youth. While everyone’s circumstances are unique, my journey underscores a universal principle: if you set your mind to it, a career change to computer programming is within your grasp.
My Journey: From ESL Teacher to Front-End Developer
On the day I wrote my very first line of code, my programming experience was precisely zero. My professional background was quite diverse and seemingly unrelated. I began in the fast-paced restaurant industry, then pursued a degree in Music Technology, followed by a decade teaching English as a Second Language (ESL) in Spain. I wasn’t even particularly tech-savvy beyond basic computer usage. Yet, I always held a fascination for technology’s potential and admired programmers as modern-day problem solvers.
The thought of becoming a programmer myself, however, never seriously crossed my mind. I mistakenly perceived coding as an exclusive domain, reserved for individuals with exceptional intellect and elite university degrees. While such individuals certainly exist in the field, the vast majority of developers are not the stereotypical “Hollywood hacker” type. Computer programming is far more accessible and inclusive than I initially believed.
Diverse Background, Transferable Skills
My career path, while unconventional for a programmer, actually equipped me with valuable transferable skills. The restaurant business instilled in me the ability to work under pressure and solve problems quickly. Music technology honed my analytical and creative thinking. And teaching ESL cultivated patience, communication skills, and the ability to break down complex concepts into understandable parts – all surprisingly relevant to software development. Don’t discount your past experiences; they often hold hidden strengths applicable to your new career.
The Spark: Inspiration and Discovery
The catalyst for my career change was a conversation with my partner. She was researching the underrepresentation of women in STEM fields, particularly in technology. Driven by a desire to be a role model, she decided to learn programming herself. Her initiative sparked my own curiosity as we began to discover the wealth of accessible learning resources available. Programming, we realized, wasn’t an arcane art but a learnable skill, a craft we could master.
Spoiler alert: my partner also successfully transitioned into a developer role, landing a job a month before I did!
One day, in a science museum, we stumbled upon a children’s book about programming. Intrigued, we returned home, opened a simple text editor, typed <h1>Hello World</h1>
, opened it in a browser, and then, with sheer amazement, changed the color to red. We were ecstatic! It felt like magic!
From that moment, I was captivated. I wanted to build things with code, to instruct computers to perform tasks I defined.
Why Make the Switch? Seeking New Challenges
At that point, I had dedicated eight years to teaching, a profession I genuinely enjoyed. This isn’t a story of escaping a dreaded job. I loved working with children, found my workplace fulfilling, and derived satisfaction from my role.
However, even when you love something, there are times when you instinctively know it’s time for a change. I felt I was entering a new phase of life with evolving aspirations. Above all, I craved a fresh challenge, something to push me far beyond my comfort zone and stimulate intellectual growth. The prospect of a career in computer programming offered exactly that.
Crafting Your Path: Key Steps to a Programming Career Change
There’s no singular “true path” to career change success. Around the same time my partner and I started learning to code, a close friend also embarked on a similar journey. All three of us are now working as developers, yet our learning approaches were vastly different. Each of us gravitated towards materials and methods that resonated personally. The common thread uniting our experiences was simple: unwavering persistence and hard work. We didn’t give up, even when faced with setbacks.
So, instead of presenting a mythical “one true path,” let me outline the steps I took. It’s not the only way, nor necessarily the best, but it’s what worked for me, and it might provide valuable insights for your own journey of how to switch to a career in computer programming.
Getting Started: Exploration and Initial Learning
My initial step was to immerse myself in information. I devoured articles and watched countless YouTube videos about programming to gain a foundational understanding of where to begin. I then started experimenting with HTML and CSS. Following online tutorials and coding along, I built basic web pages. This hands-on experience solidified my interest and showed me that programming was something I genuinely wanted to pursue further. Platforms like freeCodeCamp, Codecademy, and Khan Academy offer excellent free introductory courses to get your feet wet.
Setting Clear Goals: Focus and Deadlines
Seeking guidance, I reached out to friends already working in the software development field. Their early encouragement and practical advice were instrumental in maintaining my motivation and focusing my efforts towards a clear objective.
Navigating the vast landscape of programming options can be overwhelming. It took time to research and define realistic goals that aligned with my situation. I needed a relatively quick career transition as I couldn’t afford a prolonged period without my existing income. Maintaining my teaching job while studying was crucial.
I decided to focus on front-end development, recognizing it as a highly accessible and in-demand area. Further narrowing my focus, I targeted the skillset needed for a job in a startup environment, rather than pursuing freelance opportunities.
Then, I set a firm deadline. I didn’t want this ambition to become another item perpetually lingering on a to-do list. It was spring 2017, and I resolved that the upcoming academic year would be my last as a teacher. By September 2018, just over a year later, I aimed to be employed as a programmer.
It would be disingenuous to claim I had everything perfectly planned and under control at this stage. Doubt is an inherent part of making a significant career change. Uncertainty lingered throughout the process. However, persistence became my guiding principle. Once I made the decision, I was determined to follow this path and see where it led, regardless of the obstacles.
Immersive Learning: Bootcamps and Consistent Study
I understood that dedicated study was the only way forward. With a full-time job, waiting for “free time” was never going to be an option. Learning had to be integrated into my existing schedule. I was fortunate that my partner was also learning to code simultaneously. This allowed us to structure our days to maximize study time. Initially, we implemented “weekend bootcamps,” dedicating entire weekends to coding. A typical day during these bootcamps looked like this:
8:00 AM: Wake up, breakfast.
8:30 AM: Start coding.
12:30 PM: Gym break.
1:30 PM: Lunch and a short break.
3:00/4:00 PM: Resume coding.
8:00/11:00 PM: Finish for the day.
When summer vacation arrived, I intensified my efforts, transforming the “weekend bootcamp” into a “daily bootcamp.” I adhered to this rigorous schedule diligently, resisting the allure of summer leisure.
Upon returning to work in September, I made a conscious decision to reduce my work hours, accepting a lower income in exchange for more study time. This was another step to solidify my commitment to this career change and prioritize my learning.
It’s difficult to convey how challenging it was to be away from coding during work hours. All I wanted was to be back at my computer, resolving coding problems and refining layouts. But the demands of daily life intervened. The start of a new school year is always demanding for teachers, requiring significant time for preparation and organization, often extending into personal time.
Overcoming Challenges: Maintaining Momentum
That period presented a real threat to derailing my mission. Despite my best intentions, coding time dwindled. Momentum began to wane. I tried to maintain consistency, but some days simply lacked the necessary hours. Even with strong motivation, life can complicate the best-laid plans.
My activity on GitHub showing the dip in October
However, as my GitHub activity illustrates, I persevered. I continued to dedicate time, even if it was just an hour, even if it meant just reading a programming article. I consciously fought against complete inactivity, knowing that prolonged breaks make it exponentially harder to resume learning.
As December approached, the looming new year and my approaching deadline spurred renewed energy and organization. I doubled down on my efforts, prioritizing coding hours regardless of fatigue or time constraints. Sometimes, I’d wake up early to code; other times, I’d work late into the night.
My life became largely confined to my income-generating job and studying. Little else remained. This intense rhythm persisted until the spring of 2018, when I began preparing to move to Madrid – several months ahead of my self-imposed deadline.
Essential Tools and Resources for Aspiring Programmers
During the ten months leading up to my job offer, I fully immersed myself in the world of code. The most frequent question I receive on Twitter is about the specific resources I utilized. I’ve detailed these in another article, but here’s a concise list of the most impactful tools and resources that proved invaluable in my journey of how to switch to a career in computer programming.
Online Courses: Structured Learning
- freeCodeCamp.org: An incredible free resource offering comprehensive curricula in web development and more.
- Udemy Courses (Cassidy Williams and Colt Steele): Affordable, high-quality courses covering a wide range of programming topics.
- Wes Bos’ JavaScript 30 and other courses: Focused, project-based courses, particularly excellent for JavaScript skills.
- YouTube (Traversy Media, LevelUpTuts): Free video tutorials covering diverse programming topics, perfect for visual learners.
- Lynda.com/LinkedIn Learning (Christina Truong): Professional-quality courses covering various software development skills.
- Udacity Front-End Nanodegree: A more intensive, paid program (I received a scholarship from Google), offering structured learning paths and career support.
Courses provide structured learning, but practical application and community support are equally vital.
The Power of Community: Twitter and #100DaysOfCode
- Twitter: A cornerstone of my learning experience. The supportive and welcoming #100DaysOfCode community was particularly impactful, providing motivation, encouragement, and a platform to share progress.
Building Your Portfolio: GitHub and Personal Projects
- GitHub: An essential tool for version control and collaboration, and where I hosted all my coding projects for free. It’s often the first place potential employers look to assess your work.
- Portfolio Website: Building my own portfolio website and other self-initiated projects was where I acquired the most crucial development skills. These projects showcase your abilities to potential employers far more effectively than course completion certificates.
For a more comprehensive list, you can explore my My Learning Tracker GitHub repository, which details all the resources and learning paths I used during those initial ten months.
Landing Your First Programming Job: Strategies and Insights
Surprisingly, for me, the job search phase wasn’t overly arduous. I didn’t send out countless applications or spend endless hours job hunting. Instead, I opted for a selective and focused approach, prioritizing quality over quantity in my applications.
Ultimately, I went through five interview processes. I received one rejection and didn’t complete the take-home challenge for another. However, I successfully completed three, receiving job offers from all three. One offer was clearly less appealing. The other two, arriving almost simultaneously, were both highly interesting. One of these became my current role.
I don’t intend to sound dismissive of the challenges of job searching. It was an intense and nerve-wracking period. I was still uncertain if my skills were truly employable. Entering interviews, I worried if my lack of formal experience would be a significant disadvantage. Despite the anxiety, it was also an exciting and hopeful time. Receiving two excellent job offers was an unbelievable and elating moment.
I will forever be grateful to the individuals who made those hiring decisions and gave me a chance to prove myself.
The interview processes at the two companies were distinct. One involved a series of video calls with various team members at a well-established company looking to build a new front-end development team. After several weeks of discussions, they extended my first job offer.
The other was with a rapidly growing startup. Following a phone interview, I received a technical challenge to complete within a few days. It involved building a component, making API calls, and displaying data correctly. This was followed by a video call to discuss my code. Finally, I was invited for an informal meeting with the tech team to assess team fit. Afterward, I received an offer to join as a junior front-end developer.
Ultimately, I had to make a choice – a luxurious position I hadn’t imagined possible just months before. I chose the startup, Lola Market, based primarily on their clear emphasis on mentorship and providing guidance for junior developers to learn and grow. It proved to be the right decision.
And so, on that rainy day in Madrid, after finishing my coffee, I walked into an office, introduced myself as the new front-end developer, and began my new career.
I hope my story has been helpful and inspiring as you consider how to switch to a career in computer programming. Remember, your journey is possible with dedication and persistence. Take the first step today!
Check out my article about all the resources I used to get this job.