Why am I getting into tech blogging? Partly as a way to deepen my own learning, but also to build a stronger technical online presence.
Short summary about me. I am a software engineer with 3.5 years of experience mainly in full stack web engineering, using Python, Django, JavaScript, Node.js, React, PostgreSQL, and more. I earned a Bachelor’s degree in Computer Science & Engineering back in 2019.
Over the next couple of years, I plan to revisit the fundamentals of Computer Science and share what I learn along the way. I’ll use this space to distill insights from books, courses, and hands-on projects, turning complex concepts into something clear and practical.
My approach will be to cherry-pick courses from Open Source Society University, the Computer Science curriculum and books recommended by teachyourselfcs.com, combining both structured and self-paced study.
At one point, I considered pursuing a master’s degree. People have asked me, “Why not just go for a master’s?” The more I thought about it and researched, the more I realized that mastering the fundamentals—truly understanding how things work under the hood—will likely yield a more fruitful harvest in the long run, especially if your goal is to grow as an individual contributor in software engineering.
You can have shaky foundations and still complete a master’s. Some might argue that you need strong foundations to complete one in the first place, and I think there’s some truth to that. A master’s in Computer Science can certainly be an indicator of expertise. After all, “master” is in the title. But I’ve come to believe that it’s most valuable if you’re pursuing research-heavy roles or planning to stay in academia.
For industry, I think there’s a better use of time. Whether it’s gaining real-world experience or deepening your understanding of the fundamentals, especially areas you might have glossed over during undergrad or haven’t touched upon. Research skills from a master’s program can be useful, sure, but I don’t think they’re essential to becoming a world-class engineer.
Strong fundamentals make you adaptable. They allow you to see patterns others miss and help you reason about problems at a deeper level.
I’ve come to believe that the best engineers have a deep understanding of the core principles. The kind of knowledge that allows you to reason clearly, solve problems elegantly, and adapt to new technologies with confidence. That’s why I’m going back to the fundamentals in the first place.
I think I did a decent job at attempting to master the fundamentals during my undergrad. However, there may be some gaps, and there certainly are areas that I didn’t fully explore, such as programming language theory, compilers, software architecture, functional programming, etc.
I want to build a rock-solid foundation and sharpen my thinking so that, over time, I can become a versatile, cracked engineer, who doesn’t just use tools, but understands them deeply.
I’ll use this blog to condense what I learn into clear, practical takeaways. My goal is for it to serve both as a record of my growth and a resource for anyone walking a similar path.
Top comments (0)