New Series: Data Structures Study Sessions
Amanda Murphy
Posted on February 2, 2022
Hey there!
It's been a while since I've written anything technical, but I'm working on some specific learning goals for myself in 2022, so I thought now was as good of a time as any to start writing some technical posts in order to reinforce my learning.
So one goal I have for 2022 is to study for and pass my AWS Solutions Architect exam. I'm not interested in transitioning to a Solutions Architect role, but I have heard this is a great way to learn about several critical AWS services. While I worked at AWS, most of the services and systems we used were established by other engineers, so I used them in a very narrow context. I am really excited to learn more about AWS services and how they are set up from scratch. I'm using A Cloud Guru's AWS Certified Solutions Architect course to study for the exam, because I've heard really great things about A Cloud Guru. I probably won't end up writing much about my studies for the exam, but I thought I would share that goal anyway.
My second big goal is to study data structures more rigorously. I read a book on Data Structures and Algorithms in C++ while I was completing my apprenticeship at AWS, but I was new to C++ and a lot of it went over my head. So I'm back at it, studying so I learn how to use data structure better in my day-to-day work life as a software engineer at AppHarvest, but also so I have an easier time when it comes to looking for my next role as a software engineer (hopefully that's not for a while, but I figure there's a lot to cover and I might as well start now.)
Our principal engineer at AppHarvest suggested picking one data structure each week to study, and then work on one easy HackerRank challenge each day, before working on a more difficult challenge on each Friday. I've never used HackerRank, but I'm excited to give it a try. I'd also like to write one article about each data structure I study to reinforce what I'm learning, which is how I find myself writing about code for the first time in a while.
After talking it over with him, doing some research on most critical data structures to know for interviews, and taking a look at the book I read last year, I came up with the following list:
- Arrays
- Linked Lists
- Stacks
- Queues
- Deques
- Trees
- Binary Search Trees
- Balanced Trees
- Search Trees
- Trie
- Hash Tables
- Maps
- Priority Queues
- Heap
- Disjoint Set
- Multiple Choice
- Skip Lists
- Graphs
As I complete articles for each of these data structures, I'll try to loop back and link them here. I believe there's also a way to create a series, so I'll try to add those as well. I'll also include additional resources I find that help me in my data structures study to share with anyone else who is hoping to learn more for technical interview prep.
Two notes:
I primarily worked with JavaScript / Node.JS for the past year and a half so that's what I'm most comfortable using. When I studied data structures during that time, I was learning how they were implemented using C++. I'm now in a role that primarily uses Java, so there might be a bit of a crossover to Java at some point. My brain doesn't really single out programming languages, I generally just use whatever works best for the job.
I am new to this. If you read something that is incorrect, gently let me know. I'd appreciate it. Being rude will just make me sad. Don't do that. It's been a rough couple years for everyone and we don't need to pick on folks.
I'm really looking forward to learning more and becoming more confident about data structures this year.
Thanks for reading!
-A
Posted on February 2, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.