Intro
This is my retrospective analysis after completing Arrays & Hashing from the Neetcode150 list.
Record
Here is the table of all attempts:
# | Result |
---|---|
1 | ✅ |
2 | ✅ |
3 | ✅ |
4 | ❌ |
5 | ❌ |
6 | ✅ |
7 | ❌ |
8 | ❌ |
9 | ❌ |
5 / 9 = 0.55556 = average
Thoughts
There are a few things I need to review. Here are my main weaknesses I’ve identified doing this challenge:
- I need to know time complexities of certain operations performed by standard libraries.
- I am trash at simple coding. I have to look stuff up constantly, be it syntax or insertions. I need to git gud.
- I need to alternate between doing these when I am well rested and when I am tired.
Originally I stated I would do an entire section of Neetcode and then pivot certain aspects of this challenge if I needed to. I had no idea it would honestly be this difficult for me.
I’ve decided to continue with the same rules of the challenge. However, I will be making the following changes:
- I will be practicing the basics of the ADT / Algo first before I attempt the entire section. I saw additional strategies in some obscure section of Neetcode site, so we will review more.
- Before each section, I will stream me learning the basics without time limits.
- I will only code once I have the algorithm. No more naive implementations!
- We will increase the frequency of Leetcode challenges. I’ve been lazy about streaming. No more.
- To decompress, I have decided to also stream general software development / programming for specific projects I want to complete. I already have three ideas for this.
I thought this would be much easier, but I was dead wrong. I like to troll/talk shit about how good my skills are, but this is a different type of coding. A lot of reactions I’ve read online are that this isn’t software development. It’s a specific type of mindset. DSA knowledge is vital to optimizing software, but I do think a lot of people don’t think about data this deeply. The goal for this challenge isn’t to get a job at a FAANG/MAANG/whatever acronym. The goal is to never fail an online assessment.
If I had to make an analogy for this, it would be similar to doing fundamental exercises and then combining them to optimize your performance in a sport. You practice each individual component over and over and then combine alternate movements. It’s the same, but just a little different.
I think I’ve pretty much decided I want to do SWE full time, but I have a breadth of experience that will give me an edge over entry level applicants. My background is in SRE, but with the way cloud providers provide everything, I feel this is a dead end for me interest wise. I’ll blog about this in the future.