…The Harder They Fall
After discovering programming is expressive, I got reading. It was time to take a dive in the deep end. Head First JavaScript Programming: A Brain-Friendly Guide is what I started with. (I still had no idea JavaScript and Java were two different languages.)
I learned I was going to be working using a text editor from now on. That means I don’t need to compile to see results. Sign me up! That’s all I needed to know to be done with Java. I was off to the races and spent, what seemed like, every bit of free time working through that book.
Fast forward a month. “Now I’m well equipped. I can finally start my own project. No more worksheets or exercises.”, I thought to myself. I set out to make my own program, but what exactly? “Maybe I’ll develop something around my pain points.” Crickets chirped. Nothing came to mind. I drifted off into space staring at my desk. Then something slowly came into focus. I had been staring blindly at a deck of tarot cards I had gotten for Christmas (Thanks Grandma).
I didn’t know much about these cards of art. But I did know there were 78 of them. That’s 78 more cards I was capable of memorizing. So I put them in a corner in the back of my mind and planned on forgetting about them like I’ve done several times since December. It soon came back into focus (this time figuratively). Suddenly it clicked. “That’s it! I’ll make a program so I don’t have to memorize these cards.”
The plan was to have the program draw random cards (That means I don’t have to learn how to shuffle either), then I need to put the cards on a board, and then give details about the cards.
I started by breaking down the fundamentals of the battleship game from the book I read earlier. Then it was time to get to work. The problems rolled in. Why am I drawing duplicates of the same card? How do I show the user images of their cards? How do I tell the user about the card in the context of their question?
These were challenging questions. The book didn’t cover this. But somewhere inside me I knew I could figure it out. I loved that it wasn’t easy and eventually I did figure it out.
My secret was I managed to think of my problems in a universal way. This made it easier to, either solve the problems myself, or phrase the questions in a more googleable way. I eventually got the program in a working state and I was on top of the world!
This project was my breakthrough. It had everything I had imagined. It was ugly but it worked. Most importantly, it was my baby. (You can play with the current version here.)
What was your first challenging project and what did you learn?