My Path to Algorithms & Data Structures: Part 1
I’m excited to finally announce that I am a FlatIron Software Engineer grad! Although I feel proud of completing of my 5 month program, there are many challenges that lie ahead of me. I’m talking applications, networking, resume/cover letter writing, outreach to prospective employers, and of course cultural and technical interviewing! Someone wants to actually test my knowledge in very specific areas and they expect some pretty good answers in an area I am not too familiar with — Algorithms and Data Structures. I hope by sharing my findings you can sharpen your problem solving abilities!
What is an Algorithm?
An algorithm is a process or steps to accomplish a certain task — I know, a bit underwhelming of a definition. At its core, that’s all it is. It can be something as simple as calculating the first 10 even numbers of an array to something as complicated as Instagrams algorithm to suggest influencers to your feed from photos you’ve liked. Why is this important? Almost everything you do in programming revolves around using some sort of algorithm. This is why tech companies want to see how savvy you are at problem solving in your technical interviews.
A Few Examples
Okay, this can escalate pretty quickly but I promise there are patterns to solving problems like this. Here are a few examples from LeetCode:
Not too bad right? What about this problem?
Don’t worry, this is just an intro to Introductory Algo and DS
If your heart dropped at the thought of creating a function that could return the floor at which your egg could or could not break but all you were thinking about was lost breakfast, you’re most likely in the right place. This sh*t is tough but not impossible. Baby steps baby bear.
First Thing Last- Understand the Problem
Before we even dive into code, we can analyze these problems and reduce the anxiety attack. It really is all about having a plan of attack. I have found that breaking down these problems into steps can really help improve the probability of getting started in the right direction . I have derived the first questions to ask yourself in these situations from online courses, public forums, and other wonderful developers:
- Can I restate the prompt in my own words?
- What are the inputs that may go into the problem?
- What outputs can be expected?
- Are there edge cases? Will we always have a solution or is this a trick question?
- How can I label the vital pieces of data that are important parts of the problem in a way that will help me stay organized?
Next week, we will use these questions to break down an algorithm prompt and also introduce other tools to help us with our first technical interview style question. I hope you were able to grasp the challenge that lies ahead, it will be tough but it will be worth it! Stay tuned as I continue to share my insights!
Know Thy Complexities!
Hi there! This webpage covers the space and time Big-O complexities of common algorithms used in Computer Science. When…
LeetCode - The World's Leading Online Programming Learning Platform
At LeetCode, our mission is to help you improve yourself and land your dream job. We have a sizable repository of…