Coding Bootcamp Guide: how to avoid scams & empty promises

10 criteria: There’s a lot of demand for software developers with skills in the latest technologies. These companies, usually small to mid-size, need developers with relevant skills asap. That’s where one of the latest trends in tech comes in…. coding bootcamps. From personal experience, this article will provide you with a guide on how to choose a good bootcamp. These bootcamps are intensive, expensive, and promise employment potential in return; note the word “potential”, it’s not guaranteed and shouldn’t be because employability is equally dependent on how much effort you put into the program and how well the program is taught. Again note the word “equally”; you can put in 110%, but if the curriculum is poor, you will not be employable. So what makes a coding bootcamp a good one…. one that will make you not only employable, but desirable if you put in 100%? I thought about this for a while…. for a year actually: before, during, and after the coding bootcamp I attended. I researched many bootcamps, read many reviews from bootcamp portals/ blogs/ forums, completed test projects from those schools, interviewed with them in-person or by video chat, and questioned all of them with at least 10 questions. Let me delineate these 10 questions and reasonings for them so you can make an informed decision and not be taken by the bootcamps’ quoted hiring rates (more on that below). Coding bootcamps fill a niche needed by companies ramping up, but I believe only a third of them are worth putting down $10,000 to $20,000 for a 8–16 weeks course. The 10 criteria are, in order of importance:

1. Technology Taught: If you’re doing a bootcamp to be employable or want to create a novel app, then you need to choose the latest technology that’s relevant. Everyone will have their take on what technology is most desirable, so let me explain why some languages are more employable than others. At the forefront of software development are: Javascript, iOS/ Swift, Android/ Java. Internet usage has shifted towards mobile, and that’s where all the financial and technical investments are targeted. Of the 3 mentioned, Javascript is the most in demand because it enables companies to quickly adapt their desktop sites to mobile pages for both Android and iOS; also, it has the mega support of Facebook and many web-based companies. In 2nd, Apple’s iOS/ Swift probably has an advantage over Google’s Android because Apple apps generate more revenue even though Android has more users; therefore more iOS companies have the funds to hire than Android companies. After these 3 forefront technologies, the next 3 stable languages are: Python, Java EE (enterprise ed.), and Ruby. Mid to large-size companies tend to use these technologies, and colleges tend to teach Java and Python. So there are many jobs available requiring these skills set, but these companies also have stricter hiring requirements because they have more college grad candidates to choose from (a lot more competition). Python is #4 because of its server-side strengths and data analysis capabilities, and many companies are shifting to the cloud and data science integration. Java is #5 because smaller companies tend to avoid it and colleges tend to teach it (less jobs and more competition). Ruby is #6 because of Ruby on Rails’ ease of learning and usage, but companies are migrating to Javascript frameworks because of their versatility and asynchronous nature. After these 3 stable technologies, the last 2 languages taught by bootcamps are: .Net/ C# and PHP. .Net has the monolithic support of Microsoft, but if companies don’t have strong dependencies on Windows or Microsoft, .Net/ C# is most likely not used. PHP is the least recommended because it’s an aging technology that has no clear advantage over the other web languages. When the internet was maturing, it was a popular language, but it’s usage has steadily declined with the rise of Ruby a decade ago, and Javascript now. Beware of the bootcamp chain that offers to teach 3 languages in one session…. anyone can be generalists with web video tutorials. Not to mention all other bootcamps teach one language in about 3 months, do you really think this school has the expertise to teach you 3 languages in the same amount of time? I would strongly recommend choosing ONE language in the top 5 to establish your future employability and ensure that you have the best tools and libraries available to make the next killer app. In my next blog, I will point out a good school that has a comprehensive curriculum. Summary: learn Javascript, iOS/ Swift, Android, Python, or Java EE.

