Learn from a Pro: 15,000+ Hours of Live Coding Insights
Chris Griffing, a seasoned developer and prolific Twitch streamer, has spent over 15,000 hours coding live. He shares valuable lessons learned from this extensive experience, covering everything from mastering programming languages to building a public coding presence. This guide will walk you through key insights from his journey, helping you understand effective development practices, the role of AI tools, and the benefits of building software in the open.
What You’ll Learn
- Why server-side rendering might be an ‘edge case’ for many applications.
- How to use AI coding tools effectively without sacrificing understanding.
- The importance of maintainability and understanding your codebase.
- Tips for building projects in public and overcoming the fear of live coding.
- Chris’s unique journey from professional snowboarder to developer.
Prerequisites
A basic understanding of programming concepts is helpful, but this guide is designed to be accessible to anyone interested in software development and live streaming.
Step 1: Rethinking Server-Side Rendering
Chris Griffing suggests that server-side rendering (SSR), often used by frameworks like Next.js, might be an ‘edge case’ for many applications. He argues that most websites, like marketing or documentation sites, can be served as static assets. Client-side rendering is often sufficient for applications that require user logins.
SSR is most beneficial when you have an extremely large number of pages that are difficult to render statically, and the data changes frequently. E-commerce sites and classified ad platforms are examples where SSR makes sense. However, for many everyday applications, using SSR adds unnecessary complexity and cost.
Expert Tip: Before choosing SSR, ask yourself if your application truly needs it. If your site is mainly informational or requires user authentication, simpler static or client-side rendering might be more efficient.
Step 2: Using AI Coding Tools Wisely
AI tools like ChatGPT and Claude can be helpful for developers. Chris uses them for work, especially for developer relations tooling. He sees their strength in creating ‘programs’ – tools designed for personal use or small teams, often referred to as ‘software with an audience of one’.
These tools can quickly generate boilerplate code and automate tasks, which is great for personal projects. However, Chris stresses that any code written, whether by AI or manually, requires maintenance. Over-reliance on AI can hinder a developer’s ability to understand and debug their own codebase later.
Warning: While AI can speed up initial development, it’s crucial to maintain a deep understanding of the code. Debugging issues in a codebase you don’t fully grasp can become a significant time sink.
Step 3: Prioritize Codebase Maintainability
Experienced developers often find maintaining code to be the hardest part of their job. This involves ensuring the code works over time, can be understood by new team members, and adapts to new challenges like responsive design or accessibility requirements.
Chris emphasizes that writing the initial code or adding features isn’t as difficult as making sure the software remains functional and understandable for years to come. This long-term perspective is vital, especially when building products for paying customers.
Analogy: Think of building a house. The initial construction is one part, but ensuring the plumbing, electrical systems, and structure remain sound and easy to repair over decades is the real challenge.
Step 4: Embrace Building in Public
Chris Griffing’s journey includes 10 years as a professional snowboarder before transitioning to software development. This background gave him a unique perspective and resilience, making him comfortable with falling and learning publicly.
He learned programming at age 28, taught himself PHP, and started building websites for friends. In 2018, he began live-streaming his coding on Twitch. This decision to code in public, despite the fear of making mistakes, has led to many opportunities and a strong connection with his audience.
Expert Note: The fear of making mistakes is common. Chris’s experience shows that embracing vulnerability and seeing mistakes as learning opportunities can be incredibly rewarding. His background in competitive snowboarding, where falling is a part of the process, helped him develop this resilience.
Step 5: Learn Multiple Programming Languages (Polyglot Programming)
Chris encourages developers to be ‘polyglot programmers’ – proficient in multiple languages. He learned Go and found that it made him a better Rust developer. Learning different languages exposes you to various programming paradigms and problem-solving approaches.
This diversity of knowledge can make you a more adaptable and effective programmer. Understanding how different languages handle tasks can provide fresh insights into your primary development language.
Step 6: The Economics of Passion vs. Career
Chris spent 10 years working odd jobs at ski resorts, earning around $8.25 per hour, to support his passion for snowboarding. He received free passes and had access to employee housing, which helped manage costs.
This experience highlights how people often prioritize activities they love, even if the immediate economic return is low. While the snowboarding industry has a limited economic ceiling for participants, it fuels gear sales and sponsorships. This contrasts with software development, which offers a more stable and potentially higher earning career path.
Reflection: His transition to software development at age 28, with parents in tech, made the career path seem approachable. This shows how background and perceived accessibility can influence career choices.
Step 7: Building a Programming Career
Chris started freelancing for friends, building websites for snowboard shops and even handling e-commerce with platforms like Magento. Growing up with tools like GeoCities and MySpace provided a foundational understanding of HTML and CSS for his generation (millennials).
This early exposure to web technologies primed many millennials for careers in development. By age 41, Chris still loves snowboarding but approaches it more cautiously due to past injuries like dislocated shoulders and broken collarbones.
Key Takeaway: Many developers start by building simple projects for friends or personal needs. This practical, hands-on approach is often more effective than theoretical learning alone.
Conclusion
Chris Griffing’s journey from professional snowboarder to a developer with over 15,000 hours of live coding experience offers a wealth of practical advice. By understanding the nuances of server-side rendering, using AI tools strategically, prioritizing maintainability, and embracing the challenge of building in public, developers can enhance their skills and careers. His story emphasizes resilience, continuous learning, and the rewards of pursuing passions, whether on the slopes or in the digital realm.
Source: Lessons from 15,031 hours of coding live on Twitch with Chris Griffing [Podcast #214] (YouTube)