Brushing up on programming Fundamentals

Coding boot camp offers many opportunities to grow quickly as a coder and have many projects under our belt. They also give us problem-solving skills to recognize patterns when we come across languages or frameworks that we’re not too familiar with. With all the upside, one thing that I’ve been having to confront lately is the challenge of tackling traditional computer science questions in either HackerRank challenges or technical interviews.

These types of concepts were definitely covered in boot camp, but to have those concepts truly sink in and be understood takes time. There’s only so much one can learn in a span of 15 weeks. With that said, here are some things that have been helping me get comfortable with the fundamentals of computer science and programming.

Doing readings and coding along with them

It’s like preparing for an exam

Prepping for coding challenges is like prepping for an exam. Sometimes I just have to read about concepts, execute them in code snippets on Repl.it, and see if I get the concept or not. Cracking the Coding Interview is more or less the gold standard for this kind of work. It goes into great depth into some of the topics covered in coding challenges and offers problems to solve. Some of the topics include Stacks and Queues, Big O notation, and Trees and Graphs.

GeeksForGeeks

GeeksForGeeks is a giant repository of programming knowledge. Not only does it have explanations of coding problems, but they also provide information on programming languages, concepts, design patterns and so much more. Be sure to check it out.

Drill, drill, drill

Sometimes this is what it feels like

After reading and studying, sometimes we just have to put our new-found knowledge to the test in the form of coding problems found on sites like HackerRank or Leetcode.

Sites like these offer problems to solve. They can be sorted by difficulty. You can write any code you desire to solve the problem and offer and test cases. These systems provide many languages to code in. After finishing, you can submit your code to have it evaluated against hidden test cases and for efficiency.

One thing that I’ve found helpful on sites like these is the discussion section, where people offer up their solutions. I can see what other people have done and compare their solutions to mine to see where I can improve and why.

Challenge each other in person and be open to being challenged

It can get comfortable just coding on the laptop and drill all day, but sometimes there will be times where you’ll have to code in person. Talk about nerve-wracking! However, the more you code in person, think out loud, and explain your thought process, the easier it can get. Grab your peers. Ask each other questions! If you have friends in the industry, see if they’re willing to have a whiteboarding session with you. These kinds of interactions give you a safe environment to practice.

Finally, a note on health

These challenges can be stressful, especially those coming out of a boot camp program. It’s very important to get some exercise and take breaks to recharge before another day of training. I often compare coding training to actual weightlifting training. When I was new to it, I would over train and not let my body rest after working out. It would hurt my workout sessions for the future. The same applies to coding training. Do some drills and keep practicing, but be sure to take breaks and rest before an interview.

I say this often to myself, but try not to be hard on yourself as well! With practice and perseverance, things will go well.

Good luck!

Published by Nicholas Moy

Software developer residing in New York.