2. Instructors Teaching: No matter what technology you choose, learning is going to be much harder if the instructors are not well educated and/ or experienced. From my review of and direct interaction with 10 popular bootcamps, most instructors at these schools, and probably all bootcamps, are weak in either the education department (ie: attended an unknown college or did not have a computer science degree) or weak in work experience (ie: have only a few years of work experience or have worked in only small companies with less than 50 employees). These are important factors because their educational and work experience are directly correlated to their technical expertise, which will directly affect how well they can explain concepts and assist you. A person who has a degree from a top 10% college will likely have more knowledge and conceptual understanding than a person who has a community college degree. A person employed at a Fortune 500 company will likely have more skills and expertise than a person employed at a small, private company. Of course there are exceptions, but since you have limited resources to compare these schools and instructors, it’s recommended that you choose bootcamps with instructors who are well educated and experienced. I would recommend that primary instructors (those directly teaching) have both computer science degrees from a reputable college and a least 4 years of software work experience from a reputable company. For teaching assistants, all of the bootcamps I’ve researched employ graduates of their program to assist. Most TA’s will not have either a computer science degree or more than a year of industry experience; however, they have completed and are familiar with the curriculum. It’s probably what the bootcamps can afford for TA’s while remaining profitable and keeping the tuition manageable. Many bootcamps will actually employ their former students to be the primary instructors! The only scenario that I find this to be acceptable is if that graduate had a subsequent 4 years of software work experience and/or being a TA for the bootcamp. Imagine a college grad who just got his BS degree, and now he’s teaching at the university…. that’s what’s going on at many of these bootcamps. FYI, most colleges require professors to have PhD’s (another 5+ years) and have 5+ years work experience. A plus would be if the instructors had actual teaching credentials. A teacher is more effective when he’s well versed in the different methods of teaching and knows how to inspire collaboration and cooperation among students. From direct experience, I had 2 incidents where team friction/ problems arose due to instructor/ TA micro-managing…. from 8 years of college, I never had college professors causing team issues because of their guidance. Some of these bootcamps will list instructors with reputable education and/or work experience, but they may only develop the curriculum and not actually teach it; that’s only half useful, you need both a good curriculum and good instructors. Instructors have a high turn-around, usually less than 2 years since they receive publicity from the school’s marketing so companies tend to recruit them for better paying jobs. Many of these bootcamps do NOT regularly update their websites with current instructors, so INQUIRE about the exact instructors for the session you’re interested in and view their LinkedIn profiles. Summary: primary instructors should have both computer science degrees AND at least 4 years of software work experience, a plus if instructors have teaching credentials.

3. Instruction Type: As hinted earlier, the curriculum taught is just as important as the instructors teaching it. There are many different modes of teaching: lectures, projects, videos, hands-on demos, quizzes, etc. A good curriculum would incorporate all of these teaching modes because there are advantages to each one, and research has shown that people learn better when concepts are presented to them in several, different ways. You should ask not only what modes of teaching are used, but also what percentages each mode represent. Many bootcamps claim to use all modes, but when asked in more detail, you’ll find out that it may be 90% videos, or 80% lectures, or 70% lectures, with 5% each of other stuff. Programming requires practice, so I would recommend: 30% hands-on demos, 30% projects, 20% lectures, 10% videos, 10% quizzes. Hands-on demos are small projects led by the instructors where he codes an app from scratch and explains each line of code, and the student follows along by coping the code and taking notes; usually these are half-day long. Projects should be all 3 types: individual, pair programming, and group; proportionally, individual projects should be 50%, pair 25%, and group 25% so you’ll get exposure to the different modes of collaboration while having time to develop individually. Some may argue for more pair programming or group projects, but these 2 modes only work well when all team members can contribute equally and are equally skilled, which is not the case in most bootcamps. There should be about 20% lectures so you can learn the foundation concepts to converse intelligently with colleagues and in interviews. You’ll learn concepts in the hands-on demos and videos also, but the lectures are where you’ll understand the reasoning and details of those concepts. Videos help to reinforce those concepts that are hard to verbalize and/or remember; it provides a visual aspect to your learning. Quizzes are important because it helps you to recall and retain what you learned the previous days and weeks. The pressure of live coding and spontaneously answering technical questions in front of your peers will prepare you for interviews and countless, scrum meetings. Regardless of the main language taught, the bootcamp should provide at least a full week of instruction on CSS3 & HTML5 features. These 2 languages have matured a lot, so it’s not just about < > tags and font styling. Unfortunately, my bootcamp did not provide any HTML5 instruction and only brief CSS3 coverage. Last but equally important, the pace of instruction should be pre-determined so you’ll know exactly what you’re learning. Having a known pace and preset syllabus accomplishes 3 things: it sets the precedence that slower students need to spend extra time outside of class to catch up, it maximizes the entire class’ potential by requiring disciplined learning and efficient time management, and it prevents learning fatigue caused by repeated cycles of slow, than fast learning to catch up for the slow times. I think the pacing was weak and needed better planning for the bootcamp I attended. Some bootcamps will start slow so students don’t get intimidated and drop out when the refund policy is still valid; then they ramp up the pace to compensate for the slow weeks. Summary: curriculum should comprise of 30% hands-on demos, 30% projects, 20% lectures, 10% videos, 10% quizzes; at least 1 week of CSS3 & HTML5; ask the school for a copy of the syllabus that details exactly what you’re gonna learn each week, and how committed the school is to that schedule.

