Are Code Schools Worth It?

If you’re looking for a job then technology is a great choice right now. As our lives become more reliant on computers and, more specifically, the web, jobs supporting this technology and the infrastructure that runs it will continue to be in demand while jobs that used to be done by humans will be done by computers. So it’s not surprising that code schools have popped up in just about every major city across the US and abroad. Having taught at one of these code schools I know the curriculum and have made some real positive relationships with my students. Eventually the question of cost vs. return on investment comes up. So are code schools (whether online, part-time onsite, or full-time onsite) worth the money? The answer depends on your goals. If you’re trying to figure out if enrolling is worth it for you then maybe this will help you decide.

I know that the curriculum for online code schools are the same as in-person ones but I have no experience running or teaching any of those so I’ll be focusing only on programs like Dev Bootcamp, General Assembly (taught their courses in Chicago for a year), Full Stack Academy, and Coding Dojo to name a few.

I taught a Ruby/Ruby on Rails 10 week part time course as well as two full time full stack courses. The part time course was a 10 week class that focused only on Ruby and Rails and met twice a week for 3 hours for 10 weeks. The full stack courses were 9 – 5 courses where we taught everything from basic HTML/CSS/JS to Ruby, OOP, some dev ops, React, Angular, and other more advanced topics toward the end. It lasted twelve weeks.

How do these courses work?

In a lot of cases the courses are designed for you to pass regardless of your skill. The idea is that as long as you practice and turn in the assigned tasks then you pass. There’s a good 8 hours during the day to practice and get hands on help from experienced developers. There are people on hand to help the students find jobs but the problem is that without a proper way to evaluate students and the students’ own lack of experience, it’s difficult to place students in jobs even at a junior level.

So you just want to get a job

Most students who enroll in these courses just want a job. They come from all different backgrounds. Some come from successful careers in other fields and want to try something new. Others are choosing code school instead of a four year computer science degree (and you can still do this as of 2017!). Others may have lost their jobs and want to get into something that has a steady future. The classes are a mix of young and old and everyone gets along well. Most of the coding schools do pre-interviews and simple challenges that serve two purposes: to assess how well someone can learn on their own and if they’d fit culturally.

Assuming you get accepted you have to think of what your goal is. If you have no prior experience coding then you’ll likely be looking for a junior developer role or, if you’re a poor student/unlucky you’ll land an internship that you can turn into a paying job. From there you can work your way up. But let’s back up and look at what it takes to be a junior developer and how to level up and start making enough money to support yourself or a family.

My story as a developer

I learned HTML and CSS when I was 11 years old. Our family got AOL and I wanted to know how to create web pages partly because I loved design and partly because I wanted to learn to code. This was in the mid-90’s and I continued this as a hobby for the next decade. I went to college to become a doctor, then studied music composition, and finally ended up studying computer science but never finished the first year. I simply did better learning on my own, choosing the subjects and areas of programming (of which there are a ton) that interested me most.

I fell into the world of object oriented web development. I was a PHP developer who loved front-end design. The only problem was that I had no idea what I wanted to do with my life. I was working odd jobs in fast food for years until my early twenties when I was the manager at a large chain of McDonalds style restaurants. I hated it. I had no purpose. Then one day a friend told me “why don’t you freelance? You’re a developer, right?”. And it hit me. I never thought I could just make up a job on my own but at that moment the wheels in my head started turning and in that moment I became an entrepreneur. I quit my job on New Year’s Eve and the very next day, with literally $20 left to my name I started hustling. I created a brand, made cold calls, sent emails, created a website, had a ton of meetings and eventually landed a few clients.

I worked for a fraction of what others were charging but at least I could eat. I eventually turned my small freelance web dev and design shops into a successful web design company generating thousands a month. It was great when just starting out in my early twenties but by my mid-twenties I was thinking more long term and needed more money. The market for freelancers was drying up. People wanted something for nothing and I couldn’t compete with services like Squarespace and GoDaddy’s $1 domain and website builder deals. The freelancing model died years ago and I knew it. I tried my hand at making money off of SaaS services and selling apps but I was lost.

