skip to content
An anime girl with glasses

My Developer Journey till now, with trials and errors..

/ 11 min read

Hi, I’m Lisa and I’m currently doing an undergraduate degree in Computer Science – just to make it clear beforehand; does this make me a better programmer or software engineer? Nope. Did I magically get some professional skills with this ongoing degree? Also no.

If you don’t want to read the prior events you can just jump to the subheading of Tutorial Hell or go directly to the Summary

Disclaimer: This is just my personal opinion – yours is allowed and encouraged to be different.

👩🏻‍🎓 My Motivation to study Computer Science

In 2019 I did my “Abitur” (German Highschool Exam) and my naive self thought: “What could I do with this diploma?” and well, I applied for a Computer Science Bachelor as a Dual Course of Study (you can read more about that here).

To be fair with you, I hadn’t acquired any prior experience with Coding or In-Depth-Knowledge of Computers beforehand, I just liked the idea of being able to create Websites that looked cool – I didn’t even know the difference between a Website and a Web app to this moment.

🛫 The first months

After several job applications and rejections I finally got a contract with a Web Development Company and started making progress in the basics of HTML, CSS, JS, and PHP. In my theory block afterwards at the University, I had learned the basics of Java and a lot of JSP-Stuff in the Web engineering Module.

Reading that, you already might guess:

Till this point, I’ve learned only really little of the skills that I could have applied at my workplace.

So I pretty quickly understood that this whole university thing is just a beautiful wrapper / facade around the truth of how to get good at Programming / Software Engineering: “You need to teach yourself. Period.”

But I also thought: “Well it’s like in school, you just watch one of those nice videos about Biology, Maths etc. and you’re good to go!”

So I just followed a lot of YouTube videos from FreeCodeCamp, Morpheus, etc – even bought an Udemy Course on React, but it didn’t help me and I got stuck pretty quickly in

😈 Tutorial Hell or

“Monkey see monkey do, doesn’t mean – Monkey see Monkey know” – Joshua Fluke / YouTube

Here begins a major problem which I would have dealt with differently if I could start over:

Don’t consume those elegant videos where developers just program “on the fly”, copy and paste without thinking the code in your IDE, Texteditor, whatever you like, and feel great - to be honest with you, with this superficial approach you are only giving them money and time and lying to yourself that you are being productive.

Considering that there comes the time, where you want to apply this fancy knowledge to your project or at your workplace, feeling like King Kong, but you understand pretty quickly that you just can’t. That’s normal. Because to be fair with you – you can’t understand a complex topic with just one video (unless you are a genius then sorry for making such an insulting assumption).

Because they don’t show you the reality → to be precise, the struggle every developer has. Those hidden bugs, hours of getting stuck searching for that stupid typo which breaks your system, copy-paste StackOverflow Code and then understand that this doesn’t work, and so on. They don’t put you in the place of struggle, because they’ve gone through the struggle before publishing the “perfect” tutorial.

The Learning Pyramid

You’ve probably seen this pyramid before – it’s called “the Learning Pyramid Model” by Edgar Dale. As you can see, practice has a big impact on the Learning Environment, because the critical areas of your synapses are getting triggered to act and connect (like a network).

So just by watching a tutorial video you have the advantage of having heard about a certain topic, but not how to apply the demonstrated technique properly.

How I would use Tutorials now

  1. Don’t get me wrong, I still use tutorials – but I am not doing entire courses on every topic → Instead: I often work on an idea that I have (like creating this blog or my current Project a Plants App). If I am struggling I search for the specific topic that I have problems with.
  • If I’m watching a video I pause it, asking myself questions and filling knowledge gaps (building a solid fundament).
  • If I watch entire courses (example: Enterprise Design Patterns in TypeScript on Frontendmasters), I am not “binge-watching” them, I’m watching the video little by little and trying to apply the knowledge in custom examples. Those courses are definetly not meant to be rushed through.
  1. If I have problems, tutorials are not my first place to go anymore. If I have a one, I first try to solve it with the official documentation of the language, library, framework etc.
  2. When I gain some knowledge from tutorials I try to apply it as fast as possible. Possibilities for doing that:
  • Applying the knowledge in a project (or even a small “trash” project in StackBlitz, Repl.it, Codepen)
  • Helping others with this knowledge on a Discord Server

🧩 Start with the basics, not a framework.

Skipping Steps Meme

One day I had a great idea: Well, how about learning Angular? At this moment I barely understood the concepts of JavaScript, let alone the Typescript Environment. I walked through the Tour of Heroes and didn’t understand anything at all. Nice. But what was the problem?

I didn’t know the Basics. Like what is this Component Driven Architecture? What does Typescript do better than JavaScript? And maybe you’ve read the book from Simon Sinek: “Start With Why?” the title says it already: Before you learn something new, ask yourself: Why am I trying to learn this technology? Why are they applying this concept? Why is this better than that?

Don’t just jump into the cold water because it looks fancy and easy.

🫂 Talk to others

