Week 5 @ Launch Academy

Since I was recovering from a cold this weekend, please forgive my lack of drawings and enjoy some flying toasters.

#Week 5

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.

He also gives some great CSS pointers for responsive elements that don’t require Javascript.

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 Reflections @ Launch Academy

# 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.

Next week, we’ll be learning Javascript, and I’ll be attending the Engineers4Engineers developer conference on Friday. I’ll be posting a usual update next week!

magicscience:


REBLOG REBLOG REBLOG FOR FABULOUS PRIZES 5 LUCKY REBLOGGERS WILL GET THIS KIT FREE


Reblogging this because you should see Zoe’s art, her cool brushes… and I want that brush kit.

magicscience:

REBLOG REBLOG REBLOG FOR FABULOUS PRIZES 5 LUCKY REBLOGGERS WILL GET THIS KIT FREE

Reblogging this because you should see Zoe’s art, her cool brushes… and I want that brush kit.

# Week 3 @ Launch Academy: Hacknado the SQL
Last week, we dived right into SQL using PostgreSQL with the terminal and within Ruby. Then, we then finished off the week with a little object-oriented programming.
At last, we now know the basics of making a CRUD (Create Read Update Destroy) app.
It took some time getting used to querying data tables, and understanding things like LEFT OUTER JOIN, but after some thorough learning and testing, I understand it now. 
What did we build last week? We remade our news site that used CSV files for articles and now it uses SQL, created a web app that pulled movie, cast, and actor data from a database, and finally attempted to make minesweeper for the object-oriented programming part.
Once getting the hang of the syntax, the SQL isn’t too difficult. Minesweeper, while not a core assignment however, was a challenge.
While I have not fully finished it yet, I have been able to create a minefield and allowed it to propagate mine objects (with random coordinates) within the specified grid. What’s left for me to do is the clearing method initiated by the player. That’s been the hard part, however I feel I am close to an answer.
We’ll be continuing our learning about object-oriented programming this week, and I’ve also been working on a simple game side project I will be talking about at some point.

# Week 3 @ Launch Academy: Hacknado the SQL

Last week, we dived right into SQL using PostgreSQL with the terminal and within Ruby. Then, we then finished off the week with a little object-oriented programming.

At last, we now know the basics of making a CRUD (Create Read Update Destroy) app.

It took some time getting used to querying data tables, and understanding things like LEFT OUTER JOIN, but after some thorough learning and testing, I understand it now. 

What did we build last week? We remade our news site that used CSV files for articles and now it uses SQL, created a web app that pulled movie, cast, and actor data from a database, and finally attempted to make minesweeper for the object-oriented programming part.

Once getting the hang of the syntax, the SQL isn’t too difficult. Minesweeper, while not a core assignment however, was a challenge.

While I have not fully finished it yet, I have been able to create a minefield and allowed it to propagate mine objects (with random coordinates) within the specified grid. What’s left for me to do is the clearing method initiated by the player. That’s been the hard part, however I feel I am close to an answer.

We’ll be continuing our learning about object-oriented programming this week, and I’ve also been working on a simple game side project I will be talking about at some point.

# Week 2 @ Launch Academy: Taming Data Structures
At this point, I’m feeling fairly confident working around complex data structures. Unlike my first week, there has been less head-bashing this time around, and more investigating.
We’ve played a lot with Sinatra. If you’ve heard of Ruby on Rails, Sinatra is its minimalistic younger sibling. I’ve been enjoying my time with it thus far: learning a lot about routes, post requests, and generating data from files into information on a webpage.
We created a clone of Y Combinator’s Hacker News, and in the last version of this challenge, we used HTML forms to send article links and descriptions via a POST request. I deployed a final version up on Heroku using Redis cloud and JSON to handle the data.
In another challenge, we made a dynamic web page hosting a list of movies, and each generated movie title would be a link that would provide specific info about that movie. For the last part of that challenge, I worked on pagination so only 20 movies would be shown at a time. It took a bit of math, and I had a brief bug where you can get NEGATIVE pages, but I fixed that and got it working.
# IRB, PRY, .grep, .zip, & .sort_by
Two things that were great debugging and learning tools were both IRB (Interactive Ruby) and the Pry REPL. Allowing me to type code line by line and dig into my data, these were singlehandedly the best tools to help me learn my way around complex arrays and hashes.
In working on some of my recent projects, I learned three new methods: .grep, .zip, and .sort_by.

