7.5 Ways to Survive Coding Bootcamp: The No-BS Guide to Making It Out Alive (and Sane)

by | Feb 28, 2018 | Coding Projects

I’ve been taking a data analytics class at the University of Southern California put on by Trilogy Education. The class meets for four hours, three times a week, and includes homework assignments and group projects. I already have a decent background in data analysis (using Excel) and feel that I can hold my own when it comes to Python, but it still feels as if the material is being thrown at us at lightning speed. I know I have to keep up because if you have a weak foundation at the beginning, it’s gonna hurt you in the end.

So I’ve put together a list of seven and a half points, both strategies and mindsets, that I’ve been using to get through the class. I hope this helps you, whether you’re looking to learn code or pick up any other new skill.

1. Remember: It’s Okay to Suck.

When you’re first learning to code, your objective should be to get the code to work and produce the right answer — not have your code be elegant. And that can cause a lot of grief. We get wrapped up in elegance because elegance suggests mastery.

But you can only make something elegant if you can make it work first. In coding, there may be a ton of solutions to any given problem, so you have to remember to focus on the one that works for you. Once you can get that to work, then you can focus on making your code better, more elegant, faster, or whatever personal goal you’re aiming for.

Sometimes your first draft of code may not be up to your standards. For example, you might have too many lines of code when you know something shorter would do the trick. But at this stage of learning, that’s okay. As you learn more, your coding skills will get better, and I guarantee that your code will look more elegant and suck less.

2. Run Your Own Race.

People in your class will come from different backgrounds and different levels. They may have more programming experience than you do, and when you’re all put together in one class, it’s easy to get discouraged or even intimidated. Instead, take advantage of their knowledge by interacting with them and learning to improve your coding chops.

As Matt Chevy writes, never compare your beginning to someone else’s middle. Run your own race. In this stage of your learning, it’s critical not to compare yourself to others. Accept where you are as a person, acknowledge the technical abilities you do have, and engage with your classmates to improve your skillset. (More on that last bit below.) That’s a far better use of your energy.

3. Be Consistent.

Being consistent is very underrated when it comes to learning any new skill. But if you ask people who are masters in what they do, you’ll find that consistency is why they’ve reached the level that they have.

I found a couple of posts on Medium about what people have learned from being consistent, as well a post by Brian Clark that outlines the 10 steps to better writing. Jerry Seinfeld has talked extensively about how consistency has been the key to his success. The comedian posted a wall calendar by his desk and, every day that he wrote, he would mark off a day with a big red X. He then set a goal for himself: “Don’t break the chain.” In other words, never miss a day of writing.

Consistency works for more than just writing comedy. Coding site GitHub features little green boxes to show the days you’ve worked on a coding project in your repository. So when I code, I try not to break the chain so that all my boxes are green for the days I’m in bootcamp.

So as you go through bootcamp, set a goal for yourself to code at least once every single day. As JS wrote in the above Medium article, “With consistent practice, you have the opportunity to reinforce what you learned in days prior, before you forget everything.”

4. Learn to Ask Questions Correctly.

Coding can be a very isolated endeavor. And many times when we take a break from coding, it’s to ask someone for help, particularly when we’re in our early days of learning. That communication is most often done via text, rather than verbally. It could be via email, Slack, SMS text, message boards, or what have you. And when you need an answer, you need to know how to phrase your question so you can get as accurate and prompt a response as possible. It’ll help eliminate much of the back-and-forth so you can get a solution ASAP.

There’s a correct way to ask a question and an incorrect way, especially when it comes to coding. So it’s important that you adopt the way the coding community expects questions to be asked. This is particularly important if you’re going to use sites like Stack Overflow, which most every coder uses at least once. The Stack Overflow community has a very, very specific and structured way of asking questions. And if you don’t follow the guidelines, the trolls will awaken.

In short, be as specific as possible. If your post ends up being overly long, include a summary at the beginning, followed by as much detail as you can provide. It also helps to review other users’ coding questions to see what sort of detail they did or didn’t provide. Look at the responses: Did subsequent posters have to ask for more information? You can learn a lot from others’ mistakes.

For a thorough breakdown, read Gordon Zhu’s 11 points for asking a great coding question.

5. Learn How to Steal.

I don’t really want you to steal, per se. I just wanted to catch your attention. Now that I have it, I’ll tell you that what I really mean is to learn from those who came before you. In other words, “don’t reinvent the wheel,” a saying that has never been more true than in our digital age.

