Have fun learning about Test-Driven Development with JitterTed's TDD Game

What Project Should I Work On?

Learning Projects! Answers the question of how to learn, besides reading or watching videos.


Improving Your Skills

Just about every week on my live-coding stream, I get asked “how do I learn Java/Spring Boot/etc.”? Often this is asked by someone relatively new to coding, but I also hear it from experienced folks who are unsure how to learn something new. For example, they’re good at Python, but now want to learn Java and Spring Boot.

My response is always: work on a Learning Project.

Learning Projects

Q: What is a Learning Project?

A: It’s a project that starts very small and is one you will add to over time (not a “one and done”).

I coach lots of developers where you’ll learn skills as they come up as needed by what you want the application to do.

  1. If possible, make it useful for you or your family. That way you’ll be motivated to work on it and get real-world feedback for things to change/add.

  2. Focus on interesting BEHAVIOR. Why “behavior”? Well, it depends on what kinda of work you like, but for me, I like rich and interesting domains (hence my fondness for domain-driven design), vs. just integrating things (valuable for sure!). Some projects are just about data, which is a good start, but doesn’t build up skills in working on code that’s at the core of complex business (or game or industrial) processes.

For that, you need something “meaty”. Writing a To-Do app? That’s fine! But what can it do for you? Do you want it to remind you of things as well? I know I heavily rely on reminders. That’ll pull in the (dreaded) Date and Time aspects (how will you test that??).

Dependencies between items? Or things that you do in one place (like shopping)? Hey, a shopping list! A shopping list organized by grocery aisle! Maybe there are certain items you buy on a regular basis, that’s behavior, too.

There’s a whole class of “bespoke” or just-for-you apps waiting to be written. It’s only for you, so only needs to satisfy you. I created a whole app that just manages my son’s virtual “piggy bank” (cuz we were tired of scraps of paper and a spreadsheet that wasn’t easy to use on the phone). I learned so much by creating that. And 4+ years later, it’s STILL running and being used.

Change One Thing

See https://twitter.com/kchironis/status/1569108508507009025

Mash Up

My take:

Great advice! Also applies to learning coding in general: take that tutorial you just followed and change one thing. Then another thing. Add something personal or funny. Invert/reverse what the thing does. Make it your own. Mash up two tutorials (tic-tac-toe + to-do list?).


Make Your Code More Testable™️

Don't miss out on ways to make your code more testable. Hear about new Refactoring techniques, improving the Test-Driven Development process, Hexagonal Architecture, and much more.

    We respect your privacy. Unsubscribe at any time.