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

“Easy”

Not too bad right? What about this problem?

WTF right?

Don’t worry, this is just an intro to Introductory Algo and DS

First Thing Last- Understand the Problem

  1. Can I restate the prompt in my own words?
  2. What are the inputs that may go into the problem?
  3. What outputs can be expected?
  4. Are there edge cases? Will we always have a solution or is this a trick question?
  5. 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!

Resources: