SPN: 2nd week of Code School brings challenges, hoodies & ice cream

We’ve come a long way in the first two weeks.

We started out small, only coding in Ruby on the command line. Our first assignment was to write a small program to keep track of pets for a humane society. We used a concept called pair-programming, and I got to work with Cara Heacock on this assignment.

We read in pet information from the user and stored it in an array so we could search and update stored values. It was a good first program to recall the skills we had learned during our prework.

Wednesday, we hit our first wall. Instructor Sumeet Jain wanted us to score a game of bowling. Matt Hovanec and I had a really hard time figuring out what classes we needed. It was also the first program we tried to write using RSPEC and Test Driven Development, where you write a series of small tests and then write the code needed to pass those tests.

We ended up having such a hard time with the assignment that we had to skip testing and just try to get it working. This was by far the hardest program we had during the week, but we learned a lot even though we weren’t completely successful.

Then it clicked. Our homework on Thursday was to write a stock portfolio application. We continued our Test Driven Development, and this time it just made sense. I partnered with Kaitlyn Hovanec for this assignment. We were able to cruise through the assignment so quickly our instructor had to come up with more features for us to work on. It was an awesome feeling.

To wrap up the first week, we got a surprise lecture about how we should keep up our physical appearance. Sumeet informed us that we would be implementing a business casual dress code. The entire class had panicked looks on their faces.

Luckily, he was joking. He couldn’t even keep a straight face through the whole thing. We ended up getting our awesome new hoodies and eating some custom eCreamery ice cream the folks at Interface School sent over. All the flavors were named after development skills—it was pretty cool.

Omaha Code School students enjoy treats from eCreamery in their new OCS hoodies. 

Our second week brought many challenges. We switched from command line to web-based projects. To get our websites up and running, we used a gem called Sinatra. Figuring out routes and embedded ruby was difficult at first, but we’re getting the hang of it.

We also started to learn about APIs. If you’re unfamiliar with that term, it stands for Application Programming Interface. Essentially, some developers offer open communication channels to look up information online. Common APIs include stock quotes and weather information.

We used a service from themoviedb.org to build our own movie website. We built web pages on demand with the information retrieved through the API. This was the first project I could really show off to friends and family.

The prework we did before class really did help us get off on the right foot, even though we didn’t exactly know what we were doing at the time.

I think there is a pretty mixed bag as far as difficulty rating. I’m learning a lot of new things and it’s been fairly easy for me. But I am relying a lot on my experiences from coding in college to put the pieces together.

Classmates that don’t have that background take a little longer to get it, but Sumeet is really good about giving us opportunities to ask questions and get help.

Thursday night Sumeet decided that we needed a little break. We walked down to Saints Pub and grabbed some drinks and appetizers. It was a great opportunity to just talk and get to know each other. Fellow students Johnathon LuethLochlan HehrBrandon NorrisAbby Jones and I ended up staying pretty late. It was a good break from the grind of class and good to get to hear stories that we wouldn’t hear from each other in class.

Overall, the class is starting to wear on us a little bit, but we aren’t to the point of exhaustion. We are learning a lot very quickly and that eventually will overwhelm your brain. Not having class on weekends is going to save us mentally going forward.

On Friday from 4:30-7:30 p.m., Omaha Code School is hosting an open house in our space at Midtown Crossing—200 S. 31st Ave., Suite 4107. It is an opportunity for our school to introduce ourselves to the community and answer any questions that people have. I will be there and would love the chance to meet you.

The first two weeks have come and gone. We have learned a lot and the firehose isn’t letting up any time soon. Make sure you’re following along on my blog and feel free to ask me any questions you might have onTwitter.

Want to get in contact with Andy? Tweet at him at @andyvondohren.

New OCS Guest Blog on Silicon Prairie News

Front page of Silicon Prairie News
Front page of Silicon Prairie News

This morning Silicon Prairie News(SPN) published my guest blog recapping our first two weeks in class. I’m going to do this about every-other week as a way to get the word out about what we are doing at Omaha Code School.

Please give it a read. http://spne.ws/t0Q

If you don’t know about SPN, they are a technology blog that focuses on the midwest. Primarily Omaha, Des Moines, and Kansas City. They are pretty well-known and have very loyal followers, so having the opportunity to write for them is a huge blessing.

Tools of the Trade

People have asked me what programs we are using in class. At its core, a website is a collection of text files, so you don’t need much. I remember using Microsoft Notepad to create my first website. At Omaha Code School(OCS) we use a program called TextMate. It is a text editor specifically designed for development.

TextMate 2 Logo
TextMate Logo

At first, TextMate and I were not friends. I think it was more to do with my unfamiliarity with my new MacBook then the program itself. I was having a problem remembering menus and shortcut keys. As time passed, I started to see the power of using this program. Specifically, built-in GIT and code bundles.

