After deciding that you want to attend a coding bootcamp, you'll obviously want to begin doing your research on available options.
There are a wide variety of bootcamps with different schedules and curriculums. The specific curriculum and schedule that suits you best is going to be predicated on your current situation and overall interests.
You first need to narrow down the type of curriculum that you want to attend. After choosing a particular area of focus, you can begin exploring scheduling options and differences in curriculum.
Everyone is likely to have different preferences and needs that dictate the specific subdomain within software engineering and schedule requirements, so I'll be providing 5 rules-of-thumb when deciding rather than making specific recommendations.
Rule 1: Find a selective program.
I've written previously about making sure the program you join is selective.
If there's one rule you should not forget while searching for a bootcamp, it's to ensure that the program you join is selective in admitting students.
There are 3 things that selective programs do better than competing non-selective programs:
- Selective programs can cater to the needs of well-prepared students with a baseline cognitive ability. Put another way, they don't need to serve the needs of a wide-variety of preparation and skill levels. Trying to serve all skill levels lowers the bar of expectations for all students.
- Selective programs ensure a higher quality group of peers. Having a social group where you feel like you belong has a big effect on your overall satisfaction and motivation.
- Selectiveness dictates the effectiveness of a program. Being selective is the first and most important thing a bootcamp does to ensure success. Starting out with great students is the easiest way for a bootcamp to keep its promise of placing graduates into software engineering jobs.
Selectiveness of a program is the most important indicator for program quality that you can observe from the outside without actually joining one.
I know this to be fact because I worked at a coding bootcamp (Hack Reactor) as a campus director and technical mentor and saw first hand just how much outcome statistics were negatively affected by bad apples we accepted into the program.
Some of these students make it through the program but end up not doing great on the job search for a myriad of reasons. I always remember thinking that we should never have accepted them in the first place, lead them to defer to the next cohort, or simply refunded them the cost of tuition and sent them on their way.
Do your homework and look long and hard at exactly how selective a program is before joining one.
Rule 2: Find a reasonably expensive program.
This rule is counter intuitive, but I've written previously about why the cost is a key feature of coding bootcamps.
The fact that you pay for a coding bootcamp is one of the biggest reasons why most people that start a program stay the course. There is a strong financial disincentive to slack off. You don't want to throw money down the drain.
In addition to the financial accountability, what you want is a program that knows their value in the marketplace. A great program will charge what they are worth and over deliver on their promise.
That said, don't be foolish and think that any program that costs an arm and a leg is worth what you pay for.
Be sure to balance this advice with your own research on course reviews. Reach out to alumni to hear personal anecdotes. Assess the selectiveness of the program by entering their admissions process even if you don't have the intent to join.
Make sure you can justify the cost and don't just blindly accept the cost.
Rule 3: Find a program that pushes your scheduling comfort levels.
This is an intense time of transition.
Whether you're looking for a part-time program because you already have full-time duties that you simply cannot afford to drop, or you're looking to dive in full-time, the reality is that you can do more than 40 hours a week of work.
While I don't advocate anyone working too much for too long as it will result in burn out, seasons of change require intense action. This means you have to work more than you're used to. No one learned a completely new skill and got good enough to be hired as a professional without serious dedication and effort.
You want a program that pushes these limits to whatever you can accept, because the more time you spend coding, the better you will get at it.
This season of change is not the time to take it easy.
Make it happen.
Rule 4: Prioritize fundamentals over highly specialized skills.
Coding bootcamps put themselves in categories like "web development", "machine learning", and "cyber security".
These are useful to distinguish between the topic of interest, but they are hardly differentiating categories that separate one bootcamp from another.
Language and expertise in a subdomain of software engineering only matters a bit later in your career.
When you have 0 years of professional experience and only project work to show for it, what you want above all else is simply more opportunities to gain experience.
You want to be able to show a meaningful body of work to recruiters. You want to face technical challenges in projects so you have anecdotal experience to draw from in your interviews and for your resumé. You want to get acquainted with the rules of the software engineering road, so there aren't huge potholes in your conceptual understanding.
Go breadth first, then go deep later.
This means that the language or specific subdomain matters far less than a different type of category that the bootcamp puts themselves in.
The category of bootcamp you want to utilize is one that prioritizes fundamentals over specific skills. Look to see:
- Does the bootcamp jump straight into the high level tooling and specialized knowledge?
- Does it start out with things like nuances of the particular language they teach and data structures and algorithms?
- In general, do they emphasize the importance of general problem solving ability?
At Hack Reactor, we always spent week 1 (out of the 6-weeks of educational sprints) on the fundamentals of JavaScript and its tricky aspects to plug the gaps in understanding of new JavaScript developers. Then we spent the entire week 2 on data structures and algorithms.
Then, only in week 3, almost half way into the 6-weeks of educational sprints, did we dive into libraries and frameworks that you actually you use on the job for JavaScript development.
Without at least some coverage of the fundamentals of software engineering and general problem solving ability, you'll inevitably get stuck more often on problems and are put on a road of inefficient programming.
You need a curriculum that covers fundamentals first. Stay away from curriculums that don't cover them first, unless you already have a base of fundamentals to begin.
Rule 5: Don't get caught up on language.
Programming is about exercising logic to implement algorithms that solve specific problems.
A programming language happens to be the method in which a human maps an algorithm (series of logical steps) to a language that a computer can interpret. It is not the logic itself.
Don't fixate on which language you "should" be learning as there are more important things to focus on at the beginning, like:
- The process of learning
- Data structures and algorithms
- Developing a commanding mastery of whatever language you are pursuing first, so that you can wield its power to solve problems.
Ultimately, your job is to be great at programming. Not to be great at JavaScript, Python, Java, or whatever. That's because you're paid to solve problems as a programmer and use whatever language is most appropriate for the solution.
It doesn't work the other way around.
Don't fret the specifics of which front-end frameworks/libraries a bootcamp offers, or which back-end language they teach. If the other 4 rules of thumb checkout for a bootcamp, then let the language be a secondary priority.