Data Structures and Algorithms
Expanding My Knowledge
I've been writing production software for about five years now.
I've created a few monoliths and more microservices than I can count. Tens of
thousands lines of code. Believe it or not, in all that time, I've never reversed a
linked list for anything other than my personal understanding.
This gap in my knowledge is a significant hinderance when speaking
with potential employers. The ability to recall these design patterns and understand
their application can only help me in my career, from finding the next developer
job, to being good at that job,
Initial Approach
Like clockwork, every year around January I'd spend a couple weeks
doing Leetcode.
Then I'd forget about it for basically the rest of the year. Needless to say, this
didn't improve my comprehension, nor my confidence, as I'd learn a few algorithms
and invest a bunch of time, only to find myself in the same position next year.
Fail Fast, Succeed Sooner
What algorithms do I need to know? I'll never feel fully "ready"
for coding
interviews unless I put myself out there and become comfortable with the process of
coding interviews. Testing, learning, and often failing. I've never learned anything
valuable while remaining in my comfort zone. It's funny; I've conducted interviewed
more than a few developers as potential hires, however I'd never sat on the other
side of the table during a coding interview until moving to Seattle.
Structured Learning
I recently celebrated ten years post-graduation. I'd argue I've
learned more post
graduation in this single job, than all my college education combined. One thing
that never changes as we age is that learning a new skill takes practice
and repetition. In a career it's easy to discover what skills you need. The job
forces repetition of important workflows, either because you're good at them and get
more similar work assigned, or because you're bad at it and need to keep doing the
same thing over and over.
This means it's been ~10 years since I've had to structure my own
learning.
self community taught
One big differentiator between successful and unsuccessul people is the ability to find help. The older we get, the more resources we have available to help us. Ironically the older we get, the more reluctant we are to ask for help. Is this due to stubbornness? Ego? Embarrassment? Truly successful people transcend this facade.