Sometimes I look at my code and think about the tasks I have left to accomplish and I freeze up. They are too big, too new and complex to hold in my head all at once. Too intimidating. I can’t even imagine what it is like in real projects. Having to deal with code other people have written. Having to stay focused. It really reminds me that I am nowhere near as comfortable with the concepts as I want to be.
There have been plenty of times where I let that paralysis take over. I walk away from the computer or shut down the IDE and watch youtube videos or something. I am learning ways to cope with it though. The most effective has been to just tell myself I need to write a few lines of code. Something small. It doesn’t even have to do anything, yet. The other day that was flipping my findLowest function into a findHighest.
The findLowest function allows me to determine which cell to drop the checker into. The findHighest serves a twofold function. First, it searches the originating column and finds the topmost checker. What that allows me to do is dispense with a two part (column, row) input. Now all I need is the column. The game will do the rest. It feels simpler, and I like simple!
Another example was a tweak I made to findLowest. In an actual game of backgammon, one can have more than 5 checkers in a column. They just start stacking up on each other. I haven’t gotten that far yet, and if you tried to add a sixth checker, the function didn’t know what to do, there is no 6th cell! In order to get around that, for now, if the 5th cell is full, it just “eats” the checker. It’s a stopgap. I need to nest the findlowest in a way that it will start stacking checkers and it will check for stacked checkers first. One step at a time.
The important thing is to keep moving forward. To find a way to work through the overwhelming amount of learning I still have ahead of me.Breaking things down into discrete steps that I can wrap my head around keeps me from locking up as much. I also keep coming back to the idea of testing and TDD and I really need to stop talking about it and start doing it.