Before the Information Superhighway came barreling through our lives, it was possible that two — or even 200 — people around the world could be working simultaneously on the same problem — fixing an engine, studying the possibility of using water as a solvent, or even coding, without knowing what the others were doing. They worked in their own silos or with minimal communication due to distance or perhaps the mere fact they didn’t know each other.

Today you don’t have to know someone or be nearby to learn from their tinkering and research. This wondrous invention called the internet contains all sorts of information, studies, and, as you can tell from this post, cat memes. If you’re having trouble breaking through code, search for it on the web. I guarantee you won’t be the first person who got stuck trying understand “this” in JavaScript. I’d bet a stack of external hard drives that 99 percent of the time, your answer is out there.

So learn how to learn from others. Ask a classmate how they solved last week’s homework. Read coding sites to see how others worked through their coding problems. Find out how your instructors debug their own code. Just by watching them work through the process will give you new ideas and techniques that you’ll be able to stow away in your mental toolbox.

When I once asked my instructor, Sarah Nooravi, to debug my code, I noticed that she used a lot of print statements.  I later learned that this practice is quite common since it stops the script from running at key points, allowing you to see where the error might be happening. I now use print statements quite often when I hit a coding wall.

Stealing applies to areas beyond coding. For more pilfering inspiration, check out Austin Kleon’s Steal Like an Artist: 10 Things Nobody Told You About Being Creative.

6. Do the Reading Before Class.

About 70 percent of college students do not read the required material before coming to class. Yet, a 2014 study published in the American Journal of Physics found that nearly three-quarters of the participants stated that reading the material before class helped them learn better.

So even if you don’t have time to read the entire assignment, at least scan it to understand what your next lesson will be about. That little extra knowledge will give you a leg-up when the instructor starts hurling new terms left and right. And if you have the time, go the extra mile and do some additional research, such as watch a YouTube video or read related studies. Write down notes and questions for the instructor. Not only will you be better prepared, but you’ll feel more confident, which could keep the Discouragement Monster at bay.

I have my own method for class prep, which I refer to as the PAR method, which I modified from the Cornell P2F method:

  1. Preview the material. If I know what the topic will be, I spend about 15 minutes Googling articles and videos, during which time I familiarize myself with any new terms and concepts and jot down notes and questions.
  2. Attend class. After, or sometimes during, the lesson, I make sure to ask the instructor to clarify any points that I’m still struggling with. All the while, I’m also taking copious notes.
  3. Review the material. I go over my notes and any related materials the very same day, while the information is still fresh in my mind. That’s when things really start to gel for me. I’ll then re-review everything a few days later, just to make sure I still grok it all.

7. Remember: The Training Wheels Need to Come Off Eventually.

Most teaching bootcamps make use of the “I do, we do, you do” model of instruction, sometimes known as the gradual release of responsibility because mastery is graduated released from the instructor to the student.

It’s important that you don’t get stuck in the “I do, we do” phase of the loop, which is easy to do, particularly if you lack confidence. But at some point, you gotta take off the training wheels. Sure, you might fall down and get a few coding bruises, but you gotta do it if you want to learn how to ride a two-wheeler.

To get better as a coder, you need to get comfortable with the fact that you won’t be able to learn everything. You just need to figure out how much learning is enough to get the job done.

7.5. Adjust Your Mindset.

I include this as a half point because your mindset affects every task you tackle, so it’s something you should be thinking about wherever you are — whether it’s bootcamp, work, or scaling the side of a cliff.

And when it comes to bootcamps, you have to adjust your mindset to view programming as a tool to analyze the data. Ditch the overwhelming feeling. Forget about feeling inferior to your classmates. Just concentrate on knowing that what you’re learning is just one of many tools you’ll have in your repertoire.

So I’ve made this my bootcamp mantra as of late:

Javascript is only one of the many tools that I can use to analyze data. 

(You can swap out whatever programming language or library you want in place of Javascript for this mindset to work.)

When changing your mindset, don’t get bogged down with the details and nuances of the language. Instead, focus on the concepts that are now available to you. Remember, in a data analytics bootcamp, you’re there for breadth, not depth. (You can argue that this is the reverse when it comes to a software development bootcamp.)

So do yourself a favor and spend some time pondering this question from Gary Vaynerchuk: “Everything works … the key is … what works for you?”

Bootcamps are a fast-paced way to learn about tools and techniques that are available to solve current-day problems. But to survive the rigor and pace, it’s important to prepare yourself before jumping in. Otherwise, you’re liable to fall behind faster than if you nod off for two minutes in a John Le Carré film.

So I encourage you to take these concepts, think about how they apply to your situation, and adjust until they work for you.

If you have your own bootcamp survival tips, share them in the comments or send me a message.