What is a coding bootcamp?

A coding bootcamp is a technical training program that teaches the programming skills that employers look for.

Coding bootcamps enable students with little coding proficiency to focus on the most important aspects of coding and immediately apply their new coding skills to solve real-world problems.

The goal of many coding bootcamp attendees is to transition into a career in web development. They do this by learning to build applications at a professional level - which provides the foundation they need to build production-ready applications and demonstrate they have the skills to add real value to a potential employer.

Why Coding Bootcamps Are Important

We live in a world where technology is continuing to evolve. Technology is drastically changing how we do everything in our lives. It’s more common than ever to get around using Uber or Lyft, technology driven transportation companies. Companies like Apple, Square and PayPal are changing how we pay for things. It seems every industry is being radically impacted by how technology is shaping the world around us.

Software is taking over the world. This shift changes how we live our lives, but also requires employees with software engineering skills capable of building the technology that we all use.

Attending a coding bootcamp is a viable path to transition into a career in web development as an alternative (or supplement) to graduating with a 4 year degree in Computer Science to helping fill the need of skilled software engineers in industry.

How Coding Bootcamps Work

Coding bootcamps last anywhere from 6 weeks to nearly two years, but with programs typically spanning a range from 12-40 weeks.Given the condensed time frame of training, it is critical that these education programs are designed around two core pillars: speed and high-impact learning. Let's look at why both of these are critically important.

Speed

Most computer science students spend 4 years to complete their Computer Most computer science students spend 4 years to complete their Computer Science degree. Computer Science degrees includes classes on wide range of topics relevant to computing. Most students will take classes on programming and software development. In addition, when taking a four year degree, there are many classes on topics like networking, operating systems and computing theory that are helpful for understanding the topic in academia, but that are disconnected from the daily life of a software developer in the real world.

Coding bootcamps isolate the most relevant skills from a 4 year degree and infuse it with relevant industry skills to bridge the gap between the theoretical world of academia and the real world that meets the current needs of the industry.

Despite the two programs being different, both a four-year degree in Computer Science and graduating from a quality bootcamp can provide a viable path to starting a career as a web developer. Many people do both.

High Impact Learning

Coding bootcamps focus on high-impact learning and teach only the skills that will prove to be most relevant in the real-world. These programs focus intensely to skill their members up with exactly what they will need to be successful coding in the professional world.

The time frame that members attend a coding bootcamp is relatively short when compared to traditional training with a four-year degree from university. In order to make this work, all non-essential skills are ruthlessly cut from the coding bootcamp curriculum.

This means that coding bootcamps are ideal for people who want to obtain the technical skills that will help them become employable , but to also do so in a very short time frame.

Given coding bootcamps focus to provide an accelerated rate of high-impact learning, these education programs are not for everyone. Instead, these programs are designed specifically for people who want to maximize the amount of skills they obtain in a short amount of time during an intensive training experience.

Coding Bootcamps Teach What Startups Need

Besides speed an high-impact learning, coding bootcamps teach the latest hard technical skills that match the technologies that the best startups in the country are using to build and launch products very closely.

Let's look at the latest technologies that coding bootcamps teach and startups are looking for.

Coding Languages

One of the most critical components of a web developer’s toolkit is the programming language the developer chooses to work with. On the one hand, there are many programming languages out there, and picking the right one can feel intimidating. It’s important to take into consideration that once you learn your first coding language, additional programming languages will be easier to pick up if you’ve taken the time to learn strong foundational programming skills.In this section, we’ll give you a rundown of common programming languages that coding bootcamps often teach, why they are used, and help you understand what you need to know to make the decision that is right for you in your coding journey.

Ruby

Companies: AirBnB, BaseCamp, Groupon and GitHub

The Ruby language was designed with one main principle in mind: developer happiness. It’s a programming language that was designed to be easy to read, fast to learn, and simple for developers to use to solve complex problems. The learning curve to master Ruby is less steep in comparison to other programming languages, and after just a short period, you will be able to write and execute Ruby programs and solve complex algorithm challenges. In addition, mastering Ruby first provides you with an ideal springboard to learn another programming language.

