Monday, June 3, 2013

Week One: Orientation, Intro to HTML, CSS, and Ruby

Welcome back! I'm a bit late writing this (since I said I'd aim for every Saturday) but hopefully you can forgive me. Today, I'm going to talk about my first week of class, and the programs we made.

Monday

Monday evening was orientation. Everyone gathered around for pizza and drinks, and chatted for about thirty minutes. A class website list had been sent out a few weeks prior, with an introduction thread, but for whatever reason most of my classmates hadn't posted in it (only nine or so), so most of these people were brand new to me. There were a surprising number of people that were from the east coast, and even another person from New Jersey (though he moved to SF about three years ago). After the eat-and-greet, we all sat down for a short presentation about the program, an introduction of the teachers, and then we all introduced ourselves, talked about our goals, and shared what our guilty pleasure was (mine is eating a pint of ice cream without realizing it - this happens way more than it probably should). We then had an "Installfest" - basically, everyone installed a bunch of programs on their computers so that we'd be ready to go on Tuesday.

Tuesday

Well, obviously Tuesday morning about half the class had errors running various things (myself included) so we spent about two hours getting everything *properly* installed, and then class finally started. I wasn't really sure what to expect - some of the pre work had been pretty difficult and/or hard to understand, and if we jumped in from where the pre work had left off, I think I (and a lot of others) would have had a rough first few days. Fortunately, the class started off basically from zero, and started us off with some basic command line and github commands, then moved into a basic overview of HTML, before letting us loose shortly before lunch to work on a profile website. After lunch, we were asked to add in as much CSS as we remembered, and spent the rest of the day tweaking our websites.

Wednesday

Our instructor was out sick today - Monday and Tuesday he'd had a throat cold, and I guess he finally lost his voice, so the two assistant lecturers took over for the day. We spent the morning going over a bit more HTML and CSS, and then in the afternoon went over some basic Ruby stuff (again starting will really basic stuff). I noticed that a few people seemed a bit unhappy with the slow pace of the first two days, but personally I didn't mind it, since I think that reviewing these basic concepts is good and even though I personally was okay with most/all of what was being covered, I didn't mind having it drilled in one more time. Besides, it wasn't like we couldn't also work on our website, or any programs from the pre work, while listening to what was being said, so I didn't think it was a waste of time or anything. I also expected that the class would ramp up pretty quickly, and two "easy" days out of twelve weeks isn't such a huge loss. Our homework problem was to build a calculator program that (for whatever reason) offered two settings: Basic (addition, subtraction, multiplication, division) and Advanced (exponents, square roots). I was really proud of how "clean" my program felt when I was done with it, but I showed it to Erek and he thought basically the opposite. Whoops. I believe his friend said, "I have never seen so many nested methods in my life." Oh well! Erek also left a bunch of comments on my calculator program, so I intend to go back and work on it some more when I get a chance (I'd hoped to get to it this weekend, but ended up being a bit too busy), but sometime this week or next weekend, I'll need to be more vigilant.

Thursday

Today was all Ruby, and the pace picked up quite a bit. We spent most of the day covering Classes, as well as making our first multi-file program. The main assignment of the day was to work with a partner to develop an animal shelter app that would allow the user to adopt pets and give pets up for adoption, and to search for a specific type of pet. My partner, Tom, and I were able to map out how we wanted to write the program pretty quickly, and wrote most of the smaller files quickly, but then got stuck for a ridiculously long time on some pretty simple things. I was pretty tired (going to sleep super late for whatever reason the night before) and my brain started shutting down around 5:30. We stayed after class to keep working, and finally called it a day around 8, but I don't think I really contributed anything at all during that time. I got home, had dinner, and slowly recharged, and then got back to work, and was able to figure everything out. Amy also had a great idea of adding ASCII art animals to give the program a visual aspect, which made it a lot cuter. She found some pretty great pictures, so in the end I had a pretty unstandard animal shelter that allowed you to adopt not only cats and dogs, but also giraffes and dinosaurs. Of course, I didn't implement this until about 3 AM, so I headed into Friday with about four hours of sleep (again...why...).

This was the roughest day for me, but we did have an ice cream social during lunch, which was pretty great!

Friday

Sinatra was introduced today - Sinatra is a web framework similar to Rails (Ruby on Rails is what we're ultimately moving towards learning to work with, and is what most bootcamps teach you), but is much simpler. I might be explaining this wrongly, but basically, we can write code in a bunch of different languages, and then Sinatra combines it all together, so that I can have Ruby programs running in the background on my website.

The concept of Ruby gems was also introduced. Gems are basically programs that other people have written, and you can install them and then call them in the program that you are writing. As an example, we installed an Image Search gem, and then used that to search Google Images in our program. So what was this program?

Well, it is a bit more difficult to explain than the previous programs, since this one was pretty specifically geared towards familiarizing us with Sinatra and gems, but it was basically a website with three different search functions (each powered by a different gem). You can search for information on a specific stock, you can search IMDB for information on a movie, or you can run an image search. This one was pretty fun to write, even if the different parts didn't "flow" together smoothly.

Reflections

After my first week, I'm really enjoying programming. There are occasionally frustrating parts, but when you finally figure out what was wrong, and get your program to work properly, it is pretty satisfying. Unless it's something dumb, like adding an 's' to a variable somewhere, and it taking you two hours to notice. Or when you save a duplicate file, and then make changes in it, and can't figure out why none of your changes are showing up, only to realize you're still running the original file. Ugh. But! Aside from those times, it's been fun!

I should go now, but I hope you've enjoyed reading my summary of my first week!

2 comments:

  1. I'm very much looking forward to your week 2 update!

    ReplyDelete
  2. Oh, I just saw this comment, sorry! Thanks! I'm sorry my week 2 update was late, but I hope you enjoyed it!

    ReplyDelete