DEV Community

loading...
Cover image for How I became a professional self-taught developer in Germany while working a full time job

How I became a professional self-taught developer in Germany while working a full time job

carstenbehrens profile image Carsten Behrens ・6 min read

There are many stories online from self-taught developers that share their journey.
Most of these stories are from developers in the USA.

I have never stumbled upon a story from a German self-taught developer or from someone that got a job in Germany as a self-taught developer.

Since that's exactly what I did, I decided to share my journey here.
Hopefully, this blog post will help someone to avoid the mistakes that I made and also learn from the good decisions that I made.

Basically, I want to write the blog post that I would have needed back when I started programming.

At the end of the blog post, I will give you a short TLDR of all the mistakes to avoid and tips to follow.

First I have to mention one disclaimer:

Technically I am not fully self-taught since I did finish an apprenticeship as an "IT Specialist" (Fachinformatiker für Systemintegration). I still consider myself self-taught because I did not learn any real programming during that time.

The beginning

My story is not special, I guess many of you reading are in the same situation that I was in back in the day:

I was unhappy with my career and I wanted to change that.

I was living in a smaller city at the time and as far as I knew there were not a lot of opportunities for developers there.

So I decided to quit my job and get a new job closer to the nearest bigger city in hopes of getting a developer job there once I taught myself programming.

Looking back this was a great decision, not only was I closer to the action, but it also took away some distractions. Since I was new to the city I had no friends there, and I made sure not to make any.

My plan was simple:

  1. Get a new job in near a big city
  2. Teach myself programming in one year
  3. Get a job as a professional programmer

First mistake: Getting a stressful job

So here I am, new job, new city. Everything is cool, right? Well actually no.

I didn't do my research when searching for a job. I just took the first job that wanted to hire me because I didn't want to stay there long anyway.

Big mistake.

The job was extremely stressful and also mentally taxing - the last thing you need when you want to learn to program on the side. Often I would get home completely sapped so much so that I needed a nap just so I could focus on anything again.

The schedule

Since I had my goal to become a full-time developer in one year, I needed to break this big goal down into actionable steps. So I decided that I would do three hours of programming every day besides my 8 hours at my full-time job.

When you are trying to become a full-time developer while also working a full-time job, you'll quickly realize that you don't have much time left after your job, commute, cooking, house chores, and all that kinda fun stuff are done. That's why I really started to pay attention to every minute I was spending during the day.

I also wrote down how many hours I managed to program each day so that I would not cheat myself.

During this time my ideal schedule looked like this:

Monday - Friday

