#172 - From Punch Cards to Git: The Legendary Journey of Jeff Haemer
Oct 6, 2024
auto_awesome
Jeff Haemer, a seasoned software engineer with a remarkable five-decade career, shares his journey from punch cards to Twitter. He discusses the importance of networking for career growth and emphasizes a persistent mindset when facing failures. Jeff’s love for Unix shines through as he highlights its timeless qualities. He also reveals his passion for continuous learning, including a fascinating transition to Rust programming, and his cherished reading habits that inspire his professional development. His story is a powerful reminder to embrace both challenges and opportunities.
Establishing strong professional networks is essential for career advancement in tech, highlighting the importance of social skills alongside technical expertise.
A commitment to lifelong learning and embracing failure fosters resilience and creativity, pivotal for thriving in the constantly evolving field of programming.
Deep dives
The Importance of Networking
Establishing and leveraging a professional network is crucial in advancing one's career, especially in tech fields like software engineering. Building relationships through meetups and organizations allows individuals to socialize and connect with others who can provide job opportunities. Notably, many professionals find jobs through connections and interactions rather than traditional applications. This approach to networking emphasizes the need for social skills, which can greatly enhance career prospects in a field often perceived as solitary.
Embracing Lifelong Learning
A commitment to lifelong learning is essential for personal and professional growth, particularly in the ever-evolving field of programming. Continuous education, whether through formal classes or self-directed projects, fuels excitement and innovation in coding. The journey of learning new programming languages, such as Rust, showcases the importance of curiosity and adaptation as a means to improve skills and tackle performance issues in existing projects. Inspiring figures in the tech community often encourage this mindset, proving that ongoing learning is not only beneficial but also fun.
Navigating Career Paths
Career trajectories in software development are often unpredictable, and many individuals experience numerous job roles that shape their professional identities. Some take bold leaps into new opportunities, guided by chance encounters and the willingness to accept unforeseen challenges. Stories of transitions, from academia to industry roles or from one technology to another, highlight the importance of being adaptable and open to new experiences. Such flexibility often leads to unique career advancements and personal fulfillment.
The Value of Resilience
Resilience plays a vital role in overcoming the challenges faced in programming and career development, molding individuals into more competent professionals. Learning to accept failure, whether through coding mistakes or job rejections, is crucial for long-term success. Developing a mindset that views setbacks as opportunities for growth enables programmers to persist through difficulties and continue pushing boundaries. Embracing this philosophy fosters creativity and innovation, essential qualities in a rapidly changing tech landscape.
"The sooner you make your first five thousand mistakes, the sooner you will be able to correct them." - The Natural Way to Draw - Kimon Nicoliades
Jeff Haemer’s career spans over five decades, and in this episode, he openly talks about his continuous passion for learning and solving interesting problems.
We talk about his experience teaching computer science with almost no prior knowledge, his love for Unix, how he landed a job at Twitter in his late sixties, and why he believes networking is key to landing jobs.
Jeff also generously shared his list of books he keeps going back to for inspiration and wisdom.
If you’ve ever felt stuck or uncertain in your tech career, Jeff’s journey will inspire you to take bold steps, embrace failure and adopt a persistent mindset to succeed at work and in life.
Chapters: 00:00 Introduction, welcome Jeff 03:33 Wins: learning Rust / Pybites Rust platform 08:10 Jeff’s journey: from punch cards to modern programming 16:20 Random luck vs being prepared (networking!) 20:04 What's great about Unix, what makes it timeless? 25:05 How to learn and making engaging presentations 29:21 Persistent mindset, embracing failure (it's inevitable!) 33:37 PDM ad segment 34:02 Jeff's favorite books 44:11 Practical SW dev vs book learning 46:35 Wrap up and CTA