The open source Ruby community is large, very active, and welcoming to people of all skill levels. When your programming craft is backed by an active, worldwide community, it means you have ample opportunities to find and work on interesting projects with awesome people.

JavaScript

Companies: Netflix, AirBnb, eBay, Uber

Today’s user interfaces depend heavily on JavaScript to create a smooth user experience. JavaScript skills are an essential software engineering skill for today and tomorrow.

It’s very common for developers to use JavaScript to build the front-end of their user experience and use a different programming language together with it. In your journey to become a web developer, learning JavaScript is a practical idea.

Although you can get by knowing only JavaScript as a coding language, gaining proficiency in multiple programming languages will turn you into a so called polyglot programmer, who is skilled in multiple programming languages. Having the ability to draw on this flexibility and experience with many programming languages is exactly what will make you attractive to employers, which is exactly why most coding bootcamps teach JavaScript in addition to other programming languages.

Python

Companies: Google, Yahoo!, Facebook, Mozilla, IBM

Python is a coding language that has become popular in data science and scientific computing. In addition to working well in data science fields, web frameworks like Django and Pylons make Python a programming language that is feasible to write web applications with.

Other Languages

Other coding languages like PHP, C++, Java, .NET (and C#) are often used computer programming languages used in the real world, but it is less common to see these programming languages taught in a coding bootcamp environment.

Web Development Frameworks

Web application frameworks help developers write code faster, by providing easy ways to perform actions that need to happen dozens or even more times within the same application.

These frameworks make life easier as a developer because they allow you to focus on features that you care about, rather than mundane, repetitive tasks.

If you’re building a web application, industry generally suggests that you should use a web application framework to help you do the work. Just like with programming languages, you’ll need to choose a framework to learn. Depending on the programming language you are choosing to learn, there are web frameworks that are very popular that are built on top of the language.

Ruby-on-Rails

Language: Ruby

Ruby-on-Rails is a full-stack web framework that was initially built by David Heinemeier Hansson to build BaseCamp. It was the first web framework to fully embrace the Model View Controller architecture, which is now regarded as the standard way to build web applications. The framework rapidly gained traction and skyrocketed the Ruby programming language from obscurity to a mainstream programming language.

Today, Ruby on Rails is frequently used by other web applications frameworks as inspiration and an example of how to craft a web application framework that provides the structure, organization, and flexibility that the rails framework has proved over time.

ExpressJS

Language: JavaScript

ExpressJS is a minimalist web framework, which means that the organizing and structuring of applications that use this framework are on the application developer instead of having a series of conventions that are always followed.

There are trade-offs with this approach. The main benefit to building every aspect of a project by yourself, is that aftering doing so, you’ll have a deeper understanding of why you made various decisions in the structure of the application. The drawback is that all applications that are built using ExpressJS are structured differently. This means that when introduced to a new project written using ExpressJS it can take a longer time than projects built with other frameworks to become familiar with where different components in the application live.

Django

Language: Python

Unlike the Ruby and JavaScript communities, there are a diverse array of different web frameworks python developers have to choose from. Django is one of the more popular Python-based web framework, but not the only popular one by any stretch.

Django is a web framework that follows the Model View Controller pattern, in a similar fashion to Ruby on Rails. Django is one of the most popular Python web frameworks, with many developers, third party libraries and a large vibrant community. Django is a great solution for large projects and especially projects with many different developers.

Frameworks like Pylons and Flask are different web frameworks in the Python ecosystem that will offer a different balance of pro’s and con’s from Django. Django offers a well defined structure to the applications that use the framework, but other frameworks will allow the programmer more a freedom to express their code in unique and different ways.

Version Control

Most developers will use tools known as version control tools as collaboration tools. Here’s why these types of tools are very important for you to master early on in your coding journey.

The best software in the world is written by teams of developers, and if you’re looking to develop software at a professional level, understanding how to use the tools and technologies that developers use to collaborate and work together is pretty important.

Git

Git is a computer program that manages code and keeps track of who changed what line of code when, and also can be used to share code. Not only does using a tool like git properly help keep your code backed up and safe in case you inadvertently make changes to your code that you wish to undo, but it also provides great way to start working on experimental features, using its branching feature.

Although there are other tools to achieve similar results that are sometimes used in the real world, such as SVN, CVS and Mercurial by and large, most professional teams use git as the tool they use to manage their code. Because of this, getting experience using this tool is incredibly practical to do.

Github

GitHub is a platform to collaborate on code using the Git program. It supports many features to encourage collaboration and open source technology and closed source technology alike. The platform works together with projects that use the git technology, as we mentioned above. Signing up for an account is free and as a professional developer it’s very common to use GitHub as a place to showcase your work and the work you’ve done - in parallel to on your portfolio.

Servers & Hosting

Heroku

Heroku is a platform as a service (PaaS) that allows you to put a web application live on the internet very quickly. It quickly converts the code you write into a URL where your application is running that you can send people to.

In addition to making it very easy to put web application live on the Internet, heroku also scales really well without needing to understand complex devops (developer operations) concepts that other hosting platforms would require in order to scale as efficiently as is possible with heroku.

Amazon AWS

Amazon Web Service are a collection of solutions to problems web developers face on a daily basis. Think: image uploading, server management, database hosting, etc.

In short, coding bootcamps teach you the specific skills of building web applications with the latest technologies that you need to be a high impact employee at a startup or tech company from day one.

Databases

Postgres

The Postgres database system is a relational database, meaning that the data is similar to an Excel file but available for production and high performance use cases. It supports advanced geo-spacial features through the PostGIS database that is built off of it.

Postgres is one of the most powerful, scalable and reliable SQL databases in use. It also has a variety of powerful features built into the databases, which is why heroku has made PostgreSQL the default database their platform supports.

If you’re using Heroku as a platform and hosting service, using the Postgres database is an intuitive solution, since they make it easy to build applications on top of this layer.

MySQL

MySQL, like PostgreSQL is a relational database. It's used by Facebook and they open sourced performance improvements in their "WebScaleSQL" database.

MySQL is one of the most popular database systems in use today. This database works extremely well with blogging platforms, like Wordpress and Drupal and has the backing of Oracle, a major database company.

MySQL’s backing by the Oracle corporation is a bit of a double edged sword. Although having the support of a major corporation means the technology will be stable for the longhaul many developers feel that the corporate influence is a corrupting power on the open source technology. MySQL’s technology has recently branched off into a new database called MariaDB, which has the same starting point but a more vibrant open source community.

Mongo

MongoDB is a non-relational "NoSQL" database, which means it's drastically different from MySQL and PostgreSQL. Data is written to MongoDB using JavaScript. MongoDB solves some interesting problems relational database face when they hit high scale (100 million page views a day), but is often used in lower scale applications, where there are limited benefits given the tradeoffs in difficulty to work with that databases like MongoDB, that do not have schemas (unlike Postgres and MySQL).

There's a lot to learn!

Getting professional-level development skills takes a lot of work and there are many different skills that are important to learn!

Regardless of the program you choose to enroll in its important to know that as a professional developer it is important to have certain skill sets. Things like: a programming language, a web framework, experience with server and hosting functionality, and databases are all important skills to learn. Within each of these categories of technologies there are specific technologies, each with trade-offs and benefits both for and against them.

Does this sound like a big commitment to you? If it does I don’t blame you. Luckily, when learning a skill as complex as programming picking up the foundations will set you up better in the long run. Given the programming field changes so frequently, your best bet is to focus your energy on understanding the programming concepts that will withstand the test of time.

Chapter 1Alec Babala