4. Quantity of Instruction: You’re paying thousands for your tuition so you deserve to have hundreds of hours of instruction. You need to ask: what are the class hours, how many hours for lunch (and dinner), and how many weeks per session? So a bootcamp claiming 9am to 5pm, 5 days/ week with 1 hour breaks for 12 weeks offers a total of 420 hours. A bootcamp claiming 9am to 8pm, 6 days/ week with 2 hours of breaks for 12 weeks offers a total of 648 hours; that’s 54% more or 1.5x! Keep that in mind when you’re figuring out tuition cost. However, not all hours of instruction are equal. Time with the primary instructor when he/ she is lecturing or demoing is more valuable than time doing projects with TA’s ready to assist. Time where you have to do projects or tutorials without TA’s help should NOT be counted in the hours of instruction…. ummm, that’s called homework so don’t let the bootcamps pull that one on you. Ignore the weeks that some bootcamps count as instruction days just because they give you email support or online resources to study. Furthermore, quantity of instruction refers not only to the total hours, but also class size and student to TA ratio. Class size is ideally 8–16 so you’ll have different types of classmates to pair program and do projects with; but class size should be 40 or less to minimize competition for assistance (for debugging), resources (getting good desks, monitors, etc), and facilities (bathroom, breakroom, lockers, etc. usage & cleanliness). Primary instructors are either 1 or 2 total; bootcamp websites usually list many instructors and TA, which means that they’re part-time. To get an accurate count, ask how many active instructors and TA’s are present during class time. Student to TA ratio should be at least 6:1, but lower ratios are better so you don’t have to compete for help and different TA’s are sure to have different strengths. Beware of the bootcamp chain that enforces a 20-minutes rule before you can ask for assistance…. you’re paying over $13,000, you shouldn’t have to wait 20 minutes for someone to help you find a syntax bug or discover that your configuration settings are wrong — HINT: this rule is not mentioned on its website, you must ask about it or read reviews online. Summary: figure out not only the total hours provided, but ask how many hours are with primary instructors, and how many hours are with the TA’s. You need to account for class size (ideally 8–16) and student to TA ratio (6:1 or lower).

