Since I was recovering from a cold this weekend, please forgive my lack of drawings and enjoy some flying toasters.
Active Record, Active Record, Active Record… This week was all about the first and most important part of Rails. Making up the big ‘M’ for model in MVC, we spent all this week figuring out migrations, relationships, normalization, ER diagrams, and how this part of Ruby on Rails does it’s data magic.
Aside from this, I spent a night and a good part of Thursday recreating Pong (in Gosu) as a side project for fun. It still needs some work, but the essentials are there and I’ve put the source code up on GitHub. It even has particle effects!
Since Active Record was pretty much the singular topic that permeated throughout most of the week, I’m actually going to talk about something more interesting here, that made me more excited about becoming a web/software developer.
On Friday, a good chunk of us at Launch Academy attended the Engineers4Engineers conference. It was an all-day event with many great and fantastic speakers who talked about their prior experiences as well as the insights regarding the tech industry.
Here were the presentations I attended:
Beginning Keynote w/ Michael Lopp
Michael Lopp, who worked at Borland, Netscape, Palantir, and Apple, talked about two archetypes in the industry: Stables and Volatiles, and how they play with each other.
This was such an amazing talk, and it had me thinking deeply about my working relationships with people. Michael explains while you need both of these archetypes, and you need an ecosystem where they can both work together to create new ideas.
Laziness in the Time of Responsive Design w/ Ethan Marcotte
Ethan Marcotte talked about very clear ways to create responsive elements in web design, and I found his connections with the animation and print industries very intriguing. Instead of thinking of web design as a mechanical structure, we need to start thinking about the human connections and meanings of the interfaces we interact with on the web.
Initiation to Code: A Roadmap for New Developers and Their Mentors w/ Alice Mottola
Alice Mottola from Constant Contact (and a graduate of General Assembly, another bootcamp), explains mentorship with a great metaphor related to swamp gator tour guides. While this was geared more towards mentors, it was great to hear her convey the need for mentorship for junior developers in the tech industry.
Overkill w/ Katrina Owen
Katrina Owen did a great job explaining simplicity in programming, and it really helped me think about naming and solving certain problems properly in Ruby. I sometimes have the tendency to think something I’ve programmed is simple, yet in reality it’s not quite readable. This talk definitely pivoted me in the right direction.
How to Build Innovative Technologies w/ Abby Fichtner
Abby Fichtner is the Hacker in Residence @ the Harvard Innovation Lab, and she explained about different processes for forming a product idea for a startup. What I got out of this is to start with a simple baseline idea, “dominate a small market”, then grow after that.
Ending Keynote w/ Merlin Mann
Merlin Mann’s ending keynote was a laughing riot. Zigzagging his subject from the early Internet in the 90s, to his early downloading of Betty Paige porn, to modern society and how this all wraps up into our own knowledge… He explains that we can never guess that the things we know now can be relevant to tomorrow. The key thing is to stay curious about everything.
All these talks were fantastic and made me fascinated about the industry I’m entering. It seems that the tech industry is one of the few industries that has avoided complete gentrification, and that there’s this great culture of knowledge seeking, and mindfulness.
These things are some of the reasons why I wanted to take a deep dive into becoming a developer. Even with five more weeks to go, I feel this is only the beginning of my grand adventure and there are many more exciting things to come.
# Week 4 @ Launch Academy
Week 4 has quickly come and gone, due to the long weekend prior. During this past week, we delved into object-oriented programming by creating multiple types of programs.
First, we created a workout analyzer, which pulled in external CSV file data on daily exercise routines, then from that data we calculated the total time of the workout and the burned calories from the different types of exercises listed. This data would then be output into a table on screen.
Second, we recreated the game Blackjack, in Ruby. The most challenging parts of this were determining if an ace had the value of 1 or 11, and then determining the winning conditions for the player and opponent.
In regards to Aces, it was best to determine its value at the end, by noting the number of aces and if the player’s total was over 21, if an Ace was computed as 11. For the winning conditions, it took me a bit of time to make sure if the player busted and if their total was higher than their opponent.
Third, we created a Bank Account program that pulled data from two separate files: one included account data with the starting balances, while the other contained data on daily transactions and deposits. This particular challenge took me a long while to solve, and I stayed until near 8pm to finally solve it.
The reason why it took so long for me was I was approaching the problem by using a way too complex solution. Instead of trying to detect if a transaction was below zero to find out if it was a deposit or not, I was trying to make a text search method to see if it could detect the word ‘deposit’ in the transaction description instead.
Ultimately, it was best for me to start from scratch and take it a piece at a time from the basic problems, and working towards the more complex ones.
The forth program we worked on was the Lunar Kitchen app, which also utilized our previous knowledge of SQL and Sinatra. What was introduced to us in this challenge was the use of RSpec and Capybara (two Ruby programming testing tools), where we would find the failing conditions in our kitchen app, and make them pass.
With one of our previous challenges being a similar recipe app, I didn’t have too much problem using Rspec and making the tests pass.
Aside from the challenges we worked on during the week, I made a Rocks Paper Scissors side project unrelated to the curriculum to strengthen my working knowledge of objects. I also attended the Boston Ruby group’s project night on Tuesday. A lot of neat people were there, and I had some good pizza.
The beginning of my 10-week bootcamp journey starts tomorrow. It’s becoming harder to contain my excitement.
Regardless of how much energy I can spend re-reviewing all the pre-launch material for Launch Academy, I know that energy is better spent getting my things ready, reflecting on my experience thus far, and relaxing for the big day tomorrow.
Thinking over the dozen weeks of Launch Academy’s pre-learning material, all the basic coding (Ruby/HTML/CSS) goals were fairly easy to pick up for me.
I am nowhere near being an expert or experienced programmer yet. The extent of my programming knowledge currently only allows me to count down 99 bottles of beer via flow control loops, or allow a user to be sent insults that are randomly selected from an array.
The first two books I read, “Pragmatic Thinking & Learning” by Andy Hunt, and “Learn to Program” by Chris Pine were very fun and enjoyable books that I learned a lot from. Pragmatic Thinking was my favorite book out of our required reading, because it felt like I found the missing puzzle piece in my thought process. After reading it, my methods for taking notes and remembering things has evolved as I now draw pictures along with the words in my notes.
I also read a large chunk of “Your Brain at Work” by David Rock before I realized it was not required reading, but I wanted to note here it was a really fascinating compliment to Pragmatic Thinking. It goes into further scientific explanation on how the human mind works.
Learn to Program was a very fun book, and you can tell that Chris Pine is a passionate programmer. He even named his kids after programming languages! My only criticism is that the last part of the book is a bit all over the place.
Towards the near end of the pre-learning material, I hit some challenges.
When I began reading “Beginning Database Design” by Claire Churcher, it was a pain to read. The format of the book is written much like an academic paper, and I tried to be creative in retaining the material.
In order to get though the book, I portioned my reading to one chapter a day, and to draw some silly doodle notes about the material while reading. Halfway through the book though, I got more lost and I decided to put it aside to review later and work on my other goals.
Learning version control with Git and GitHub was very eye opening, and it now sparks new questions in my mind. The next time I attend a video game convention like PAX East, I’m now going to go up to every game developer and ask what their version control is like.
I only read the required first three chapters of “Practical Object-Oriented Design in Ruby” by Sandi Metz, but I can tell it’s a really helpful and enjoyable book to read. Some of the material is above me in understanding at this point, but I am sure we are going to be digging back into this book later in the cohort.
Overall, the pre-learning material was a great resource, and help was given by the staff at Launch as well as my fellow Launchers. Thanks guys!
Starting with the beginning of the cohort tomorrow, to keep a steady routine of self-reflection, I will be starting a minor drawing project during the cohort:
BOOTCAMPED will be a daily journal comic about my experiences at Launch Academy. I plan on creating a basic site at the end of this week, and uploading notable experiences from each day by the end of every week. I’m pondering ways to incorporate this into my future “Breakable Toy” project, and a few ideas are bubbling in my head.
As always, I’ll be continuing the blog posts here to keep everyone updated on my growth and experiences. I have this feeling that amazing things are going to happen.
I’ve updated this blog with some design tweaks, new links, and the portfolio section has been updated and redesigned.
I’ll be making a post later this week about my pre-learning experiences leading up to the start of Launch Academy, as well as announcing a new comic related project that I’m sure that will interest you.
See you soon!