Categories
Uncategorized

# 7 – Interview Resources

Introduction

As I get nearer to the start date of my software engineering job, I am beginning to reflect on the trials and tribulations I faced during the OSU program and the interview process. In this post, I would like to shout out some learning resources that have personally helped me out a ton.

Abdul Bari (YouTube)

Algorithms was one of the hardest classes I took at OSU, if not the hardest. I often felt very lost during the course, and the course materials were not sufficient enough to make the material click in my head. I found Abdul Bari’s lectures to be a great supplement to learning algorithms. He is excellent at explaining theoretical concepts, and walks through examples and coding implementations to demonstrate more clearly how these algorithms work.

Grokking Algorithms – Aditya Bhargava

Grokking Algorithms is a great book for anyone who is looking to learn or review data structures and algorithms. It is a digestible, easy-to-read book that explains algorithmic concepts in layman’s terms. This book definitely helped me out when I found that the CS 325 textbook was too dense or full with jargon for me to understand.

NeetCode (YouTube)

For anyone who is still in the process of undergoing technical interviews (especially to those who use Python), I recommend taking a look at this channel. I have tried using various books, including the famed Cracking the Coding Interview, but I have found that I learn much better in a video/audio format. NeetCode does a good job of diagramming out a problem, and walks through many examples while checking for edge cases. This is a key technique to learn for an actual interview, as it is essential that you communicate your reasoning before actually writing out your code. This channel’s solutions have helped me greatly any time I have found myself stuck on a LeetCode question.

Corey Schafer (YouTube)

Corey Schafer is a great YouTube resource for anyone who is looking to learn Python or one of its frameworks. His Python tutorial for beginners is actually meant for beginners – meaning that he expects you to have no previous technical experience and walks you through from the basics (including installing Python, setting up IDEs, etc.). I am currently using his Django tutorial in order to implement some of the features for the capstone project I am currently working on!

Categories
Uncategorized

# 6 – VS Code Extensions

Introduction

The importance of having an IDE that I felt comfortable working in was something that took me a while to grasp in the program. VS Code has significantly made my work much easier, with features such as debugging tools, an integrated terminal, and various code navigation / management tools. In addition to the cool things VS Code has to offer out of the box, there are also countless 3rd party extensions that you can add to increase the productivity of your workflow. I find that this is one of the greatest ways to save time, as the benefits of an efficient workflow is something that you reap every time you jump into programming. Here are some extensions that I have found useful:

# 1- Prettier

Prettier Extension

Having neatly formatted code is essential – this will make the lives of anyone reading your code in the future much easier, whether its yourself or your fellow developers. Prettier supports formatting in a multitude of languages, and within the VS Code settings you can also choose to format your code each time you save your file.

# 2 – Bracket Pair Colorizer 2

Bracket Pair Colorizer 2 Extension

Bracket Pair Colorizer is an extension that color-codes matching brackets. I have found this to save my sanity on multiple occasions when working with functions nested in functions nested in functions (looking at you, Javascript callbacks).

# 3 – Indent-Rainbow

indent-rainbow Extension

When working with Python, we don’t have to deal with all those nested brackets. However, it might be even tougher to understand the organization of our code by just looking at whitespace indents. Indent-Rainbow colorizes indents based on indent-level, which saves a lot of headache trying to find out which level a statement is on.

# 4 – Remote – SSH

Remote – SSH Extension

In the beginning of the program, my workflow was to work on an IDE on my local computer, transfer my files using CyberDuck, and then run the files on the flip servers using SSH and terminal. As you can imagine, this was highly inefficient and I spent almost as much time doing file management and testing than actual coding.
With this SSH extension, you can write a configuration file and easily SSH into a remote server with a single command. Using this method, I was able to do all my development on the flip server with no file transfers, in the comfort of my own IDE.

# 5 – GitLens – Git supercharged

GitLens Extension

Last but not least is GitLens. This extension is particularly relevant because I am currently using git and GitHub as our version control system for the capstone project with my team. GitLens makes it super easy to see who is responsible for each line of code, using git blame annotations. There are also tools to peek at the previous commit versions within the IDE; I have found this to be extremely useful when trying to root out the main culprit of recent changes that are causing issues in the application.