From Omaha Code School

Blog posts about my time in Omaha Code School

Our First Project

This week we started our first project, creating a blog from scratch. We were told to research different blogs and put together a list of features we would like to implement. I looked at a couple of the blogs I read regularly and put together the following list.

  • Static Pages
  • Posts with pagination
  • Comments
  • Polls
  • Contact Us page that emails form comments
  • Ability to sort by category

We learned how to use GitHub to build a project plan. Using the ‘Issues’ feature to create a buildout checklist was really easy, and made sure I didn’t leave anything out. I used a whiteboard to sketch out some of my ideas and took a pictures so I could add them to my documentation. Once I finished my plan, I sent it off to Sumeet for approval. He wanted to make sure that our plan was achievable with what we have learned in the first three weeks.

Once I got the okay, I started coding. We are using SQLite for our backend database and Sinatra for the web server. It took a little trial and error to get my database relationships defined correctly, but eventually it started working. I started knocking out features pretty quick. First users, then posts, then pages. I was feeling pretty good, but then I tried to get comments working. My comments are tied to two other objects, users and posts. I got them working with posts pretty quickly, but users were just not working. This is where Omaha Code School really comes into it’s prime. I got up and went around to get idea’s from what other people were doing. Having 12 other people working on the same thing as I am is a great resource. After asking some classmates, and looking at their code, I figured out I had capitalized the ‘u’ in ‘users’ when it was supposed to be lowercase. Errrg. The one thing I dislike about coding is how sensitive the syntax can be.

My Blog
My Blog

By Friday afternoon, I was feeling pretty happy with my project. It wasn’t complete, but the basics were working well. Unfortunately, it didn’t look as good as it worked. Everything was black text on white background. Since we had an Open House at OCS that night, I wanted to make sure my project was something I could demo if needed. So I decided to look up how to do some basic CSS(cascading style sheets) even though we haven’t talked about it yet in class. In a little less than an hour, I had a blog that I was pretty proud of. I’m glad I put in some time on the aesthetics, because I did get to show it to a handful of people and they all seemed to like it.

I’m still really enjoying my time at OCS. I can’t believe it’s already been three weeks. We are bonding as a class and everybody seems to be keeping up pretty well.

Field Trip to Grain & Mortar

Grain & Mortar welcomes Omaha Code School
Grain & Mortar welcomes Omaha Code School

Field trips are great. You get to experience what you have been learning about in class. Yesterday, our class got to visit Grain & Mortar. They are a design studio based out of the Mastercraft building in north downtown Omaha. We were greeted with smiles as soon as we walked in the door. As we made our way through the studio, you knew they have a good eye for design and setting a mood. There were tons of industrial elements spread around the room that really fit in well.

As we sat down to eat, I got to talk with Kristin and Miranda. They talked a little bit about their space and how it evolved over the last several years. It turned out that their break room used to be the old boiler room. It was brick with old pipes hanging from the ceiling. Reclaimed wood adorned the cabinetry. We were all pretty jealous that they get to work there everyday. As our conversation continued, we started asking questions about how they work. Turns out they create every website they build by hand, which is pretty impressive.

After we wrapped up lunch, we heard a really nice overview from Eric Downs, one of the creative directors. He talked a little more in-depth about what they do and some of their design philosophies. After that, we moved into the studio to see some examples of what they are currently working on. Miranda was working on new website for a company that makes plastic shelves for big box retailers. Before G&M, the company’s website was a landing page with four PDF files. Now it’s fully responsive, and has a e-commerce shop. It was great to be able to see the before and after and understand how this will increase sales for the company.

We also got to hear from Caleb, the lone Windows user in the office. Caleb is one of those people you just know is brilliant. He talked about some of the pros and cons of using different development environments and how to get the best of each. It sounded like they run into technical hurdles quite often, but everyone rolls up their sleeves and get together to come up with a working solution. We saw a demo of their new website and he talked about how they embedded video directly into their site using HTML-5. It made me wish we were already working with CSS in class, but that will come soon enough.

We wrapped up by having a Q&A session where we asked about all sorts of topics. Everyone there was very open didn’t hold anything back. There were several comments about how much they respect what we are doing. Since I hold them in such high esteem, it took me by surprise.

Everybody had an awesome time and learned a lot. I can’t wait to see where we will go next.

As a reminder, the Omaha Code School Open House is tomorrow, March 14th, from 4:30 to 7:30 pm. We will be showing off our space and answering any questions you might have. It’s still pretty early to show off any work, but if you twist my arm I might show you something. Hopefully I’ll see you there.

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.