I wish I could say this time around I had learned all of the lessons from the last project and planned this out to the point that it was a painless and straightforward process. While that definitely didn't happen I realized that I have been in a combination of my Ruby comfort zone and the guidance of the curriculum's pre-built tests for long I've developed some really bad habits. In the HTML, CSS, and Ruby sections of the curriculum I often didn't read the content or watch the videos and just skipped to the labs. While not ideal this worked because of my prior experience. In addition on the labs themselves I would rush, trying to solve as many requirements as possible in a particular file before actually running the tests. Which again is an approach that works fine when someone else has already mapped out the application's architecture and scope but is likely not the best. When it came time to tackle SQL, ORMs, ActiveRecord, Rack, and Sinatra I was still employing the approach I had for the previous sections. As a consequence I failed to learn as much as I could have if I went through the sections slower, and it took me two weeks to complete this project because I had to refresh my knowledge and redo so much. All the time I saved by speeding through the content in order to catch up and my poor approach has now set back even further from my goals.
Consider the following code example.
After going over the requirements I settled on making something movie related. I checked out the features and HTML for a few different movie sites then decided to make an app to find movies that will be released next week. Since Rotten Tomatoes links for individual movies followed a predictable pattern, had the most details on a movie, and workable markup it became my scrape target. I submitted my ideation and fought the impulse to get started.
I’ll start with the recent example that finally crystallized this concept for me.
At my last job I was asked to come up with the role I would like to be doing and to pick a certification to work towards that path. I ended up writing a pros and cons list to help me figure it out. This lead me to realize that what I enjoyed most about working in technical support for bussinesses was primarily writing code (at the time this mostly Batch scripts) and working in a team.
I ended up trying out a number of different free bootcamp prep courses. This led me to discover that I really enjoyed creating things. I ended up liking it so much that I decided to pursue the career change full time.
This whole experience made me think back to when I was originally deciding what major to pursue in college. At that time I passed over computer science because I thought I didn't have the math skills needed or that there weren't many jobs available. Strangely enough some of my favorite projects have been about coming up with algorithms to find things like the highest prime factor. In retrospect its kind of funny that I was concerned about being able to get a job in programming even five years ago.