4008063323.net

My Journey as an Average Programmer: Embracing Mediocrity

Written on

Chapter 1: The Programmer's Dilemma

"How would you evaluate your skills as a programmer?"

This question often arises during job interviews, and I dread it because I know my response may not be what they want to hear. Should I fabricate a response? Absolutely not. I believe in being truthful. So, I take a deep breath, look the interviewer in the eye, and reply: "Average."

Indeed, I see myself as an average developer, and I’ve put considerable effort into achieving that status.

DON’T BE A DOJO CHAMPION

Having spent four decades in the IT realm, I’ve come to appreciate my pursuit of mediocrity. This mindset originated during my years as a martial artist in the 1970s.

In every dojo, there’s a champion—the standout fighter. At sixteen, I held that title, believing I was exceptional. However, when I began competing in tournaments, my illusion shattered; I realized I wasn't as remarkable as I thought, and in fact, I couldn't even claim to be average.

Motivated to improve, my initial aim became simply to reach the mathematical mean. I discovered several dojos offering open sparring sessions on Friday nights and Saturday mornings. Eager to learn, I immersed myself in these environments where participants aspired to excel.

Occasionally, newcomers would join our group, often boasting about their expertise. These dojo champions often found themselves outmatched in sparring and would disappear without a trace, content to remain mere pretenders. Others persevered, battling their way to mediocrity, eventually securing a spot among the county’s top fighters.

As for me, after striving to become average in that competitive circle, I was never the best, but that was perfectly acceptable because I knew I was making consistent progress.

Chapter 2: Learning from the Best

After transitioning into IT, I maintained my strategy of surrounding myself with challenging individuals. In the early 90s, as a developer specializing in RPG/Cobol, I managed to secure a role as a C++ Systems Programmer at ASNA, which provided various tools for the AS/400 market.

Before launching their new product, ASNA invited a renowned expert to evaluate their tools. A few months later, I learned from a writer connected to that expert that he remarked, "I’ve just met a half-dozen of the most brilliant developers!" I chuckled, responding, "Well, ASNA has seven developers, and I’m quite sure I’m not among that elite group."

The truth was, all my colleagues possessed master's degrees in Systems Programming. I found myself constantly learning from them, working hard just to be deemed average.

Section 2.1: The Power of Collaboration

I've experienced workplaces where many skilled developers existed, yet collaboration was almost nonexistent. In the late 90s, I joined a team of COBOL programmers. Initially, we operated more as twelve independent developers rather than a cohesive team, each tackling separate tasks.

Frustrated by this isolation, particularly since I lacked extensive COBOL experience, I initiated a collaborative effort, managing to engage about half of my colleagues in teamwork. The outcome? We completed our tasks more efficiently, enjoyed the process more, and gained immense knowledge.

You need two key factors to enhance your skills:

  1. Other programmers who challenge you.
  2. A collaborative environment that encourages skill sharing.

Once these elements are established, don’t forget to:

  • Learn to ask for assistance.
  • Engage in pair programming.
  • Inquire about what others are currently reading or have learned.

Section 2.2: Embracing Vulnerability

It’s crucial to ask for help when needed. Post questions on platforms like Teams or Slack and arrange pairing sessions. If you’re met with silence, it might be time to reconsider your team. While asking for help can feel like exposing your vulnerabilities, as Dr. Brené Brown states: “Vulnerability sounds like truth and feels like courage.”

Remember, while it’s essential to seek assistance, equally important is to offer help when others request it.

Section 2.3: The Benefits of Pair Programming

Pair programming should be your go-to strategy whenever you need guidance, want a dynamic code review, or wish to observe someone else's workflow.

Section 2.4: Staying Informed

I utilize GetPocket.com for bookmarking valuable content and follow various tech writers on Medium. When I encounter interesting articles, I add them to my recommended list on GetPocket.

Chapter 3: What If You’re the Best?

There may be instances where you find yourself as the top coder on your project. Perhaps you have a well-paying position but feel stagnant. Here are a few suggestions:

  • Consider Switching Teams: If you’re not evolving, your career prospects may dwindle. Explore opportunities in a different team, even if it means a pay cut. In the long run, it can be beneficial.
  • Engage with Open-Source Projects: Delve into open-source code. I’ve collaborated with talented developers who explore the depths of code within Ruby gems.
  • Mentor Others: You might be surprised at how much you can learn from junior developers. Remember, "To teach is to learn twice."
  • Cross Boundaries: Transition from Java to Ruby, Windows to Linux, or MySQL to PostgreSQL. Such experiences will enhance your overall development skills. In the late 90s, I took a three-year break from coding to work as a full-time technical editor, which required me to stay updated with the latest technologies alongside top technical writers.

How’s your dojo?

The first video, "FFXIV 2023 Valentione Event + All Post-Quest Options," provides insights into the recent event and its various options, showcasing an engaging commentary style.

In the second video, "The Quest 3 is Leaving a LOT of AR Scan Data Unused," the discussion revolves around the underutilization of AR scan data in modern technology, offering critical insights into its implications.

Share the page:

Twitter Facebook Reddit LinkIn

-----------------------

Recent Post:

Unlocking Business Insights Through Effective Data Analysis

Discover how data analysis can transform your business decisions and operations to foster growth and efficiency.

Master the Principles of Strategy for Unyielding Success

Discover timeless strategies from The Art of War that can empower you to achieve your goals and navigate life's challenges effectively.

Discover the Allure of Bali: A Digital Nomad's Paradise

Explore the top reasons why moving to Bali could transform your life as a digital nomad.

Optimizing BigQuery Performance and Cost Efficiency with Admin Tools

Discover how BigQuery Admin Resource Charts can enhance performance monitoring and cost management in Google BigQuery.

Transforming Biology with AI: The scGPT Revolution

An exploration of scGPT, a generative model designed for single-cell sequencing, merging biology and AI for groundbreaking research.

Finding the Balance: How Many Hours Should You Stand Daily?

Discover the ideal daily standing time to improve health and well-being.

The Unseen Roots of Racism: Examining Genetic and Cultural Factors

Exploring the intersection of genetics and cultural beliefs in shaping racism in America.

Unveiling the Cosmos: AI's Role in Detecting Alien Signals

Explore how AI is revolutionizing the search for extraterrestrial signals, revealing potential signs of intelligent life beyond Earth.