These experiences come from my time at The Iron Yard. We just wrapped up week 6 (of 12) and I thought now would be a good time to talk about what you should know before diving in.
1. They take a lot of time
So, you want to go from 0 to dev in 12 weeks? Well, you don’t get there without practice. A lot of practice. Over the course of 12 weeks, your practice time should be somewhere to the tune of 700+ hours. A typical week is about 60 hours, but depending on the project, some may be longer. I wake up between 6:00 and 6:30 every morning, and I’m out of the house by 7:30 at the latest. Our day runs from 9-5, including lecture and lab time. I typically get home sometime between 6:00 and 8:00, but have been there as late as midnight. If you did the math, that’s a minimum of 11.5 hours between when I leave and when I get home. On top of that, most nights I have code to finish, which can take a few more hours. Some require more time than this.
You will not be able to hold down a job while you’re attending. It may seem tempting, but it’s just not going to happen. Even if you’re super awesome and can do everything, trying to split your time between the camp and your job will be absolutely detrimental to your learning. Beyond that, there are events to attend, including meetups, job fairs, field trips to local companies, etc. Before you decide to enroll in a code boot camp, you need to decide if you can be fully committed to your learning. If you decide that’s what you want, then you need to tell your s/o, your friends, your family, your dog, and everyone else you know that you will be completely unavailable while you attend.
2. Meet the instructor ahead of time
This one is pretty important. You will not get much from the course if your instructor’s teaching style doesn’t match your own learning style. Just because someone is well qualified in a field does not mean that they are good at teaching. My instructor is awesome at explaining difficult concepts and explaining what works where and why. As a result, I have learned a ton from him, but things could have very easily gone the other way. I met him briefly once during my technical interview, but looking back now it probably would have been a good idea to sit and ask him about his teaching methods ahead of time.
So, how do you meet up ahead of time? The simple solution: ask. Contact the school and tell them you are interested in joining. Tell them you’d like to get a feel for the instructor’s personality and teaching style. My school happens to offer free crash courses on occasion, so if the school you’re looking at offers the same, sign up for one. It’s much better to find these things out in advance before you’ve committed your time and money.
3. Having some programming experience is a BIG help
Yes, many schools will tell you that you can start with no programming experience and be a junior dev in 3 months. While that may be possible, it will be significantly easier if you have some programming experience under your belt. If you’ve never touched code before, then something like Codecademy can be a great start. Be forewarned, though, that it’s easy to get overly confident while working on a site like that because they do so much hand-holding. Once you’ve completed a track, move onto something a little more challenging. Some of the most important concepts to understand are:
- Control flow
- Defining and writing methods
- Common data structures (e.g. arrays, hashes)
- Classes and instances of classes
- Objects
- Git basics
This list is not comprehensive, but should give you a big head start. We covered everything above in the first two weeks. Also, depending on the school and the course you’re taking, you may need a Macbook. This can be an unexpected expense, and if you’re not familiar with OS X or terminal, then getting the basics down can also be a big help.
4. You can learn it all online for free (but you probably shouldn’t)
So, there are many factors that go into this. There are people out there who have taught themselves to code in a few months using only online resources and books. Hats off to them. Seriously.
That being said, there are many places that things can go wrong with trying to learn on your own. The first is that once you move past being a complete novice, the learning resources start to dwindle. There are a ton of sites that will teach you how to set a variable and write your first loop. There are far fewer who will guide you through the process of understanding the benefits of writing a recursive function or how to set up advanced database associations.
Beyond that, one of the biggest challenges is knowing what to learn. Programming isn’t a single career, it’s an entire industry. Do you want to develop web apps, mobile apps, games, hardware drivers, enterprise applications, security applications? What language should you start with, C++, Java, Python, Ruby, Javascript, C#, the .NET stack? What framework should you learn, Angular, Rails, Django? Front end, back end, big data? There is so much information out there, that it’s very easy to spend years reading this and that but never really improve your odds of getting hired (Ask me how I know!).
Finally, having an instructor and a team to work with are vital to learning correctly. Sure, I don’t have to go to the gym to work out, and I could certainly lift weights without a trainer. I could also really hurt myself by using bad form. Luckily code is a little more forgiving in that it won’t physically hurt you to use bad form, but bad coding habits can be detrimental to your software, and especially to others who try to collaborate with you. Prospective employers may not like it very much, and nearly every coding job in existence will require you to work on others code and require others to work with your code.
5. Boot camps are not the same as a CS degree (and that’s okay!)
I attended a traditional 4-year university and majored in computer science. I quit after year 3 due to a number of circumstances at the time. By this point, I could write code, but the program focused much more heavily on theory and low-level topics like circuit design, detailed coverage of networking principles, and number systems like binary, octal, and hexadecimal.
While all of these are great to know and give you a better understanding of the work you’re doing, they are not completely vital to building a web app. In all the time I spent in college, I never once used git. Those of you new to code are wondering why that’s a big deal, while the experienced devs are crying. If you don’t already know, git is a form of version control software that nearly all devs use every day.
Code boot camps are focused much more on practical skills that will be used in your day-to-day work. Since the time they have to teach is so short, everything that isn’t completely vital is cut from the curriculum. All programming is learned over a lifetime, so you’ll have plenty of time to learn the rest.
Regardless of where you’re coming from, employers know that junior developers are still going to need a lot of hand-holding. To them, the most important quality in an applicant is a passion to learn more. You may not be able to land that awesome gig at Google straight out of code boot camp, but if you’re in an area with a decent tech scene, you shouldn’t have much trouble finding someone to take you in.
6. It’s all about making connections
This is an important bit that not everyone seems to get. Many believe (and I used to be one of them) that coding skill alone will determine what type of job you get. Well, the reality is that you can be the best coder in the world, but if no one knows who you are, you’re probably not going to land those high-paying awesome jobs. I heard recently on a podcast that somewhere near 80% of jobs are fulfilled through some type of personal recommendation. If you’ve ever been on a job site and came back to an empty inbox after sending out 40+ applications, that’s why.
The Iron Yard has been a great asset in connecting me to businesses, people, and events that I didn’t even know existed near me. I’ve had the opportunity to speak with board members of multi-million dollar companies, I’ve met a ton of students who share the same passion for coding as me. Even if I had taught myself to code, getting in touch with all of these people would still have been another hurdle on my way to employment.
That being said, you need to make these connections. If you enroll in a code camp, be sure to go to every event you possibly can. It’s tough. Time suddenly becomes very precious, and many of us are nervous talking to new people in large group settings. You really need to set that discomfort aside. Deciding to opt out of an event can cost you thousands of dollars in potential pay. How many thousands are you willing to give up for the sake of avoiding a couple hours outside of your comfort zone?
Whew! If you made it this far, thanks for reading!
This post turned out much longer than I anticipated. Code boot camps can be a big investment in both time and money, so there’s a lot to know before you decide to invest. I hope this covers a good chunk of it, though. If there’s anything else you’d like me to cover, please leave a comment below.