06:50 - Wake up and Shower
07:15 - Commute to work
08:00 - Start work (actually I was always 5 minutes late, but let's not talk about that)
17:00 - Finish work
17:50 - Get Home and eat something
19:00 - Take a nap
20:00 - Start programming
23:00 - Wind down at the end of the day and go to sleep

On Saturday and Sunday, I would not have a set schedule, but I would do at least 3 hours of programming.

That schedule was rough. I would not recommend that schedule to anyone, and it will lead to burnout in the long run. Also, turns out sitting in front of a computer 12 hours a day not doing any sports is unhealthy, who knew?

Second mistake: No direction

When I started I tried to learn python, because I've read that it's a great language.

I got bored (because I had no project in mind) and switched to C++, then I was going back and forth between C++ and Python.

Also, I was reading all kinds of programming books that were way too advanced for me at that time.

That's when it dawned on me that I had just wasted a huge amount of time reading books, when in reality all I needed to do was to get my hands dirty and do some actual programming.

You don't learn programming by reading books, you learn programming by programming.

Now don't get me wrong, I am not saying that you shouldn't read books about programming.

In fact, I think it's really important to start reading programming books once you mastered the basics, it's the fastest way to learn about software architecture, clean code, and design patterns. But I believe in the first few months you should spend most of your time programming.

I was devastated - my approach was not working. Like a truck
that was stuck in the mud, spinning its wheels, I was going nowhere.

I knew I needed to start from square one.

Getting on the right path

I realized that I needed to create some kind of project, that I could show
to potential employers.

That's when I did some research and decided that web development was my best bet.

There are lots of jobs in web development, you can easily share your project, and there is no shortage of great learning resources.

So I started learning HTML, CSS, JavaScript, and React.

After learning the basics, my goal was to create a simple time tracking web app and use that project to get me a programming job.

I bought some Udemy courses and choose one where the end product was similar to the app that I wanted to create. I still think Udemy courses are a great learning tool if you want to learn a new stack. In the beginning you often don't know what you don't know.

That's why having someone more experienced being your mentor can be so powerful.

In total this project took me around 2 months to complete.

You can see the repo here. Now obviously I had no idea what I was doing - the code looks horrible - but I managed to get a working application that I could share with potential employers.

The application process

Nobody likes rejection. Maybe that's why I waited 8 months after I started programming to send out applications.

Looking back, I probably could've sent out applications earlier. I've seen people with similar stories like mine get jobs with pretty weak portfolios. So you might want to consider sending out an application after 3 months or so.

I tried to put myself in the shoes of HR. Let's say you get 50 applications for one job. 49 of those applications have some kind of experience or some kind of degree.

Then there is my application:

  • Zero experience
  • No degree that's useful for programming
  • My CV did not show any proof that I could program

What do you think HR will do? They would probably - and rightly so - send me a nice rejection email and move on to the next candidate to fill the position.

That why I made sure to emphasize my personal projects, I knew that an ordinary application would not be the right thing to do in my situation.

My situation was different, so I figured that my application should also be different.

I knew that I had to get past HR and get some developer to look at my project, that was my only chance. So the gist of my application was this:

I have no experience, but please look at my personal projects.

This worked surprisingly well.

I probably send out around 15 applications and 4 interviews before I got my job. In the end, it took me eleven months to reach my goal of becoming a professional programmer.

TLDR

  • Start programming ASAP, you learn programming by programming
  • Give yourself a deadline of when you want to be a professional programmer
  • Focus on one programming language
  • Choose a programming language that is widely used
  • Create a project on GitHub that you can show to potential employers
  • Try to do one step every day, learning to program is a marathon, not a sprint
  • Get a mentor or buy an Udemy course in the technology you are interested in

Discussion (48)

pic
Editor guide
Collapse
marulucenat profile image
Maru

I'm also studying programming on my own while working a full-time job and the schedule thing is really stressful 🥲

Thank you for sharing your experience, I always read stories about self taught developers but I hadn't found one that mentioned working a full-time job, it makes me feel like it's truly possible for me as well!

Collapse
bmeet profile image
B-Meet

Hey there i dropped message in your Twitter please check it out 😅😅

Collapse
iamdurga profile image
Durga Pokharel

What an inspiring article. Yet I am not working but I am from the non-technical field . I am mathematics student. I started to learn coding from 3 to 4 months . I decided to establish myself in the programming field. Sometimes I feel frustrated while learning code. After reading the article I got the motivation to move forward. Thank you for sharing.

Collapse
citizen428 profile image
Michael Kohl

I know a startup founder who preferred math graduates, even if they had 0 programming experience. Their rationale: “I’d rather teach programming to a mathematician than math to a programmer” 😂

Collapse
james_malvern profile image
James Malvern

as a totally non-maths Arts grad who has seen how quickly maths/physics grads have picked up programming, I can see their logic - even if that is bad for me

Collapse
anideveloper profile image
Ani

Great article. I am currently in the middle of self-teaching myself JavaScript, its definietly challenging at times, but its great when you have achieved or built something. I am also using a Udemy course to learn and its really great and useful.

Hope your new programming job is going well.

Collapse
carstenbehrens profile image
Carsten Behrens Author

Thanks a lot. Seems like you are on the right track.

Yes it has been great. I was lucky that my first programming job was at a company that does things the right way.

Maybe I should have mentioned that too:
Try to get a job in a bigger company because chances are higher that they do things the right way. (Like using Sprints, Code-Reviews, Version Control and so on)

Collapse
keithprice profile image
Keith Price

I went all over the place trying to learn full stack all at once. Eventually just focused on HTML and CSS. Just starting to build static sites and challenges on Frontend Mentor. Once I feel really comfortable with HTML and CSS I'll add in JavaScript, get comfortable with that and then maybe React. Realised it's better to take it slowly. As you said it's a marathon not a sprint.

Collapse
minhkhangtran profile image
MinhKhangTran

Hi Carsten,

Ich bin auch aus Deutschland und finde deinen Artikel sehr interessant. Ich bin auch in einer ähnlichen Situation wie du damals. Ich arbeite als Ingenieur in einer Firma und lerne seit knapp einem Jahr Web Development.
Mein Job gefällt mir und es macht mir Spaß. Ich lerne programmieren aus Spaß und es ist immer hilfreich irgendetwas in der Hinterhand zu haben :D.
Ich möchte in dem Bereich (vorerst) nebenberuflich als Freelancer arbeiten. Hast du darin auch irgendwelche Erfahrungen? Vor allem die Situation in Deutschland.

mit freundlichen Grüßen

Collapse
frag0r profile image
Marcel

Seit 2017 bin ich auf einem ähnlichen Pfad. Mache zurzeit meinen fachfremden Bachelor, habe aber schon bei ein paar Projekten ausgeholfen.

Einfach als Kleinunternehmer beim Finanzamt anmelden, kostet nix und geht relativ easy, dazu noch ein Gewerbeschein und du kannst loslegen.

Mundpropaganda funktioniert immer noch am besten, imho.
Erzähl den Menschen davon, was du tust, was du gebaut hast.
Irgendwer kann immer Hilfe gebrauchen! Nach ein paar Projekten hast du dann auch die Balls dich richtig zu verkaufen.

Falls Du nicht lange warten willst. Kaltakquise!
Schau dir ein paar Webseiten von kleinen, regionalen Firmen an.
Suche nach Fehlern auf der Seite, überlege dir was man besser machen könnte.
Schreib ne Mail oder ruf gleich an und erzähl davon, mach einen guten Preis und du hast deinen Job.

Keine Firma will eine schlechte Webseite haben, aber wenn man googelt, findet man nur Agenturen, die ordentlich Kohle verlangen.

Es gibt unzählige Plattformen, die meisten kannst du in die Tonne kloppen.

Viel Erfolg weiterhin! :)

