My Path to Software Development
As part of the Flatiron School’s Online Web Developer Program, the students have been asked to write regular blog posts. The first topic asks why we decided to learn software development. I think that my reason is best told by a story about why I joined the program.
Learning about and using technology has always been something I’ve enjoyed. I’ve tended to be the guy that people go to with their tech questions. However, I’ve always been an end-user, not a developer. Software development had remained something of a mystery to me.
My family was surprised when I didn’t choose a tech related major for college. I did take a couple of programming classes, but didn’t develop a passion for it at the time. Instead I started as a physics major, which quickly turned into an economics major with some finance mixed in for employability.
Since college, I’ve spent 10 years as a financial professional. It’s an experience that I wouldn’t trade if I could, particularly my time in the investments industry which significantly impacted how I think about business and the world.
The funny thing is, in every position I’ve had, I was still the go to technology person. I’ve always had an intuitiveness and understanding of technology which has provided a way I could differentiate myself from my peers. We all use technology every day, but when we don’t have a solid understanding or even a desire to learn more about technology we tend to do things in ways that are very inefficient. So I’ve found that tech skills, particularly outside of IT departments, are highly valued.
I always knew that I wanted to pursue an advanced degree. Much of what I was doing at work involved using technology, but as I mentioned I had never had much formal technology training. So instead of the typical MBA I enrolled in a Master of Science in Information Systems degree.
During grad school, a couple of classes had a significant impact. First were a pair of classes covering artificial intelligence, data mining, and predictive analytics as applied to business. These were essentially “data science” classes. The second was a final master’s project.
When I was taking those data science classes, I had been reading a lot about data science and the data science competitions held by Kaggle. I wanted a way to apply what I had learned in class and so I decided to compete in a Kaggle competition as a class project.
For the first class’s project I started small with Kaggle’s Titanic training competition. However, even this competition presented challenges, the main one being the ability to write code for the competition. In class we had only used a little Java for some homework, so I taught myself how to use R and R Studio, two popular data science tools.
The second class built on the first, covering a wider range of machine learning algorithms for data analysis. Again I chose to compete in a Kaggle completion as a class project. I don’t think I realized how many hurdles I would have to overcome to finish that project, but the result was worth it. My R skills improved, I learned some SQL, and I even had to use Amazon Web Services to build my predictive model because my laptop could’t handle the dataset. At the time of my Kaggle submission I was ranked 40th overall…a great result! My professor told me I should pursue a Ph.D. because I had so much passion for the project and the topic.
Up until that point, my programming experience had been limited to some C++ in college, some Excel VBA at work, and a little Java in grad school. But the process of learning and applying the R language to a project of that scope was an awesome feeling. It’s an accomplishment that I’m still extremely proud of.
My master’s program required a final semester long project for graduation. And after finishing the data science projects, I initially thought that I would continue with that path. However, there was one other project that I had in mind. One thing I knew I wanted to complete before graduation was to develop a website. So for my final project I chose to build a website using Ruby on Rails.
But there was a problem: I had never done any back-end web development. I didn’t know the Ruby language or the Rails framework. Only basic HTML and CSS was covered in any of my classes. So I had to start at the basics by building a couple of simple projects and then build on that base. I watched a lot of RailsCasts and spent a lot of time googling. I learned very quickly that web development can be extremely complicated (See: Stuff Everybody Knows). Slowly I worked through each feature and my site took shape. Completing that project was one of the hardest things I’ve ever done.
When I started the project, I didn’t want to build a simple website. I wanted something as complete as possible. A site that was production ready. I’ve included a picture of the whiteboard checklist. Looking back it’s hard to believe how big of a project I tackled. The final project is at QuestionFair.com.
In completing these grad school projects, I had committed myself to much larger and harder projects than I originally expected. This required me to push myself very hard. But I quickly realized that the projects didn’t really feel like work. They were both challenging and rewarding. The type of work that I found engaging and enjoyable. I knew that I wanted more and that I could turn this into a career.
I’ve had a few months between grad school and starting the Flatiron School’s Online Web Developer program, but now that I’m back into web development I am super excited about what I’m learning and how I’m progressing. It’s been a long journey, but I’m excited to be embarking on a new career where I can put my tech skills to task.
This is a blog post for the Flatiron School’s Online Web Developer program. You can find more information here: learn.co/with/snavage.