# .grep
frequent_name = [ ]names = [“voldemort”,”bobjoe”,”harry”,”sandra”,”harry”]names.each do |name|    frequent_name « {name => names.grep(name).size}end
—-
Using .grep in conjunction with other methods like .size, I could find and count the most frequent word. The result from this would be a hash:frequent_name=> {“harry” => 2}

#.zip
names = [“chris”, “henry”]moar_names = [“meredith”, “agatha”]names.zip(moar_names).flatten!
—-
Zip works like it sounds like. Like a zipper, it weaves the teeth of the zipper together, creating something new. Used with .flatten, we create a merged version of the array:
names=> [“chris”, "meredith", "henry", "agatha"]

# .sort_by
wizard_rank = [ ]
wizards = [{:name => “Voldemort”, :score => 4}, {:name => “Harry”, :score => 8}, {:name => “Hermione”, :score => 10}]wizard_rank = wizards.sort_by { |wizard| [-wizard[:score]] }
——
.sort_by is really great. It allows me to sort out hashes using the key value I want. The minus before “wizard” allows the highest number to come up first in the new compound data structure:
wizard_rank=> [{:name=>”Hermione”, :score=>10},      {:name=>”Harry”, :score=>8},     {:name=>”Voldemort”, :score=>4}]
Like the first week, I’ve learned a lot. Next week we’ll start playing with SQL, and I’m looking forward to working with it!

# Week 2 @ Launch Academy: Taming Data Structures

At this point, I’m feeling fairly confident working around complex data structures. Unlike my first week, there has been less head-bashing this time around, and more investigating.

We’ve played a lot with Sinatra. If you’ve heard of Ruby on Rails, Sinatra is its minimalistic younger sibling. I’ve been enjoying my time with it thus far: learning a lot about routes, post requests, and generating data from files into information on a webpage.

We created a clone of Y Combinator’s Hacker News, and in the last version of this challenge, we used HTML forms to send article links and descriptions via a POST request. I deployed a final version up on Heroku using Redis cloud and JSON to handle the data.

In another challenge, we made a dynamic web page hosting a list of movies, and each generated movie title would be a link that would provide specific info about that movie. For the last part of that challenge, I worked on pagination so only 20 movies would be shown at a time. It took a bit of math, and I had a brief bug where you can get NEGATIVE pages, but I fixed that and got it working.

# IRB, PRY, .grep, .zip, & .sort_by

Two things that were great debugging and learning tools were both IRB (Interactive Ruby) and the Pry REPL. Allowing me to type code line by line and dig into my data, these were singlehandedly the best tools to help me learn my way around complex arrays and hashes.

In working on some of my recent projects, I learned three new methods: .grep, .zip, and .sort_by.

# .grep

frequent_name = [ ]
names = [“voldemort”,”bobjoe”,”harry”,”sandra”,”harry”]

names.each do |name|
    frequent_name « {name => names.grep(name).size}
end

—-

Using .grep in conjunction with other methods like .size, I could find and count the most frequent word. The result from this would be a hash:

frequent_name
=> {“harry” => 2}

#.zip

names = [“chris”, “henry”]
moar_names = [“meredith”, “agatha”]

names.zip(moar_names).flatten!

—-

Zip works like it sounds like. Like a zipper, it weaves the teeth of the zipper together, creating something new. Used with .flatten, we create a merged version of the array:

names
=> [“chris”, "meredith", "henry", "agatha"]

# .sort_by

