The following is the current version of a section in my book on interviewing for technical roles. I’m trying to help out with any advice I can while I’m putting all of this together. As part of that, I’m looking for constructive criticism and feedback. My experiences as an engineer are also not universal and so my own biases will creep up in my writing.
In this section, I’m addressing pathways into tech through various means of education. While other sections relate the pros and cons to being self taught and university education, I focus here on what code schools and bootcamps can do for engineers who are both up and coming as well as those looking to supplement their education later in life.
Developing a tech focused background from an educational institution doesn’t require committing yourself to four years and sizable financial debt. Universities can be expensive and while a well rounded education can be incredibly beneficial, you may want a more focused learning experience concentrated on your area of interest. That’s where code schools come in.
Code schools, also known as bootcamps, have become increasingly popular as a resource for those who want an education concentrated on the fundamentals of software development. Different from a university education, code schools center more on core skills with guided, hands on projects. While a college degree may offer courses in a number of subjects over several years, code schools are shorter and more narrowly focused, generally consisting of several weeks or months. They’re typically billed as “intensive courses”, ones in which you’ll be immersed in a coding environment to get you up and running quickly alongside like-minded colleagues. The advantages are readily apparent – you’ll be getting a running start into software engineering without the overhead of a longer university attendance and potentially saving you a good deal in tuition costs. For older engineers-to-be, there can be much more of an acceptance as well, as opposed to attending university later in life. Many attendees of code schools are there as a path towards switching careers, allowing the opportunity to break stereotypes that a start (or continued education) in tech is only for those in their late teens or early twenties.
Code schools focus on instilling foundational knowledge explicitly for career building. Class sizes and make ups can vary, as no two code schools are quite alike, but the best will have a strong ratio of mentors to students in your favor. In larger cities, you may even have a choice in courses to attend to further specialize your studies. These programs tend to focus on frontend development over operations or infrastructure as the hands on approach lends itself better to developing a product. This educational aspect isn’t the only benefit, though. Creating a portfolio of work during your education to showcase through the interview process can significantly increase your chances later. You’ll also discover that you’ve developed effective habits when collaborating with others, a skill that you won’t be able to foster as strongly when self- taught. That also includes a potential network of mentors and colleagues in the industry who can help with job hunting and general assistance in the job.
This isn’t to say code schools don’t come with their own drawbacks. It’s important to remember that while you’re picking up useful skills, courses come with no guarantee of finding a job upon completion. Code schools can range dramatically in what they offer and the quality of their teachings. The ease at which they are set up also carries a lack of accreditation, which means there can be a drive to minimize costs through fast turnarounds to get students quickly through the doors. Your potential employers may require a college degree or equivalent as well, with a bootcamp not always satisfying that need. Similarly, even the best of code schools won’t prepare you for everything you’ll need in your career or through the interview process, as the product driven aspect leaves out much of the academic portion of Computer Science. If your interviewer asks you a deep data structure question (“Walk me through the algorithm for a red-black tree”), it might not be covered despite the intensive training. As only so many students can be accepted, you may have to apply and potentially get rejected which can be discouraging. In terms of financial costs, I would strongly discourage applying to any programs that take a percentage of your salary upon graduation in lieu of tuition, as you can wind up paying much more than you expect.
If you’re considering attending a code school, there are numerous questions you should keep in mind to help inform that decision:
- What is your ideal time commitment? You may have obligations, such as an existing job or family caretaking, that require less time per week over a longer period. Conversely, you may be eager to switch and willing to dedicate yourself fully in the hopes of moving to interviewing sooner. Knowing the hours per week you can actively engage will direct which code schools will be most effective for you.
- What is the course material covering? The syllabus might not be posted online for you to find, but they’re also not closely guarded secrets either. Make sure you’re covering things you’ll actively want to invest your career in.
- What are the costs, alongside tuition? While you’re at code school, you may not be earning a salary while incurring the costs of living. Attending a code school in person in a major city can eat into your savings quickly!
- What level of intensity best suits your current stage in learning? Gauging your abilities and mapping that to a course will help you avoid being in over your head or wasting time and money on tech you’ve already learned.
- How does the curriculum keep up with emerging technologies? Teaching is a full time profession, which makes keeping up with new skills, languages, and frameworks a challenge. You don’t want to study up on outdated technology.
- Are you looking for in person or remote classes? It can be much more difficult helping remote students find employment afterwards as they tend to be outside the home city of the school where you’re lacking a local network to tap into. Purely online, though, is significantly cheaper as you can avoid the overhead of living in a major city while not earning a steady income.
- What is the effective rate of placement upon completion? Programs will want to promote their graduates who land roles to demonstrate the effectiveness of their classes. The best code schools will have outreach for job placement. Note: they cannot and should not guarantee you a job. It is illegal in many places and disingenuous. Attendance is not a contract for a job but a tool to help guide you towards landing one.
- Are you a member of an underrepresented group looking for help in overcoming obstacles in tech? Several programs focus on underrepresented groups, which can give you deep insights into the tech community and help navigate hurdles along the way.
- Do they have cookie-cutter projects as assignments? A subtle distinction between good and great bootcamps are how they present work. A good school may incorporate project based learning with little differentiation between students, but a great school will tailor fit the assignment to encourage attendees to explore beyond the minimum requirements for completion.
- Are they interactive? Avoid any programs where teachers read off a slide at you for a few hours. The hands on approach can be an incredibly powerful tool to kickstart your learning.
You may also be looking for specific places to apply to as well. I can’t advocate for any particular programs, as I can’t judge them all or guarantee their quality continues in the years to come. By using the above guide, speaking with recent graduates to get their opinions, and finding reviews online you can put together a strong case to decide. What’s important to keep in mind is that the best code schools are trying to teach people how to learn and to grow as engineers. Center your research there and you’ll be well informed in your decision.