Maintainable Code: Embracing the Never-Ending Learning Curve

In IT, the learning never stops. Two years ago, after working in communications for ten years, I decided to retrain as a full stack developer. It was exciting to start ‘completely’ anew in my 30s. However, I soon realized that you never truly start from scratch; all your previous job experiences add valuable insights. This makes me a non-standard developer, which is a valuable addition to any development team.

First, I had to learn how to program. But once you can write code, the next step is to write good code—‘maintainable code’ or ‘clean code’. I would love to take you along on my journey from newbie to mid-level developer and share the things that have significantly helped me continue learning actively.

During the Girl Code meetup, I gave a presentation on this topic. It was my first tech talk. I found it incredibly exciting but also extremely educational and fun to learn something new. I applied all my learning techniques to ‘learning to present’ as well. This was also very valuable.

Below, you will find my presentation transcribed.

Detour into tech

I’ve noticed that within KVK, many female developers didn’t start their careers as developers, but retrained later in life. After having an other career.

My journey into tech also had a detour. After turning 30, I decided to retrain as a full stack developer. Interestingly, as a child, I always found computers fascinating and even created websites at a young age.

Hi there!

Let me introduce myself first. I’m Nynke Kloppenburg and I’ve worked for ten years as a (digital) communication specialist. A few years ago, I decided to retrain as a programmer.

I’ve been working at KVK for two years now as a backend developer.

I’ve also been going to Girl Code meetups for five years. So, even before retraining, Girl Code meetups empowered me and made me feel that I.T. is a place where I belong.

In our field, learning never stops. That’s why I want to take you on my journey to becoming a mid-level developer and share the things I’ve learned. I’ll also show you how I’ve used these tools to tackle something as significant as maintainable code.

I hope to inspire you to take ownership of your own learning process. Whether you’re a beginner or a senior, there’s always more to learn in tech.

Internet in the beginning of 2000

This chaotic slide represents what the internet looked like when I started making websites. Does this look familiar?

As a child, I already thought computers were cool and started making websites at a young age. I think the highlight was when I was around 14. I arranged with my brother that I could use his computer undisturbed while he was out clubbing, usually not returning until around 3am. That was the only time I could spend hours clicking “view page source,” creating HTML pages in Dreamweaver, and designing in Photoshop. This was back when we used iFrames and tables instead of divs. I don’t think my parents ever understood why I loved sleeping in so much.

I was just making cool stuff, losing track of time, and solving puzzle after puzzle. This laid the foundation for my love of making websites.

Around the age of 18, I had to choose a field of study.

This would have been a logical moment to choose IT, but I had no idea that this was even an option for me. So, I chose “digital communication,” a blend of communication and multimedia design. There was an elective in programming, but it assumed you already knew how to code.

I learned a lot, and in my spare time, I created many WordPress websites. I started taking PHP courses on my own, but I kept missing the “click.” I understood the basics, but reproducing it from scratch was still too complicated.

So I stayed in communication and made my own project in my spare time, like Cupkiezer.

Cupkiezer cupquiz

One of the side projects I created was Cupkiezer, an independent source of information about menstrual cups. Don’t know what a cup is? Check out cupkiezer.nl.

Why is this relevant? For this project, I wanted to create a cup quiz—a simple quiz with five questions that would recommend a cup for you from an Excel sheet. I had no idea how to make this, and in the end, I built the entire website using PHP in WordPress. However, the programming of the quiz was done by my husband. It was super sweet of him to help, but I found it frustrating that I couldn’t do it myself! This was one of the reasons I wanted to learn to program better.

Have a clear goal!

So, my first tip for learning something new is to find your own motivation or goal. Know what you want to learn, and why!
For me, the goal of learning to program was to create my own projects.

Back on the road to code

I had a clear goal for wanting to learn programming, so I found a fullstack development bootcamp. Studying full-time after working for ten years took some getting used to, but I also really loved it.

don't be afraind to start over. this time you're not starting from scratch. You're starting from experience.

An inspirational quote that really resonated with me and that I needed to hear was: “Don’t be afraid to start over. This time, you’re not starting from scratch, you’re starting from experience.”

It’s not always easy to start over and learn something new. After having 10 years of experience in a different field, I had to start over as a junior.

For the final assignment of the bootcamp, we had to create a full-stack application using React and Spring Boot. So: I could finally make the cup quiz!

diskquiz

Instead, I made the disk quiz... because the cup quiz already existed.

After six months of the bootcamp, I wrote my own full-stack application in Java and React and passed the bootcamp with an 8.7. Most importantly, I got the “click” in programming.

