I Completed My First Coding (Bootcamp) Project!

The training wheels have been removed…

Building my first project for my coding bootcamp was quite the experience. The challenge was to build a CLI gem and use Ruby to scrape data from a website. I decided to scrape https://www.codenewbie.org/podcast. The Codenewbie Podcast is my go-to resource to learn about different topics and different roles in the tech industry. It’s also my #1 resource for coding inspiration when I feel like giving up. Often times guests on the show are career changers and self taught developers I can relate to.

My program lists all of Codenewbie’s podcast episodes with each episode’s relevant information such as the episode’s title, guest, and air date. Additionally, a user can interact with my program through their terminal and retrieve the url link for any episode in order to listen to the interview.

The due date of the project coincided with the holidays, so I had a lot of friends and family checking in and asking me how school was. I repeatedly went back to my bicycle analogy.

I am swerving heavily and am wobbly yet defiant as I ride my two wheeler.

The training wheels which were removed:

  • Using learn.co as an editor. Learn.co is Flatiron’s built in house code editor and is extremely helpful. The platform runs tests and submits pull requests to GitHub using human friendly commands such as learn and learn submit, respectively. However, I used this project as an opportunity to work with building a program locally in order to replicate a more authentic developer experience. I successfully installed Atom and connected my local files to Github using the command line. Getting comfortable with the command line was not easy, as I was following Youtube tutorials and was memorizing what to do. I had to repeat the process several times to truly understand what was happening.
  • RubyGem setup. Prior to starting my project, I never had to set up a RubyGem. Our labs already had a neatly organized library to work off of. Also, we didn’t have a lab to practice how to fill out the relevant info needed to create a gem, but I followed this video https://www.youtube.com/watch?v=RrAOlk6qoiM which proved to be very helpful! However, like I previously mentioned, the issue with recorded videos is that I tend to go through the motions- copying the instructor without truly understanding what’s going on. I had to watch the video 3 times before I felt like it seeped in.
  • Labs. Before this project, I had a neat container to learn in. Most labs are heavily focused on just a few topics with clearly written tests. However, when I went to plan out my project, I felt overwhelmed thinking about all of the concepts my project had to include. I knew I needed a different strategy. I followed along with Avi’s method on how to build a CLI Gem https://www.youtube.com/watch?v=_lDExWIhYKI, and I really liked his method of tackling a project. Avi stresses the importance of only focusing on the task at hand (1 or 2 objectives), completing the task, and then the next step will reveal itself. It was a playful approach to a lofty project, and I was able to make steady progress. It was fun to react to the quick decisions I was making.

I have alluded to this, but the toughest part about this project was everything besides the coding. The coding was a process I was familiar with. Strategy and setup are new and less straightforward topics for me. I was able to talk over my struggles with RubyGem setup with my Cohort Lead in our 1:1, and the strategy to tackle the project with my classmates. Although this was a solo project, having help and support from my cohort made me feel like I wasn’t in this alone. Overall I’m proud of the work I did and am excited that this is just the beginning!

P.S. Here’s a walkthrough of the app!

Beginner’s Tips for Excelling at Flatiron’s Coding Bootcamp

I’ve completed 4 weeks of a coding bootcamp, and although this may seem like a short time, I have learned some valuable lessons which improved my overall strategy for success for Flatiron’s Online Full-time Software Engineering Immersion. See below for some tips I wish I had before starting the program!

Additional resources are recommended!

I enrolled in Flatiron’s Software Engineering program because of the structure it offered, among other things, for my ambitious trek to learn how to code. However, I realized that Flatiron’s content, although very helpful, is not the end all be all for my uphill battle to learn how to code. This makes sense, when learning any type of skill, it’s best to have a portfolio of resources to gain different perspectives or to fill in the gaps.

Not only will Google be your friend, but books will be too. I opted for “Head First Ruby”, although another classmate of mine is reading “Eloquent Ruby”. Both seem accessible to beginners, and cover content that may educate the more seasoned Ruby developer.

Focus on 1 test at a time: learn –f-f.

Labs! A big part of Flatiron’s teaching style seems to be learning by doing, doing many labs! In order to complete a lab you have to pass the tests by writing code. Some labs have a few tests while others have many. I learned that it’s best to tackle one test at a time. This sounds like a no brainer, but it’s hard to work on one test at a time if all of the failed tests are listed out in your terminal. If all of the failed tests are listed, you may be tempted to jump ahead to a different test (I know I am!). In order to show only 1 failed test at a time, use learn —f-f, this will return only the first failed test.

Work in 45 minute sprints, with breaks afterwards.

I got this idea from Avi Flombaum, the dean of the Flatiron School, in a video titled “Learning How to Learn” (highly recommend, it has other great tips and reminders as well) link: https://www.youtube.com/watch?v=R9I2uvkwKhc. Previously, I would sit down and would not get up until I finished the task at hand. This sounds good in theory, but when you are working through a lab that could take a couple of hours, this productivity style can stifle creativity and plummet morale. Instead, now I work in 45 minute sprints, and no matter where I’m at, I stop and take a break. I’d recommend a break which lasts from 5-10 minutes. During my breaks, I grab a snack, check Instagram, take a walk, or meditate in a quiet room AWAY from my laptop (shoutout to WeWork’s awesome call booths which make the perfect meditation spot!).

It’s incredible how much a short break clears your mind and rejuvenates you. I often times have coding epiphanies when I get up and move.

Code every day.

It makes Monday’s much less daunting. In the beginning I rewarded myself by taking the weekends off from coding, after working tirelessly for 5 days. But when I got to my laptop come Monday morning, my motivation was high but wasted on relearning concepts I had previously understood from the prior week. The weekend had washed away my understanding of some concepts and dammed my coding momentum. I spoke to my educational coach (a non-technical coach who helps with time management and offers other non-technical advice for success during the bootcamp) and she suggested that I should immerse in code even on the weekends. I decided that I wouldn’t learn anything new on the weekends, rather I would review code I wrote earlier in the week or research a topic that wasn’t “clicking”. This approach aligned with the easygoing schedule I like to have on the weekends. I noticed this plan of action has helped me hit the ground running on Monday mornings.

Admittedly, I had to learn all these lessons after I started the bootcamp, but wanted to offer my words of wisdom to others so they can start off on the right foot! What other tips would you add? I’m curious to hear your thoughts!