Before You Code, Remember to PREP for Your Bootcamp Coding Interview

PREP is a mnemonic for methodically solving coding problems. It expands to: Parameters, Return, Example, Pseudocode. 

The mnemonic is new, but the underlying technique is battle tested. This is essentially a beginner-friendly version of test-driven development that lends itself well to coding challenges.

Let’s get right to it and learn PREP through an example problem! We’ll use JavaScript, but this technique works for just about any programming language.

Suppose your interviewer asks you...

"Write a function that accepts a sentence and returns the longest word."

Parameters (Input)

Most problems involve writing a function. In this step we need to determine what parameters our function should accept, and then we need to give them meaningful names.

Keywords like “takes in” or “accepts” in the problem statement will guide us here. If it’s unclear, we can also ask the interviewer for clarification. In our case, the statement “accepts a sentence” tells us the function should accept a single string parameter.

So, we have determined the type of our parameter, but what should we name it?  It might sound simple, but good naming is a crucial programming skill, and it takes practice. We could call ours "sentenceString," but calling it "sentence" is more concise and still makes it clear we're dealing with a string.

Since this is our first step, we also need to think of a meaningful name for our function itself. In our case, "longestWord" is both concise and descriptive. Now that we've decided, we can write the shell for our function like this:

function longestWord(sentence){


Return (Output)

What does this function return? Is it a number? A boolean? A string?

Remember: the value a function returns is not the same as what it might display in a print/log statement. Once again, we can look at the problem statement for clarification. “Returns the longest word" tells us that we're returning a word, and we know that words are strings. Let’s make this crystal clear by creating a variable to represent this return value and rigging up our function to return it. Even though we aren't returning the correct answer yet, we are set up to return the correct type. We have created a placeholder that will make the next steps easier.

function longestWord(sentence){
  var word = "placeholder";
  return word;

Example (Test)

Even for expert developers, static code is harder to understand than running code. We want to make our code runnable and "alive" as soon as possible. We can breathe life into our function with an example test invocation.

We know that if our function accepts the sentence, "I saw a hippopotamus," it should return the string “hippopotamus” once it’s properly working. But for now, we just want to see our placeholder value from the last step to confirm our code is runnable and setup correctly.

function longestWord(sentence){
  var word = "placeholder";
  return word;

// This should log "hippopotamus" once we finish the later steps
// For now, it just logs "placeholder"
console.log(longestWord("I saw a hippopotamus"));


While it’s tempting to just dive in and start coding now, it would be too easy to get caught up in a detail that could distract from the bigger picture. We need to devise a strategy first, and pseudocoding is just the tactic for this. Pseudocode is simply a series of precise statements written in spoken language comments to describe we need to do.

function longestWord(sentence){
  // Use a variable to keep track of the longest word so far.
  var word = "placeholder";
  // Convert the sentence into an array of words, so we can easily iterate
  // over each word.
  // Loop through each of the words.
  // If the length of the current word is greater than the longest so far,
  // update our variable tracking the longest word.
  // After we've looked at every word, return the tracking variable.
  return word;

// This should log "hippopotamus" once our function is working correctly.
// Currently, it logs "placeholder"
console.log(longestWord("I saw a hippopotamus"));

We Have finished PREP. Now We Can Code!

The four steps in PREP helped us clearly frame the problem and think about how to solve it. In truth, accurate framing is half the battle. Most interviewers will already be impressed to see our methodical approach. At this point, our goal is simply to write code that will make our examples/tests pass. We'll do this by encoding each of our pseudocode steps.

We know we've got a working solution when we can run our code and see the correct output. 

function longestWord(sentence){
  // Use a variable to keep track of the longest word so far.
  var longestWordSoFar = "";
  // Convert the sentence into an array of words, so we can easily iterate
  // over each word.
  var wordArray = sentence.split(" ");
  var currentWord;
  // Loop through each of the words.
  for (var i = 0; i < wordArray.length; i++){
    currentWord = wordArray[i];
    // If the length of the current word is greater than the longest so far,
    // update our variable tracking the longest word.
    if (currentWord.length > longestWordSoFar.length){
      longestWordSoFar = currentWord;
  // after we've looked at every word, return the tracking variable
  return longestWordSoFar;

// This should log "hippopotamus" once our function is working correctly.
console.log(longestWord("I saw a hippopotamus"));

We're through the hardest part now, and we can breathe a sigh of relief that we've at least gotten to a working answer! At this point, there are just two more questions to think about:

  • Are there any edge cases that would break the code? For example, do we need to take into account sentences that have a period at the end? We'll write more test cases for these edge cases, and fix the code if necessary.
  • Can we make the code cleaner or more efficient now? We should discuss ideas with the interviewer so they know our thoughts before risking breaking the solution.

That's it! The process might seem overly mechanical at first, but trust me, it will become second nature - much like the steps in learning to drive. Even after programming for more than 12 years, this is still roughly the sequence I follow when I’m problem solving. I'll likely use formal testing frameworks instead of log statements, but the steps are the same.

Now you try it! Here are a few beginner-level problems you can practice with, in ascending order of difficulty:

  1. Suppose you have an array of string like [ “adios”, “bye”, “ciao” ]. Your task is to write a function called total_characters that accepts such an array as a parameter and returns the summed number of characters across all the strings in the array.
  2. Write a function to flip a coin n times that returns the numbers of times a “heads” was flipped.
  3. (From CoderByte) Using the JavaScript language, have the function alphabetSoup(str) take the str string parameter being passed and return the string with the letters in alphabetical order (ie. hello becomes ehllo). Assume numbers and punctuation symbols will not be included in the string.

I’d love to see your solutions and provide feedback. Submit your answers in the comments and / or directly to

PREP has already helped several First Step Coding learners ace their interviews, and I hope it helps you too. Happy coding!

Bootcamp Prep: Courses to Get into a Top Coding Bootcamp

Coding bootcamps have been around since 2012. An estimated 18,300 people will complete bootcamps in 2016, up from 12,100 in 2015.

The prevalence of bootcamps has more recently given rise to a collection of "bootcamp prep" programs. In this article, we'll explore these programs and provide a survey of options currently available.

What purpose do bootcamp prep programs serve?

Overcome high admissions bars

The most powerful marketing assets bootcamps have at their disposal are successful outcomes. Therefore, bootcamps are motivated to filter for students likely to produce the best outcomes. They look at your work history, your academic track record, your personality, and your technical skills. Many of the most selective bootcamps actually won’t accept you unless you can prove you’re already capable of a certain level of coding and problem solving skills.

So how do you improve your coding skills before you’re admitted to the bootcamp? You can do it on your own, or you can join a bootcamp prep program.  There are many excellent free resources online like Free Code Camp and CodeCademy, and these are a great places to start. However, it’s important to understand that while learning to code is not rocket science, it does take hours of focus, dedication, and practice – just like mastering a musical instrument. 

You’re not only going to need to decide what to study, but you’re going to need support when you get stuck, and you’re going to need a quiet place where you can stare at your screen as you grit your teeth through the hard problems you’ll grow the most from solving. Be honest with yourself, and consider these questions:

  • Have I ever mastered a skill that takes hours of practice on my own?
  • Do I have a dedicated place where I can study for at least 12 hours per week as I’m preparing – without a distracting cat / chihuahua / hamster walking across the keyboard?
  • Do I have the self-discipline to study this without the structure of an instructor, organized curriculum, and a peer group?

Maximize your bootcamp education’s value

No matter how good your instructors are, no one can handhold you all the way to mastery. Software engineering is a profession where the learning never ends – you’re never going to be working in a domain that you fully understand, and navigating this uncertainty is part of the game. It’s a skill that a good bootcamp should help you develop, but it’s going to require you to take the initiative to leverage all of your resources to build your solutions.

Some bootcamps will accept you with very little coding experience, but it’s to your advantage to come in ahead of the curve. If you’re less prepared than your peers, then you may fall behind in the beginning, and it can be hard to catch up. On the other hand, if you come in at a higher bar then you will be able to explore more advanced topics while you’re still in the nest of your bootcamp. You’ll come out at a higher level with a better portfolio, and you’ll have a much easier time finding your first software engineering job.

If coding isn't right for you, find out quickly

Learning to code can most certainly change your life, but it’s also a major investment. Attending a full-time program is typically going to require:   

  • Quitting your job.
  • $10-25k in tuition.
  • 6-10 months of forgone wages. Consider that it takes most people 3-6 months to find a job after finishing a bootcamp.

What if you went through all that only to find out you really aren’t so excited about a career in coding?

"Fail fast" is a popular axiom of the startup world that you should consider for your own career path pivot. What you really want is to win, but the worst thing that can happen is to fail slowly. It’s costly in time, money, and lost opportunities. On the other hand, if you fail fast, then you’re able to learn a quick lesson and use it to fuel your next effort.

One advantage of doing a bootcamp prep program is it allows you to really start to understand what this journey is going to look like before you put all your chips on the table. Hopefully you decide you love coding, but it’s not a bad thing to figure out quickly if it’s not for you.

What factors should I consider in a bootcamp prep program?

Language & Topics

The programming language used in your bootcamp prep program should align with the language that bootcamps you are considering use. The majority of programs today are JavaScript focused, but there are some good reasons you might decide you want to start with a different language.

Regardless of the language, a good prep program should truly assume no prior knowledge, and it should absolutely cover at least these introductory topics: boolean logic, arrays, objects/dictionaries, functions/methods, and problem solving techniques. 

Bootcamp connections

Most bootcamp prep programs are connected to immersive coding schools. Others are decoupled but may have partners. If you’re already sure a specific immersive program would be the best for you, then you should sign up for a program attached to the school you want to attend. App Academy has one in SF and NY,  Flatiron has one in NY, and Hack Reactor has an online program.

Now, if you’re still weighing your options and want exploring schools to be part of your prep program, consider a program like First Step Coding that is not attached to larger bootcamp. Programs like FSC will have multiple partner schools that provide you the opportunity to meet face-to-face with instructors and alumni from various schools. They will also likely offer credits to multiple programs. 

Cost and education credits

Cost is a factor to consider, but consider the cost difference relative to the quality of the program and the overall cost of your coding education. Prep programs range from about $800 - $3,000. Online courses are generally less expensive, but they come with some tradeoffs.

Some programs also offer credits for continuing your coding education at an immersive bootcamp afterwards. Hack Reactor, App Academy, and Fullstack will let you credit the cost of their program toward their immersive program. First Step Coding will credit you $500 - $3,000 toward a number of different partner programs. 

Online vs. in-person

Bootcamp prep programs come in three flavors:

  • Online – asynchronous. This is a class that you can participate in at your own pace. You’ll read through content online and then work through problems independently. For some people this flexibility is a huge advantage. For others, it fuels procrastination and makes it harder to stay motivated without the ceremony of a live class to keep you engaged.

  • Online – live. This is a newer flavor of online education. You can join class from anywhere and you still get the experience of being able to interact with your instructor and classmates in real time. You will need to ensure you have an excellent internet connection and quiet place to join in from regularly. 

  • Classroom – live. This is the more traditional learning environment. The disadvantages are that you’re limited to attending what is geographically convenient for you, and you may need to commute. On the up side, you’ll likely have an easier time making friends, forming study groups, and feeling comfortable asking questions than you would in an online environment. You’ll also have the helpful ceremony of meeting in a physical space designed for learning and away from any distractions at home.

What are my options?

Below is our filtered list of prep programs. We came across more programs than this, but we have a few qualifiers for what we list here:

  • Led by instructors with professional coding experience.
  • Clearly active with upcoming classes scheduled.
  • Has run for at least 3 cycles.

All of the programs listed happen to feature a JavaScript-based curriculum. Most of the programs also offer "guaranteed admission" to a bootcamp. We did not bother listing this guarantee because in many cases, it's just marketing. If you read the small print, this guarantee normally requires you to apply to specific list of programs, and at least one of the programs in the list will have a low bar for admissions. So it's not a bad guarantee to have, but it also doesn't carry much value.

Bootcamp Prep Programs
Program Locations Cost Credits Format Perks & Guarantees
App Academy Prep - Live San Francisco,
New York City
$2,999 $2,999 toward App Academy Immersive 4 weeks

M-F 6:30-8:30pm

Problem sets between classes
Connection to App Academy
App Academy Prep - Online Online - asynchronous $1,999 $1,999 toward App Academy Immersive Self-paced Connection to App Academy

Flexible work times
First Step Coding Austin,
Los Angeles,
New York,
San Francisco,
Silicon Valley,
Washington, D.C.
$1,499 - $2,000 $1,500 toward Rithm School

$1,500 toward Startup Institute

$1,500 toward Launch Academy

$500 toward Learners Guild

$500 toward App Academy
4 weeks
M, W 6:30-9:30pm

Problem sets between classes

Slack support

4 hours 1:1 mentoring

Q & A sessions with bootcamp alumni
5:1 student:teacher ratio

Pair-programming based curriculum

Happiness guaranteed w/ refund option
Fullstack Academy Chicago,
New York City
$2,750 $1,500 toward Fullstack Immersive

$1,500 toward Grace Hopper
4 weeks

M-Th 6:40-9:40pm
Connection to Fullstack
Hack Reactor Prep Online - Live $795 $795 toward Hack Reactor Immersive 4 weeks

M-Th for 3 hours (morning and evening options available)
Connection to Hack Reactor

Study from home convenience w/ the ability to still have the ceremony of a live course

In summary, bootcamp prep programs are a great way to explore coding and get to know the bootcamp scene before you fully commit. There are a number of good options – it’s just a matter of being honest with yourself and coming to understand what works best for you. 

SwitchUp Report: Are Coding Bootcamps Worth it?

Top Takeaways from SwitchUp’s 2016  Coding Bootcamp Survey

In the past 5 years, Coding Bootcamps & Immersive Courses have gone from an unconventional education option to a thriving industry.  With the allure of high paying tech jobs and the recent announcement that Federal Student Loans now cover some Coding Boot Camps, it’s no wonder enrollment is soaring.

But are Programming Bootcamps worth the investment of time and money, and will you really graduate with the skills needed to land that Web Dev job? Many bootcamps claim you can, but with little industry regulation, and in light of recent scandals, it can be hard to know if your investment will pay off.  

SwitchUp, a resource for prospective bootcamp students and alumni, was started to answer that question and shed more transparency on this new industry.

Over the past year, we have surveyed alumni and gathered information about coding bootcamp students and their experiences. After hearing from more than 1,000 students and alum, we’ve crunched the numbers and published the results.

  1. 63% of graduates reported an increase in salary. Those who reported an increase saw their salary jump by an average of $22,700.

    Bootcamp grads continue to report a salary increase overall, and this number is up from 59% last year. Grads are also seeing a bigger salary bump. Respondents in 2015 saw a salary increase reported an average increase of $18,101 within six months. This year, respondents saw an average increase of $22,700 after six months.
  2. Women are more prevalent in coding bootcamps than in Computer Science programs.

    Coding Bootcamps have been praised for adding diversity to tech, and this is definitely true when it comes to female programmers. In 2016, our data found that 43% of coding bootcamp grads were women, up from 41% in 2015. Conversely, just 12% of computer science grads are women.

    Bootcamps have successfully proved that people from every background can make a career change into tech. It remains to be seen if computer science programs will made the same diversity gains in the future.

  3. Bootcamp Market Growth & Evolution

    Have you noticed coding bootcamps popping up everywhere? The coding bootcamp market is booming; and we don’t see it slowing down anytime soon. Our survey looks at how the coding bootcamp market has grown (and continues to grow!) since 2013.  

    Be sure to read the full Survey Outcomes here.

So are coding bootcamps worth it?

It’s a complicated question, but if you are looking to get a job in the technology industry, our research says “Yes!”  Technology is an amazing industry to be in, and can be very rewarding. but, before you take the leap into a full-on intensive course, you’ll need to do your research to make sure coding is right for you. We suggest you focus on a few things to get started:

Know Your Career Goals

Make sure you have a clear understanding of your own career goals and where you see yourself in the industry. Coding bootcamps now focus on a broad range of topics and languages, and the perfect bootcamp curriculum will depend on your individual needs. Spend some time researching different careers that students often land after attending a bootcamp, and decide which career paths are most appealing to you. Once you understand your career path, you can choose the right course.

Do Your Homework

Remember, before attending a bootcamp, research everything you can about the curriculum, teachers, and job support.  Read student reviews, reach out to alumni, speak with an Instructor and Visit the school’s website (and the bootcamp location if you can).

To learn more about Coding Bootcamps and read alumni reviews, visit

We’d love to hear from you, even if it’s just to say hi. Email us anytime at, and Follow us on Facebook for the latest updates.