You and Your Research

Lessons from Richard Hamming for the Modern Software Engineer

Richard Hamming’s iconic talk, You and Your Research, is a timeless guide to success and innovation for anyone in a technical or creative field. Although given decades ago, Hamming’s ideas resonate especially well with modern software engineers—those of us who balance code, collaboration, and continuous learning.

Below is a distilled account of Hamming’s wisdom, alongside reflections on how we can apply these insights to our own software careers.


1. The “Janitor of Science” Realization

Hamming began his career at Los Alamos, doing what he called “janitorial work”—busy tasks that, while necessary, did not influence the organization’s biggest decisions. He felt a mix of envy and motivation when he saw how “first-class” scientists around him were making profound contributions. This sparked his lifelong pursuit of understanding what separates good from great in scientific and engineering endeavors.

Key Takeaway for Software Engineers

  • If you’re feeling stuck in repetitive, maintenance-type tasks, ask yourself: What is the strategic value of my work?
  • Look for ways to contribute more significantly—perhaps by automating dull tasks or by proposing new features and solutions.

2. The “Matthew Effect” and Recognition

Hamming references the “Matthew Effect,” derived from a biblical verse in the Gospel of Matthew (“unto those who have shall it be given”). Once you achieve a certain level of recognition, it’s easier to remain visible and gain further access to people, ideas, and projects. Conversely, if you never achieve that spark, your efforts are often overlooked.

Key Takeaway for Software Engineers

  • Early visibility can snowball into bigger and better projects.
  • If you find opportunities to showcase your abilities—e.g., open-source contributions, conference talks, blog posts—take them! Recognition can open new doors.

3. Believing You Can Do Great Work

One of Hamming’s recurring themes is confidence. You have to believe in your ability to do great work; otherwise, you’ll never even try. However, he also warns about the fine line between confidence and overconfidence.

Key Takeaway for Software Engineers

  • Build confidence by tackling and completing challenging projects. Each success story gives you more reason to trust yourself.
  • However, remain open to feedback—software engineering is about iteration, not stubbornness.

4. “I Ain’t Scared of Nothin’”: Embracing Risk

Hamming narrates how Claude Shannon (the father of Information Theory) played chess by constantly attacking, refusing to play defensively. Shannon’s approach to chess parallels his fearless attitude in research: If the idea was big, he’d boldly pursue it.

Key Takeaway for Software Engineers

  • Sometimes, you have to take calculated risks—experiment with that new library, or propose a large-scale refactor if you believe it will pay off.
  • Learn to say, “I ain’t scared of nothin’”—the worst that can happen is a short-term failure, which may lead to deeper insights.

5. Working on Important Problems

“If what you’re working on is not important, and it’s not likely to lead to something important, why are you working on it?”
Hamming recounts a transformative story where he confronted a group of chemists with this very question. Only one person in that group rose to the challenge—and he went on to great success.

Key Takeaway for Software Engineers

  • Not every single sprint task can be revolutionary, but always keep in mind: “Can this small piece of work grow into something significant later?”
  • Align your daily to-do list with the broader, impactful objectives of your organization or your personal mission.

6. The Myth of Ideal Working Conditions

We often imagine a perfect environment—no distractions, unlimited time, and resources. Yet Hamming observed that truly creative breakthroughs often happen amid imperfections. Doors closed to distractions can leave you isolated from the sparks of new ideas.

Key Takeaway for Software Engineers

  • Collaboration spaces, even in remote settings (e.g., Slack, code reviews, daily standups), may feel interrupt-driven but will expose you to new ideas.
  • Keep your “door open” metaphorically—be receptive to feedback, architecture discussions, and cross-team collaboration.

7. Openness to Change and Continuous Learning

One of Hamming’s mantras at Bell Labs was to welcome change regularly. He believed that if his department had been doing something the same way for 10 years, it was definitely time to try another method.

Key Takeaway for Software Engineers

  • Technology moves fast—stay curious. Whether it’s a new framework, language, or approach to DevOps, don’t be afraid to experiment.
  • As Hamming said, progress requires change. If we only do what’s comfortable, we’ll never discover a better way.

8. Tolerance of Ambiguity

A surprisingly subtle insight: great minds must both believe and disbelieve their theories. They continue working if they feel the theory has promise but remain alert to contradictions that might prompt new breakthroughs.

Key Takeaway for Software Engineers

  • Be confident in your architectural design, but not so rigid that you reject contrary evidence.
  • If performance metrics or user behavior suggests a different path is needed, be prepared to pivot.

9. The Power of Communication

Hamming emphasizes that scientists—and by extension, engineers—must communicate effectively in three ways: orally, in writing, and in casual conversations. Clear communication is essential to influence decisions and share new ideas.

Key Takeaway for Software Engineers

  • Write concise, well-structured documentation.
  • Present your ideas at meetups or internal tech talks.
  • In daily standups, practice delivering quick, clear status updates.

10. Setting Aside Time to Think

Hamming shares that he allocated Friday afternoons to “great thoughts”—big-picture thinking about computing and its impact. He intentionally blocked this time to reflect on crucial, forward-looking questions instead of only answering day-to-day demands.

Key Takeaway for Software Engineers

  • Regularly block out “thinking time” on your calendar.
  • Ask yourself, What should we be building next quarter? What’s our engineering team missing? How can we best serve the user?
  • These questions can get lost in the daily scrum if we aren’t intentional.

11. Studying Success (Not Just Failure)

Hamming points out that studying great discoveries (like Galileo’s or Newton’s) teaches you how to succeed. Focusing solely on failure analysis may only teach you how to fail.

Key Takeaway for Software Engineers

  • Regularly read success stories from software. Learn from open-source projects that took off, or architectural choices that scaled gracefully.
  • Adopt the winning strategies that align with your strengths.

12. The Unexamined Life Is Not Worth Living

Hamming ends on a philosophical note, quoting Socrates: “The unexamined life is not worth living.” We only have one life to lead, so we might as well make it meaningful on our own terms.

Key Takeaway for Software Engineers

  • Regularly reflect on your career trajectory. Are you just “getting by,” or are you pursuing the problems and solutions that truly resonate?
  • Consider your long-term goals: do you want to found a startup? Contribute to groundbreaking OSS? Make an impact on millions of users?
  • If the answer is yes, start shaping your day-to-day (and year-to-year) choices accordingly.

Conclusion

Richard Hamming’s talk, while addressing scientific researchers, remains directly applicable to software engineers in 2025 and beyond. By believing in ourselves, selecting important problems, tolerating ambiguity, communicating effectively, and embracing change, we can propel our careers—and the field of software engineering—forward.

Ultimately, Hamming’s revivalist message is clear:

“Repent your idle ways and be somebody worth being.”

Though it sounds direct (and perhaps a bit old-fashioned), this simple exhortation is an enduring call to excellence. We each have the power to direct our efforts to something that truly matters—all that’s required is our commitment to do so.

Now, over to you:

  • What are the 10–20 problems you keep in the back of your mind?
  • How can you rearrange your environment to keep your “doors open”?
  • When will you schedule your “Friday afternoon thinking time”?

Take the next step. Because as Hamming would say, you have no excuse for not doing better than he did.