Web design and development have always been hobbies of mine. In high school I created a website with my friends by reading the source code of popular sites and emulating what we saw. We created a site for other students at Signature School in the Pre-IB program to share news and organize, as we were in the middle of a battle with the school board over funding and the future of the program. Well, that was the goal at least.
It ended up being a terrible site that no one used much and we didn’t maintain. To give you an idea of the caliber of this site – the prominent font was Comic Sans, it used html frames (which when our free hosting decided to add ads to their service each frame got a big ugly banner), it had a Jokes section where we added gifs and sound files, mostly from monty python. It was pretty awful, but a vallient effort considering none of us knew how to do anything and the internet had just started to take off.
Fast forward to college when I built my first personal site. I kept playing with web design through the end of high school but mostly just small tests and projects (trying to learn flash and dreamweaver). When I moved to Bloomington to attend IU, I decided to start a blog to stay in touch with friends from home. Always making things more difficult for myself, I wasn’t satisfied starting a Blogger, or Livetype blog, so I built my own. Now, when I say blog, I mean a series of static html files divided by month that I would update with new “posts” periodically. It looked like a blog, but had no dynamic functionality what-so-ever. I posted photos, music, ramblings, and updates for people to read and know how I was doing at college. Most of this was designed and coded using Dreamweaver and text edit.
After my freshman and sophomore years I found myself using that site less and less. As Facebook and other social media were starting to take off, there was less of a need for the blog. I had also started using Blogger and other simpler platforms for my blogging needs. However, because I was a music student and knew that one day I’d need a portfolio site, I started the quest of designing the perfect personal portfolio website. Very few of these designs actually got coded and put up anywhere, but they were good exercises in photoshop and dreamweaver none-the-less. As I neared the end of college, I needed to finalize my portfolio site, so I picked a design and decided to code it completely from scratch. I didn’t use Dreamweaver or any other what-you-see-is-what-you-get program. It turned out… ok, and it worked for the time, helping me land some great internships and work. I lived with that site for a few years but rarely updated it due to the difficulty of the static pages (much like my earlier blog).
During that time, I started exploring WordPress for developing Blogs. I built a few test sites and a blog for my girlfriend. Then, we decided to move to South Korea to teach English for a year. I set up a hosting account, bought a domain, Spicyfishy.com, and launched our travel blog! This was the first site I really felt good about and updated regularly for the time we were overseas. It’s still up and hosts hundreds of photos, movies, posts, and anecdotes from our time in South Korea. I spent hours tweaking the theme and playing with new plugins over the course of our time there, but didn’t dive into PHP (the language WordPress is written in) very much.
When we came home, I built a number of other sites for friend’s, my wife, and freelance projects that I could pick up. All of these were either basic wordpress or raw html hand-coding.
Which brings us to 2011. In the late summer, Kate and I had one of those “state of the universe” conversations and the common theme of “me not knowing what I want to do when I grow up” came up. But, instead of just pontificating about the problem, Kate challenged me to do something about it. After a few emails and weekly goals, I had a meeting set up with Alan, a developer at Groupon. I had been working at Groupon for a year at this point, and I knew some of the developers but had never sat down to ask them about what they do. I was curious – do all software developers have computer science degrees? – how hard is it to learn? – what should I do first if I’m interested? Alan gave me a lot of ideas and told me that no, you don’t need a degree, in fact some of their best developers had degrees in completely unrelated fields (like music!). So, I started reading more about PHP and learning the basics of programming.
Later in the fall, Groupon Posted a new position called Development Apprenticeship. This 6 month program was for people who knew some programming basics, but were not up to the level of being a junior developer yet. Over 6 months, the apprentice would train and work directly with the development team at Groupon – with the intention of being at the necessary level to be hired as a full-time developer at the end. I was intrigued. So, I emailed Alan to see if he knew if there was an internal version of this new program. He passed my email on to the Apprenticeship coordinator, Dave Hoover and he was also intrigued by the idea. I set up a meeting with Dave and and another manager, Shinji, and we discussed the options. The next week, I started learning PHP with a Andrew Vaughan, a communications developer!
The plan, as of right now, is to spend the first half of my apprenticeship learning the basics of programming and PHP. We’ll meet for one half day a week, with an hour and a half check up later each week. Once I’m comfortable with PHP, I’ll start working with a different team to learn Ruby on Rails, the primary language in which Groupon is written. This will hopefully all take between 6 and 12 months. The goal being that I’ll move to the development department at that time.
I’m excited about the possibilities that this will hopefully open up for me. I’m fulfilling a long-time goal of learning to program, and finally feel like I’m on a path to a viable career.
This site will chronicle my progress and hopefully provide a guide to any others who are interested in development, but don’t know where to start.