Alumni Q&A: Jake Holtz On His Journey From First Step Coding to Hack Reactor

For First Step Coding alumnus Jake Holtz, his interest in programming began in an unexpected place. Jake developed a love of languages and communication as an undergrad at U.C. Santa Cruz, and he went on to graduate with a B.A in Greek and Latin.

Jake’s first job after college allowed him to dabble with programming, and he realized that software development was the perfect way to combine his interests in language, technology and innovation.

First Step Coding seemed like the perfect starting point for Jake because he could try out programming in a classroom environment, and build the skills necessary to gain acceptance at a top bootcamp.

In an interview with SwitchUp, Jake talks more about how First Step Coding helped facilitate his career change. Check out the interview below, and read more FSC student stories and reviews on SwitchUp.

1.)   After earning a B.A. from the University of California Santa Cruz, you made the decision to attend a bootcamp. What made you decide to pursue a career in software development? 

After college, I worked as a junior analyst for a small retail company. Having a significant amount of autonomy in my position, I began to create spreadsheet “apps” that automated daily tasks that I needed to perform. I’ve always had an innovative mindset, and so this, combined with my work experience led to a natural progression into computer development.

2.)   How did you hear about First Step Coding? What made you decide to attend FSC before a bootcamp? 

At the beginning of 2016, I began going to meetups at Dev Bootcamp to get an introductory glimpse into computer programming. FSC hosted one of the meetups I attended, and I ultimately chose the program because of its unique approach that no other introductory program offers. FSC integrates traditional teaching with networking and meeting people from all sides of the Bay Area tech community. This is why FSC was so much more than just a “pre-bootcamp program” and why I ended up attended it and enjoying it. 

3.) What was it like to go from a coding bootcamp prep program to a selective bootcamp like Hack Reactor? 

I try to be very strategic about decisions I make. I loved FSC, but because of the learning curve, I wasn’t sure I wanted to pursue programming. I spent the next few months continuing to study and finally got to a point of certainty. My friend connected me with a mutual friend who worked at Hack Reactor. I applied, and I was accepted.

4.) How did First Step Coding prepare you for life in a bootcamp? 

FSC’s two-pronged approach [of teaching and networking/pairing with others] was integral to my success at Hack Reactor. FSC introduced me to the collaborative, pair-based learning model used in both bootcamps and in real world software engineering. While I continued to study after FSC, retrospectively, I definitely could not have applied to Hack Reactor without the skills gained from FSC. 

5.) For you, what were the pros and cons of attending a bootcamp prep program before a bootcamp?

PROS: Learning, networking, and a great way to decide if software engineering is right for you,

CONS: Education is expensive!

6.) What challenges did you overcome to get to where you are? 

Developing resilience. One of the reasons Hack Reactor has such an extraordinary reputation is because of the intensity of their program. They overwhelm you with an extravagant amount of information and you basically have to teach yourself (with their help, of course). This process siphons out those unsuitable for the industry and creates a programmer ready to learn large amounts of advanced material in a short amount of time.

7.) What are your goals and plans for the next 5 years?

Between attending college and working as a Junior Analyst, I lived in northern Israel for a year. I fell in love with life there. My goal in 5 years is to work as a Software Engineer in Tel Aviv. There’s a huge demand for tech workers there– the tech community there is even colloquially known as “Silicon Wadi.” Waze, Viber, Fiverr, and Wix were all founded and are based there, and you have huge R&D centers for Google, Microsoft, Intel, HP, and IBM. 

8.) What advice do you have for people who are interested in attending a prep program before abootcamp? 

Great question. Three things: 

FIRST: Do as much prep as you can before a bootcamp. There's so much to learn. Also, be smart about what you learn. If you want to be a Web Developer, it would be unwise to learn C or C++ as a first language.

SECOND: Make sure that computer programming is for you. I studied for six months before I was sure I wanted to go to a bootcamp.

THIRD: Be selective about your bootcamp. Bootcamps are like any other business in the sense that there are good ones and bad ones. I personally wouldn’t go to a lower tier college nor would I go to a lower tier bootcamp. It’s an investment.

Jake Holtz is a San Francisco based full stack software engineer focused on test-driven development and full stack JavaScript technologies. Having attended UC Santa Cruz with a degree in Greek and Latin languages, Jake has a fascination with languages as a medium for communication and functionality.

Linkedin: linkedin.com/in/jahholtz
GitHub: github.com/jakeholtz
AngelList: https://angel.co/jahholtz

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"));

Pseudocode

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 answers@firststepcoding.com

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,
Boston,
Chicago,
Denver,
Irvine,
Los Angeles,
Miami,
New York,
Philadelphia,
Seattle,
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 Switchup.org

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