wizard_rank = [ ]

wizards = [{:name => “Voldemort”, :score => 4},
{:name => “Harry”, :score => 8},
{:name => “Hermione”, :score => 10}]

wizard_rank = wizards.sort_by { |wizard| [-wizard[:score]] }

——

.sort_by is really great. It allows me to sort out hashes using the key value I want. The minus before “wizard” allows the highest number to come up first in the new compound data structure:

wizard_rank
=> [{:name=>”Hermione”, :score=>10}, 
     {:name=>”Harry”, :score=>8},
     {:name=>”Voldemort”, :score=>4}]

Like the first week, I’ve learned a lot. Next week we’ll start playing with SQL, and I’m looking forward to working with it!

# The First Week @ Launch Academy & Pivoting the Bootcamped Comic
I’ve survived my first week at Launch Academy.
When asked about my experiences thus far, I’ve replied to friends that “Every day is like solving an intense mind puzzle. I’m engaged, excited, mentally tired, but I want to keep on programming at the end of the day because it’s fun.”
So far, what have I learned? We’ve been diving deep into Ruby and have learned flow control, arrays, methods, hashes, working with CSV and JSON files, compound data structures, and a bit of Git. We’ve created more than a dozen programs. There are always extra challenges to complete, to keep me out of my comfort zone and to keep on learning something.
Sometimes solving a challenge comes easy, and other times it is head-bashingly difficult. When working on the 3rd iteration of the cash register program, I spent two and a half days really tying to understand hashes.
Thanks to our learnings on “how to learn”, I know that I am capable of overcoming these short-term problems. I either seek the solution on my own, with others in my cohort, or with the help of an experience engineer. I always end up being more wiser, more enlightened, and more satisfied with what I am capable of doing with each passing day.
I’ve also made some test programs unrelated to our workshops and challenges, to reinforce my knowledge. I spent half a day converting one of my programs to use methods, to be more familiar with them and to not face problems in the long run when we get into object-oriented programming.
The thing I have enjoyed the most about the learning experience here is that it’s so different than anything I’ve experienced in the past. I’ve always been a hands on person, and had trouble retaining information during long lectures in college. I like to be highly involved in the search for answers and the discovery of knowledge, and the program at Launch Academy rewards me for doing so.
I’ve learned more about programming than my random dabbling in the past decade, and I’m at the point where I can look at other programming languages and see the many similarities between them. I’m excited, and I can’t wait to see what we make next week as we start interacting with the web.

# Bootcamped
Last week, I mentioned a comic side project that I would be working on during the cohort. I am still going to work on it, however I am scaling it down a bit as I had no idea on the amount of work I was going to experience at Launch.
No site will be launched (yet), but I will be posting my drawings and comics here once a week. I also have been jotting down the many experiences I’ve had, so I have a backlog of material to work through.
I intend to tie this into my future “Breakable Toy” project, so hopefully you all will see something cool towards the end of the cohort.
See you all soon.

# The First Week @ Launch Academy & Pivoting the Bootcamped Comic

I’ve survived my first week at Launch Academy.

When asked about my experiences thus far, I’ve replied to friends that “Every day is like solving an intense mind puzzle. I’m engaged, excited, mentally tired, but I want to keep on programming at the end of the day because it’s fun.”

So far, what have I learned? We’ve been diving deep into Ruby and have learned flow control, arrays, methods, hashes, working with CSV and JSON files, compound data structures, and a bit of Git. We’ve created more than a dozen programs. There are always extra challenges to complete, to keep me out of my comfort zone and to keep on learning something.

Sometimes solving a challenge comes easy, and other times it is head-bashingly difficult. When working on the 3rd iteration of the cash register program, I spent two and a half days really tying to understand hashes.

Thanks to our learnings on “how to learn”, I know that I am capable of overcoming these short-term problems. I either seek the solution on my own, with others in my cohort, or with the help of an experience engineer. I always end up being more wiser, more enlightened, and more satisfied with what I am capable of doing with each passing day.

