I hit the point in my Flatiron School curriculum where I had to step away from tutorials and do a project on my own. Nervous didn’t even begin to describe what I was feeling. On top of that, I had two weeks to complete it and my husband was going to be out of town for five of those days. So I was momming my four kids and working on this project. Now, I have faced some difficult tasks in my life, and every time I approach them I think about how they won’t get done. And every single time I do them. And guess what, I get them done early. This time was no different, but I’m going to pull that confidence with me as I move forward. I get stuff done. I do it right. And I exceed my own expectations. And for this project, there were ten things that got me there.
Binding.pry
If you’re not familiar with Pry, you can install the Pry library, which when run, allows you essentially to pry right into the point of code where you place the binding.pry and look at the code outside of the program. This allowed me to debug the point in my project where my code wasn’t doing what I wanted it to. And I used it over and over and over. This was the most efficient way to play with my code and to understand what each piece of coding was doing.
Tutorials
I spent so much time watching tutorials on Object Orientation, CLI, and other Ruby topics that I needed to understand for this project that my 22 month old daughter knew the name of the lecturer. Hearing someone else talk through the code and what it’s doing helped me to internalize the code.
There were times when I wasn’t sure how to even Google what I needed to do, but I thought deliberately about what I was doing, what I needed to do, and the gap I needed to fill to connect them. And eventually I found the answer.
Ask for help
I was using the sample method for the first time. I needed to get a sample of ten to show up in the command line. But then, the user needed to choose from that list and more information would appear about the selection. To do this, I needed to be able to hold the value of the selection from the random list. I understood the concept, but I couldn’t quite put it in practice. I went through two pair programming sessions before I was able to get it, but it got me through a point that I had worked on for hours alone.
Take a break
There were times I thought my brain was broken. I had coded for hours and hours. My everyday routine is about two hours tops at a time. But I’m stubborn and persistent, and I wanted to solve this problem. But sometimes you need to walk away. It allowed me to refresh and re-approach the problem. And then it felt fun again.
Get time to get in the zone
Two hour chunks wasn’t going to cut it for this project. And it’s not doable for everyone, but I find that having a larger chunk, say four to six hours, allowed me to get in the groove long enough to think things through, code, and then rethink what I accomplished. (Shoutout to my parents for keeping the kids overnight!)
Map it out before you start
Approaching a new project seemed really overwhelming. I was starting with a blank screen. I mapped my project out on paper and in Trello. This helped me to see where I needed to start and how I needed to progress. I didn’t do a great job of staying focused, but it’s something I’ll work towards.
Look at other people’s code
Reading code is another great way to reinforce what you’ve learned and to recognize patterns. This might be past labs or github repos. Either way, it allowed me to see the vocabulary I’d learned in practice/conversation.
Talk it out
Early on in the project I was stuck. I couldn’t figure out what I was doing wrong. As soon as I started talking out the connections, I realized that I had forgotten to capitalize the class name. Hearing what you’re doing allows you to proofread auditorily. It makes different connections than only seeing it on the screen.
Fuel up
It’s really easy to forget to take care of yourself when you code. I didn’t realize that I hadn’t eaten in a really long time until I started to get shaky. I like food, but I like staying focused even better. A quick protein shake was good enough to keep me focused for another couple of hours. But more importantly, taking care of yourself is the best way to stay on top of your game.
Obviously, the process will be different for everyone else, but I think there are some key concepts that apply to everyone. Deep breaths. Focus. Let every experience be a learning experience. I got the project done almost a week early–long enough to let me think about it, review my code, refactor, and consider if there’s a better or more logical way to write it out. And even better, I felt like a badass after I got it done.