How to survive and succeed at a coding bootcamp…
TLDR: It’s going to be really hard but just keep calm and keep coding.
With the proliferation of technology, the looming threat of automation eroding job security and the promise of untold riches for young entrepreneurs, coding
What to expect…
– a military training camp for new recruits, with very harsh discipline.
– a short, intensive, and rigorous course of training.
Making the decision to attend a coding bootcamp can be a daunting proposition. Leaving your familiar and steady paycheck for a 6 month, 9–5 gauntlet of jargon, brainteasers, and error messages sounds rough, but it’s not all bad. In fact I would say that attending Coder Academy’s Fast Track Bootcamp has been the most rewarding decision of my life. Beyond technical knowledge, I’ve also gained problem-solving, critical thinking, and project management skills which are invaluable and transferable to many other aspects of my life.
So here’s what to expect from the coming weeks/months:
- You will feel lost
- You will feel frustrated
- You will feel stressed
- You will feel completely overwhelmed
- You will doubt your ability to learn
- You will see other people learning faster than you
- You will question if you made the right decision to do this
- You might feel like giving up
I’m here to tell you that is all completely normal, and expected. It’s called a ‘bootcamp’ for a reason. It’s supposed to be hard.
How to prepare…
Before you start, you can make your life A LOT easier by doing some prior preparation. Although it’s not always required, I highly recommended it. There were students in my cohort that had zero prior knowledge who made it through to the end. However, they were also the most stressed students. The students who had done some prep got a lot more out of the six months as they were able to ask more valuable questions, get more experience problem solving rather than untangling syntax, and were able to solidify their knowledge by helping out other students who were stuck.
Resources I used and would recommend:
MIT’s Introduction to Computer Science and Programming with Python:
This is the most intensive resource listed here. It took me 3 months to complete and can be a bit dry as it is more academic than practical. It is, however, very thorough and will give you a good understanding of core coding basics, plus some more advanced topics such as Object Oriented Programming and Big O Notation.
Codewars is a site that provides programming challenges in a fun and unique way. Much like a martial arts ranking system, you start with a level 8kyu rank, and are served up challenges according to your rank, steadily increasing in difficulty as you progress. It’s a really nice gamified experience for both beginners and seasoned experts. If you can get to a ranking of 5kyu before the bootcamp begins, you’ll be in a really good place.
How to survive during the bootcamp…
Code every day
This is going to sound a bit dumb, but one of the best things you can do for yourself at a bootcamp is to do the work you’ve been given. You’d be surprised how many people pay for a course and then don’t do the work.
The harsh reality though is that coding is not something you can learn by osmosis. Just showing up to class won’t teach you to code. Watching the lectures won’t teach you to code. Reading coding blogs won’t teach you to code. The only way to learn to code is to code.
During my time at Coder Academy a clear skill gap became apparent over the six months between the people who attempted the morning and afternoon challenges every day, and those who didn’t. Those who attempted them every day (even if they didn’t complete them), were still exercising their critical thinking skills, learning about error messages and learning how to effectively use Stack Overflow. All critical skills in becoming a fully realised developer.
There’s always someone better than you
One of the common reasons people get discouraged at bootcamps is the self-doubt that creeps in. You’ll know that moment, when you’re sitting in class working on a challenge, brain about to pop and you look across the desk to see your classmate has already solved the problem… in only one line of code!!! How is this possible?!?
You’re not alone and it doesn’t mean you don’t have what it takes. Even at Harvard’s elite computer science classes, there’s a Bill Gates or Mark Zuckerberg showing off and making everyone else feel dim-witted.
The trick is not to compare yourself to them in a negative light, but rather learn from their successes, find out how you can apply that to your work, and keep learning yourself.
It may not seem like you’re progressing when there are others who make coding look trivial, but after a month, three months, six months, you’ll look back and be amazed at how far you’ve come.
Be OK with not knowing — it’s not a failure, it’s an opportunity to learn
I remember a morning challenge where we had to write an algorithm for multiplying matrices. A few of my peers whom I’d been keeping pace with solved this challenge in about 45 mins. Two weeks later I eventually found a solution during our term break. It was extremely frustrating, and I was having doubts about my ability.
It’s disconcerting, and at each point you’re going to wonder, “Did I just reach my max brain capacity? Maybe I’m just not smart enough to be a professional coder…”
Everyone hits this point, and everyone has to work through it at their own pace. It’s not a sign that you’re not developer material. If you knew it, you wouldn’t be taking a bootcamp would you?
Asking questions might not sound like a revolutionary concept, but it seems that a lot of people aren’t aware of how valuable a tool this can be.
Don’t just start firing questions off as soon as you get stuck though. There’s a formula you can use to make sure you get the best value, and don’t take too much time from others.
First, try to solve the problem yourself. If you’re still stuck after 20 mins, it’s time to start formulating your question. Before you call someone over though, run through this quick checklist:
- Have you checked the logs/error messages?
- Have you googled your issue?
- Have you checked Stack Overflow?
- Have you tried debugging steps such as logging your variables to the terminal at different steps in your code?
- Have you checked your control flow (if else statements) do what you intended?
- Have you written pseudo code and rubber ducked your solution? (More on this in a moment…)
After you’ve run through some basic processes, it’s time to get help, and this is how you should structure your question:
“I’m trying to do A, but I’m getting B. I’ve tried X, Y and Z, but they didn’t work. Can you please help me?”
Questions are your best friend, and knowing how and when to deploy them will fast track your learning.
Rubber Ducking/Pseudo Code
These two techniques are super useful and used by beginners and experienced developers alike.
Rubber Ducking is best done on another person, but seeing as other people aren’t always available, you can do this on an inanimate object such as a rubber duck.
The idea is to explain your code in detail, out loud, line by line. If there is a flaw in the logic, you’ll be forced to say it and most often will catch yourself before you’ve even finished the sentence.
Even though it might feel a bit silly, it’s far more effective than sitting and stewing on a problem silently. Our brains can be a bit jumpy and aren’t the greatest at untangling complex logic, so forcing it to slow down and analyze every piece can reveal the bug.
Pseudo code is the process of writing out a piece of code in plain english, step by step, as if you were writing real code. This method removes any concerns about syntax and focuses on the raw logic. Once you’ve stated in words each step of your solution, you can translate it into the coding language of your choice.
Once you’ve made it through bootcamp, your coding journey truly begins.
Here are a few ideas on what you can do next:
- Make sure you’ve updated your LinkedIn profile to reflect your newfound skills and aspirations. (Here’s a great resource to make sure you’re on the right track.)
- Build a portfolio to showcase your work. It’s the most effective way to show your practical ability and is a must have for professional developers. Make sure you add this to your LinkedIn profile.
- If there is a particular area you still feel weak in, or there is a specific tech stack you really want to work with, this is a great time to start a side project. Talk to your class mates, there will probably be someone with similar goals you can collaborate with.
- Listen to coding podcasts like Syntax.fm, and read Medium articles to keep up to date with current technologies, and start preparing for coding technical interviews.
- Start talking to people, online and in person. Research companies and send them a message. Coding meetups are also great place to meet people of all different skills and experience which is all invaluable insight. Get out there and start exploring the myriad employment opportunities out there for you.
In any case, don’t take your foot off the pedal. The most import action is to keep learning. Software development is a field that never stops changing, and being a life long learner is an integral attribute for success.
If you liked this article and want to catch up and have a chat, you can reach me via Twitter or LinkedIn.