At OCS we upload all our code to a service called GitHub. This forces us to save and commit our code frequently, and makes backups of what we are working on. TextMate is aware that we use GitHub and shows us the current status of each file. It’s really helpful when I make a mistake and need to roll my project back to my previous commit.

The feature that separates out TextMate from the other text editors I’ve used is code bundles. Bundles are small pieces of code that you can insert into your code. It doesn’t sound major at first, but it could eliminate almost all my stupid human syntax errors.

To use a bundle you select Bundles -> Select Bundle Item, or use the keyboard shortcut ^ + ⌘ + T. This will show you the bundle search window. TextMate is aware of the type of file you are working on and will only show you the applicable code bundles. Once you find the bundle you need you can then import it into your file.

TextMate bundle search window
TextMate bundle search window

Ruby requires that almost everything we do be a member of a class. To create a class, there are about 10 lines of code that are almost identical. Using a bundle, all you need to type is the following:   ^⌘T + “class” + return

TextMate Class Bundle
TextMate after inserting a Ruby Class bundle.

If you look closely, the class name is highlighted. TextMate bundles know which keywords need to be modified. You can type a value and then press TAB to move to the next field. This allows you to update everything you need without having to use your mouse or arrow keys to move around. It doesn’t seem important at first, but after using it to create a couple of objects I know I will be using it a lot.

The built in bundles are helpful, but I have already found that I have a slightly different style. Fortunately, TextMate has a built in bundle editor. I’m the first to admit that I don’t fully understand what is going on in the editor. I can make my way around enough to add another line or change the style a little bit, but that is about it. As I continue to learn about formatting and syntax I’m sure I’ll start to understand more.

I know I’ll be using these features a lot, hopefully you will too.

Extracurricular Activities

I have talked a lot about what we have done in class recently, but I wanted to take a minute and talk about some of the things going on outside of the classroom. Sumeet and Rahul like to keep us on our toes and are always looking for opportunities to introduce us to new people. Here are some of the upcoming events we will be taking part in.

March 5th (Today) @ 6pm – Omaha Mobile Group
The Omaha Mobile Group is having a panel discussion on the benefits and drawbacks of Native vs Mobile Web vs Hybrid development. This group specifically reached out to OCS to make sure we knew we were invited. I think we might have a couple of people from class interested, but the number of people who show up will probably depend on how much homework we have tonight.

March 12th – Field Trip to Grain & Mortar
This is the first opportunity for our class to visit a startup in person. We will be touring Grain & Mortar‘s  space, and talking with them about what they do. We are really looking forward to learning as much as we can during this time.

March 14th @ 4:30 – Open House at Omaha Code School
Omaha Code School is hosting an open house so that anyone interested can come see what we are doing. The event will go till 7:30pm and will have a little to eat, a little to drink, and a little to listen to. This will be a great chance to get to know the students, mentors, and instructors associated with OCS.

March 20th @ 5pm – Beer && Code
This is the first time another developer community will utilize our space at OCS. Beer && Code will be hosting their monthly meetup starting at 5pm. Developers from across the city get together for a tasty beverage and work on some code. If you code, grab your laptop and come out. Bring your own drinks to drink or share. Brix and Beertopia are nearby if you need to pick up something on the way.

One Week In

CodeSchoolAdventure

We have come a long way in a week. I started out not remembering the exact syntax for how to run a Ruby program. I felt a little silly, but we made it. Here is a look at some of the things we learned.

We started out small. We wrote a small program to keep track of pets for a humane society. Getting pet info from the user and storing it in an array so we could search and update stored values. It was a good first program to recall the skills we had learned during our prework.

We then moved on to a classroom management app. It read in a text roster, and helped create random groups for projects and homework. We had to learn how to read and parse a file, along with how to iterate through collections of data. It was also an opportunity to build on our understanding of Object Oriented Programming.

Then we hit a wall. We were tasked with scoring a game of bowling. That is a harder problem then it sounds. I had a really hard time figuring out what classes we needed and how to score spares and strikes. It was also the first program we tried to write using RSPEC and test driven development. This was by far the hardest program we had during the week, but we learned a lot.

Then it clicked. We wrote a Stock Portfolio application. We continued our Test Driven Development, and this time it just made sense. We were able to cruise through the assignment so quickly our instructor had to come up with more features for us to work on. It was an awesome feeling.

On Friday, we needed to play a game of Tic-Tac-Toe. It wasn’t so bad at first, until we got to artificial intelligence. Figuring out how to block a player from winning is harder than it sounds. We even had an opportunity for extra credit to modify our program to handle a board of any size. This was especially difficult, but we made it work.

Overall, I’m proud of the work we completed during the first week. I’m also looking forward to getting into web development with Sinatra next week.