Before you go, check out these stories!

0
Hackernoon logoRe-Learning Data Structures and Algorithms by@jeff-ridgeway

Re-Learning Data Structures and Algorithms

Author profile picture

@jeff-ridgewayJeff Ridgeway

Software Engineer/Blogger

The Why?

I remember being in my first Algorithms class for Computer Science at
Elizabeth City State University (ECSU) thinking, “What have I gotten
myself into?!”. The material was daunting, and (most of the time) I felt
incompetent doing it. On top of these feelings, each student had to
present a solution to their coding problem utilizing algorithms learned
that semester. This included documenting its Big-O notation, while our
teacher is grading us on the material AND the number of times we say
“ummm” (thank you Professor Rook, I’ve grown into a better presenter
because of your classes 😂). To say that I was under pressure, is an
understatement!

So why create a series on a topic that caused so much stress?! Because I
believe coming back to a once difficult topic with my current skill
set/experience will yield not only understanding but improve my coding
overall (also, I would say I am a more confident software engineer than
junior me ha). I also think that going through this series, my own
unique way of explaining topics might help someone out there on their on
CS/engineer journey or on tech interviews.

During this series, I will be following the template laid out by Fahim UI Haq on codinginterview.com, which is a great resource! They have lined up what one should be learning week by week in preparation for a technical interview. Their outline is as follows:

  • Week 0 - Choose What Programming Language Should You Use
  • Week 1- Brush on the Basics w/ Programming Language
  • Week 2/3 - Data Structures and Algorithms
  • Week 4/5 - Practice Simple Data Structures Algorithmic Challenges
  • Week 6/7/8 - Practice More Complex Coding Interview Problems
  • Week 9/10 - System Design Interviews
  • Week 11 - OS and Concurrency Concepts
  • Week 12 - Object Oriented Interviews

Plan of Attack (PoS)

I will cover the topics on the schedule in a detailed manner (low
level — I’m seeking to breaking down more complex topics so anyone can
understand) and will end the blog post off with free resources that can
solidify any misunderstandings. Though I will be approaching the
material in an sequential manner, some topics will take more than one
blog post and will be split into parts accordingly. The language I will
be using will be Python 3. However, you should be able to apply the concepts in the language you choose to work in, if you have a good handle on the basics of said language.

The Hope

The hope is that this blog post series on DS and algorithms will be one
of the best free resources alongside many others that have helped me
during this time. Originally published here

Picture courtesy of Shahadat Rahman from Unsplash

Tags

The Noonification banner

Subscribe to get your daily round-up of top tech stories!