November 27th, 2018
Today I felt a bit overwhelmed. There are so many resources at my disposal, which left me feeling excited and lost. I had this urge to organize all of the resources that were either popping up in Slack channels or being recommended by my mentor. There are also some basic concepts that I should focus on, such as SOLID Principles, Test Driven Development, Object Oriented Programming and design, Polymorphism (???), etc. Where do I start? What should I read about first? There's so much to know and so little time.
In order to calm my nerves, I started a Trello board. I love to jump into things, but I still need a visual timeline. I wanted to organize my daily activities, weekly goals, readings, and personal opportunities. I gathered reading materials as I reviewed the apprenticeship curriculum objectives. My mentor sensed my nervousness and suggested, "Start building your Tic-tac-toe game, in Ruby". Ok, sir, let me start building a treacherous game in a language I'm not familiar with. I didn't say this, but so far my life score was: TicTacToe - 1, Tiffani - 0. I'd previously tried to refactor an unbeatable game in JavaScript. I couldn't figure out minimax. I was still feeling salty, but I knew several tic tac toe assignments were coming. My mentor also recommended that I started reading Practical Object-Oriented Design in Ruby: An Agile Primer by Sandi Metz. He said it would answer a lot of my own questions about software design and architecture.
My mentor also suggested that I code at least 70% of the day. He provided one of his favorite Ruby tutorials. I also asked everyone else about their favorites. After making a Trello board for the week, I started TryRuby. It was a very helpful way for me to jump right in without knowing any Ruby. A few months ago, I followed a Ruby on Rails tutorial to create a Reddit clone, but I had no idea what I was doing and I hadn't since looked into Ruby. My mind was stuck on React. Reading Sandi Metz's book alongside the TryRuby tutorials helped me get out of the JavaScript mindset and start thinking about classes. Up until this point, I'd never created classes. I simply created functions and lived my life; so learning about classes was a challenging concept for me. What constitutes a class? What belongs in a class? Why would a class change? Who is Sandi Metz? These are just a few questions I had.
Somewhere in between me freaking out and reading Sandi Metz, I joined a "Donut Call". Donut is an app that one of the apprentices set up on Slack. I don't know much about the configuration, but our donut bot takes all of the apprentices in the company (from all of our offices in the US and our office in London) and makes a pair every two weeks. So you're paired up with one other person and you have the opportunity to connect with that person however you choose. I joined one of the Chicago apprentices on his video call with an apprentice in London. We discussed our current projects and roadblocks. It was more of an introduction for me, but it felt more personal and lengthier than our international, apprentice standup.
By the end of the day, I felt better. I had OOP questions, a Trello board for the week, and a list of Ruby tutorials. I'm looking forward to finally building a great tic tac toe game.