DEV Community

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

Posted on

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

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

Top comments (49)

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
 
roshan_ican profile image
〽️ 𝙍𝙀𝙨𝙝𝙖𝙣

it is indeed, I am sure you'll get there

Collapse
 
meetbhalodiya 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
 
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

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
 
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
 
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
 
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

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
 
roshan_ican profile image
〽️ 𝙍𝙀𝙨𝙝𝙖𝙣

Hey, There, congratulations on the success, You finally landed your dream job and I am sure you are doing great,
I am in early stages as you were learnt python and then After applying to 100 of jobs, was depressed that, no one hires a junior Django dev in India at least, the place where I am currently doesn't have enough jobs for a web or software, but the problem for me is that, I do not have any money to move to a new city where jobs are available my parents do not support, it's fine cause they are unknown to this world, for them it something waste of time,
but I am hope full that there will be a time, I will get the job and I hope to move to Germany or anywhere in Europe and work...
just we shouldn't stop chasing our dreams...

Collapse
 
carstenbehrens profile image
Carsten Behrens

Hey thanks,

I think Python is a great language and Django is great too from what I've heard. But when it comes to jobs, I think your best bet would be JavaScript or Java. I'm actually working on a project with people from India right now (JavaScript and Java), and from what I've heard a lot of other companies in Europe and USA also hire (or work with) Indian people too.

I think it should be very possible for you to get a job there, if you have enough dedication and perseverance.

Collapse
 
roshan_ican profile image
〽️ 𝙍𝙀𝙨𝙝𝙖𝙣

I understand,
I'll do try my best to get there soon

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 • 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

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
 
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
 
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
 
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.