5. Tuition Cost: Tuition varies from $9,000 to $18,000 as of Jan, 2016. The popular ones have increased by about 50% since they started 4 years ago. But you cannot compare strictly by the dollar signs because the total hours of instruction varies a lot, with some bootcamps offering 5 days/ week for 8 weeks, a few offering 16–19 weeks of instruction, but most bootcamps offering 12 weeks curriculum. You should account for all measurable variables when figuring tuition cost: total hours of instruction, class size, housing & transportation cost (if not local), computer required (if any), minus financial aid (if any), minus job placement provided (if any). Account for computer cost because many bootcamps do not provide computers, and many people do not have a Mac that’s less than 4 years old. If the bootcamp provides job placement service, that can be worth anywhere from $500 to $2000 so subtract accordingly; you’ll need to get the details and compare it with other job placement services. Some schools provide discounts or financial aid to low-income students, women, and/or military, so subtract if applicable. To normalize the true cost of tuition, determine the cost per hour by adding all the monetary amounts, and divide that by the class-size weighted total hours. To weight the total hours by class size, I suggest multiplying by 1.1 if the class size is <= 16, or by 0.9 if the class size is >= 32. For example, my bootcamp experience: $10,000 for tuition + $3,000 for housing & transport + $1,200 for computer — $0 for job placement provided = $14,200; total instruction hours = 648 * 1.1 = 713 hours (weighted more since small class-size = more help from instructors/ TA’s). So my final, class-size weighted tuition cost per hour is: $14,200 / 713 = about $20/ hour. That’s a decent deal because it’s hard to find a programming tutor for that amount, and you’ll have to attend a public school to beat those rates. I’ll reveal the bootcamp I attended in my next blog: it had the best balance of tuition cost, project variety, instruction quantity, and teaching quality. Summary: read this paragraph to normalize the true cost of tuition to compare bootcamps.

6. Quality of Colleagues: This criteria is hard to measure and overlooked by many. However, from my experience in bootcamp, this factor is very important, almost as important as the quality of instructors/ TA’s, because you’ll be doing many paired and group projects together. If the students are not equally skilled and knowledgeable, the learning is one-sided and the projects are stunted by the slower members. Yes, you can learn by teaching your peers, but you’ll learn even more by sharing collaborations and attacking problems with equally skilled colleagues. So how can you determine the quality of colleagues when the bootcamp has not finalize the class roster? 1. Location: if the bootcamp is located in a tech hub like San Francisco, you’re almost guaranteed to have quality classmates to work with. 2. Success: if the bootcamp has a history of success that’s well publicized, more candidates will be attracted to them, which allows the school to select a higher caliber of students. 3. entrance exam difficulty: if the exam required to pass to attend the bootcamp is hard, then the students will be more skilled. However, if the exam is a common problem that’s easily searchable on the internet, it’s a sure thing that many students will copy the internet’s solution. These criteria were disappointedly weak in my bootcamp. Apps like Twitter clone, Gmail clone, and prime number calculator may sound difficult, but they can be implemented within hours at most, and easily searched and copied within minutes. If there are no entrance exams, or the exams are multiple choice, the quality of your classmates will most likely be weak. Summary: look for schools located in tech hubs, have a history of success that’s well publicized, and a relatively difficult entrance exam to determine if the bootcamp has potential to have quality classmates.

7. Project Types: The curriculum should expose you to all the issues that web programming entails. You should be doing each of the following projects: a client-side UI project (ie: user interface/ interaction; this typically involves CSS, HTML, and jQuery); a server-side REST project (ie: server interface that exposes API’s for clients), a full-stack project (ie: a social or e-commerce app that requires all 3 tiers of the web: client, middleware, server), a networking project (ie: exposure to network protocols for uni & multi-casting data and messages), a database I/O project (ie: saving client data to SQL & graph databases), a data-centric app (ie: an app to analyze and/or visualize data), a mobile app (ie: usage of frameworks like Cordova or Ionic to adapt a web app to mobile interfaces), a reactive app (ie: an app where data is pushed to the client without requiring interaction; for javascript, this requires Meteor, React, or Angular libraries), a data encryption app (ie: encrypting the network and/or database), and a server deployment project (ie: deploying to Amazon AWS or Google Cloud). Summary: ask if the bootcamp covers these 10 project types. While they may cover other topics, you really should get experience with these 10 projects.

8. School Support: Attending bootcamp is not just about school, it’s your life full-time for the next 2–4 months. So if these schools are charging private college rates, they should have staff who are equally helpful. Support should occur before you attend: they should provide you with useful resources and hands-on tutorials to prep you for bootcamp; they should follow up with your progress to ensure that you’re progressing and haven’t hit a roadblock. Assistance should continue during your attendance: they should have someone responsible for getting students’ feedback to ensure student tensions are not high or persistent, communication problems don’t develop, etc. They should subsidize housing and/or help you directly find affordable housing; sending you links or suggesting you try Craigslist or Airbnb do NOT count as housing support…. nice try. After finishing bootcamp: they should have a graduate network established on LinkedIn to help you network and find employment; they should have a messaging group established with a chat app to enable you to keep in touch and get advice from your peers and instructors/ TA’s. Summary: support requires team effort from the entire staff; support should be provided before, during, and after attending bootcamp.

