Continuing Education in Software

Photo by Julia M Cameron: https://www.pexels.com/photo/person-writing-on-notebook-4145190/

Introduction

When you're a software developer, continuous learning isn't just a nice thing to have; it's an essential skill. Whether you're just starting off on your software journey or you've been in the industry for years, you will never run out of things to learn. Ever. So, best to learn to love it.

Recently, I've dedicated some of my free time to start preparing for various certifications, and based on that experience I'm going to share some of the things I'm learning about learning.

Take, for example, the CompTIA A+. It covers an immense amount of information related to IT within two short tests, and despite its breadth, a rather large number of topics remain completely unmentioned within it.

Today, I'll talk about some of the strategies I've employed while preparing for these tests.

The Mindset

If you are not willing to learn, no one can help you. If you are determined to learn, no one can stop you.

Effective learning starts with a solid mindset, and a goal in mind. What do you want to take from this? What are you willing to put in?

Ideally, you'd find yourself immediately interested and dive right in, but when that doesn't happen, try just finding something intriguing about the subject, find a group to study with, or try making it a challenge in some way!

The Tactics

Now, onto the tactics! Here, we'll talk about ways to make learning more efficient and effective.

Flash Cards

Simple, boring, effective. But they don't have to suck. Limiting the repetitions and spacing out our sessions properly can make flash cards easier.

Whatever you do, try not to employ the strategy that involves writing 800 of them that you repeat 3-4 times in one sitting. You won't finish them, and you'll be completely sick of them by that point. Not that I'm speaking from experience or anything.

Try Different Information Mediums

Our brains have different methods of processing information, and choosing the right ones for the task can be integral to making solid progress.

For example, when learning about a new, popular technology topic, I might watch a 5-minute YouTube video from Fireship to get a decent overview, then start a course for the certification, and finish up with flash cards and cheatsheets.

Each of these methods has its pros and cons, which help me remember things in different ways.

Give Your Brain Time to Catch Up

It can be tempting to cram everything into a couple days, and you might tell yourself how you're really going to buckle down and learn everything, but this just isn't a very sustainable method of learning.

Think of your brain like a muscle. Challenge is fine, healthy even, but constant challenge can stunt growth and wear your body down. Your brain is quite similar to that; it needs time to process and organize the information you've thrown at it.

Try Teaching, or Rubber Duck-ing

One of my favorite methods is to try explaining it to a friend or colleague. Doing this tends to reveal gaps in your knowledge, and help you flesh out the context and exact functionality of what you're learning.

If you can't find anyone to teach, try writing it down in a blog or journal, make a cheatsheet, or just try explaining it from the start to yourself or your rubber duck ("Rubber Duck").

Apply, Apply, Apply

I love reading, but after a certain point in learning a topic, the best thing you can do is try to apply it to real problems with real technologies.

Let's say you're learning about Docker, and you've read all the documentation, all the tutorials, and even looked around at the reference pages. You're not ready to use Docker in production.

There's a stark difference between knowing of things and having experience with things.

The Tools

In today's world, we have more tools than ever to do just about anything. Let's talk about some tools that I've personally found to be integral to my studying.

Anki

The flash card app. This is an open source application that is most commonly used among medical students (at least they're the ones who keep talking about it and having studies done about it!).

It has sync built-in, a plugin system for additional functionality, and works on all well-known platforms.

I've made extensive use of this to help with the ordeal of memorization that is the CompTIA A+.

AI (ChatGPT, Claude Opus, etc.)

Let's get the elephant out of the room: AI can't learn for you. It can't give you the magical 10 words you'll need to remember. And no, it can't go to the bathroom for you either, unfortunately.

AI is a tool, and I find it most helpful when used in moderation. I use it for formatting my notes, for example. When I'm taking notes, I don't want to spend any time formatting, and it can be nice to hand that off to ChatGPT to format into markdown so I can save it.

I've also used it to generate cards based on my notes. For example, there's over 100 acronyms to remember for the exam, and I tasked GPT with writing a .tsv file with the acronym (STP), the definition (Spanning Tree Protocol), and the general context in relation to other terms (a network protocol that ensures a loop-free...). This has been extremely useful for what would have previously been hours of busy-work.

Note-Taking (Obsidian, Notion, etc.)

With good notes, you need a good place to put them, and I think you can't go wrong with either Obsidian or Notion.

Personally, I prefer Obsidian, as it's a privacy-focused product with a strong ecosystem, but Notion isn't bad at all, and has more integrations built-in that it might be worth using instead.

The point here is to find something easy for you so that taking notes doesn't take extra effort unto itself, and you can focus on what's actually important.

Use Your Resources!

Today, there's dozens of free, high-quality, in-depth resources for just about anything, there's no excuse not to use these.

Udemy has sales for just about everything under their MONTHYEAR (e.g., JUL2024) coupons, which usually means you pay under $15 USD.

freeCodeCamp has been steadily increasing the number of courses it offers for learning computer science topics for years now, all for free.

YouTube has millions of hours of content about nearly every topic you can imagine. With Harvard's CS50 lectures, with freeCodeCamps video courses, and with Fireship's short introductory videos, you have plenty of options to choose from!

Many universities will even allow you to sit in on lectures (without the expectation of receiving credit, of course).

Conclusion

Continuous learning is hard and time-consuming, but it's a necessary part of growing as a software developer, and there are countless resources and tools that can help get you anywhere you need to be.

I hope this article was helpful, and happy hacking!