Ilustrasi: The Impact of Coding on Life: Shifting from a Random to a Systematic Mindset
journal mindset algorithms sdlc self-improvement

The Impact of Coding on Life: Shifting from a Random to a Systematic Mindset

By Herdi Herdianurdin
Table of Contents ▼

Fundamentally, I have always been an unsystematic individual. For years, I navigated life simply by “going with the flow” and following existing rules without ever projecting far into the future. This unstructured mindset dominated my daily life before I finally crossed paths with the world of basic algorithms and programming.

My first introduction to lines of code ultimately changed everything.

An Old Machine and a New Paradigm

I vividly remember my early days of teaching myself how to code during my first year of college. The very first language I learned was Pascal. My only resources were a thick, 900-page guidebook and an aging custom-built PC: an Intel Pentium 3 LGA775 processor, 2GB of RAM, and a 160GB hard drive running the Linux Mint XFCE operating system.

My first impression of learning to code was that it felt a lot like solving math problems, but with an inverted approach. In mathematics, you have to rack your brain to solve the problem from A to Z all by yourself. In coding, your job is merely to build the logical framework. You string together efficient instructions and let the computer do the heavy lifting to execute the rest.

In Pascal, I was taught that achieving any output inherently requires structure: starting from declaration, initialization, down to the process. This concept is exactly like writing a procedural text. You need the raw materials and measurable steps to reach the desired outcome.

Finding Direction Through Exploration

Because I had so much fun solving basic I/O and looping problems, my curiosity exploded. I began exploring almost every popular tech stack to find my direction: Machine Learning, Frontend & Backend Javascript, PHP (Laravel), React Native, React JS, Flutter, until I finally anchored myself to pure Android Native Kotlin architecture.

Even though the technology stacks varied wildly, there was one universal thread that seeped in and permanently altered how I operate in the real world: a systematic mindset.

SDLC (Software Development Life Cycle) in Real Life

Every action I take now has a clear beginning, process, and expected final outcome. The concept of the Software Development Life Cycle (SDLC) no longer applies strictly when I design application architectures; it has become a framework for my everyday life.

Just like building software—starting from analyzing a problem, designing a solution (system and UI/UX), moving to implementation and testing, and finally releasing the end product—this SDLC is applied to multiple aspects:

  • Work Management: When I start my teaching duties today, the logical flow is clear. I begin by checking my daily journal, structuring the materials to be discussed, defining assignments, and wrapping up with a closing journal entry.
  • Consumptive Decision Making: When shopping for electronics, I no longer buy impulsively. I analyze the specifications, compare prices, calculate the item’s depreciation value over the coming months, and evaluate the Return on Investment (whether the item is worth the output it generates).
  • Financial Management: Cash flow is managed by establishing a starting point, an allocation process, and a specific final financial goal.

Conditional Logic: Facing Reality

Of course, the reality of life doesn’t run as statically as a linear script. Much like the post-release maintenance phase where various bugs emerge from real-world users, life also presents unpredictable problems.

This is where the concept of Conditional Logic (If/Else) saves my sanity.

// A representation of conditional logic in life's decision-making
fun executeLifePlan(isPlanIdeal: Boolean, isBudgetSufficient: Boolean) {
    if (isPlanIdeal && isBudgetSufficient) {
        executeMainStep()
    } else if (!isBudgetSufficient) {
        findMoreEfficientAlternative()
    } else {
        adaptToNewProblems()
    }
}

In programming, when a condition deviates from the main scenario, we use conditional branching to redirect the flow to a backup solution, preventing the system from crashing. In life, a failed prediction is not a dead end, but rather a trigger to execute a logical block of alternative plans.

Ultimately, coding didn’t just give me an app portfolio on the Play Store; it implanted an invisible architecture inside my head on how to become a more planned, structured, and adaptive human being.

Foto profil Herdi Herdianurdin

About the Author

Herdi Herdianurdin is a professional software engineer focusing on the native Android ecosystem (Kotlin), memory optimization, and high-performance web architecture.

View Profile & Portfolio ->

Discussions & Comments