9. Operational Management: The founders and primary instructors play crucial roles in the curriculum and direction of instruction. They should be involved in the student selection, coding instruction, and employment preparation. The more the founders and primary instructors are removed from these 3 aspects of the bootcamp, the more the curriculum’s quality will suffer. If the founders and instructors are not involved in these 3 aspects, their role have been delegated to TA’s while they are expanding and marketing their business. If you are paying private college prices, you deserve a school with quality operational management…. not some school that delegates most work to minimally trained TA’s and has operational protocols that are created on the fly instead of being thoroughly planned out. In my next blog, I’ll point out a school that has exceptional management. Summary: bootcamps should have founders and primary instructors responsible for student selection, coding instruction, and employment preparation…. not the TA’s! Ask about the school’s protocols for these 3 main aspects of operations and what training do the TA’s receive.

10. Hiring Rate/ Job Placement: Most attend a bootcamp because they want a tech job and need that extra boost. Many bootcamps claim 90%+ employment rate, but you should be skeptical and ask lots of questions! 1. Which class session is the job rate based on? Most bootcamps quote their most successful rate, which is usually months to years ago. Most bootcamps do NOT update the hiring rates on their websites, so ask specifically what the job rate was for the most recent quarter or year. 2. What job types qualify as employed? Students who are doing part-time work or contract temp work less than 3 months should not be counted. Why? Not only because you cannot have a decent living on part-time salary, but also bootcamps will hire their students part-time to boost their hiring rates. Students landing temp work with contracts less than 3 months cannot timely repay the cost of their tuition and are not ensured steady work and income. 3. What time period qualifies as employed? Graduates should be able to find employment within 3 months if they’re searching daily. You should disqualify quotes with numbers more than 3 months since your skills become less polished and your resume less attractive the longer you’re looking for a job. 4. What is the sample size for the quoted hiring rate? Larger sample sizes enable better statistics because they prevent fluke occurrences from skewing the result. I would recommend a sample size of 50, so that would represent a year of graduates for some bootcamps, while for others, that would only be one session or 3 months. 5. The hiring rate should be based on the entire class minus students who are not seeking a job (ie: already employed or working on a start-up); these students should not be counted in either the hired number or the total number since seeking employment is not applicable to them. Particularly important, the hiring rate should be based on the entire class, not just a small subset who passed a certain level of competency. Beware of the bootcamp chain that claims 90%+ hiring rate for students who achieve a “black belt” level. If only 30% of the class achieve that level, and 90% of those students got hired, that’s still only 27% (0.9 x 0.3) of the entire class who got hired…. that’s not really successful so don’t let these bootcamps pull a math trick on you! This is where we need the government’s protection so consumers are not deceived by false claims; we need a law that requires bootcamp to fully disclose hiring rates based on these 5 criteria at minimum. A few bootcamps provide job placement services: this is useful for the less experienced or less connected students. The service provides a dedicated specialist who helps tailor your resume, provide job leads, and coach you on technical & personal interview questions. However, this service can be costly, sometimes representing up to $2000 of your tuition. For a person who’s not seeking a job (ie: someone who’s working on a start-up or updating his technical skills), this service would be worthless to him. Some bootcamps will offer a much toned down version, where you get a session of resume and interview tips by a specialist, which is at most worth $500. You may notice that hiring rate is listed as the last criteria. It should be 1st or 2nd, but it’s the last criteria because the bootcamps’ quoted hiring rates are not standardized (they don’t address the 5 issues I presented), and the quality of job placement services really vary so they need to be compared by the same standardized method of determining hiring rates. Summary: get specific details about the bootcamp’s hiring rate: 1. which class sessions are the job rate based on? 2. what job types qualify as employed? 3. what time period qualifies as employed? 4. what is the statistic’s sample size? 5. is the hiring rate based on the entire class and not just on a small subset who achieved a certain level of competency? Ask exactly what job placement services are provided, if any.