I’ve also made some test programs unrelated to our workshops and challenges, to reinforce my knowledge. I spent half a day converting one of my programs to use methods, to be more familiar with them and to not face problems in the long run when we get into object-oriented programming.

The thing I have enjoyed the most about the learning experience here is that it’s so different than anything I’ve experienced in the past. I’ve always been a hands on person, and had trouble retaining information during long lectures in college. I like to be highly involved in the search for answers and the discovery of knowledge, and the program at Launch Academy rewards me for doing so.

I’ve learned more about programming than my random dabbling in the past decade, and I’m at the point where I can look at other programming languages and see the many similarities between them. I’m excited, and I can’t wait to see what we make next week as we start interacting with the web.

# Bootcamped

Last week, I mentioned a comic side project that I would be working on during the cohort. I am still going to work on it, however I am scaling it down a bit as I had no idea on the amount of work I was going to experience at Launch.

No site will be launched (yet), but I will be posting my drawings and comics here once a week. I also have been jotting down the many experiences I’ve had, so I have a backlog of material to work through.

I intend to tie this into my future “Breakable Toy” project, so hopefully you all will see something cool towards the end of the cohort.

See you all soon.

Reflecting on Pre-Learning & A New Drawing Project

#Pre-Learning

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!

#Drawing

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.

The Blog & More Has Been Updated

Greetings friends,

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!

Jerra Axismauler - July 2014 - Painted in PaintTool SAI / Edited in Photoshop CC 2014
I finished this in time for a friend’s birthday, and I worked on this project on and off for about a year, spending a day or two on it every couple of months.
It’s a painting of one of my friend’s Guild Wars 2 characters, and here’s a screenshot for reference:

While this project was time consuming, I learned a lot about depth, coloring, and lighting from the experience. There were many times where I almost started from scratch to get things right.
While I won’t be making any long term drawings like this one for a while, I’m sure the next time I work on something this detailed, it’s going to be great.
I’ll be making another blog post soon about my progress with Launch Academy's pre-work. My cohort starts in about a month!

Jerra Axismauler - July 2014 - Painted in PaintTool SAI / Edited in Photoshop CC 2014

I finished this in time for a friend’s birthday, and I worked on this project on and off for about a year, spending a day or two on it every couple of months.

It’s a painting of one of my friend’s Guild Wars 2 characters, and here’s a screenshot for reference:

While this project was time consuming, I learned a lot about depth, coloring, and lighting from the experience. There were many times where I almost started from scratch to get things right.

While I won’t be making any long term drawings like this one for a while, I’m sure the next time I work on something this detailed, it’s going to be great.

I’ll be making another blog post soon about my progress with Launch Academy's pre-work. My cohort starts in about a month!

A Card With Thanks
With my last day at work quickly approaching (tomorrow), I decided to be a little creative with giving my thanks to all the people I’ve met in the past year. I’ve been handing out my new business card over the past few days to regulars and coworkers alike.
The QR code on the card leads to a hidden “Thank You” page on this site.
Just in case: if you did not get a card yet or don’t have a way to scan the QR code, don’t fret. You can go to to www.alacritystudios.com/thanks to view the letter.
Thank you to all the people I’ve met in the past year. Each encounter has meant a lot to me, no matter how long or brief that encounter may have been.
Your friend, Andy

A Card With Thanks

With my last day at work quickly approaching (tomorrow), I decided to be a little creative with giving my thanks to all the people I’ve met in the past year. I’ve been handing out my new business card over the past few days to regulars and coworkers alike.

The QR code on the card leads to a hidden “Thank You” page on this site.

Just in case: if you did not get a card yet or don’t have a way to scan the QR code, don’t fret. You can go to to www.alacritystudios.com/thanks to view the letter.

Thank you to all the people I’ve met in the past year. Each encounter has meant a lot to me, no matter how long or brief that encounter may have been.

Your friend,
Andy