If you’ve been to my About Me page, you know that I got my start programming by attending the Launch Academy coding bootcamp. Prior to Launch Academy, I had completed some basic tutorials and played around with Wordpress, but that was about it. Four years after graduation from Launch, I’m a full time Software Engineer who loves his job.
I’m often connected with people who are considering a bootcamp, currently enrolled in one, or are looking for a job post-graduation. Whenever I have one of these calls, I end up talking the person’s ear off. I realized I have a lot to say on this topic, so I am going to write a series of blog posts on bootcamp related topics. They are aimed at people in a similar situation to me (little to no coding experience) who are looking for a career change. This is the first post, and it will be followed by the below:
Part 2: How to choose a programming bootcamp
Part 3: How to make the most of a programming bootcamp
Part 4: How to land a job post-graduation
A lot of people I talk to that are considering joining a bootcamp jump right into asking how to evaluate the available options. This skips an important first step which is evaluating whether you should join a bootcamp at all. I think anyone considering a bootcamp should answer the following three questions: 1) Do you enjoy programming? 2) Do you want to program for a living? and 3) Is a bootcamp your best option?
1. Do you enjoy programming?
You may be thinking, how would I know? Well, have you tried some basic tutorials? A common starter is Codeacademy. There are myriad others. As you go through the various tutorials, try to be observant about how you feel. This may sound obvious, but programmers program. It’s a productivity based field, and if you do it for a living, you are expected to produce code day in and day out. As you start your learning journey, ask yourself some questions. Do you find yourself losing track of time as you are practicing? Do you look forward to continuing each day? How does it feel when a lesson clicks and your program runs successfully?
In addition to the above, how you feel when you are stuck on something and how you react to that is really important. The job can be frustrating. As you make it farther through the tutorials, you are going to struggle to solve something. The instructions will be unclear, or you just won’t understand something, or (god forbid) there will be a bug in the tutorial code. Pay attention to how you feel in this moment and what you do in response. This situation/feeling will be a large part of your daily life if you choose this path. Did you enjoy trying to find the answer? Were you able to find it by doing your own research? If you had to reach out for help (which is totally ok!), were you able to clearly describe the problem in detail and get the assistance you needed? These will be important skills going forward.
Don’t feel discouraged if things are slow-going at first. I feel like when many people think of a programmer, they conjure an image of a hacker from a movie furiously typing away.
A lot of programmers play into this perception and obsess over things like keyboard shortcuts and other tricks that let them move faster. In my experience this perception is far from reality. In my four years of doing this my typing speed has never been a factor in getting things done. Good programmers spend a lot of time with their hands off the keyboard thinking about how to solve difficult problems before implementing something.
2. Do you want to program for a living?
So you have been going through tutorials and enjoying them. The next step is to think about what your goals are. Bootcamps are not the only way to learn programming. They are focused on quickly teaching skills that make you job ready. If your interest is not career focused there are numerous free or low cost options that might be a better fit. If you aren’t sure, try talking to a programmer about his or her job. It’s not essential that you know exactly what kind of development you want to do (and likely impossible to truly know at this point in the process), but a general understanding of the parts of programming you enjoy most will help with your decision and bootcamp selection.
In professional software engineering, there is the concept of a tech stack. The stack is essentially the full set of technologies that a piece of software runs on. People (and companies) tend to describe positions as “back-end”, “front-end”, or “full-stack”. These terms are somewhat loaded and mean different things to different people, but I’ll give you a sense of them. Back-end software development deals with data - retrieving it, organizing it, and returning it for presentation. Front-end software development is focused on what you see - usually a web page in a browser or a mobile app. Full-stack positions work across both tiers, although I’d say most full-stack developers do have a particular area of strength.
These tiers emphasize different skills. What tier you’re on can have career implications, so it’s good idea to think about where you might fall. Warning: there are generalizations ahead. Everyone is unique, but what follows can be a helpful heuristic.
Front-end:
Are you aesthetically inclined? Artistic? Have design experience? These are skills and traits that will serve you well in front-end development. There are many front-end developers who are more focused on programming than design, so design experience/aptitude can be a leg up in your eventual job search. Interest in this tier is also well suited to the bootcamp path as most bootcamps are heavily focused on this area/the back-end work needed to support web development. This is for practical reasons. There is a high demand for these skills, and while they are extremely difficult to master, there is a lower initial learning curve.
Back-end:
Maybe laying out a web page or app does not sound exciting to you. Okay! Do you enjoy logic? Thinking about how to make data useful? Breaking down a complex problem into achievable steps? (Side note - this is not limited to the backend). If the above sounds right, then back-end development may be for you.
If you think your primary focus is going to be in this area, there are some things to be aware of. Working in this area tends to emphasize more traditional computer science skills (data structures, algorithms, etc.) and not all bootcamps focus on/are great at teaching these areas. There is also the tangential but related field of data science. This topic is too broad to cover in great detail, but this area focuses on gathering insights through data by utilizing statistical analysis, machine learning, and other techniques. There are bootcamps that focus entirely on data science. While this is an area of great demand, keep in mind data science involves advanced mathematics (another side note - it’s a common misconception that advanced math is a strict requirement to be a programmer or a daily part of most programmers’ lives. Trust me. If it were, I would be in trouble). If you do not already possess the mathematical knowledge required for data science work, be honest with yourself about whether you have the aptitude/stamina to learn it in addition to programming.
The above is not meant to discourage but to help people enter the field with eyes wide open. I will also say your initial impression of your preferences may be wrong. I do not fit the description I just gave of a person suited to front-end development, and I now do it on a daily basis. I still sometimes struggle with making things pixel perfect, but I do really enjoy seeing users directly interact with what I create.
3. Is a bootcamp your best option?
So you enjoy programming, you’ve gotten a sense of the field, and you want to make it your career. Fantastic! The last step is figuring out how you want to get there. There are multiple paths that can get you there: (a) self-study; (b) associate’s degree; or (c) bootcamps. Since we are focusing on career transitions, we are going to leave four-year degrees out of the discussion.
a) Self Study
A large percentage of developers are completely self-taught and have no formal education in the field. It is impossible to know the exact percentage, but many surveys say anywhere from 40% to 60% of programmers are self-trained. Coding has an extremely low barrier to entry. A computer and a text editor are really all you need. There is a wide array of free and low cost resources at your disposal. Based on this, there are many people who discourage people from attending bootcamps. They will say things like “just build things” and question why you would pay for knowledge that is freely available. They aren’t entirely wrong, but take their advice with a grain of salt. A lot of the people who talk like this started coding at a young age and have trouble placing themselves in other people’s shoes. You also should not underestimate the difficulty of this path. It can be a long and lonely road. Formal education and/or bootcamps come with built in teachers/mentors along with peers who are going through the same thing you are. You can find many people willing to help you with your self-study, but you will have to work for it. You will also need the discipline to set aside the time you need to learn. Finally, the path to a job may be more difficult. It is especially important on this path to put together a rock-solid portfolio. If you are considering this option, you need to weigh the substantial cost savings with your desired timeline to make your career transition.
b) Associate’s Degree
I am not super knowledgeable about this path, but I did want to mention it as I think it is an often overlooked and potentially underrated option. There is likely a community college in your area with Associate’s Degree programs in different computer science topics. It will be more expensive than self-study but potentially cheaper than a bootcamp depending on the school. The time horizon will be longer, however, as you will likely need to take classes over multiple semesters. Additionally, as community college is an academic setting, some programs may focus on computer science fundamentals as opposed to web development specifically. The fundamentals are invaluable but you may have to supplement your knowledge and portfolio with self-study to make yourself job ready.
c) Programming Bootcamps
Finally, let’s consider a bootcamp, the path that brought you to this post in the first place. There are many different formats, but I will focus on the full-time bootcamp experience. There are a number of advantages to joining a full-time program. Joining sends a strong signal to future employers that you are committed to learning this new skill and making it your career. A bootcamp sets aside a focused time of intense study. You are provided with teachers/mentors and will have classmates to help you throughout the experience. Over the course of the three month program you will build up a code portfolio to showcase your new skills. A good program will have hiring partners and will be focused on skills those partners value in potential hires. At the end of the program you will be provided an opportunity to meet interested employers one-on-one. Most programs will also provide interview training and career services to both current students and alumni. An established bootcamp will have alumni who have obtained positions with hiring partners and became great employees. This creates a virtuous feedback loop. Bootcamps are likely the best option for an accelerated transition into the field.
However, this acceleration comes at a cost. Bootcamps are expensive. Full time bootcamps can cost anywhere from 20,000. While the price does stack up favorably when compared against a four year degree, it still represents a significant investment. A full-time bootcamp also usually requires you to forgo a salary for 2.5 to 3 months at a minimum and then for an additional period of uncertainty while you hunt for a job. I was fortunate enough to receive a scholarship to Launch Academy and had a supportive spouse. Also, be realistic about your potential salary upon completion of the program. Bootcamps may tout the highest salary received by a single student but pay close attention to the average. You will need to evaluate whether your financial situation allows you to pursue this path.
Conclusion:
If you made it all the way here, thanks for reading. The decision to pursue programming and the path to making it your career is highly personal. Hopefully my experience and opinions outlined here helped inform your own thoughts. If you decide to pursue a bootcamp, check back for future articles on how to evaluate different programs!