Collapse
carstenbehrens profile image
Carsten Behrens Author • Edited

Hey,

nein da kann ich dir leider nicht wirklich weiterhelfen.

Ich hab nur mal irgendwo gehört das sowas viel über Gulp und Hays läuft, vielleicht wirst du ja da fündig.

Collapse
shnydercom profile image
Jonathan Schneider (shnyder)

Hi, cool zu sehen dass es hier ein paar Freelancer aus D gibt 🙂 Kleine Anmerkung zu den genannten Strategien: Vermittler fragen öfters nach mehr Jahren Erfahrung als es eine Technologie gibt, nicht wundern. Die suchen idR nach dem Tech stack den der Kunde nennt, mit genügend Erfahrung um dessen Problem lösen zu können. Teilzeit-Projekte sind da die Ausnahme. Was im Projekt am meisten hilft ist Verständnis für UX, wird aber selten explizit nachgefragt. Wenn du dir die lokalen Websites anschaust wirst du wahrscheinlich WordPress oder ein anderes CMS finden, wenn du React/Vue etc anbieten willst, such lieber über die Stellenangebote. Demo-Projekte sind gut um Techniker beim Kunden zu überzeugen, im Gespräch mit HR, Marketing oder Vermittler hab ich versucht das Kundenproblem mit meinen Worten (nicht technisch) zu beschreiben. Das hat bisher ganz gut funktioniert. Bei Fragen gerne hier oder per PN 🙂

Collapse
proshinroman profile image
Roman Proshin

Thanks for a great story! I would like to add my 5 cents: open source (~=hosted on GitHub) projects are crucially important for beginners as they can perfectly show your knowledge of both: the language and frameworks and as well best practices and rules of good code. And it’s even more valuable if you contributed to an OS project: that shows that the code written by you is actually accepted by the community.

Collapse
q2apro profile image
q2apro

Confession: I wasted 1 - 2 years in uni with a professor who was focused on "theory first". 90 % of students did not understand what was taught. Only the 10 % that did already programming in their life could follow. So YES, start programming FIRST. And use the amazing content on Youtube. – And use Stackoverflow, first asking, later answering. This makes you a great programmer IMHO.

Collapse
leeiaah_ profile image
이아 | Nessa Okeke

Hi Carsten, great story, I especially liked the part where you realised you needed some direction in learning. I'm curious though, how were you able to express this part to recruiters, was it in your cover letter? - >

"I have no experience, but please look at my personal projects."

Collapse
carstenbehrens profile image
Carsten Behrens Author

Hi Nessa,

yes, it was part of my cover letter.

Basically like this:
I have experience with [insert your technologies] you can see a few of my personal projects that use these technologies on my website [your website].

Collapse
nicozerpa profile image
Nico Zerpa (he/him)

Hi, fellow self-taught dev! I loved that you mention your mistake of having no direction, it can be dangerous for those who learn by themselves. It's crucial to have a clear focus.