I was often unsure if I was on that level of knowledge to be able to talk to somebody. Like what would they think about my missing knowledge? I’m just a 20-year-old girl trying to program some fancy stuff with no knowledge at all.

That was a mistake – I was afraid of getting judged and missed opportunities asking my professor certain things, asking fellow students for certain stuff. I was simply afraid to get judged and had a lot of preconceptions about the character of people which in most cases turned out completely different.

I changed my opinion quite a while back about that. I started to speak up and to ask questions (even though leaving my comfort zone and the fear of being judged). If you are at the point where you aren’t okay with that (which is perfectly fine), try out Discord Servers or Slack Channels such as ZTM, Morpheus (for the German people among us).

🐙 Trying different approaches

The first time of trying to become a good Software Developer I only focused on video-tutorials. Documentation at that time was “too hard to consume” or “too boring”.

I put myself under big pressure when I didn’t understand something, I thought that I was too dumb to learn something but it was only recently that I finally understood that I am the type of person who learns better by reading books about a certain topic or blog articles.

So if you have the feeling that something isn’t working for you or you don’t understand something, try a different approach.

→ Fair point to make here: I am a student and I have free access to the O’Reilly library. And I know that the books in this tech field are really expensive, but maybe you have a library around you or a friend that could give you access.

🕐 Give Yourself Time

and don’t let Imposter Syndrome kick in

I’m currently 19 months into coding / this whole software engineering stuff. I still don’t know a lot in certain areas. It just means that I need a different approach in certain areas or more time. That I might have different circumstances than a person who has plenty of time to learn 6 months straight “programming” and be great in this field.

To remind you: I am doing a CS degree, it’s a lot more than “just” coding.

I highly recommend you to watch this TedTalk “The Power of belief – mindset and success” – to sum it up: “A person with a fixed mindset is afraid of getting judged. A person with a growth mindset will ask: How can I make/do this better next time?“.

Don’t put yourself under pressure. It’s okay to need time and build a solid foundation. Rome wasn’t built in one day – same goes for your Developer career.

🔀 Don’t get lost in “too many directions”

One of the challenges that I’ve encountered in the past has been that I had too many interests (maybe I’m kind of a multi passionate person I don’t know to be honest with you). I wanted to learn everything there was available on the market, be a Data Scientist, be a Fullstack Web engineer, be a UI/UX Designer, IT Securitist – in German we say “Eierlegende Wollmilchsau” but the problem is, with all these new technologies being an Allrounder is almost impossible. I always need to refer to this post from @forgoodcode on instagram:

Dear recruiters, If you are looking for:

  • Java, Python, PHP
  • React Angular
  • PostgreSQL, Redis, MongoDB
  • AWS, S3, EC2, ECS
  • Git and CI with TDD
  • Docker, Kubernetes

That is not a full-stack developer. That’s an entire IT-Department.

What to do instead

  1. Write down your interests and get a concrete idea of where you want to get
  2. If you have a concrete idea, maybe one of these roadmaps might help you get your direction:
  3. Talk to other people in your desired area. Maybe they can tell you what you need to learn.

🤝 Help other people with their coding problems

I like to help other people. Not because I’m a very generous person, no. It just reassures me that I understand a certain topic and can help others with it. I repeat my knowledge and quickly understand where I might have knowledge gaps that I need to lookup. It’s important to me that the other person (maybe even a stranger) asks questions.

My current approach

So maybe to conclude; it is important to write down what my current approach is to learn new things. After all my trials and errors I defined myself a goal of what I want to become and split it into smaller goals.

I want to be a Software Architect in the future, but before that, I want to become a good Fullstack Engineer and therefore I have started with Frontend Development. And when I’m curious about a new Topic I watch a video to get an overview and then I think about where I can get some practice or different resources to become better at this topic. Maybe there is an opportunity somewhere in my projects to implement the gained knowledge.

And at this point, I need to mention again that it is okay and important to struggle. Because then you know you are leaving your comfort zone and growing.

If I don’t understand a topic at first I try different approaches. And if I’m still stuck I ask people if they have an idea or I just leave the particular topic and move on to something else – believe me, if you start on a problem with a fresh head you might find the desired solution quicker.

🎯 Summary

  1. Don’t get stuck in Tutorial Hell – it isn’t worth your time
  2. Don’t jump directly into a framework, learn the basics
  3. Give Yourself Time
  4. Talk to others, exchange your knowledge
  5. Help others with your gained knowledge (even if it’s “just” CSS, trust me there are a lot of people begging for your help)
  • Where to help? Mainly Discord in this time of the pandemic.
  1. Prefer a Documentation-,Blog-,Practical-driven Development Learning process and not a Tutorial one

It’s cool that you’ve come this far in the article. I bet most of the readers probably won’t get this far. Have you been in a similar situation? What is your approach when learning new things in the Software Engineering field? What were your mistakes? Feel free to leave your opinion, critique, and tips in the comments – someone might find that helpful.

Have a nice day and I wish you all the best in your career path. 🚀