Bootcamp Trends: In my final chapter, I want to highlight some trends in coding bootcamps to help potential students anticipate or avoid them. 1. Bootcamps are moving some or even most of their curriculum to videos. Videos enable these schools to charge for access online for non-students, and also relieves a lot of time from the instructors, which reduces cost…. so it’s a double win for the schools. Again, I think videos should only account for 10% of the curriculum. Why pay private college tuition for online, pre-recorded content that you can get for 10% or less elsewhere??? If these schools offer online video content, they should charge competitively between $30 to $90/ month, like other online providers like Pluralsight, FrontendMasters, Udacity, and Coursera. 2. Some bootcamps are moving to live streaming so they can run more simultaneous sessions and/or have more students. Live streaming is more useful than pre-recorded videos, but still no where as useful as in-person sessions. Live streaming requires fast, reliable, dedicated connections on both the school’s server side and on your client side. If your internet is shared with cable TV or Youtube addicted roommates, you will probably have to increase your internet speed and pay more. There are always technical hitches when party streaming video, so be sure to ask previous students what their experiences were like. Just think about the last group video chat you had on Skype or Hangout…. was it as easy to communicate concepts and visualize ideas online as it was in person? Other web companies are offering programming courses online that include dedicated video chats and guided mentoring, so live streaming should be priced competitively between $3,000 to $9,000, like Bloc and Thinkful. A San Francisco bootcamp is offering live streaming for the same price as their in-person course, about $18,000 — that’s insane and a total rip-off! 3. Some bootcamps are incorporating job placement services in their tuition. As mentioned earlier, this service is useful for the less experienced or less connected students, but worthless for the entrepreneur or skills-upgrading student. The need for job placement in the current economy is questionable since the government has reported that the last 2 years had the highest employment growth since the dotcom peak, 15 years ago. Requiring an additional $2000 in the tuition is relatively steep, regardless if you’re in need of job placement or not. This should be offered as a group option, where the school can negotiate a group discount from the service provider and where the students can opt out of the service. 4. Some bootcamps are offering housing assistance. This should not cost anything for the bootcamp, just a deposit to reserve apartments that students can rent. It is much cheaper for 4 students to each have a bedroom and share 2 bathrooms, than for each student to have to pay for a studio. If a studio is $900/ month, you can easily find a 4 beds/ 2 baths apartment for $2400; so that would be $600/ month per student, which is a 50% savings! Most schools claim this is the responsibility of students, but they do not realize the difficulty of finding short-term rentals. There are very few short-term rentals, and the ones available demand higher rent due to the short duration, require at least 6 months, or are not convenient to the school by walking or public transit. It is very short-sighted of bootcamps to not realize that a deposit investment of $2400 could bring in another 4 students and $36,000 to $72,000 per session! Bootcamps need to have staff who can find convenient housing with utilities activated for their students; this only requires a one-time effort and a minimal deposit, but can really boost their student numbers…. I believe this is what happened with 4 bootcamps springing up in Salt Lake City, Utah in the span of one year. It sucks for the students who are paying $18,000 to attend a bootcamp in San Francisco and have to deal with the extremely competitive, excessively overpriced housing without any help whatsoever from the bootcamp itself.

Final Words: you’re investing a large sum of money in your future, so do your research thoroughly. I strongly recommend that you read the bootcamp’s website in detail, complete the entrance exam, schedule an interview and ask lots of questions — particularly those 10 topics I mentioned above, and visit the school’s classroom (campus…. lol, most of these are only 1 or 2 rooms); if the bootcamp is not local, talk to previous students listed on LinkedIn (preferably not those referred by the school to get a more objective opinion). Thanks for reading this long essay, and I sincerely hope you’ll find the career of your dreams. Stay tune for my next blog where I’ll specifically recommend 3 schools that I thoroughly researched, and warn of specific bootcamps that mainly see dollar signs.