Life at a Coding Bootcamp
I am currently enrolled in the Chicago branch of Coding Dojo, a fullstack development bootcamp. Here is my view and perspective on bootcamps, which I hope will help other potential students to make an informed decision as to where to study programming.
Note: As I’m currently enrolled in Coding Dojo’s Chicago branch, my observations are based almost entirely on this experience and may not accurately reflect other programs.
You Spend How Many Hours?
Properly, you should spend at least 12 hours a day of coding, without many long breaks. If you’re like most people, you probably have a dearth of software development experience going in and in order for you to gain the needed skills in the 14 weeks of the program (program lengths will vary) you will need to eat, sleep, and breathe, code. Additionally, while you should definitely take a day or so off at the weekend where you don’t look at a screen or touch a keyboard, you should set aside at least 6–12 hours to do work on the weekend. This will enable you to keep up and maybe get a little ahead.
Be aware that this pacing is not voluntary. Bootcamps will expect you to work this hard. Their curriculum, lesson plans, and assignments, assume you have this schedule and work ethic. If you do the bare minimum, i.e less than 12 hours per day, you’ll fall behind.
Oh boy! This is not a place you want to be! If you’re behind your cohort you will struggle to understand lectures, may miss key concepts, and may be told to skip certain assignments in order to catch up, which will further decrease your experience and familiarity with the subject matter. The good thing about bootcamps (at least Coding Dojo) is that since they teach multiple stacks you can move on to another set of technologies without being impacted too negatively by your lack of understanding of another stack. Thus, you get a chance at a nearly clean slate every month.
Life at a coding bootcamp is not easy. This is a choice far from a traditional college experience where part of the college experience is assumed to include pursuits other than scholastic achievement. While making friends in the bootcamp is encouraged, don’t imagine you’ll have time to see anyone outside of it. In fact, during my preparations, I told my friends and social groups not to bother contacting me during the upcoming several months. I have my phone on silent the entire day and literally only check it on the train ride home. Doctor visits had better be done before, or after. Vacations are a foolish undertaking. You’re here to work, so leave all distractions at the door. When you finish, in a few short months, you’ll have the freedom to socialize once more, as well as having gained a powerful new skill. Plus, think about all the cool stories you’ll have to relate about your new, insane, work ethic.
Another great aspect of the coding bootcamp is the way they attempt to model your bootcamp experience after a real life development team. During project periods, you will work on a team, which can be awesome, but is sure to be a vital learning experience. You will appoint a team manager from among your peers, hopefully that manager will be excellent and will help direct your project on a well directed and executed journey (maybe that manager may even be you!). Perhaps your manager may not have the necessary foresight to run a team of developers. Dealing with managerial imperfections will also give you great practice for real life development.
Working on a team can be a blast! Spending all your day struggling through complex material at blazing speeds will help you bond with your peers. It’s a great experience and you are sure to make excellent friends.
Lifestyle Balancing and Dealing With the Pressure:
While I’ve discussed how hard you have to push yourself, I must also mention that you must not push yourself past your own personal limits (at least not too far; obviously you should be pushing yourself past your comfort zone, just not to your breaking point). If you burn out in the second week, you’ll waste your time and money, and nobody wants that.
Ensuring you stay healthy is extremely important. Remember, your higher brain functionality is directly correlated to your physical, emotional, and psychological well-being. If you aren’t sleeping enough, constantly binging on snack food, drinking copious amounts of energy drinks or coffee, or stressing out due to the general intensity of the program, it’ll just slow you down more and can potentially lead to bigger problems. So make sure you get proper sleep, that you workout a few times a week, and that you’re eating healthily.
Every once in a while (key phrase: once in a while, not everyday) treat yourself! Go out for a drink on the weekend. Eat a bar of that nice chocolate, go to a spa treatment or visit the Russian Banya. The purpose of the bootcamp is not to punish yourself, and if you hate the thought of waking up in the morning, well, there’s something wrong. Make it exciting to get to school every morning. Stash your favorite coffee at school and use that as a motivational factor. Make friends with your cohort mates and try to improve your ping-pong game until one day you will be the best player in the Dojo…
While it’s easy to be worried and stressed about that exam you have tomorrow while you still have no idea which way is up, and although it sounds incongruous, you should relax! Due to the advanced pacing of the programs you may often not “break through” in your understanding until the last minute. I know that by both of my belt exams (at this point in the program), I only had my breakthrough the night before the exam. Worrying about your performance and abilities, as compared to others in your cohort and any other potential issue, will only serve to slow your thinking processes and make you miserable.
To survive, you need to become a ninja, with perfect inner calm, and a positive outlook at all hardships and challenges. Just don’t forget to cut yourself some slack!
The Short Term Is the Long Run:
Are bootcamps better than traditional software development educational experiences?
If you ask an industry veteran his or her advice on the most important skill or quality needed to become the best developer I’d be willing to bet that most of them would say something like “The best way for developers to improve their skills is with time and practice.”
From my exposure in attempting to learn various different languages and skills in a very short amount of time, the theoretical understanding that hard work is what enables people to develop this new skill and the ability to literally push yourself to spend 12+ hours a day, is what separates those who can become a developer within 3.5+ months and those who can’t. The simple fact that your brain needs time to mull over new concepts, needs to develop new pathways and associations for this entirely new method of thought and expression requires that you spend as much time as possible involved in the software world as soon as possible, until you dream in code. So, the reason why bootcamps are a great educational option is that they get you out into the workplace where you will be immersed in realistic and practical applications of software development. While you might be learning interesting and valuable knowledge in college, the process will take you years, whereupon you will then be required to make that transition from academia to real life development. Everyone needs to make that leap, it’s just that bootcamp grads make that leap years sooner, and thus have years more practical experience. Does that make college educated developers bad? I don’t think so. I just think that if you are looking to grow as a developer while maximizing your return, and if the best way to improve your skills is through real life applications of your skills, it seems to me that learning enough to get started and then getting started is a good idea. I love learning new information; it’s both a hobby and a way of life for me. However, if you’re learning something as a profession, versus a casual hobby learn it in the fashion that will allow you to begin practicing using that skill as soon as possible. Life is simply too short to sit around waiting for perfection.
Computer Science vs Coding Bootcamp:
Now, don’t bootcamps have a fatal weakness? They don’t teach computer science, rather, they teach computer programming. Which means that bootcamp grads only have a surface grasp of what they are actually doing, right? They may know how to use the tools, but do they understand the tools? Can they craft a new and better tool?
The answer to this question is one that I’m still struggling with now. I’m attempting to determine whether or not I should return to school to earn my MS in Computer Science. However, here is my current opinion on the matter.
Undoubtedly, having an advanced degree in a computer related field would be invaluable to most people. However, as I mentioned in the previous section, there seems to be a point of divergence where there are, typically, diminishing returns as measured by the increase in your education versus your salary, an easily quantifiable metric. Do MS:CS grads get paid more, typically? They probably do get paid more, but how much more? Is it worth two years and $20,000–$70,000+? Maybe…
The best argument I’ve heard for receiving a traditional degree is for the purpose of creating something radically different and new. I doubt a bootcamp grad would have done much groundbreaking work on AI, self driving cars, machine learning, or robotics, although I’m leaving room for people to prove me wrong. To create something wholly new, instead of iterating on prior ideas or to devise a radically new concept would probably be in the realm of those who have advanced computer science knowledge. That, would be the best reason, on a practical level, for my return to earn an MS.
If you’ve noticed, I’ve only been discussing a Master’s Degree, not a BS in Computer Science. I’ve done some rough calculations, late at night while at the Dojo, and it seems that a bootcamp grad, in 3.5 months, would do approx 1.5 years of work that a 12 credit university student would do. That, together with the fact that a BA student would only be spending ~2 years on his major seems to indicate that a BA would not be an incredibly useful pursuit, as least as far as technical achievements are concerned and when bootcamps could get the job done much sooner for much less money. I’m not going to discuss my views on liberal education in this article (the education principle; not the political view).
The crux of the issue is that it comes down to you. When people are judging a university graduate against a bootcamp graduate, they typically do while making a majorly incorrect and easy to make, assumption. That is, they judge both people on their skills, knowledge, and abilities, at the time of graduation. When comparing a bootcamp grad, with ~4 months of learning under his belt, against a university student with 2–4 years (depending on whether you only count his major studies), it’s no wonder that the results will mostly be skewed to the universities. The wonder is that bootcamps look as good as they do! The logical fallacy with this sort of comparison is that you must not assume that a bootcamp grad will simply stagnate after he has finished his “formal” education. The hallmark of a good developer, as any number of blog post and articles will tell you, is that they are driven to solve problems, and always seek to improve themselves and their technical skill set. Furthermore, a bootcamp grad will undoubtedly only learn new skills and technologies, from his program, and which are in high demand and are at the cutting edge of development, whereas university curriculum’s are often slow to change and may not accurately reflect the current technological environment.
Thus, if you wish to make a proper comparison, you must then juxtapose a university graduate, who has 2–4 years of learning, but very little real life experience, against a bootcamp graduate who has 3–4 months of learning and then 1.75–3.75 years of constant learning, improvement, and real-world experience which can be immediately leveraged into use as an experienced and useful member of a development team.
What can you take away from this article? A few things:
- You must prepare yourself to work harder than you have likely ever done before. This will be both difficult mentally, physically, and emotionally.
- Don’t fall behind. If you are ahead, keep going! Falling behind will cause a host of problems and insecurities to plague you. Plus, it’s a good idea to give yourself a buffer in case your computer goes on the fritz or in case you’re having a bad day and can’t seem to concentrate.
- Don’t plan any parties, social events, vacations, or meetups with friends. Spend nearly all your available time studying, learning, and applying for jobs. Focus on learning and creating useful connections with your peers.
- Don’t forget to take care of yourself! Exercise, eat well, and sleep well. Be the person that people turn to for a smile, a joke, or a homemade cookie (I never brought those in, but other did, and that added an extra spark of friendliness to the Dojo). Don’t burn yourself out!
- The short term is the long term. The faster you get a real job, the faster your skills will improve. Get in the door of development and then never stop growing. Yes, you can always learn that hot new technology or that amazing framework but instead of attempting perfection, attempt to grow and to provide excellent value to those looking for you.
- Getting an advanced degree in Computer Science may be extremely valuable. If thing align to enable you to do so, I’d look at that option very carefully.
Thanks for reading! If you enjoyed my article please let me know by clapping, sharing, or commenting below.