Since the new year just started, I can imagine that now more than ever there are a lot of people trying to motivate themselves to learn how to code and start a career in software development. Not long ago I was in the exact same position as you are right now and the articles shared here helped me tremendously to stay motivated while I was working towards becoming proficient enough to be employable.
I want to give back to this supportive community by telling my story. Maybe it will help some of you to get through the hard and lonely times when you are learning a new concept. Those moments when nothing is working how it should and you are doubting whether this profession is really something for you - I have been there too, many times.
But first let me introduce myself. My name is Ramin, I’m 28 years old, I’m a medical doctor and I live in Berlin. It took me about 2 years from the start of my journey to signing a job contract. Today, I work as a Full Stack Developer at Doctolib – something that was unimaginable for me just the year before I got the job.
My story starts at the end of medical school. Before university, I spent 1 year in high school learning some basics of coding. I didn’t remember any of what I learned about coding there. But that’s not why I went back to coding. No, I had a different motivation. At the end of medical school I realised I didn’t want to practice medicine - I wanted to help the system change and advance. Health care systems all over the world have grown in complexity but have not been digitised like other industries. I feel that this weighs heavily on health care professionals who spend a significant amount of their time filling out paperwork and keeping track of data manually. With this feeling I started looking for a skill that would help me be able to make a positive change and this is where I discovered coding.
My last year of medicine – like in many countries – was basically a year long internship with a higher level of responsibility than usual. Every day after returning from the hospital I would learn HTML, CSS and JS on FreeCodeCamp and similar free sites – learning the basic concepts, doing the exercises and creating little projects like the infamous tribute page (mine was about Oliver Sacks).
It was not easy and I felt that I was advancing very slowly. A lot of blog posts have the advice that a newbie just needs to build tons of little projects but I had no idea what to build. On the weekends I went to meetups to find some people who could mentor me but unsurprisingly the meetups were full of newbies like me and there were almost no senior people.
But it was not just this personal frustration with my learning path that weighed heavily on me. On top of that my social environment seemed to dislike my idea of a career change. My friends kept thinking I was joking when I told them about my idea to work in tech and most of my family couldn’t believe why anyone would give up on a profitable career path as a doctor. With a few exceptions everyone around me was telling me that I was making a mistake. I started entertaining the thought that becoming a developer is maybe not as realistic as I had first imagined. Maybe the blog posts that told me it was easy to get a job as a developer were lying?
I finished medicine being completely in doubt about what would come next. I worked night shifts in hospitals and elderly homes as a backup assistant – that is when the hospital doesn’t have enough staff. I knew if I started a full time job as a doctor my opportunity to become a developer would be gone. These were probably the hardest months of my journey. It is a hard journey for most of us. Don’t let anyone tell you it is easy to change careers. But even with all of the personal pressure and frustration the journey was worth it!
Luckily, something wonderful happened to me that got me out of my negative mindset: I met Mostafa. Mostafa had just moved to Berlin from Gaza, after getting a job at a blockchain company that was willing to sponsor his visa. Because of all the opportunities he had from coding, he wanted to give back by trying to help people to become developers! Here I was sitting with him in a cafe in the center of Berlin just because of a person I knew that knew him – one of the luckiest days of my life. Mostafa told me right away the facts: it is possible to get a job as a self taught developer, it is not easy but by learning the skills companies are searching for, it is doable. This message changed my mindset completely. It was not some message I read online but a real person telling me that I could do it. He started mentoring me. Every two weeks I got a little assignment and I needed to hand in code. Mostafa tried to find the time to look into the code and to tell me what to improve.
The curriculum was straight forward - it mostly got me to building stuff and I started taking my embarrassingly simple code seriously. We stuck to HTML, CSS, React and ExpressJS – “If you can become a Full Stack Dev with just JS why learn any other language as a beginner?”. Mostafa pushed me to understand every part of the web stack from frontend to database in a practical manner. I think one of the most important things I learned in these days was that some topics are more or less neglected by the self learner community. One of the most neglected topics is testing and how to test an application well. When you build a dummy project you usually don’t want to waste precious time on tests but you need to realise that this is actually very important. Get into the routine of testing your projects! This will help you a lot. Spending time on learning how to test things properly is time well spent.
From then on I spent most of my free time in the library with my laptop. It helped to have a schedule and a work like environment. My learning habit turned from sprints interrupted by frustration into a marathon. The key to this was that I was finally convinced that I could reach the goal and that all that matters was how much time I spent on getting there.
A year after I finished university – after having worked on dozens of little projects – Mostafa told me that I knew enough to start looking for a job. It took me a bit of time to get going and to understand what was important. The whole application process is definitely different from medicine. The CVs look different and the interview process is very specific to the industry. I took another month to prepare specifically for the technical interview part. You can find a lot of resources on this topic online and it helps a lot to prepare this part well. If you want to start preparing for technical interviews the best way to build up confidence is to solve problems on pages like LeetCode. As much as developers complain that these coding problems are artificial and far from the day to day job the truth is that they are widely used and that good preparation pays off tremendously.
After the month of preparation came the big day and I started applying for jobs. It was daunting and I was filtering out too many job offerings but then Mostafa told me: “Don’t think that if you don’t apply you can avoid rejection. If you don’t apply you are already rejecting yourself. Take the leap and apply! In the worst case you learn how to improve your application.” With this empowering idea I went back to the job offerings. I discovered a company that fascinated me in the medical sector called Doctolib. Doctolib builds software for practices and hospitals and enables patients to book appointments online – I was hooked! I wanted to be part of this project and I hope you find projects you want to be part of just as badly. Then I took the leap and applied. The application process that followed was an emotional rollercoaster ride on which you can read more on Doctolib’s engineering blog. After I made it through the process Doctolib decided to hire me. I arrived at my goal. I couldn’t believe that I really made it happen.
What I want to tell you with my story is this: persevere! It is not an easy journey but it can lead to wonderful opportunities. If you enjoy coding, stay on this path. People will say that you can’t do it and that you are too old and not smart enough and whatever. This is all not true. They have no idea. Sit down in front of the computer, find a part of the software universe and a language that you enjoy and learn as much as you can about it! Keep learning, push yourself to build small projects and you will become a professional developer! There is really no doubt about that.
Two last pieces of advice.
If you are in doubt about what is needed to get a job, read job offerings for junior positions. Do this calmly and don’t make yourself feel bad for not being there yet! Create a list of things that you need to have basic knowledge about and start learning little by little.
If you are about to change careers but you feel too old for it I have one additional idea for you: coding is like writing text. You learn to read it and write grammatically correct sentences, you learn about different structures like essays and many other technical things. But code in itself is not content and that is where your previous experience comes in. If you worked in law find a law tech company, if you worked in finance find a fintech job. All of these new companies need expertise and pay a lot for it through user research and consultants. Leverage your knowledge and be the developer that says “Maybe we could add this functionality here to make our new feature easier to understand for our users”. Tech companies need your domain expertise to build better products!
If you have questions or want to know more feel free to ask in the comments section. I would be happy to hear from you!
Thanks to Tevin Otieno and Elise Peter for reading a draft of this post.