I like to think of it as going on a trip: you'll never get to the destination... if you don't have a destination!

Collapse
anilbms75 profile image
ANIL KUMAR

Great Carsten! inspiring story.

I have seen similar approach works for UX roles, it's great technique to show you have got the skill to bring value to the organization. I can highly recommend your approach to someone wants to land Frontend Job.
Linkedin message

Collapse
namhuynhkien profile image
namhuynhkien

Awesome. Congrats on your job search. I'm in a different situation. I'm a full-time job QA and I want to switch to become a developer. I started learning more about programming in the last 4 months and feeling stuck at the moment. I will take your advice "learn programming by programming".

Collapse
rosamund profile image
Rosamund

Thanks for sharing, Carsten! I'm keen to hear more stories from Germany as we live in such a qualification-obsessed country — it is indeed disheartening when you read "ein abgeschlosses Studium in Informatik" in job requirements.

I also consider myself self-taught, as I did a lot of studying and building/deploying projects by myself in my free time before using my education budget to do a 3-month Python course. But that was more to make sure I'd had exposure to certain concepts before they offered me a spot in the dev team.

If you're in a similar position and working an "office" type of job, my advice would be to see what kind of options your current company offers. This could be:

  1. a course they'll help pay for
  2. thinking about ways your current role is connected to web/software development — it might be closer than you think
  3. telling the tech lead (or whoever) about your interest, personal projects, etc., and seeing if there's any way you can get involved without giving up your current role (yet!)
Collapse
heatxel profile image
Danz

Oh I think is a great app and yes, as a people how hire programmers I don't care if you don't have a lot of experience (of course I would prefer that) but what I really care is to see your work and also if you are learning something at the moment. That always tell me if the person is really enthusiastic about continue learning, that at the end in a industry like this, is what I need :) great story.

Collapse
patrick_franken_fd45f7797 profile image
Patrick Franken

Congratulations! You walked a similar path compared to mine (also German btw). But I never had the bal*s to become a professional programmer and kept my full time job. But I can at least use a lot of HTML, CSS and JavaScript here. Other things I learned were Swift, PHP, SQL and a tiny bit of Python. I made my peace with the situation. I enjoy the stressless times coding at home while having a full time job. The only „bad“ thing is that coding in your freetime won't get you to some kind of routine. When there were few weeks with no time for your project then you literally have to re-learn some things before getting used to it again. That's how I found a tool (Code Snipped) where I put my snippets commented to remember how I got to this.
Wish you luck and happiness in your new career and lots of respect to the company that hired you and gave you the chance to make your dream come true. Hau rein ;)

Collapse
raphael_jambalos profile image
Raphael Jambalos

Hi Carsten, I'm happy it worked out for you. I agree with you 100% that the best way to learn to program is really to get your feet wet and start doing your own projects. Even when I'm reviewing for my AWS certifications, I always dedicate time for some playful handson. A mini-project that I will design from the ground up and use what I have just learned to make something that matters to me.

Collapse
nelsonmalbone profile image
Nelson Malbone Coding

I’m working on becoming a dev myself but not doing so good working a full time job with a start time but no end time (a job where we leave when everything is done) in having a 18 month old. I’m really only able to do things on weekends but there are some weekends where I work 6 days a week. So I’m struggling with it at the moment but I know in due time things will work out. But appreciate sharing your article.

Collapse
hhhoang profile image
Hanh Hoang

It is great to hear a successful story from Germany, I am going through the same track and still combating with motivating myself to code after work. My main problem ist, while I was working at the job, I think of programing or how I would learn when I get home, but once I get home, the tiredness of the day just worn me out, so sometimes my goal of 4 days during the week to code might just be like 2. The excitement is still there though when I learn the new concept or get my hand on the project. So i think, you are really good at targeting and persist at what you want. I am looking forward to hearing from your new job experience in the future. Grüße aus Stuttgart, Hanh

Collapse
88kappa profile image
88kappa

Hi Hanh, I also had a similar problem. If I can give you a piece of advice that worked for me, turn the table around. Instead of coding at night, change your daily schedule so that you can code in the morning before going to work. I used to get up at 5:00 and study computer science until it was time to work. This system allows you to have a fresh mind ready to learn. Unfortunately, it also means going to bed at 21:00/22:00, so it can be a bit difficult to get used at first, and it kinda destroys your social life. But it's hard to get there without sacrifices. I wish you luck in reaching your goal! 😉