I had a clear vision of how the disk quiz should work, which made working on my final project very motivating. I loved it! It felt just like when I used my brother’s computer 20 years ago—making fun things, losing track of time, and solving one puzzle after another.

Tip: own projects

Another tip: It’s very motivating to work on a project you create for yourself. You learn a lot by setting up an entire code base and writing everything yourself.

You get to decide the Folder structure, and naming of every thing. And if you need tests (and eventually realize why you need tests)

Shipping a product is also very valuable. It’s easy to get excited about a shiny new project, but finishing something requires a different skill. Shipping something makes you vulnerable because you put it out there for others to see and judge.

On the road to: maintainable code

After completing my six-month bootcamp, I still felt eager to learn more.

That’s when I discovered the KVK IT traineeship, which offered an additional six months of learning before starting to work in a team. However, I now had to learn many different things.

I could program on my own, but not yet in a larger environment. I could write code, but not maintainable code.

Writing good code

To paraphrase software engineer Martin Fowler: “Anybody can write code that a computer can understand. Good programmers write code that humans can understand.”

I wanted to learn how to write code that my colleagues could understand. I wanted to write maintainable code!

What’s interesting about maintainable code is that a lot of it is subjective. It’s not black and white. However, you can recognize bad code more easily. Good code reads like a book. So, make sure that you and your team members are on the same page about coding standards.

How did I begint to learn these big, abstract concepts like maintainable code? Step one sounds simple: By making the time.

Make time to study

  • Dedicate a few hours per week, or month. Whatever works for you. You could ask your manager what’s possible.
  • Make it a regular habit
  • Block it on your calendar! Guard your blocked time. If you don’t take it seriously, others won’t either.

And even now, while working at KVK, I dedicate one day a week to studying. It’s a luxury, i know!

Maintainable code

Maintainable code is code that’s easy to read, maintain, extend, and change by any developer, not just the person who wrote it. Other developers should be able to understand what the code does and why.

You can create an application in countless ways. However, the better your code is from the start, the easier it will be to modify and scale your application.

The more “bad code” you encounter, the more you truly appreciate the value of maintainable code.

What you already know, shapes what you can learn - Felienne Hermans

So, I had time blocked in my calendar to study these big, abstract concepts like maintainable code.

While studying, I remember struggling to grasp the concepts of design patterns. I understood them on an abstract level, but I had never encountered the problems they solved.

It’s the same with DRY (Don’t Repeat Yourself). It sounds so logical—why would you repeat yourself? But only once you’ve encountered a code base with almost the same code in six different places do you truly understand and appreciate DRY. I had the same experience with design patterns. Initially, no matter how well they were explained, I lacked the fundamental knowledge to fully understand them.

Only after revisiting the concepts a few months later did I understand and appreciate them. I realized I had already been using them. I just didn’t know the names.

It was demotivating not to understand them right away; it felt like I wasn’t making progress.

How to stay motivated while learning these big, abstract concepts is to measure your progress.

A difficult part of learning is when you have no clear end. The nice thing about taking a course is that you get a grade at the end, so you can measure your learning process.

Here are some tips to help with this:

  • Set clear goals.
  • Revisit the study material later.
  • Make a list of what you’ve learned or the tools you’ve used in the past year and update it regularly. This is also useful for coding interviews.
Celebrate the goals you have achieved

Don’t forget to celebrate!

It’s easy to keep going without looking back, but take a moment to reflect on what you’ve already achieved. It’s more than you think! I plan a nice dinner with my partner whenever I achieve a goal. It sometimes feels a bit forced, but we both enjoy it.

An important thing in learning: don’t give up.

It’s a long road! So, keep going.

I’ve noticed that you will automatically write more maintainable code as you gain more programming experience.

So just keep going, even if you don’t understand it right away.

I only have 15 minutes, so if you want to learn more, I have a digital handout with links to resources that have been very valuable to me.

I’ve shared how I actively try to learn something as significant as coding or writing “maintainable code,” even though it has

If you’ve been keeping notes you would’ve written down the following:

  • Set clear goals
  • Make own projects
  • Make time – regularly
  • Measure progress
  • Keep going
  • Celebrate achieving goals
What is something you want to learn?

A small assignment for you: Think about the question, “What is something you want to learn?”

Can you turn that into a clear goal? Why do you want to learn it? Do you know when it will be achieved?

Also, ask someone else this question. It’s good to think and talk about.

more links about maintainable code: nynkek.nl/girlcode

And I’ll end this presentation with one final inspirational quote by Jake the Dog.

Follow

Wees de eerste om te reageren

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

*