#5 My coding journey begins

October 21, 2016


For a long time now, I’ve wanted to be able to develop web and mobile applications. I’ve always built my own computers, but never any software. The few CS (computer science) courses that I took back in college taught me how to write algorithms and solve iterative math problems, but didn’t demonstrate much real-world value. Still, the classes were both challenging and rewarding. They pushed the limits of my ability to problem-solve, so I found them enjoyable. I can even remember grappling with the thought of changing my major from mechanical engineering to CS.

I’ll admit, I occasionally think about what would have been if I had chosen the CS path. How many apps would I have built by now? Where would I be working? Would I be passionate about whatever I was doing? If parallel universes exist, there would be another version of myself who could answer these questions. But oh well, that doesn’t matter. You can’t change your past, but you can learn from it and shape your future.

I’ve worked as some variation of mechanical engineer in professional environments for the past 4 years and some months now. Just like most people, I’ve had exciting times in my career, but for the most part I’ve been pretty complacent.

Complacency has an appeal to many people, but for me it lead to feelings of emptiness and anxiety. Towards the end of my recent employment, the work days had become monotonous, the tasks ceased to be challenging, and it had been a long time since I learned anything new. When I finally decided it was time for me to move on, my boss gave me the option to change departments, but I had to decline. I was already checked out mentally, and just didn’t want to continue a career in building cables anymore. It was time to focus my efforts on things that really mattered to me. It was finally time to learn to code.

Starting out

I hadn’t touched a programming language in 5 years so I had no idea where to start. In tech, things move extremely fast and new technologies are emerging all the time, so it wasn’t wise to restart learning from where I left off. Luckily I have a few friends that are developers so asked them for advice.

The general consensus was that the best starting language today for web development was either Python or Ruby. After some more research comparing the languages, I finally decided that I would learn Ruby. Ruby seemed like the best choice because of its easy readability, amiable syntactical rules, well-written documentation, and it’s pairing with the acclaimed RoR (Ruby on Rails) web app framework.

For 2 months now, I’ve been teaching myself the basics. I knew some HTML and CSS because I had built websites in the past, so I’ve been focusing on Ruby, RoR, and a small amount of Javascript. The best resources that I’ve been using would have to be the W3Schools tutorials, Codeacademy courses, Rubymonk, and video tutorials on Youtube. These resources made it extremely easy for me to start learning to code again and I would highly recommend them to anybody just starting out. For structured learning, I would suggest starting with Codeacademy, and then finding a good video tutorial series to follow.

Coding bootcamps

I came across coding bootcamps when I was looking for better ways to systematize and accelerate my learning process. Coding bootcamps are a revolutionary new education system for people that want to break into the tech industry as a developer. They’re extremely structured accelerated learning programs designed to take a person with little or no coding experience and turn them into a skilled developer. Bootcamps typically last from 3-6 months and some of the well-known ones advertise high job placement rates of their graduates. Because of their design for speed, high-impact learning, and reputation for job placement, coding bootcamps have become a huge success over the past few years.

Enrolling in a bootcamp was exactly what I needed to grow as a developer, but I didn’t know which was best for me. I knew I wanted one that was completely online and taught RoR, but there were still many to choose from. After 2 days of full-time researching, I decided that I would sign up for The Firehose Project free 2-week prep course. My decision was influenced by their 1-on-1 mentorship program, a strong community backing, and a team project that would simulate the workflow of a real-world startup. Also, the reviews from their alumni were unanimously positive and the courses material was structured in a “dive-right-in learn-by-doing” manner that was very attractive to me. This bootcamp comparison video, was also very helpful.

Since I had been brushing up my skills for the past couple months, I finished the Firehose prep course in 3 days. In the end we built a portfolio website and learned the basics of Ruby. It wasn’t difficult, but I could see how it would take someone with no coding experience 2 weeks to complete. However, I still enjoyed going through the material and it was a great refresher. Things that stood out:

  • Awesome user interface- very simple and easy to navigate.
  • Every concept that was introduced demonstrated a useful purpose right away.
  • The videos were very clear, concise, and easy to understand.
  • There was a forum discussion area at the bottom of every lesson for people that needed help.

All in all, I was impressed with the whole set up so I applied to the full program.

I quickly got accepted and a couple later, I set my starting date for October 31! I guess I won't be dressing up for Halloween this year.

I’m incredibly excited to start the Firehose course! By enrolling in this program and finally putting money towards my education, I feel as though I'm really committing to the craft of software development. This may even be the next step in my professional career. It’s been a long time coming, but better to happen late than never at all. Can’t wait to start building some cool sh*t!

So what’s so great about development..? Why did I leave my well-paying job just to start all over again in a field where I don’t even have a degree? Well, *ahem* let me explain.