Monthly Retro No. 2
Hello, August. And farewell, July. How your mid-summer glory came and went.
It’s been a pretty fun two-month ride at 8th Light, so far. In constructing tic-tac-toe games, I’ve learned a good deal about writing and organizing code. I’ve also learned to trust my instincts when it comes to programming, as well. If it looks unwieldy or if it’s doing too much or if it’s improperly named, I work toward making it better.
The first half of the month was spent wrapping up the Ruby version of tic-tac-toe, and the second half on building the game in Clojure. Honestly, I enjoy building tic-tac-toe over and over again. It’s not boring to me. There are some core similarities, but there are also nuanced differences in constructing the same method in different languages. You’re faced with new challenges based on the design and strategies you’ve employed. And I’d love to do it again when I’m learning a new language!
The Good Stuff
During my in-person retro, my mentors mentioned that I was doing a good job with my blog posts and providing timely, structured daily updates. The affirmation was good to hear! The daily “standups” (only in quotes because I’m not standing up) have been helpful to me, as it helps me set my intentions for that day and allows me to voice any issues that I wasn’t able to solve from the day before. I think I’m better at setting internal deadlines for myself!
Toward the end of my Ruby TTT project, as we were pushing toward the deadline, I started giving end-of-day updates as well. I haven’t needed to do this with Clojure TTT, but I imagine that I will now that I have discreet deadlines. For instance, August 19th is the projected deadline for Clojure TTT. And this week I am working on delivering a fully-operating minimax algorithm and implementation of `defprotocol` and `deftype`. If minimax continues to give me trouble, you can bet that I am updating my mentors tomorrow evening.
I’m proud of two accomplishments this month. The first one being that my Clojure TTT was driven entirely by tests, with a minor exception of minimax (which I broke into smaller testable units at first, but still didn’t quite use tests to drive its development). You can imagine that this is quite the feat, given that 1) my original submission to be a resident apprentice was not tested at all, 2) I was fighting TDD during my Ruby TTT. I would attribute this behavioral change to the sheer fact that writing in a new language feels a bit like exploring new territory. You throw bait out into the world to make sure you’re safe to continue forward, and then you venture forward. Likewise, writing a test helps you state your desired outcome and then you go ahead and write the method. Also, I did my first-ever code kata! If this didn’t help me get into a TDD mode, it definitely helped me sharpen my Vim skills.
Secondly, I’m proud of my progress as a developer. The message that anyone can code is dangerous. While I do believe that coding should be accessible, the underlying message that it is incredibly easy and can be learned in three months’ time is nothing short of a lie. Being a programmer is an ongoing journey, and there is no set end date. Programming is so multi-faceted and intricate; I am just scratching at the surface. With that said, becoming a developer has not been entirely easy for me. I’ve struggled with panic attacks and sheer frustration, provoked by the inability to solve a problem. The last month or so has been a real turning point for me. I have been more patient with myself, but also a sense of self-confidence has been restored. I definitely feel it when I work on Clojure TTT. There was initial confusion when getting started, but once I got over that bump, it was smooth sailing. And by that, I don’t mean I knew everything and it was easy — I just moved through problems with more assured grace. Through a series of trial and error (and eventual success), I feel like I can do anything with enough time. And sometimes it’s just a matter of time, whether it is half an hour or a day, to see the same problem in a different light.
And lastly, I feel more comfortable and better adjusted with 8th Light folks, particularly other apprentices. Even with very few apprentices in the office throughout the week, it has been a good opportunity to get to know them. I’m starting to feel a sense of belonging.
So much good stuff going on!
Challenges
Last month, I made it a goal to pair and engage with others as much as possible. There are several apprentices who have been wrapping up their residency, so this hasn’t necessarily panned out very well. I have been generally talking to people and soliciting advice, which has still been useful. Also, I do my best with my blog posts, but felt that some of the more advanced topics (e.g. concurrency, multithreading) were chapter summaries. I’d like to switch up how I am approaching blog posts.
Always Be Improving
Here are some goals for this month:
- For my blog posts, I’m going to write about specific topics and go more in-depth. If I’m reading a book, I’ll dive into an interesting or relevant topic and use it as an opportunity to do some cross-referencing research. Otherwise, I’d like to write blog posts about what I’ve learned that day. Think of it as a way of documenting my learning.
- I had the chance of pairing with my mentor, Sylwia, after work hours. We’er going to try to do this more, either remotely after-hours or during Friday afternoons. I think this would be really helpful.
Thanks for reading–that’s all folks!