My Journey from DSA Disdain to a 100-Day Challenge: A Self-Taught Coder's Perspective
Introduction
As someone who is a self-taught developer with Python and SQL without any formal computer science education, my journey into the world of databases, data analytics, and cybersecurity has been unconventional, to say the least. If you are interested on the general path I have taken you can read it here. This makes my recent decision to dive into the world of Data Structure and Algorithm (DSA) problems even more intriguing. Here's a look at my path from DSA aversion to a 100-day challenge, all through the lens of a self-taught programmer.
The Self-Taught Road
I've been coding with Python on and off for a decade now but for the last five years, I have been writing code almost daily from short scripts to data analytics reports. Along with Python, I have been working with SQL for four years several times a week mainly providing detailed data queries from requests. My love for these languages grew out of necessity and curiosity rather than classroom instruction.
Without formal education, I had to pave my way through online tutorials, books, forums, and endless hours of trial and error. The journey was tough but immensely rewarding. I found joy in working with databases, data analytics and building cybersecurity measures.
The Dislike of DSA
Despite my success in my chosen fields, there was one area that I never warmed up to Data Structure and Algorithm (DSA) problems. I viewed them as abstract and irrelevant to my practical work or rather any work in real-life implementation.
My self-taught background meant that I never had to delve too deeply into the theoretical aspects of computer science. While I am proficient in Python and SQL, the world of DSA felt alien and uninviting.
A Shift in Perspective
As I delved deeper into database management and data analytics, the value of understanding DSA slowly revealed itself. I began to see the importance of efficiency and optimization in databases and how algorithms could play a role in that. Even though ChatGPT can solve most of the optimization problems in queries and data wrangling I still don't feel comfortable with the lack of understanding I have.
The logical thinking and creativity required in all of my current work-related tasks and nerdy coding hobby also had parallels with solving DSA problems. This realization led to a change of heart.
The Challenge
Emboldened by my newfound appreciation for DSA (a little over-the-top talk for ego-boosting), I've decided to set myself a challenge to solve at least one DSA problem a day on LeetCode for the next 100 days using Python or SQL.
I'm approaching this challenge not as a computer science graduate but as a self-taught coder with years of hands-on experience. It's a fresh and exciting journey, filled with potential growth and discovery.
The Journey So Far: Day 1
I created my LeetCode account. Watched a tutorial and did the easy first challenge it offered. Skipped the rest... (yes I still hate it) but then decided that the one I did on the tutorial was just too easy as it was video guided. So I decided to grab the SQL50 Path and start grinding that and when not feeling it do some Python stuff instead. Let's see how this goes. I hope I will be able to solve at least a good bunch of Medium level stuff after this is over. It is going to suck...I almost regret it already, but WTH, that is just what I need to get ahead again!
Conclusion
This 100-day challenge is a testament to the power of self-learning and the willingness to step out of one's comfort zone. From teaching myself Python and SQL to embracing the intricate world of DSA (lol really), my journey is a reminder to myself that growth happens when we face our fears and take on new challenges.
Join me on this adventure as I document my daily experiences and insights in this blog series. Whether you're a self-taught coder like me or someone with formal education, I hope my journey inspires you to explore new horizons. Probably not..but here we are.
Happy Coding!
Day 1: Problem
SitRep: D1