87. Thunder Talks

Topics covered
Popular Clips
Episode Highlights
Big O Basics
Big O notation is crucial for understanding algorithm efficiency, as it helps quantify time and space complexity. Joe Zack and Alan Underwood discuss an article by Jeff Atwood, which includes a table illustrating the impact of different complexities like log n, n log n, and n factorial on execution time. They highlight that while small input sizes may not show significant differences, larger inputs reveal the true performance implications.
If we said that something executed in n factorial time, and let's say that your array, that you're passing into that function only had 16 elements in it, it would take 663 years to finish that small array.
--- Joe Zack
Understanding these complexities is essential for writing efficient code that scales well with larger data sets 1.
Performance Insights
Comparing algorithm performances at various input sizes reveals the importance of testing code with realistic data loads. Joe Zack and Alan Underwood emphasize that small data sets can mask inefficiencies, leading to performance issues in production environments. They stress the need to differentiate between load testing and unit testing, as each serves a distinct purpose in the development process.
The last thing you want to do is to develop something and then wait until you get into a production environment with real customer loads on it and real customer data before you realize, like, oh, that thing doesn't perform well at all.
--- Joe Zack
This understanding helps developers anticipate and mitigate potential performance bottlenecks 2 3.
Practical Complexity
Applying algorithmic complexity theory to real-world programming practices involves understanding the practical implications of different complexities. Joe ZackAlan Underwood explore how logarithmic complexity can drastically reduce execution time compared to factorial complexity, highlighting the importance of choosing the right algorithm for the task. They also discuss practical tools like git commands to manage code efficiently.
For in factorial, where n was 16, we were 663 years, but as soon as we went to a logarithm, we went n log in for 65,000. We dropped down to 17 minutes for it. That's significant.
--- Joe Zack
This knowledge empowers developers to make informed decisions about algorithm selection and code management 4 5.
Related Episodes


Thunder Talks
Answers 383 questions86. Lightning Talks
Answers 383 questionsJavascript Promises and Beyond
Answers 383 questions
Tackling Tough Developer Questions
Answers 383 questions95. Data Structures – Arrays and Array-ish
Answers 383 questionsClean Code - Formatting Matters
Answers 383 questionsHow to be an Intermediate Programmer
Answers 383 questionsCaching Overview and Hardware
Answers 383 questionsCaching in the Application Framework
Answers 383 questions

Is Kubernetes Programming?
Answers 383 questionsClean Code - How to Write Amazing Functions
Answers 383 questionsHow to be a Programmer
Answers 383 questionsHow to be an Advanced Programmer
Answers 383 questions

Should You Speak at a Conference?
Answers 383 questions

Nuts and Bolts of Apache Kafka
Answers 383 questions














