The thread on Twitter is about game development, but I think it easily extends to software development (particularly when you’re talking about multiple apps and services, all talking with one another). Silly and fun.
It’s a nice reminder that there is still playfulness and whimsy out there, but it definitely feels like there’s not nearly enough of it.
I’ve tried to do some of these in my spare time, outside of work. Sadly, I’m a bit behind and it’s been harder to keep motiviated the further behind I get. I also realize that my “outside of work” relaxation involves code for imaginary problems that don’t exist. It’s technically me “unwinding from work,” but kinda not?
As I played more, I had this realization: this game is remarkably similar to coding. I’m trying to optimize repetitive tasks (functions), and enable processes to build off one another (composition). And there are literal freaking bugs that you have to squash, to prevent them from messing up your hard work.
The way Arduino code works, there are two main functions: setup() and loop(). Setup is run once at the start, and loop is run continuously… well, forever. Add this to the fact that I really don’t know C++ at all, and it makes for some gnarly code. At least for now, in my first passes.
Honestly, most of day was just setup. Getting ESLint and Prettier up and running took a lot longer than it probably should have. I should probably set up TypeScript but part of me just wants to go go go.
Today, it actually felt more about my desire to keep working. I was enjoying having the time to focus, and didn’t want to stop. And enjoyed continuing on until I got more completed.
While I was on “vacation” this last week, my main focus was to get work done on the house (and the outside driveway work). When I did have some downtime, I spent it… surprise, surprise… on the computer, coding on a personal project.
Our team at work has started to read “Clean Code,” by Robert Martin. Several other teams in the company have done this as well (reading it collectively, and scheduling meeting times to discuss each chapter). It’s a bit like homework, but I’m actually really glad we’re doing it.
More than any other step so far, this decision seems to really alter and shape the tone of the Twitter posts I allow into my program. Rather than simply allow all legal two-letter words according to Scrabble, I’m finding by excluding some words… it results in more readable, self-contained sentences. They’re less informal.
Had the luxury of spending the day doing nothing really, beyond just noodling around on my side project. It’s been a long while since I’ve had this kind of time, and it was a very indulgent, lovely day.
It’s been interesting to compare my process now, versus me from a year ago. While I’m still struggling with my own sense of competency, I do notice myself working faster than I have before. Quicker to make certain decisions, quicker to know what the next best step is. That’s been a somewhat nice surprise, in addition to having the luxury of time today.
Lately, I’ve been trying to carve out a little time in the evenings (or mornings, or whenever I can find it) to work on a personal project. It’s another variation of stuff I’ve done before, but I think the outcomes are going to be greater in number and more varied. And, hopefully, of better quality.
I’m surprised to say that I made a lot of progress, given just one day. And that I got a lot of distance covered, with data being fetched from Twitter, stored in a local db, and then retrieved and displayed again. There are still gaps in my understanding, but getting ramped up again seemed to take a lot less time, this time around. Which feels really nice.
One of these days, I really need to give TDD a go. I keep meaning to, but the urge to see something tangible and functional on the screen quickly is too strong a drug.