It’s been over a month since I’ve written my last post. And quite frankly, I regret it. The truth is that my last month has been extremely busy. I worked on a couple of projects at DaVinci Coders, had some scheduling issues at my job, and worked through some personal difficulties. But those aren’t good excuses.
Recently, I’ve been reflecting a lot on the last month where I’ve worked on two projects for DaVinci Coders. The first, Shift Scheduler, is an app that allows people to conveniently manage employees schedules. The second, Tracker Request, uses the Pivotal Tracker and GitHub APIs to create a one-stop-shop for managing projects. I want to recap the important bits from my last month at DaVinci Coders.
Test Driven Development is an invisible savior
If you’re new to TDD, I know it can be extremely overwhelming. I used Rspec and Capybara heavily at DaVinci Coders and honestly it felt like I had to learn two new languages in addition to Ruby. But after struggling with it for a long time, I started to realize the invaluable benefit of testing.
While working on Shift Scheduler, I found that having tests enabled me to work confidently because I knew my test would help me find major bugs in my code. In addition, when a problem did occur, Rspec output would point me in the right direction instead of having to trace through the MVC architecture and figure out where the problems were occurring.
One tool that I started to use often was the byebug gem. It is an amazing debugging tool that allows you to test your code at points of failure within a rails console-like terminal.
There is a gem for everything
Go to Ruby Toolbox and search for anything your heart desires. It’s amazing to see how much effort people in the Ruby community have put into creating gems to cater to your needs. I remember a distinct moment when I was pair programming with Danny and we needed to figure out a way to format some of our json output. We spent about 30 minutes reading about the topic and then found a simple gem called Active Model Serializers that allows you to easily format json in Rails.
There is no alternative to a good team
Early in our Ruby on Rails course, we learned about pair programming and it’s role in productive coding. I tried to pair with as many of my classmates as possible and I learned that there is an art to being able to work with all manners of people. Everyone works, thinks, types, and talks at a different pace and in unique ways. And I learned so much from my classmates in seeing code through their viewpoint.
Especially while we were all working with our projects, it was so obvious how productive our teams were when everyone was communicating well and being open. Progress always stalled when people were prone to ignoring Slack messages and when individual programming was favored over pair programming. To be fair, we all had our own busy lives to deal with, but I never regretted taking time out of my day to schedule a time to pair. It’s just easier to stay focused and motivated with a partner in crime.
You can do anything…
On day one of class, I was overwhelmed with our syllabus. It covered so many topics, each of which seemed to merit a class of it’s own. And if you had told me that I had to built a fully functional web app in 13 weeks, I would have bailed out of there. But it’s inspiring to see how far I, and my fellow peers, have come in 13 weeks. Some of them came in with no coding experience and helped build amazing sites like Speed Op and Footloose. It just goes to show that you can accomplish anything you want as long as you’re willing to put in LOTS and LOTS of work. Also…
…especially if you have an amazing instructor
…it helps to have an amazing instructor, like Jason Noble. He’s a top Rails contributor, his depth of knowledge seems limitless, and most importantly – he’s extremely patient. Anytime I had a question or wanted to delve deeper into a topic, Jason had an answer or could point me in the right direction. I enjoyed his teaching style as he would often hold our hands in class for difficult concepts and then let us explore other topics on our own.
If you are looking to learn more about Ruby On Rails and want some instruction, I highly recommend looking into DaVinci Coders. If you do decide to take this course, I have a few pieces of advice for you below.
How to Bootcamp
Make friends with everyone
Focus on one topic at a time
In the first month of class, we covered Git, the Command Line, Pair Programming, Agile Development, Ruby, and TDD. There is ABSOLUTELY no way to learn all of this at once, so pick a topic that interests you and read about it obsessively for 3-4 days. When you feel comfortable, move onto the next topic. I found that tackling concepts in a slow piecemeal way was much less overwhelming than trying to read about all topics at once.
My advice is to get really comfortable with Git first. It’s the foundation of modern version control and allows you to fix code mistakes easily. I saw some of my classmates struggle with Git and it reduced their productivity.
Ask for help
This was my greatest weakness in class. Too often, I read at length about topics like TDD and Active Record without asking the right questions to my instructor, TAs, and mentors. The great thing about DaVinci Coders is the plethora of resources available to you. But if you get too deep in the documentation or blog posts, it is easy to forget that sometimes the right question will save you hours of aimless reading.
Overall, I’m so glad that I took the Ruby On Rails course at DaVinci Coders. I learned a lot in the last 13 weeks and even though it was stressful to complete our final projects, I had so much fun doing it. I feel confident now that I was meant to become a developer and I’m excited for this new chapter in my life. The next couple of months, I’ll be searching for work and while that will be another challenge, I can’t think of anything else that would make me happier.
I graduated from the University of Virginia with a degree in Biology and worked as a research scientist for a few years. Toward the end of my science career, I discovered my true passion after teaching myself R to perform statistical analyses. I find coding and working with data extremely exciting and rewarding. Because of my strong foundation in biological research, I can pick up new concepts quickly and I understand the value of self-motivating to learn a new technique in order to accomplish your goals. I love working with and learning from others so I hope that you and I can collaborate in the future!