I've read a lot of different stories from other self-taught developers who've made a successful transition into the field of software development. It was always great motivation and inspiration for me to read how others were killing it, so I told myself that I’d write a similar post once I’d landed my first job as well.
You can assume that I’ve had success landing my first job because otherwise, you wouldn’t be reading this. I’m feeling so great at the moment and can’t wait to share my journey with you.
Make yourself comfortable, lean back and let me inspire you with the following words...
For the last seven years I worked as an Electrician. My main job was to test new and old electrical devices and check if they were secure. I had a measuring device which checked if the insulation and the resistance of the ground were good.
There were days where I spent my time testing around 100 devices. Day in and day out. Every time the same motion. Unplug the old device, grab the new one, plug it in, scan the barcode and start the test by clicking the same buttons. Then start again….
My tasks alternated a bit and I was sometimes able to do something different on some days. I had to focus on solving electrical problems, repair circuit issues inside houses and build new installations. Those were the fun parts of my job.
I loved to solve problems. It gave me headaches at first, but once I got through them it was a great feeling. I felt like Sherlock Holmes hunting electrical problems instead of criminals.
The joy of putting in the work to create something new was also very appealing to me. When I saw what I’d accomplished that day I was happy with my efforts.
“So why did you decide to switch careers, bro?”
There were many significant drawbacks for me working as an Electrician.
- Working on construction sites wasn’t for me anymore
- I was always striving for more and was around people who were complaining all day but didn’t do anything about their situation
- It was easier for me to work with my head than with my hands
- I felt that I was determined to do more than testing devices and hitting construction sites
- The money wasn’t great
- All in all, I was unchallenged day by day and that made me tired of working as an Electrician
For the last three years I tested different things, trying to build my own business to quit my job. I faced a lot of challenges and learned a ton about myself and what I’m capable of.
So I tried affiliate marketing, ECommerce, dropshipping, social media marketing and health coaching. Unfortunately none of them worked out due to many factors. The most important factor was that I gave up as soon as the excitement from the beginning faded away.
I thought that I always need to have fun doing my job and didn’t consider that the process of building a business is like a rollercoaster, and is not linear. There are days or maybe weeks where I didn't feel like it and there were times where I was in the flow. But unfortunately I didn’t realize it back then.
So I jumped right to the next topic and experienced the same over and over again. At the beginning there always was excitement, but once it faded away procrastination kicked in and I lost my joy. I didn’t have the mentality to push through those times.
My First Lines of Code
During these three years I stumbled across SaaS (Software as a Service) and thought it was worth checking out. To be honest, when I tried out different businesses the fun part for me was the initial technical setup. I thought it could be the best business for me because it involved a lot of technical stuff.
But wait, would I have to code it by myself?
Of course, I knew I could pay others to build it but I didn’t have the money. Computer Science was always a subject I hated in school because it seemed pretty boring. But I always had huge respect for those who knew how to code and could interact with a computer on a very deep level.
I thought that I had to be a computer genius to be capable of doing something similar. This is a huge trap many self-taught developers fall into.
I didn’t have a specific idea for the SaaS in mind and decided to take a look at coding. So I jumped on YouTube and searched for beginner tutorials. This was around February 2018 and I saw a lot of videos were about Python.
The first tutorial I’ve ever watched was from Coding Dojo about the basics of Python like declaring variables, if / else statements, loops and functions.
I was sitting there, my jaw dropped and I felt so much excitement that this stuff wasn’t too hard to understand. Slowly the misconception that I had to be a computer genius faded away.
So I spent the whole day watching Python tutorials and was happy to get to know more and more. Learning new things has always been a great joy for me.
On the next day I searched for resources where I could learn to code online. I came across Udacity and Codecademy.
On Udacity was a free course called “Intro to Computer Science” where we built a search engine with Python. At the beginning I could follow along pretty well but the more we advanced the harder it got for me. Then I recognized that coding wasn’t always as easy as I thought. But I pushed through and was happy that I could finish the course.
I really liked Python because it had an easy syntax and helped me to learn the core concepts of programming like functions, loops, variables, conditionals, data mutation and many more.
After that I felt the urge to learn more about the basics and started a Python Course on Codecademy that was a lot of fun as well. I really enjoyed the different tasks and could write my code directly in the browser.
There was one thing left I wasn’t very clear about:
“What should I do with Python and what are my goals?”
I couldn’t answer this question and searched again. Immediately I came across topics like Data Science, Data Visualization, Machine Learning, Ethical Hacking, Web Development and Neuronal Networks. Pretty heavy stuff but I was really interested in... in all of it.
So I started with Data Science and Data Visualization. I felt pretty confident with all the tutorials I went through, but got hit right in the face. Why? I was only experienced in doing tutorials and not creating my own projects.
That’s another pitfall many beginners fall into. The real learning happens when you’re doing your own projects and have to find ways to solve your own problems. But back then I didn’t consider building my own projects.
I didn't have any clue what I should build. So I spent my time doing exercises on “Project Euler” and thought that I would sharpen my coding skills with that approach. It actually worked out but I couldn’t imagine doing this my whole life. I thought about other opportunities like Web Development but they didn’t appeal to me.
Another thing that overwhelmed me was deciding on a career path - should I choose freelancing, finding a job, studying Computer Science (many job postings for Data Science required a degree) or a new apprenticeship?
The excitement from the beginning started to fade away again and I began to think “Programming isn’t for me…”
After 3 months of learning Python I left programming being completely overwhelmed.
Getting to Know Myself and Forming a Strong Mindset
After trying out programming I took a break from all that business and programming stuff. I focused on my life, my martial arts training and my health. During that time I turned vegan and it had a huge impact on my mental and physical health. That was around November 2018.
The situation didn’t change for me. I still worked as an Electrician and the deep drive to accomplish great things was there as well. I took the time to recap the last three years and recognized the factors that caused me to fail.
- I gave up once it became uncomfortable
- I had no clear goal in mind
- My mindset was poor
- I felt I didn’t deserve success
- I was stuck in my comfort zone
- I made many excuses why it didn’t work out
- I wasn’t able to take responsibility for my life
After getting clear about these things I started to think about my next steps. I knew that I had to get my mindset right first.
I started to work with a well-known coach here in Germany. The coaching cost me quite a lot of money (between 6,000 and 8,000€) and I took a loan from my bank because this time I wanted to push myself out of my comfort zone.
I really wanted to change something and the debt always made me realize this. But generally, I wouldn’t suggest you put yourself in debt. For me, it was the best way at this time to get my little butt out of my comfort zone.
We began to set a foundation and he taught me principles to become successful. So the first weeks were about becoming clear about my goals, tools to manage my state, and developing a strong business mindset. He pushed me out of my comfort zone day by day by speaking in front of the camera, doing live-videos, closing high ticket sales and so much more.
I’m really thankful that I had the opportunity to work with him!
During these three months I also got to know myself even better, and I learned what I was capable of. I recognized that I’m a very analytical person and love to build things with logic.
Learning Web Development
At the end of my coaching, I had matured a lot but still didn’t know what I should do. But I knew that it had to be something with logic and building things.
During that time my girlfriend got a new job as a personal assistant at an agency that built websites for customers. She could work from home mostly, a goal I tried to reach the last three years with my own business. I asked her what they are doing there and she told me “they are coding websites and do the online marketing, that’s all I know”.
It was the last day of March 2019 and my girlfriend was going to bed, but I decided to stay up a bit. I went to Codecademy again because I had good memories of the Python course.
That evening I started with an introduction to HTML5. I began to write my first tags like <ul> , <h1> , <p>, <a> and <ol> and got the feedback right away. Seeing how the things I typed in looked in the browser was a joy I’d never thought of!
In other words, I was hooked right away. Immediately I knew that this was the craft I wanted to learn and build great things with. So I continued with the HTML5 course until I nearly fell asleep on my keyboard.
The next day, I woke up and felt very happy to learn that superpower of coding again. But this time I would make sure that things were different than last year. For example, I would focus on building my own projects as well and having a clear goal in mind.
With a refreshed mindset I knew that this wouldn’t be easy but I got used to working while others were sleeping or partying. I set the goal of getting a job during the following 365 days.
A New Passion Was Born
On April 1st, 2019 I made the commitment to code every day at least two hours until I reached my goal. I was active on Instagram during that time on my private account and searched for other coders. To be honest I never ever thought that there was such a big and great community of programmers!
I saw that there were a lot of self-taught developers who were killing it! Today I’m pretty thankful that I searched on Instagram for them. I also came across some of them who were doing a 100DaysOfCodeChallange. “That would be a great start” I thought.
A few hours later I created a new Instagram account dedicated to my coding journey. I wrote the first post where I defined my goal and provided a brief introduction to myself. It turned out to be the best thing to hold myself accountable. On one of the following days, I started the 100DaysOfCode Challenge.
Fueled with that new passion I continued learning HTML5 and CSS3 on Codecademy until I finished both courses and became pretty confident with my skills.
I had heard a lot about FreeCodeCamp, so I visited their website and saw that they offered certificates for different paths. I realized that this would be a great way to get some practical experience and to reward myself with that certificate.
So I took the Responsive Web Design path, completed all projects, and finally received the certificate that still hangs up on my wall. That was around May 2019.
Documenting my journey on Instagram and writing about my daily progress, drawbacks, and obstacles was a great way to hold myself accountable. The benefit that came along with that was that I slowly began to inspire others and I got to know many great developers.
After spending two straight months digging deep into HTML and CSS (with SCSS) I felt the urge to come up with a plan for my next topics. This was because I knew from my time learning Python that I could become overwhelmed with all that technology.
So I had to trim this overload on potential topics to the ones that were necessary for landing a front end developer job. That’s the power of having a goal in mind. You know where you want to go and you’ll automatically form your actions to get there.
I came up with my own syllabus doing three things:
- I found a frontend roadmap on hackernoon
- I looked up job postings and saw the requirements for a junior developer
- I asked other experienced developers (thanks to Instagram) who were working in that industry
With the help of that syllabus, I was able to cover all the important topics to land my junior developer job. A great benefit was that I was unlikely to feel overwhelmed and stuck during my journey because I had something to hold on to.
Of course, I edited the syllabus over the time and changed some details but the outline was there and that’s what kept me going.
I already knew the core concepts like functions, variables, loops, conditional statements, and data structures like objects, strings, numbers, booleans, and arrays from my time learning Python. So those things weren’t a big surprise for me. But with Python, I only scratched the surface on those topics.
Learning "Real" Programming
In the beginning, I was very frustrated because I had to think in a completely different way than I was used to. I knew that was the point where my comfort zone ended and I had to push through those barriers. I also reminded myself that this had always been the point over the last years where I had quit. But this time I didn’t feel like quitting at all.
The first project I built on my own was “Rock Paper Scissors” which took me about a week to finish. It was tough but I could reinforce the learnings from that course like DOM Manipulation and interacting with user inputs.
After I had finished it I continued with the next topics, then stopped for a while and built my own project with the newly acquired knowledge.
This pattern became pretty common along my coding journey. I took a course, learned new things, stopped for a while to build my own project based on the learned skills and continued with the course. It turned out to be the most efficient way for me to really learn coding.
The hardest project to date was the little eCommerce site with those filters. It took me about three weeks and I often had doubts if programming really was for me. But once I fought through these barriers and gave everything I had to solve the problem I experienced a high feeling that kept me going for hours. That’s the reason why there were many days and nights where I sat there and typed like crazy.
I knew that this was the ultimate way to expand my comfort zone tremendously. So I didn’t hesitate to accept his offer.
My First Steps as a Real World Web Developer
I had never thought of doing something like this after 6 months of learning web development. Normally I don’t believe in pure coincidences. Today I think my actions of being present on Instagram and focusing my actions towards my goal made this coincidence more likely to happen.
We arranged a two-week internship in October 2019. The agency was a two-hour drive away from my location and I thought it would be the best idea to book an AirBnB there. I was still working as an Electrician and I worked overtime to be able to take a week off from my extra hours. I took the other week off from my holidays. So the foundation for that internship was set up.
It was a huge push out of my comfort zone to leave my comfortable apartment and my girlfriend but I knew that it was important for my growth as a developer and as a human being. So I pushed through the resistance and got myself on the way.
I don’t know the last time I felt as nervous as on the first day before I entered the agency. From the past, I knew that the situations that made me feel anxious and nervous are the ones that were the most important. So there was no other way around. Let’s jump right into it!
The internship was amazing. I met likeminded people with strong work ethics, encountered many challenges and was pushed out of my comfort zone every day. There were evenings where I couldn’t talk properly anymore, but I liked it because I gave it my all.
As a highlight at the end of it, the CEO and CTO took me out for dinner and told me that they could imagine hiring me in the future. I was surprised and felt grateful for that opportunity. Especially because I had never thought of this happening that quick.
I learned a lot during these two weeks. After the internship, I got used to writing and read more complex code, working up to ten hours a day as a developer. Chrome developer tools became second nature and I saw what I was able to learn in two weeks.
Even up 'til today I’m still very thankful for that opportunity and for all the people I met there!
Getting Closer to My Goal
The internship had a huge impact and I recognized that working as a full time developer was the right thing for me. So I started to progress with my syllabus and I wanted to do another internship at a different company in January 2020.
I decided that my next project should involve an API because I loved to communicate with the back end. It was about a cocktail app fetching an API from a cocktail database. I spent the whole of November on planning, designing and coding it.
Getting into UI / UX design was part of my syllabus as well but the main focus was on programming. So I began learning it slowly in Adobe XD.
The reason for learning it was to understand the concepts of good web design and to make my projects look better. I still enjoy it although I’m not the most creative person out there. I feel a lot happier when I can come up with my own design and code it.
It’s also a great balance to activate both parts of my brain (the creative and the analytical). In my opinion, grasping at least the basics of web design is an essential skill for any frontend developer.
Back to my cocktail app - This project was the biggest one I had ever done and it was the most challenging. I tried to implement the MVC architecture and use the latest topics like AJAX, ES6 classes and webpack. There were many challenges where I had to mutate the data from that API. It wasn’t easy, but it made me a better developer.
The user could search for a specific cocktail or ingredient, get related drinks or ingredients based on their search result, add cocktails to a favorites list (and delete them) and receive a randomly generated cocktail out of the whole database.
After finishing this bad boy I was pretty happy that I had the guts to accomplish it. Cheering myself for every accomplishment along the way is still an essential part to stay motivated. It doesn’t matter if it’s a tiny thing or a bigger concept. As long as I make sure to move forward every day I’m reaching my goal sooner or later.
Hitting the First Plateau
To end a great and intense 2019 I learned bootstrap, cloned a few templates and was busy setting my top five goals for 2020. Number one was getting that developer job by July 1st. I also used the Christmas holidays to take a step away from coding and wanted to start 2020 with a big bang.
I also contacted around 30 companies in my local area for the planned internship in January or February. I had a few meetings with them but none of them worked out.
But this wasn’t discouraging for me at all because the reasons didn't have much to do with me. A common reason was that most companies don’t offer just a two-week internship. They offer at least three months. So I skipped the idea of doing an internship and focused more on the syllabus to land that job.
To compare Vue with other frameworks I did a few introduction tutorials on React and had to admit that I liked it much more. It was a little bit more abstract than Vue but I loved it right away. So I went over the basics of React and felt confused quite often (here we are again :-D).
But once I learned how to think in React (a skill that everybody has to learn first) I had an epiphany.
The epiphany was that right then I was on a plateau of being a good beginner and I was about to progress to become more professional.
Just scratching the surface was not enough if I wanted to progress. So I committed myself to concentrating deeply on React to become really really good at it. I would rather be very good at a few things instead of okay at many things.
This was the main thing for me to focus on in order to cross the next bridge in my developer career. The beautiful thing about programming is that there never is an end where you can say “Okey folks, now I’ve learned it all…” There is always more to learn, even with languages or frameworks you’ve worked with over the last 20 years.
So I knew that there wouldn't be a point where I’d master React but coming very close remains my goal.
Building Stuff with React
I searched for a good React course on Udemy and stumbled across the one by Andrew Mead. I had never heard of him but the rating of the course was very good. So I started learning React on a deeper scale.
The first thing I loved was the way Andrew teaches. He transfers his passion and has a talent to explain complex things in a simple way bit by bit. There are also many coding challenges along the way that force you to think on your own. I don’t think that I’d be so confident with React without taking this course. Thank you Andrew!
But just coding along with the course and doing coding challenges was not enough. So I began to create a little project every week. In January and February, I came up with a to-do list, a tip calculator, a formula calculator for electrical engineering (basic stuff) and a new version of my decision app.
The more I progressed in React the more I began to love it. I also enjoyed learning how to test with Jest and Enzyme and to implement a database like Firebase that made my apps more complex and dynamic.
A big topic (and one of the hardest about React at least for me) is global state management. There are many ways to implement global state but one of the most well-known is by using Redux.
I hated it at the beginning because I didn’t see the benefits of it by setting up all the boilerplate before actually using it. I was confused by all the new things like action generators, reducers, store, dispatch and the whole new architecture.
But my experience told me that this was a sign to learn a lot of new things and to become a more skilled developer. So there was no other way around for me than to learn it. I took some basic tutorials on YouTube and slowly began to really understand how it’s used and why.
Pushing through that wall and finally understanding difficult things gave me a great feeling. This won’t change in the future. I realize that it isn’t as tremendously difficult as I had thought before. That’s what I usually keep in mind when I encounter difficult tasks and find ways to understand it.
The Best Things Come When You Least Expect
I had a plan for that first half of 2020 to land a job. I wanted to create more projects, a great website, prepare for job interviews and to reach out to fifty companies in my local area.
I had decided to decline the job offer from the agency where I had done my internship because I didn’t feel like building online shops all day and wanted to find a job in my local area without moving. But I made very cool connections and we are still doing hackathons together or chatting on Instagram.
There was still a lot of work to do and I knew that this would require more dedication than before. As I scrolled through Instagram I saw an ad by a software company. I usually receive similar ads but most of them are far away from me. So I looked at their profile and saw we were in the same city.
I checked my list of potential employers and the company wasn’t on it because I had never heard of them. Their profile and website looked cool and I wrote them a quick message saying that I like their appearance.
I shot a few messages back and forth. They were looking for a passionate developer and I was looking for a company with a modern culture and a cool environment. So we arranged a meeting where we could get to know each other.
Like the internship in October 2019, I didn’t see this coming and was blown away by the next “coincidence”. Slowly I became pretty nervous but I knew that this was the right sign again!
As I stepped into the company I immediately felt that there was a great atmosphere and was welcomed by one of the owners. We sat down and talked a lot about coding. The mood was very relaxed and I could just be myself.
It was a great pleasure to talk with someone again who shared the same passion for programming as I do. The other owner came in and began to talk as well. I liked them both and their approach to modern work.
This was always a key factor for me finding a new job. I always wanted to work in a company with flat hierarchies, modern working culture, new technologies and people around me who wanted to progress like me. It seemed that I could find those values right there. We arranged a day where I could spend the whole day and see how they work.
Funny enough, two other companies where I wanted to do an internship mailed me that they were open for a one-day work trial. I agreed on that and had three days of getting to know three different companies in one week.
Touching My New Job
Nervous and anxious again I started my first one-day work trial and one of the owners told me about their current project building an awning configurator. I was blown away by all that input but was happy that I could understand some things. They were working with React as well in the front end which I really liked. I felt the passion they put in and could relate to it.
I talked to the front end developers, the back end developers, the designers, the apprentices and looked into their work. They all were very cool human beings and gave me respect for my journey. I appreciated this a lot.
The other work trials were at another eCommerce agency and an agency who built websites and did online marketing. I also met great people there and knew I could learn a lot, too. But neither of them had what I was looking for.
So I made the decision to go for the first company I had discovered by coincidence on Instagram. I messaged one of the owners that I could imagine working there. Surprisingly he said the same and was satisfied with me.
Wow – this all had gone so quickly and relatively easily that I couldn’t have imagined it. I think one major advantage was that they could look over my Instagram feed and see that I was taking it seriously. That’s one of the reasons why I didn’t have to write an application at all.
But it wasn’t official yet. We had to arrange some paperwork like salary and that kind of stuff. This process still took another two weeks where I couldn’t sleep well because I was so damn excited.
I sent them my expectations, a quick CV and a motivational letter to give them a deeper impression. A few days passed by where my nervousness was at its peak.
I was so close to reaching that big goal of landing a developer job after one year of hard and dedicated hustle. I had worked early in the morning before work, through the nights on weekends and on evenings after work instead of spending time with my girlfriend (mostly). I had made some sacrifices along the way and concentrated my actions towards that goal.
And here I was, one year later and about to land the job without the stress of applying, getting rejected and doing job interviews.
The Call that Changed Everything
A few days later after I sent out my documents I received a call. It was a Monday while I was doing my work as an Electrician.
“Have they declined my offer? Was the salary expectation too high? Did they find some else? …” went through my head.
One of the owners talked to me and told me that they could meet my expectations and would like to employ me as a front end developer in July 2020. WOW! It had finally happened and I couldn’t say much during that call. I thanked him a lot and it fell awesome that my dedication had finally paid off.
Of course there is still so much to learn and this is just the beginning of it all. I have big goals in my life with coding and the first step into that field is done.
To be honest I never thought that landing my first developer job would be so smooth. There are many others who encounter more struggle and stress, but that’s okay. I’ve got huge respect for them!
Reasons Why I Didn't Have to Write an Application
The number one reason was my Instagram Account. Through my posts and activity on there, I was able to show that I was serious about learning and getting a job. A cool side effect was that the employer could see what I was capable of doing because I documented what I was learning and shared projects I was working on.
I was also quite lucky that I got to know the company through Instagram and didn’t have to cold call them. So, I recommend everyone to set up some type of social media account. It’s a powerful weapon in your toolkit which separates you from the majority.
It’s not granted that you’ll never have to write an application – but it makes you special in the recruiter’s eyes if you’re going the common way of landing a job.
Another reason why I landed the job was because I was actively working towards that goal. In other words, I concentrated my actions on landing a job. When you focus your thoughts and actions towards a specific goal you’re making luck more likely to be on your side.
One of the greatest pieces of advice I can give you is to create a social media account and start putting out content while you’re coding. It can be anything.
For example, start a blog where you publish small articles about your learnings (side effect: it helps you to really understand the topic). Post on Instagram and Twitter or create YouTube videos where you talk about coding and share insights of your journey.
It doesn’t matter if you’re starting out or have got several years of experience under your belt. But try to find something which doesn’t consume more time than (learning) programming. It wouldn’t make sense to spend 20 hours a week on putting out content and only three hours on coding. Do something which is quick and easy for you and doesn’t take more than 30 minutes a day.
No shame about putting yourself out there. You’ll be invited to a worldwide network of other awesome developers!
If you’d like to know more about me and my life as a developer feel free to check out my Instagram @jean_marc.dev