Demystifying Data Structure & Algorithm

An encounter and introduction into DSA via my lenses

Demystifying Data Structure & Algorithm

Hey Guys! Welcome back! 🫢🏾

In the previous article, I delved into my plans for unraveling mysteries, discussing ideas like "being a conqueror and achieving conquests".

While all statements remain valid (I firmly stand on my protocol :) the current mystery I'm faced with is time management ( I comprehend it's a battle to be won:{)

Regardless, I will discuss my once-dreaded learning expedition in this series (as this article introduces and recaps my past experiences with DSA) and the former scourge of my existence (no cap πŸ˜ͺ).

Disclaimer: it wasn't as dramatic as expressed.

My initial encounter with the DSA was in an interview.

Yeah, an 'interview!' If it doesn't sound bad, you must be a bit more lackadaisical than I was back then, you would have expected adequate preparation but nah I was a fan of winging things back then (you know, learn to roll with the tides or die trying kind of person.

Honestly, I still have a dash of that spirit lurking in the dark somewhere inside, the upside to such a spirit is no significant interview-related heartbreak (and yes, it's a thing) and quite several downsides so always be prepared to give your best.

And that has always raised the question of whether one's authentic intellect is tested with or without preparations. Feel free to share your view in the comment section.

Fast forward to "D-day", after exchanging pleasantries, I was taken aback when the interviewer presented me with random numbers and asked me to perform a computational task (can't remember exactly what). I was surprised, wondering if I had entered the wrong interview. I was expecting something more structured, like "What is it? list, describe, explain." I think you understand what I mean.

I went along with some voices in my head and ended up conjuring a solution. When asked by the Interviewer if my code would run, I blatantly stated a 50:50 chance.

The moral of this story is:

  1. Lack of sufficient preparation (e.g. researching expected interview questions for the role, the company, and details about the second interview stage, etc.).

  2. Speak your truth confidently. It may be hypothetical and potentially incorrect, but you can still defend a wrong outcome with a unique thought process. (try not to quote me on this though)

  3. Never count yourself out, it can only result in a downward spiral.

  4. Ignorance is not an excuse.

In summary, it was a humorous one I ended up having a funny but not-so-funny kind of laughter with some friends.

Shortly after, an opportunity for redemption was missed.

Not too long after my initial encounter, I was presented with a golden opportunity to redeem myself and was quite excited about this considering it was the G😎 of FAANG for me.

This time I got down, but couldn't get dirty as the opportunity caught me at some crucial moment in college with final papers at hand although I had become comfortable with basic concepts (Big notation and the likes) and knew enough to get by basic algorithms and painkiller needed to survive medium/hard level algorithm.

Skipping to the interview, I scheduled a morning slot (as I believe cognition functions are top tier shortly after a good night's rest).

I jumped headfirst into the problem-solving, initially feeling excited by how straightforward the first question seemed. However, my confidence took a hit when I hit a roadblock midway through the second question. What had initially appeared simple and manageable quickly turned sour as I struggled to progress. The ticking clock only added to the pressure, intensifying the internal stress I was already feeling.

I jumped headfirst into the problem-solving, excited about how straightforward it appeared. However, my confidence took a hit when I encountered a roadblock midway through the second question. What had initially appeared simple and manageable quickly turned sour as I struggled to progress. The ticking clock only added to the pressure, intensifying the internal stress I was already feeling.

Reminiscing how soft the transition from college to a dream job would was of no help as I was able to successfully double down on the pressure as sweat poured out profusely as if an internal dam was released and practically lost focus and just watched the time count down to 0 as I waived my white flag.

Shortly after, the dust settled and the twingles subsided I had a cold shower to reduce my body temperature. It propped me a bit about future opportunities, I picked up my laptop, opened my Chrome debugging too (using JavaScript at the time), and had a second crack at it, it wasn't much of a surprise I got it resolved in a matter of minutes.

The moral of this story is:

  1. Eliminate any internal/external form of pressure or stressor from your environment.

  2. You can always discuss a reasonable time extension with recruiters if unavailable to give your best.

  3. Always have a clear solution before jumping towards writing code. (your thought process is as important as the code written if not more). Just in the sudo code, then proceed towards writing an executable code ensuring it passes all test cases in time.

  4. Review the solution, and think about edge cases/refactoring if time allows.

"Third time's a charm," they say, unfortunately not in this case

Yeah, you would have thought the third time would have been a charm but this charm refused to work. cutting right to the chase so as not to bore you further.

I was interviewed and given a graph problem set and it was like they looked for my weakest point to strike at the time, as I hadn't given any major attention to the graph problem set and was just hopefully praying they had no cause for bringing the big guns but the reverse was the case.

I found myself once again in the interviewer's hot seat, this time confronted with a graph problem set that seemed tailor-made to exploit my weakest area at the time. I earnestly had been preparing but as I said earlier it was a world out there (a lot to learn, solve, and digest), and I hadn't dedicated much attention to graph problems set, naively hoping they wouldn't be a focal point. (like why bring a gun to a knife fight) and to make matters worse I could barely understand the interviewer's pronounciation.

Inadequate preparation stood tall once again as the MVP of the event but I could argue having a fast-paced working environment didn't help much.

Takeaway

  1. learning is a lifelong process, be in no haste and enjoy the journey.

Conclusion:

The above captured my first 3 attempts and back-to-back felt like a hit and run.

There were many more opportunities I excelled at, but I particularly valued the initial three as they established a foundation for a continuous pursuit of excellence in all spheres.

Consider this my 3 cents of pain. I hope it persuades you to follow along in my series on DSA and its subsequent articles. I will be taking a deep dive into the topic.

I believe I am done boring you. so let's get towards writing some actual code.
Stay calm, and just go along.

Bye for now and see you pretty soon 🀞🏾.

Β