Collapse
hhhoang profile image
Hanh Hoang

That sounds like a fair idea, i definitely will give it a try, thank you!!!

Collapse
menaiala profile image
Menai Ala Eddine

My situation is different.

I was a clever computer science student but some family issues led me to leave the college but with at least a bachelor degree and start working with small startups in Algeria with a goal ( let's say a dream job ) to join the German Tech Ecosystem.

Because German, UK and USA ( from my experience ) have a hard interview process, it took me a long time to learn the culture of HR people in Germany from online resources.

It took me 3 months to prepare a resume that fit their conditions.
It took me 2 years to speak English fluency.
It took me one year to stand out in Github.
It took me a year to build a connections in LinkedIn.

Even I'm working full time 12 hours in my own Cafeteria , I'm still LEARN, BUILD & SHARE design & programming projects and content.

I've learned that :

Opportunities are endless in the tech world.
What easy for others, may will be hard for you.
Programming is not a goal, it's a tool to achieve a goal.

Collapse
kkim profile image
kk-im

Thanks so much for sharing your experience - the good and bad parts.

Learning to code on your own is a lonely and hard journey, so hats off to you for keeping consistent and not giving up!

I'm currently 6 months into my journey and every week I feel really despondent that I'm not where I want to be, but then I tell myself that everyone has their own journey :)

Collapse
muncuss profile image
muncuss

Thank you, this is great post. This is same like me now. I am working full time but currently learning python from Al Sweigart book. I am also not really beginner to programming because i played with html, css and little bit of javascript when in high school as a hobby.

So i am now learn programming seriously because i want to change job too :D and i will consider to learn javascript after finishing this book, as i see i'll have higher chance to get job as web dev. Most python job require experience and degree, while i see some javascript job here accept high school graduate with no experience.

Glad i see your post, this give me more motivation. Thank you

Collapse
gigitux profile image
Luigi Teschio

Maybe someone might be interested, in the last few days I started a small mentoring project: I'm doing one hour of free mentoring per week. If anyone wants, in this page there are some details: luigitesch.io/about/

Collapse
simpleadam profile image
simpleAdam

who do you work for now then?
I see graduates saying they put out 100 applications for one interview. they probably have 5+ years experience. 4 interviews from 15 applications is pretty good going for anyone.

Collapse
carstenbehrens profile image
Carsten Behrens Author • Edited

Gruner + Jahr GmbH, it's a publishing house headquartered in Hamburg, Germany. I mostly work on their websites.

Collapse
cuchu profile image
Maximiliano Schvindt

Thanks for sharing your story! Good article and grateful experience. The life of the developer sometimes is this because you need to continue learning new things and technologies when you have a full-time job as a developer. Continue learning and continue growing.

Collapse
pjotre86 profile image
pjotre86

I just hope you found some friends in the meantime 😂

Collapse
ngamsomset profile image
Setthasiri Ngamsom

When you set your deadline to become programmer. Do you find any pressure that you put in yourself? If so how you dead with it?

Collapse
carstenbehrens profile image
Carsten Behrens Author

Hey,
yes, the deadline put pressure on me, that's why I did it. Part of having a goal is to be as specific as possible.

Think of it like going out to the sea with a ship, you can have the fastest ship in the world but if you don't have a goal you will just drift around and never get anywhere.

How did I deal with the pressure?
I think the pressure comes from being afraid to fail. You'll just have to override your brain and not let it stop you.

The first few months will be the hardest because you have - hopefully - put in a lot of time and still have nothing to show for it.

Collapse
ngamsomset profile image
Setthasiri Ngamsom

Like you said, I put in all of my time trying to code. I can't say that i don't have my goal. It just the path to that goal is still foggy. I get my hands dirty as much as i can. Trying to get out of tutorial hell. 😌

Collapse
jfaraujoc profile image
Juan Araujo

Your blog really inspires me to keep going as a software developer. I literally took the steps, python and c++, now with html and css

Collapse
denohritchie profile image
Dennis Kiplagat

Its so inspirational talk... i am also a self taught programmer to be true its challenging to start over ,but consistency is key... thanks and i hope you are enjoying your new job.

Collapse
hmawebdesign profile image
HMA WebDesign

Hi, great to read your programming journey. I am also going with your story currently.

Collapse
jotsarupsingh profile image
jotsarup-singh

hats-off truly inspiring!!!

Collapse
andrewbaisden profile image
Andrew Baisden

Good story very inspiring.