Date: Tue, 19 Nov 2019 11:00:00 +0000
<div class="trix-content"> <div><strong>Carl Mungazi is a frontend developer at Limejump in London. He is a former journalist and switched to programming in 2016. Today the panel is discussing the benefits of reading source code. Carl began reading source code because he came into programming late and from a different field. His first project was with Mithril, and he read the source code and documentation to help him understand it. The panelists discuss how reading the source code has helped them and others to improve their coding. They compare reading and understanding source code to learning a foreign language, and discuss different methods. </strong></div><div><strong>Carl gives some suggestions for reading source code effectively. He advises people to be patient and step through the code. Accept that you will probably take a wrong path at some point or another, but the more you read, the more you will see patterns in how libraries are structured. He also encourages listeners to approach the authors, as they are often happy to lend a hand. Reading source code is an active approach of stepping through, debugging, putting in break points, checking the stack, and so forth. It’s also important to do outside research. </strong></div><div><strong>Since he has been reading source code, Carl has come to prefer plain JavaScript and libraries with as little code as possible. The panel discusses the benefits of small, simple libraries. Carl gives examples of techniques that he learned from reading a library source code and how he applied it to his own coding style. Reading source code has made him more careful about mixing logic and UI, and now he separates them. He also is more confident in seeing a problem, going to a preexisting library, and just importing the fix for that problem rather than the whole library. Reading source code is really about understanding the code you use in your project. It may slow you down, but you’ll be thankful in the long term because it will help you solve future bugs more efficiently. Carl talks more about his debugging process. He still relies on a debugger, but reading a library helps you to see patterns and guess the output of a function. These patterns persist in other libraries as well. Once you can guess correctly what will happen, you go back to reading the code and find instances where the output is unexpected, and fix it. Carl’s closing thoughts are that through reading source code, he has learned that although code is used differently in each library, they are all written in the same language, and therefore interrelated. This gave him more confidence in reading code because they’re all fundamentally the same. When a bug is discovered, he encourages listeners to look at the source code before googling a solution. </strong></div><div><strong>Panelists</strong></div><ul> <li><strong>AJ O’Neal</strong></li> <li><strong>Dan Shapir</strong></li> <li><strong>Steve Edwards</strong></li> <li><strong>Charles Max Wood</strong></li> </ul><div><strong>Guest</strong></div><ul><li><strong>Carl Mungazi</strong></li></ul><div><strong>Sponsors</strong></div><ul> <li><a href="http://hasura.io?utm_source=devchat&utm_medium=podcast&utm_campaign=devchat_7Nov%5D(http://hasura.io/?utm_source=devchat&utm_medium=podcast&utm_campaign=devchat_7Nov"><strong>Hasura.io </strong></a></li> <li> <a href="http://sentry.io/"><strong>Sentry</strong></a><strong> | Use the code “devchat” for $100 credit</strong> </li> <li><a href="https://devchat.tv/adv-in-angular/"><strong>Adventures in Angular</strong></a></li> </ul><div><strong>Links</strong></div><ul> <li><a href="https://mithril.js.org/"><strong>Mithril.js</strong></a></li> <li><a href="https://preactjs.com/"><strong>Preact</strong></a></li> <li><a href="https://limejump.com/"><strong>Limejump</strong></a></li> </ul><div><strong>Picks</strong></div><div><strong>AJ O’Neal</strong></div><ul> <li><a href="ht... Support this podcast at — https://redcircle.com/javascript-jabber/donations Advertising Inquiries: https://redcircle.com/brands Privacy & Opt-Out: https://redcircle.com/privacy