One day it hit me. I just had to get a job, get some experience working for and with other developers before I could go back out and start my own company. That’s when I got my first job as a junior developer. The job was making emails and landing pages as well as managing Wordpress sites here and there. I was the “B2B Developer” for a growing startup. My first junior position. Over time I made a good impression, learned a lot on my own, and eventually worked my way up to Manager of Sales and Marketing Technology. By the time I left the company I had literally made an impact on every single department within the company. I went from junior developer to intermediate to the cusp of senior dev. Then I left to start my own business again.

I was now the CTO of a company. I had planned the business and created the code that ran it. I had a business partner who was well versed in the space we were entering and we hired two developers to help lighten the load while I not only developed the product but also wrote all of the code from scratch. Unfortunately the business failed because we overpraised, under delivered, and got wrongfully sued by a much larger company that knew it couldn’t win in court but knew it could bankrupt us by simply drowning us in motions and court procedures that would rack up huge legal bills we couldn’t pay. Our lawyer advised us against it but we settled out of court. We had to tell our lawyer basically, if you want to work pro bono then go ahead and win this for us but otherwise we have no money to pay you.

By now I was a senior developer. I had put in at least 5 years of experience and knew 3 languages while having dabbled in at least 7 others. I had worked in just about every capacity that I could. So I went into teaching, then worked on a contract-to-hire basis for another company where there was a culture mismatch until I finally found my dream job.

I tell this story because its relevant to what you should expect as someone who wants to go from knowing nothing to having a career as a developer.

How do you get a job now?

After completing a code school you’ll likely have basic knowledge of the full stack. You’ll have concentrated on web development and learned Ruby and Node.js most likely. The issue you’ll run into most on your hunt for a job is the question of experience. Your second hurdle will be technical challenges. Without that experience your technical chops won’t be up to snuff so your best bet is to start as an intern and target startups.

Code schools make it sound as if you’re going to get a job after your 3 month course but that’s just not the case. You need to be creating side projects all of the time. Build and launch as many side projects as you can and add them to your portfolio.

Another mistake I see in students coming out of code schools is not focusing on one thing at a time. If you’re going to be a web developer then choose a language and stick to it. If you choose Ruby then learn Ruby fully and completely. Understand Object Oriented programming. If you can’t explain what an class is in relation to an object then you are not employable. Don’t dabble in Ruby and then learn some iOS and then some .NET. No! Those are not in the same ballpark and you don’t even have the tools to understand that. So learn one thing and one thing well then move on to a similar language. Ruby, Node.js (JavaScript on the server), and PHP are similar languages. They’re all web languages, all use the object oriented model (JS mixes a little functional programming but let’s ignore that), and PHP is the easiest to learn but still considered lame.

After you graduate you’re going to have to do a lot of work on your own like I mentioned. You’ll need to network heavily and don’t think you’re going to start the next big internet company. Everyone wants to be famous and all new developers think they’re going to build the next big thing. That’s like learning guitar and hoping you’ll be discovered in a dive bar and get signed to a record deal.

Your road to a job is going to be long and hard. Make sure you do a ton of extracurricular coding, have a great portfolio, impeccable references, and never stop networking.

Are code schools worth it?

If you have the cash to afford it and you have savings to last you at least 6 months while you look for work then go for it. But remember my story? It took me over a decade to learn what I know and I can guarantee you that no code school can teach you that much that quickly. You’ll learn a little bit of everything but it’s up to you to focus on one thing at a time and concentrate on your singular goal of bring employed. Again, are they worth it? Not always. They are for good students that are driven to succeed and can handle a lot of rejection.

My advice? Take a small step. Do a part time course with a mind toward creating something from what you learn. Good luck. You’ll need it.

Career, Web development

« Do you even microservice, bro? Your startup idea sucks and you're going to fail »