Coding with Purpose: How Micro-Goals Changed My Life as a CS Student
I am Monazir Muhammad Doha, a CS student at BRACU. Even though I’ve just joined BRACU in the spring 24 semester, I’ve been involved in this programming/tech world for quite some time now. I have always been interested in building things in general. The urge to bring my ideas to life is what got me into programming long before I knew I would someday study CS.
It all started on a mundane day, while randomly surfing the internet, I came across this idea of programming which was required to learn to build software. After researching the topic for like a day or so, I chose “python” as my first programming language.
Where it went wrong
I started learning Python concepts one by one. Because I was very interested in it, it didn’t seem hard at the beginning. But soon as I discovered topics like set, tuples and dictionaries, it started to seem pointless. I was like, “Yes, it works like that and this structure is different from the other ones like that, but why am I learning this?”.
The human brain is wired in such a way, that if it finds no purpose behind storing, it just does not store. Mine is no different, I would learn a new data structure and forget the last one. At some point, I thought it wasn’t for me and I stopped. My brain, ultimately I, did not have any purpose; yes I had an end goal that I'd someday build software, but that was just so far away that my brain couldn’t comprehend it.
Shift in interest
Months passed; and at this point, I don’t have a passion for building software but rather a passion for breaking it. In other words, my interest shifted toward cybersecurity; web app security to be more specific. Learning web app security has been the greatest thing so far, I feel powerful doing it.
While web app security doesn’t require you to be a software developer, it does help when you know how to build your own scripts. A script is a small piece of code/software that automates certain steps in the security check process. Throughout my journey of learning web app security, which by the way has not ended yet, I have developed many scripts using those same concepts my brain refused to learn the first time. What’s the difference? You might ask; well, I once asked this question myself and the answer handed me a million-dollar strategy.
The answer
This time, I had a purpose, I knew exactly what I wanted to build. This time, the goal was not to learn Python but rather to build a script. And I’d learn only those things that are required to build that script I wanna build and nothing more. This way, the 'To learn' list gets shorter, and I know what I am learning and why I’m learning it. To put it simply, there is a well-defined purpose.
The strategy
Now if I wanna learn a new concept, I don’t just learn it for the sake of learning it. I set a goal, a project that, while building it, will teach me the concepts. I can give you an example, in September 2023, I wanted to build a URL shortener with IP and GPS logging. Now, the goal here is to build a URL shortener but I don’t know how to build it. My first step will be to answer the following questions:
Has anyone built it already? If yes, how so? Is the source code public?
If it hasn’t been built already, what technologies do I need to use to build it?
- Interact with PostgreSQL via Python
- Work with Jinja Templates
- Host a real website
- Work with cache to boost page loading time
- and a bit of SEO
d0ppelganger
- How to make executables
- The deprecated Basic Authentication System
If I could give one piece of advice to my newb self, that'd be,
"Do not learn to build, build to learn instead".




Comments
Post a Comment