yozibak.com

Agile Learning

2024-10-06

In today's fast-paced world, being able to learn new technology quickly is invaluable, especially when it's driven by necessity. Maybe you're adapting to a new technology at work, or your team has introduced a fresh tool. Whatever the case, time is limited—and you're not a student anymore. That's why developing a strategic approach to learning is essential.

Recently, I decided to learn C++ to help my girlfriend with her game development project. While managing my day job, I learned the basics and built a small sample project in two weeks. This wasn't an isolated case. Over time, as a developer, I've refined a strategy for learning new things quickly. Here are the principles I follow.

1. Know Your Time Budget

The first step is understanding how much time you can dedicate. Is it a weekend, a week, or longer? Knowing this upfront helps prioritise what's most important and discard what's trivial.

Limit your time first, as you would apply the 80:20 rule—you would focus on the core 20% of knowledge that gives you 80% of the results when you can't afford a luxurious amount of time.

2. Define "Acceptance Criteria"

It's tempting to dive into every detail when learning something new, but not all of it will be relevant. Before you start, set clear learning goals. Think of them as "acceptance criteria"—just like in software development. After all, you're introducing new features to your brain.

It should look somewhat like this:

  • Given: I studied XX (the topic)
  • When: Working on my new project
  • Then: I'm able to design the technical aspect in high-level concepts

Define what level of understanding is necessary for now, and avoid wasting time on topics that don't immediately serve your goal. You can always deepen your knowledge later if necessary.

Alternatively, you can make a not-in-scope list for your learning journey. It helps avoid details whenever it's tempting (especially if your curiosity is too intense).

3. Learn the Vocabulary, not the details

Once your goals are set, focus on the minimal basics and high-level concepts. Pick up a textbook or go to "getting started", whatever fits your style. Don't try to learn everything in one go—just make sure you grasp the essential "vocabulary", the core concepts specific to your learning topic. Knowing the right terms lets you ask better questions, whether on Google or ChatGPT.

4. Build Something Right Away

After you've got the very minimal basics, the best way to learn further is by building something, no matter how small. You'll quickly realise that what you thought you knew fades fast. That's fine. The real value comes from practising asking the questions to fill in those gaps. If you ever struggle to come up with questions or to understand the answers given, it's a sign that you need to shore up your core knowledge. It's okay to have this back-and-forth try-and-error. Human beings would instead learn from errors.

Learning is like rolling a snowball—the more solid the base, the easier it is to add new knowledge as you go. So start small, and don't hesitate to return to the basics if you find your understanding is weak.

5. Embrace Agile Learning

Personally, I believe tools like ChatGPT have transformed how I approach learning. When I encounter specific, less frequent problems, I simply ask a question and move forward. I just need to know the "vocabulary" to make up questions.

I'm not saying you can omit the initial investment in learning. There are several fundamental topics in which you should invest some time (especially topics like Computer Science and Mathematics). However, you don't have to remember everything by heart. You don't have to master them. If you at least vaguely remember the concepts, that can be a "good enough" place to move on. If you firmly stick to your goal and outcome, learning can be minimal, quick, and "agile".