<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Letters to New Coders]]></title><description><![CDATA[I'm Fahim, a software developer turned tech founder. Here's everything I wish I knew when I started my coding journey.]]></description><link>https://www.letterstocoders.com</link><image><url>https://substackcdn.com/image/fetch/$s_!i0BS!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7016966-bf9d-4099-9c72-cbc7aab56e46_256x256.png</url><title>Letters to New Coders</title><link>https://www.letterstocoders.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 19 May 2026 05:28:22 GMT</lastBuildDate><atom:link href="https://www.letterstocoders.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Fahim ul Haq]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[letterstonewcoders@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[letterstonewcoders@substack.com]]></itunes:email><itunes:name><![CDATA[Fahim ul Haq]]></itunes:name></itunes:owner><itunes:author><![CDATA[Fahim ul Haq]]></itunes:author><googleplay:owner><![CDATA[letterstonewcoders@substack.com]]></googleplay:owner><googleplay:email><![CDATA[letterstonewcoders@substack.com]]></googleplay:email><googleplay:author><![CDATA[Fahim ul Haq]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[OpenAI to Robotaxi: 4 updates and what they mean for you ]]></title><description><![CDATA[What these recent tech developments mean for your future coding career &#8212; and what to do about it.]]></description><link>https://www.letterstocoders.com/p/openai-to-robotaxi-4-updates-and</link><guid isPermaLink="false">https://www.letterstocoders.com/p/openai-to-robotaxi-4-updates-and</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 23 Oct 2024 15:01:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!rh93!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Note: As we approach year's end, I'll be taking a little hiatus from Letters to New Coders &#8212;&nbsp;but let's stay in touch! I'll still be sharing insider tips for beginners <a href="https://www.linkedin.com/in/fahimulhaq/">on LinkedIn</a>.&nbsp;</em></p><div><hr></div><p>Big developments in tech are more than just headlines&#8212; they&#8217;re signals of where the industry is headed. From AI shake-ups to the growing demand for in-office collaboration, it's essential that you know what they mean in order to plan for success.</p><p><strong>Here&#8217;s what&#8217;s happening right now, why it matters for you, and how you can stay prepared for what&#8217;s next.</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Be sure to subscribe to get insights and tips in your inbox as soon as I return from hiatus.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>What 4 recent developments mean for you</h2><h3>1. OpenAI transitions to a for-profit business</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rh93!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rh93!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rh93!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rh93!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rh93!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rh93!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg" width="500" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:500,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29167,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rh93!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rh93!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rh93!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rh93!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F321d4545-9001-4f70-9b05-ce0691fcd0cb_500x333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>OpenAI, the company behind ChatGPT, was founded as a nonprofit in 2015. Their main goal was to make sure artificial intelligence (AI) was developed safely and for the benefit of everyone, rather than just to make money.</p><p><strong>But starting in 2025, <a href="https://apnews.com/article/chatgpt-openai-sam-altman-nonprofit-859bff5c19845f51796244e0072e2dfb">OpenAI plans to become a for-profit company</a></strong>. This means they&#8217;ll focus more on earning revenue, and their CEO, Sam Altman, will be paid in shares &#8211; which aligns the company&#8217;s success with personal financial gain.</p><p>This change has been building for a while. Back in 2019, OpenAI allowed investors and employees to earn profits (with limits). Now, with an even stronger focus on profit, tools like the GPT language model &#8212; which powers ChatGPT and other applications &#8212; could become more expensive. OpenAI might also start working more with big businesses and less with smaller projects or individual developers.</p><h4><strong>Why this matters for you:</strong></h4><ul><li><p><strong>More job opportunities in AI:</strong> As OpenAI grows, there will probably be more jobs for developers with AI skills.</p></li><li><p><strong>Higher costs:</strong> OpenAI's tools, like ChatGPT, (which lets developers integrate AI into their own projects) and DALL&#183;E (an AI that generates images from text), might become more expensive. This could make them harder to afford for smaller teams or individual developers.</p></li><li><p><strong>Focus on big companies:</strong> OpenAI could start focusing on larger businesses, which means fewer tools or support for smaller, experimental projects.</p></li><li><p><strong>Fewer free tools:</strong> OpenAI has contributed to a lot of free, open-source projects in the past, but with this shift, expect fewer free tools for developers to use.</p></li></ul><blockquote><p>The demand for AI skills is growing fast, and staying up to date with AI tools can help you stand out as you build your career. Check out my earlier post on <a href="https://www.letterstocoders.com/p/how-to-learn-to-code-with-ai-in-2024">how you can start leveraging AI while learning to code</a>.</p></blockquote><h3><strong>2. Leadership changes at OpenAI could breathe new life into the company</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!meie!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!meie!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 424w, https://substackcdn.com/image/fetch/$s_!meie!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 848w, https://substackcdn.com/image/fetch/$s_!meie!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!meie!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!meie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg" width="511" height="287" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:287,&quot;width&quot;:511,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43660,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!meie!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 424w, https://substackcdn.com/image/fetch/$s_!meie!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 848w, https://substackcdn.com/image/fetch/$s_!meie!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!meie!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc953b5ac-e35f-4d24-958b-d93124f8a365_511x287.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As OpenAI transitions to becoming a for-profit company, it's also <strong><a href="https://www.yahoo.com/tech/openai-keeps-losing-executives-heres-204500997.html">experiencing major leadership changes</a></strong>. Half of the original team that built the GPT language model is no longer with the company, and out of the 11 co-founders, only Sam Altman and Wojciech Zaremba remain.</p><p>This year, key figures like Bob McGrew (Chief Research Officer) and Mira Murati (Chief Technology Officer) have left. Some have moved to other companies, while others, like cofounder Andrej Karpathy, are starting their own ventures, such as his new AI-focused education startup, Eureka Labs.</p><p><strong>These high-profile departures could spell changes in OpenAI's direction</strong>. As new leaders join, they may introduce fresh ideas and innovations that affect the kinds of projects OpenAI prioritizes.</p><h4><strong>Why this matters for you:</strong></h4><ul><li><p><strong>Shifting priorities</strong>: OpenAI may focus on different projects., so stay informed about new directions to keep up with tools or projects that interest you.</p></li><li><p><strong>New opportunities</strong>: New hires often bring new innovations, which could mean new tools and possibilities will emerge for developers.</p></li><li><p><strong>AI ethics and safety</strong>: As AI continues to grow, conversations around safety and ethics are becoming even more important. Staying informed will help you understand how these discussions affect the industry and your role.</p></li></ul><h3><strong>3. Dell&#8217;s new return-to-office policy reflects a larger industry movement</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6nBn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6nBn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6nBn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg" width="450" height="412" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:412,&quot;width&quot;:450,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:44301,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6nBn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6nBn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1275b203-b47e-4a39-9c0e-b96a5bb7e6c4_450x412.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Dell, following a trend started by companies like Amazon, just announced that its sales team will be <strong><a href="https://www.entrepreneur.com/business-news/dell-sales-team-mandated-5-day-a-week-rto-with-2-days-notice/481043">required to return to the office 5 days a week</a></strong>. Right now, most hybrid employees are expected to come into the office 3 days a week, but the sales team is the first to be asked to come all week.</p><p>Earlier this year, Dell gave U.S. employees the option to go hybrid (a mix of remote and in-office work) or fully remote, but remote workers weren&#8217;t eligible for promotions or new roles. Dell&#8217;s leadership said that having teams in the office helps with collaboration and skill-building, but some employees feel the change was too sudden.</p><h4><strong>Why this matters for you:</strong></h4><ul><li><p><strong>More companies might require in-office work</strong>: Dell&#8217;s move might be a sign that other tech companies will soon start asking employees to come into the office more often. Be ready for this possibility as you begin your career.</p></li><li><p><strong>In-person work helps with learning</strong>: Working in an office allows for real-time feedback and collaboration, which is especially helpful for learning new skills, solving problems quickly, and growing as a developer.</p></li><li><p><strong>Adaptability is important</strong>: Being flexible and open to changes, like returning to the office, can help you stand out. It shows that you&#8217;re engaged and willing to adapt, which could open up new opportunities or leadership roles down the line.</p></li></ul><p>Personally, I don&#8217;t agree with how Dell handled the shift, but I can appreciate their point about collaboration. More tech companies are likely to follow, so it&#8217;s a good idea to <strong>stay open to the change.</strong></p><blockquote><p>In case you missed it, last week I wrote about why in-office work is <strong>especially valuable for junior </strong>developers &#8212; <strong><a href="https://www.letterstocoders.com/p/5-rto-benefits-that-might-surprise">here&#8217;s the link if you&#8217;d like to check it out</a></strong>.</p></blockquote><h3><strong>4. Tesla&#8217;s Robotaxi misses the mark, but there&#8217;s still opportunity for developers</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!djND!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!djND!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 424w, https://substackcdn.com/image/fetch/$s_!djND!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 848w, https://substackcdn.com/image/fetch/$s_!djND!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!djND!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!djND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg" width="524" height="295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:295,&quot;width&quot;:524,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26080,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!djND!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 424w, https://substackcdn.com/image/fetch/$s_!djND!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 848w, https://substackcdn.com/image/fetch/$s_!djND!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!djND!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7a85496c-23fa-4c14-a250-017e2c17520e_524x295.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On October 10th, Tesla revealed its new &#8220;Robotaxi,&#8221; a self-driving, two-seater car with no steering wheel or pedals. But investors were disappointed by what they felt was a lack of information about when the Robotaxi would be available or how it works, and <strong><a href="https://www.cnbc.com/2024/10/11/tesla-tsla-stock-drops-in-premarket-after-cybercab-robotaxi-reveal.html">Tesla&#8217;s stocks tumbled 9% after the reveal.</a></strong></p><p>Despite the setback, the market for autonomous vehicles is <strong><a href="https://www.fortunebusinessinsights.com/autonomous-vehicle-market-109045#">definitely growing</a></strong>. In 2022, the autonomous vehicle market was valued at $1.5 trillion and is expected to reach $13.6 trillion by 2030, according to Fortune Business Insights.</p><h4><strong>Why this matters for you:</strong></h4><ul><li><p><strong>We need skilled developers for autonomous vehicles to be successful</strong>. To that end, there will be plenty of opportunity for developers to work on AI, machine learning, and sensor tech for self-driving cars. </p></li><li><p><strong>If you're interested in self-driving technologies, there are many ways you can contribute to their improvement</strong>. For example, you could work on how these cars "think" through neural networks (a type of AI which mimics the human brain) or you could work to improve safety algorithms (the rules that keep the car and its passengers safe).</p></li></ul><h2><strong>Stay informed, stay flexible</strong></h2><p>Tech is always evolving, and staying on top of trends helps you understand how to break into the career you want. As a new dev, I advise being open to in-office work, because we'll only see more of it. I also hope you're excited about AI, because if you haven't already noticed &#8212;&nbsp;it's driving most innovation these days (which means that, eventually, you'll need to learn some AI skills too).&nbsp;</p><p>In the meantime, a strong foundation is pivotal no matter what the tech industry throws our way. You can get hands-on with Educative&#8217;s interactive <strong><a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=medium&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a></strong> courses to grow your technical skills and prepare for the future.</p><blockquote><p>Once again, I'll be taking a little break from Letters to New Coders, so be sure to&nbsp; <a href="https://www.linkedin.com/in/fahimulhaq/">follow me on LinkedIn</a> to keep getting tips and insights to help you gear up for 2025. </p></blockquote><p><em>Happy learning.</em></p><p><em>&#8212;&nbsp;Fahim</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Be sure to subscribe to get insights and tips in your inbox as soon as I return from hiatus.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[5 RTO benefits that might surprise you]]></title><description><![CDATA[Return to Office (RTO) is a topic of debate these days. Here's why you should be happy to see more of it in the future.]]></description><link>https://www.letterstocoders.com/p/5-rto-benefits-that-might-surprise</link><guid isPermaLink="false">https://www.letterstocoders.com/p/5-rto-benefits-that-might-surprise</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 16 Oct 2024 15:02:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!40dh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last week, I caught up with some old colleagues who work at Microsoft, Amazon, and Meta. As we swapped stories, one topic kept coming up: <strong>Amazon&#8217;s new RTO (return to office) policy. </strong>Starting in January 2025, Amazon employees will need to be in the office five days a week.&nbsp;</p><p>Generally, the world's reactions to this are mixed &#8212; some say Amazon is out of touch, others think it's a push to downsize staff.</p><p>But at our table, we agreed on one thing: <strong>for junior developers, remote work can be the silent killer of professional growth</strong> (and RTO is a good thing).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!40dh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!40dh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 424w, https://substackcdn.com/image/fetch/$s_!40dh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 848w, https://substackcdn.com/image/fetch/$s_!40dh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!40dh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!40dh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg" width="516" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:516,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71756,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!40dh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 424w, https://substackcdn.com/image/fetch/$s_!40dh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 848w, https://substackcdn.com/image/fetch/$s_!40dh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!40dh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa34e3b22-4344-4d1b-8bab-912f5d436942_516x508.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As a new developer, remote work might seem like the dream: no commute, total flexibility, coding in your pajamas. <strong>But what if it&#8217;s holding you back?</strong></p><p>If you&#8217;re early in your career, working remotely can make it harder to tap into the culture, mentorship, and learning opportunities that come with being in the office. Without the chance to engage with other developers face-to-face, <strong>you could struggle to bridge the gap to those coveted senior roles.</strong></p><p>With more companies returning to in-office work, being on-site could be the key to accelerating your career growth.&nbsp;</p><p><strong>Today, I&#8217;ll share 5 reasons being in-office is beneficial for junior developers, including:</strong></p><ul><li><p>Expanding your network and gaining a competitive edge</p></li><li><p>Immersing yourself in company culture</p></li><li><p>Seeing the big picture of the development process</p></li><li><p>Learning directly from senior developers</p></li><li><p>Building essential soft skills for long-term success</p></li></ul><p>Let&#8217;s go.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><blockquote><p><strong>&nbsp;In-person work is on the rise:<br><br></strong>While hybrid work remains steady (with 42% of developers sticking to a mix of home and office), something surprising is happening: more developers are heading back to the office. In fact, in-person work has grown for the third year straight &#8212; rising from 15% in 2022 to 20% this year.*</p><p><em>*2024 Stack Overflow Developer Survey</em></p></blockquote><h2>5 reasons being in-office is great for new developers</h2><h3>1. You&#8217;ll expand your network &#8211; and gain a competitive edge</h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!G8PL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!G8PL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 424w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 848w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!G8PL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg" width="270" height="209" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:209,&quot;width&quot;:270,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!G8PL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 424w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 848w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!G8PL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F84227011-f449-4c74-8bd4-3f5185dcf054_270x209.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Being in the office gives you a critical edge by helping you build a <strong>stronger</strong>, <strong>more personal network</strong> &#8211; one that can open doors to new opportunities and accelerate your career.</p><p>As opposed to remote interactions, in-office networking happens naturally and spontaneously. Grabbing lunch, chatting by the coffee machine, or joining after-work activities lets you connect with more people&nbsp;&#8212;&nbsp;including those who aren&#8217;t on your immediate team.<strong>&nbsp;</strong></p><p>What&#8217;s more, being physically present gets you <strong>more visibility for your work</strong> and contributions. Through your contributions in meetings, close collaborations on projects, and eagerness to learn, it'll be easier to make a lasting impression on others.&nbsp;</p><p><strong>And here&#8217;s the real advantage:</strong> a strong network helps you get <strong>valuable referrals</strong>, which lead to new roles and project opportunities later down the line.</p><p><strong>Tips to maximize your in-office time:</strong></p><ul><li><p>Join lunch or coffee breaks to meet people outside your team</p></li><li><p>Ask questions and seek advice from senior devs</p></li><li><p>Attend in-person company events, meetups, or after-work activities</p></li><li><p>Volunteer for projects that expose you to different teams and leaders</p></li></ul><h3>2. You&#8217;ll integrate with company culture</h3><p>Ever feel disconnected from your company&#8217;s culture while working remotely? <strong>You&#8217;re not alone.&nbsp;</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!w3RN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!w3RN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 424w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 848w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!w3RN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg" width="495" height="306" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:306,&quot;width&quot;:495,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43929,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!w3RN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 424w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 848w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!w3RN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8231e4d-cc80-4a1a-b82f-a464dde63aaa_495x306.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Without in-person interaction, it&#8217;s easy to miss out on what truly makes the company unique &#8212; and to feel isolated from the larger mission.</p><p>Company culture is <strong>more than just a set of values</strong> to memorize before an interview: it&#8217;s the foundation for how leadership <strong>makes decisions</strong> and <strong>sets goals</strong>. For example, one of Google&#8217;s core values is &#8220;psychological safety,&#8221; which encourages employees to speak up without fear of repercussions. This value shapes how teams collaborate, solve problems, and work toward shared goals.&nbsp;</p><p>Being in the office allows you to <strong>witness how these values </strong>unite your team towards a shared goal.</p><p>Company values are the qualities you&#8217;ll be evaluated on in performance reviews. <strong>To move up within a company you need to embody and grow into them</strong> &#8212; and that&#8217;s much easier when you&#8217;re immersed in them daily, working alongside your team in the office.</p><h3>3. You&#8217;ll get a big-picture view of the development process</h3><p>In-office work gives you a front-row seat to the entire development lifecycle. You&#8217;ll begin to understand the bigger picture &#8212; <strong>how your work fits into the larger flow</strong>, from initial idea to the final product. It&#8217;s hard to get that same depth of understanding when every interaction is planned and structured over Zoom or Teams.</p><p>For example, imagine working on a small feature that integrates into a larger product release. In the office, you can observe discussions between teams about how that feature impacts other components of the system, how design and engineering teams collaborate to troubleshoot issues, and how deployment is managed.&nbsp;</p><p>These spontaneous interactions provide a deeper understanding of how everything fits together.</p><p><strong>Some tips for ways to learn:</strong></p><ul><li><p>Attend project meetings or sit in on sprint planning to see how tasks are prioritize, and how projects come together</p></li><li><p>Volunteer to help with testing or deployment to understand how products are tested and launched</p></li></ul><h3>4. You&#8217;ll learn from senior devs</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Azzc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Azzc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Azzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg" width="366" height="385" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:385,&quot;width&quot;:366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31630,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Azzc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Azzc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6e7972e3-1030-4e03-af8b-7d188a285e5b_366x385.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the biggest advantages of being in the office is the <strong>proximity to senior developers</strong>. As a junior dev, you&#8217;re often focused on smaller tasks with short deadlines. But being in the same space as senior developers lets you observe how they handle long-term, high-priority projects.</p><p>Early in my career, watching senior devs tackle complex system issues gave me insights I wouldn&#8217;t have gained on my own. Their approach &#8211; from diagnosing the root cause to testing solutions &#8212; expanded my understanding of the full development cycle.</p><p>By witnessing how senior devs work firsthand, you&#8217;ll see why being a developer isn&#8217;t just about coding &#8212; it&#8217;s about <strong>solving challenges</strong>, making difficult <strong>trade-offs</strong>, and <strong>leading teams</strong>. These in-person learning moments are invaluable, and they&#8217;re much harder to come by remotely.</p><p><strong>How to make the most of your time with senior devs:</strong></p><ul><li><p>Shadow their work or sit in on code reviews</p></li><li><p>Ask them to walk you through a challenge they solved</p></li><li><p>Offer to help with a small task</p></li><li><p>Jot down key takeaways from what you&#8217;ve learned</p></li></ul><h3>5. You&#8217;ll build your soft skills</h3><p>Some things Zoom just can&#8217;t teach you.</p><p>While you can pick up technical skills on your own, in-person work is the best way to build soft skills in real time, helping you grow into a <a href="https://www.educative.io/blog/characteristics-outstanding-developer?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">well-rounded developer</a> who&#8217;s prepared to lead and collaborate effectively.</p><p>Soft skills are skills that involve working with people, and include:</p><ul><li><p>Communication</p></li><li><p>Collaboration</p></li><li><p>Handling feedback well</p></li><li><p>Navigating conflict</p></li></ul><p><strong>Soft skills are just as important as technical expertise</strong>. They are non-negotiable for more senior developers who are in leadership roles. Even a highly data-centric role like data scientist has to have the soft skill of "<a href="https://www.educative.io/blog/data-storytelling?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">data storytelling</a>" to present their findings to leadership in a way that they understand.&nbsp;</p><p>Think about it: If soft skills weren't such a game changer for developers, then why would we put candidates through behavioral interviews?</p><h2>Bottom line: Embrace being in-person (or be left behind)</h2><p>Here&#8217;s the reality: being in the office will likely give you more career opportunities than working remotely.</p><p>While remote has its perks, if you&#8217;re a new developer looking to level up quickly, the opportunities for growth and relationship building you&#8217;ll get in person are<strong> hard to replicate online.</strong></p><p>Sure, the comfort of working from home is tempting &#8211; but if it's slowing your growth, <strong>is it really worth it?</strong></p><p>So, take the leap. Ask for more in-office days. Volunteer for on-site projects. And start building the connections, skills, and insights that will accelerate your career.</p><p>Your future senior developer self will thank you.</p><p>If you&#8217;re looking for other ways to level up your skills, Educative&#8217;s <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a> courses can help you master the technical skills you&#8217;ll need along the way. Then, you can pair that learning with in-office experiences for the ultimate career growth trajectory.</p><p><em>Happy learning!</em></p><p>&#8212; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[5 steps to build job-ready cloud skills]]></title><description><![CDATA[Even new developers need cloud skills to stand out. Here's how to get there &#8212; one step at a time.]]></description><link>https://www.letterstocoders.com/p/5-steps-to-build-job-ready-cloud</link><guid isPermaLink="false">https://www.letterstocoders.com/p/5-steps-to-build-job-ready-cloud</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 09 Oct 2024 15:01:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e8140849-8010-417d-ac8b-c5fbe6221763_830x1016.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>Note: This is the last of the cloud series. We've already explored the <strong><a href="https://www.letterstocoders.com/p/the-cloud-will-play-a-role-in-your">basics of the cloud</a></strong> and <strong><a href="https://www.letterstocoders.com/p/8-out-of-10-devs-use-the-cloud-what">how developers use the cloud</a></strong>. This week, I'll share how you can start building the cloud skills that will set you apart.&nbsp;</em></p><div><hr></div><p>The cloud has completely transformed how developers work. It lets us quickly deploy apps, collaborate globally, and access advanced technologies like AI &#8212; all from any device with an internet connection. By bringing so much to our fingertips, the cloud is one of the major technologies that makes today a great time to learn to code.&nbsp;</p><p>Cloud technologies already underpin much of the developer workflow. As a new developer, it's essential that you learn how to leverage these technologies &#8212;&nbsp;learning cloud skills will<strong> set you apart and position you to contribute to cutting-edge projects in any role</strong>.</p><p>You may be wondering: <em>How do I get started?&nbsp;</em></p><p><em>&#8230;</em>I'll help with that.</p><p>Today, I'll outline 5 steps to help you build cloud skills:</p><ol><li><p>Solidify your programming basics</p></li><li><p>Build your cloud fundamentals</p></li><li><p>Identify the first cloud skill(s) to learn</p></li><li><p>Get hands-on practice</p></li><li><p>Optional: Get certified</p></li></ol><p>Learning cloud skills as a beginner might feel overwhelming. Just know that you don&#8217;t need to rush: what I'm going to lay out today is a <strong>long-term plan</strong> that will take you from programming proficiency to being a cloud-ready developer.&nbsp;</p><p>Let's jump in.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>5 steps to build cloud skills</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pzSg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pzSg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pzSg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg" width="600" height="600" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:600,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89381,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pzSg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 424w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 848w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!pzSg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24e04c74-6e5d-424d-9d50-f84bc86d9092_600x600.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>1. First, build your programming basics.</h2><p>This is likely where you are right now, and I absolutely recommend spending as much time as you need to feel comfortable here.</p><p>Your to-do list here would look like this:</p><ul><li><p>Learn a core programming language</p></li><li><p>Understand algorithms and data structures&nbsp;</p></li><li><p>Understand programming concepts such as conditionals, loops, and functions</p></li><li><p>Build your first small applications</p></li><li><p>Get practice with debugging</p></li></ul><p>Building a foundation is most important before jumping into cloud skills. That said, there are <strong>two aspects of the cloud that are accessible to you</strong> in this stage.&nbsp;</p><p>First, if you're feeling curious, you can dabble into the next step of learning high-level cloud basics (but if you feel overwhelmed, don't push yourself).</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P4iU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P4iU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 424w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 848w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P4iU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg" width="180" height="180" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:180,&quot;width&quot;:180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5459,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P4iU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 424w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 848w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!P4iU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc8e7-b5fa-451a-ab94-a950b6f314ce_180x180.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Second, you can get a headstart with one of the most popular cloud tools used by professional developers: Git. Git is used by professional developers to collaborate, debug, and much more.&nbsp;</p><p>As a learner, starting with Git gets you comfortable with an industry standard tool, and will also help you to do the following in your learning journey:</p><ul><li><p><strong>Stay organized</strong>: You can save your code to the cloud through Git, which lets you access that code across devices <em>and</em> have backup code in case your computer crashes</p></li><li><p><strong>Troubleshoot code</strong>: You can review or even revert to previous versions of your code if you encounter a bug</p></li><li><p><strong>Work with others</strong>: Git is helpful for collaboration on group projects or contributing to open-source</p></li></ul><p>Once you're comfortable building small applications, you can start digging into cloud fundamentals.</p><h2>2. Build your cloud fundamentals</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LY8v!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LY8v!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LY8v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg" width="176" height="169" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:169,&quot;width&quot;:176,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4955,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LY8v!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LY8v!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa802b334-f98c-46cb-a039-c362c7c0a0c1_176x169.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>There's a lot to learn, so start with the birds-eye view, then zoom into cloud components.</p><p>First off, you'll want to start with <strong>high-level cloud basics</strong>:</p><ul><li><p><em>Why </em>businesses use cloud platforms and why they are so integral to our tech landscape</p></li><li><p>Cloud types (public, private, hybrid)</p></li><li><p>Cloud service models (IaaS, PaaS, SaaS, serverless computing)</p></li><li><p>Different cloud providers (AWS, Azure, Google Cloud Platform)</p></li><li><p>The concept of cloud security and why it's important</p></li></ul><blockquote><p>I covered some of the above points in my <a href="https://www.letterstocoders.com/p/the-cloud-will-play-a-role-in-your">introductory post on the cloud</a>.</p></blockquote><p>After covering these basics, you can look under the hood to some of the<strong> components and technologies</strong> that power cloud computing:</p><ul><li><p>Networking basics (virtual machines, containers, Kubernetes, Virtual Private Clouds, load balancing)</p></li><li><p>Core cloud services like compute (EC2), storage (S3), and databases (RDS)</p></li></ul><blockquote><p>Remember you have a world of resources at your disposal to learn these, from videos and blogs to courses and documentation. Choose the ones that are right for your learning style.</p></blockquote><h2>3. Identify the first cloud skill(s) you should learn</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OHV1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OHV1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OHV1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg" width="236" height="254" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:254,&quot;width&quot;:236,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:6906,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OHV1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OHV1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F755d3aad-fc12-4257-a253-fe2e5c6f3fc4_236x254.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>As developers, web developers and ML engineer don't do the same work &#8212;&nbsp;but they both use cloud tools to be more efficient.&nbsp;</p><p><strong>Different cloud skills are relevant to different specializations</strong>. Once you know which type of developer you'd like to be, you can then target the cloud skills that you should get started with.</p><p>For example, here are some first steps for a few different career paths:</p><ul><li><p><strong>Web developer</strong>: Deploying a small project on AWS. This involves several important subskills, including managing a virtual server</p></li><li><p><strong>Data engineer: </strong>Exploring cloud data storage solutions like Amazon S3 or Google Cloud Storage</p></li><li><p><strong>AI/ML engineer: </strong>Training your first model with ML services like AWS SageMaker or Google AI Platform</p></li><li><p><strong>DevOps engineer: </strong>Automating the deployment process using Infrastructure as Code (IaC) tools like AWS CloudFormation or Terraform&nbsp;</p></li><li><p><strong>Cloud security specialist: </strong>Begin with Identity and Access Management (IAM), which controls who can access what in the cloud</p></li><li><p><strong>Cloud architect: </strong>Explore high-availability and fault-tolerant architecture by using services like AWS Auto Scaling and Load Balancer</p></li></ul><p>If you&#8217;re not sure which cloud skills are relevant to your career goals, I recommend checking out qualifications listed on junior level job postings for your desired roles/companies.&nbsp;</p><p>These first steps may seem daunting &#8212; especially if you're a self-taught developer &#8212; but <strong>you don't have to do it alone</strong>. Be sure to make use of the many guided tutorials and resources that are available online.&nbsp;</p><blockquote><p>In case you missed it, I explored <a href="https://www.letterstocoders.com/p/8-out-of-10-devs-use-the-cloud-what">how different developer roles apply cloud skills</a> last week.</p></blockquote><h2>4. Get hands-on practice</h2><p>Once you know some of the skills that will be relevant to your career goals, you're ready for the most transformative step: practice.</p><p>There are a number of ways to get hands-on experience with cloud skills:</p><ul><li><p><strong>Build projects</strong>: You can find many guided projects online, or tackle one on your own accord. Start simple, then gradually increase the complexity as you learn more.</p></li><li><p><strong>Try Cloud Labs</strong>: Educative's <strong><a href="https://www.educative.io/cloudlabs?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cloud Labs</a></strong> are guided projects that you can use to build cloud skills with one of the most popular cloud platforms: AWS (no AWS account necessary).&nbsp;</p></li><li><p><strong>Use free cloud tiers</strong>: Most big platforms offer free tiers and trials to help you explore cloud services. Some platforms even offer hands-on labs and challenges that cover cloud basics and more advanced setups (e.g., AWS Skill Builder, Azure Learn, Google Cloud Skill Boost).</p></li><li><p><strong>Open source involvement</strong>: Contribute to open source projects that use cloud technologies. This will not only help you learn new skills but also give you experience working with teams.</p></li></ul><blockquote><p>Hands-on practice will help you <strong>internalize your skills</strong> while adding tangible outcomes to your developer portfolio.</p></blockquote><h2>5. Get certified (optional)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-TuH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-TuH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-TuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg" width="259" height="292" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:292,&quot;width&quot;:259,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5408,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-TuH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-TuH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30d95ab8-80ac-4063-9652-f1bc169ab07f_259x292.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Getting certified in cloud technologies is optional, but it&#8217;s a great way to demonstrate your skills on your LinkedIn and resume.</p><p>Most major cloud platforms offer certification programs, with some beginner-level certifications being:&nbsp;</p><ul><li><p>AWS Certified Cloud Practitioner</p></li><li><p>Azure Fundamentals</p></li><li><p>Google Cloud Associate Engineer</p></li></ul><p>However, these certification exams have unique structures, so it's ideal to prepare for them with a specific certification prep course. For this, Educative has a few courses I recommend:</p><ul><li><p><a href="https://www.educative.io/courses/google-cloud-assoc-certification?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cracking the Google Cloud Engineer Certification</a></p></li><li><p><a href="https://www.educative.io/courses/master-aws-certified-solutions-architect-associate-saa-c03-exam?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Master AWS Certified Solutions Architect Associate SAA-C03 Exam</a></p></li></ul><h2>One step at a time</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XqOU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XqOU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 424w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 848w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 1272w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XqOU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png" width="301" height="194" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:194,&quot;width&quot;:301,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XqOU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 424w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 848w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 1272w, https://substackcdn.com/image/fetch/$s_!XqOU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffcbdb643-7842-4e87-a3d1-77cbf0964231_301x194.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Don&#8217;t feel like you need to learn everything at once. Start small, take actionable steps, and gradually expand your skill set as you explore different cloud tools and concepts. The fun part? There&#8217;s always something new to learn. Whether it&#8217;s diving into a new cloud service or experimenting with cutting-edge AI tools, the cloud is always moving forward &#8212; and so should you.</p><p>As a reminder, Educative has plenty of beginner-friendly courses to help you explore more of the cloud. Even if you're still learning programming basics, you can start learning some cloud fundamentals in the course: <a href="https://www.educative.io/courses/cloud-computing-fundamentals?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cloud Computing Fundamentals</a>.&nbsp;&nbsp;&nbsp;</p><p>If you're on the job hunt, adding proficiency with cloud services like AWS is a great place to start. You can get hands-on with AWS through guided projects at <a href="https://www.educative.io/cloudlabs?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Educative's Cloud Labs</a> (without needing an AWS account).</p><p><em>Good luck, and happy learning!</em></p><p><em>&#8212; Fahim</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[8 out of 10 devs use the cloud. What does that mean for you?]]></title><description><![CDATA[Cloud skills are non-negotiable in modern software development. Here&#8217;s how developers across the industry are using the cloud.]]></description><link>https://www.letterstocoders.com/p/8-out-of-10-devs-use-the-cloud-what</link><guid isPermaLink="false">https://www.letterstocoders.com/p/8-out-of-10-devs-use-the-cloud-what</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 02 Oct 2024 17:59:36 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c6d93cc6-7779-4e25-9e52-1fe271fdfa3f_277x272.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Note:</strong> In case you missed it, my last post <strong><a href="https://www.letterstocoders.com/p/the-cloud-will-play-a-role-in-your">explored the basics of the cloud and how it operates</a></strong>. Today, we&#8217;re focused on HOW developers use the cloud for their work, including exploring career specializations where cloud skills are non-negotiable. And stay tuned for next week, where I&#8217;ll share exactly what skills you'll need (and how to start building them).</em></p><div><hr></div><p>By now, most companies &#8212; from small startups to Fortune 500 giants &#8212; have embraced cloud services. As a result, most developers have embraced cloud services for their daily workflows.&nbsp;</p><p>This shift to cloud is for the better.</p><p>The cloud lets developers easily store data and access powerful computing resources. In the past, developers had to manage physical servers (which was cumbersome, to say the least). Today, the cloud automates essential tasks like infrastructure management, making it easy for developers to scale apps, push updates, and more.</p><p>By freeing developers from hardware maintenance, <strong>the cloud lets us focus on what matters most</strong>: building features and solving real problems. In today's cloud-driven world, developers who know how to leverage the cloud are in high demand.</p><p>But I get it &#8212;&nbsp;"leveraging the cloud" can feel a bit abstract. After all, the cloud isn&#8217;t even something you can see or touch. Today, I want to make it more concrete, so that you'll have a better idea of how the cloud will play a role in your future coding career.&nbsp;</p><p>We'll cover:</p><ul><li><p>Why developers use the cloud</p></li><li><p>What it actually means to leverage the cloud</p></li><li><p>How the cloud changed daily work for different developers&nbsp;</p></li></ul><p>Let's get started.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Which developers use the cloud (and why)?</h2><p>Most modern applications rely on cloud-based services for scalability, storage, and infrastructure, which means that most developers use cloud services.</p><p>You don't have to be a &#8220;cloud specialist," like a Cloud Architect, to use the cloud. After all, most devs aren't cloud specialists &#8212;&nbsp;and yet, <strong>86% of professional developers</strong> work in cloud or hybrid environments, according to the latest Stack Overflow Developer Survey.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OrjA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OrjA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OrjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg" width="419" height="238" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:238,&quot;width&quot;:419,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21368,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OrjA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OrjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27ed2dfc-21e0-46b2-bc7c-31452fb3f1eb_419x238.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Only a select few roles may <em>not</em> need cloud skills (e.g., Operating System Engineers, who focus on hardware interaction and system optimization). For the rest of developers, the global shift toward cloud computing means we use cloud services for daily workflows.</p><p>Leveraging the cloud means that <strong>your work involves some cloud-based applications, services, or databases</strong>. These cloud-based tools are hugely beneficial.</p><p>The cloud streamlines the development workflow by:</p><ul><li><p>Setting up development environments</p></li><li><p>Managing databases</p></li><li><p>Handling security monitoring</p></li><li><p>Automating processes</p></li><li><p>And more</p></li></ul><p><strong>The result?</strong> Developers get to be more productive (with less elbow grease).</p><p>Depending on their roles and responsibilities, different developers use the cloud in unique ways.&nbsp;</p><p>Let&#8217;s explore how three common types of developer roles rely on the cloud to work more efficiently.</p><h2>How 3 different devs use the cloud</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0Uis!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0Uis!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0Uis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg" width="365" height="274" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:274,&quot;width&quot;:365,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0Uis!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 424w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 848w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!0Uis!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff0fd28b9-90b8-4ce9-aad5-f9177a7a2cda_365x274.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Remember: you don't have to be a cloud specialist to work with cloud. In fact, the relevance of the cloud for non-specialist roles really demonstrates the <strong>widespread benefit of cloud technology</strong> for developers in general.&nbsp;</p><p>So, let&#8217;s take a quick look at how a few common developer roles use cloud technology, and why it benefits them.</p><h3>1. Web developer</h3><p>Web developers build and maintain websites, focusing on the front-end (what users see) or the back-end (technical operations behind the scenes). Sometimes, they do both.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VJxm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VJxm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VJxm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg" width="414" height="252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:252,&quot;width&quot;:414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:12865,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VJxm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VJxm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76a5e931-20d6-459a-9c73-206ba0a3a7a8_414x252.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Before the cloud, web developers had to set up and maintain their own physical machines (servers) to run their websites, which involved more manual, technical work and higher costs.</p><p>Now, cloud platforms handle much of that for them. Developers can host their applications online by using the internet instead of physical servers, and the cloud automatically adds or reduces computing power depending on how many people are using the app at a time &#8211; helping ensure both smooth performance and lower costs.</p><p>Web developers use cloud tools to:</p><ul><li><p><strong>Launch apps quickly:</strong> Deploy new apps or updates using tools like AWS Elastic Beanstalk, without worrying about complicated server setups.</p></li><li><p><strong>Ensure sites perform well: </strong>With cloud tools like AWS Auto Scaling and CloudFront, web devs can keep websites running fast and smoothly, even during traffic spikes or issues.</p></li><li><p><strong>Save money:</strong> Cloud platforms charge for resources used, making them budget-friendly. Tools like AWS Cost Explorer or Azure Cost Management help both individual developers and companies monitor their use and optimize costs accordingly.</p></li></ul><p></p><h3><strong>2. DevOps engineer </strong>(<strong>Dev</strong>eloper <strong>Op</strong>erations)</h3><p>DevOps engineers create systems that automatically handle tasks like testing, deployment, and infrastructure management. DevOps engineers ensure efficient app releases, help ensure that apps work well with other digital tools and services, and keep track of overall system operations.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-CXU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-CXU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-CXU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg" width="277" height="272" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:272,&quot;width&quot;:277,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-CXU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-CXU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b3c0b0f-45d0-46d9-b72d-d79442fed977_277x272.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Like web developers, DevOps engineers once had to manage physical servers and infrastructure by hand, which was complex and time-consuming. Thanks to the cloud, today&#8217;s DevOps engineers don&#8217;t have to worry about physical infrastructure. By automating tasks like app building, testing, deployment, and scaling, cloud platforms help reduce manual work for DevOps engineers &#8212;&nbsp;streamlining the overall development process.</p><p>DevOps engineers can leverage the cloud to:</p><ul><li><p><strong>Automate testing and publishing:</strong> Using cloud tools like Jenkins to run tests and launch updates, reducing manual work.</p></li><li><p><strong>Scale apps:</strong> Using services like AWS Auto Scaling or Kubernetes to add or reduce resources (like servers) based on how many people are using the app, ensuring apps run smoothly.</p></li><li><p><strong>Monitor and log app performance: </strong>Track performance in real-time to identify issues early, with tools like AWS CloudWatch or Azure Monitor<strong><br><br></strong></p></li></ul><h3>3. Data engineer</h3><p>Data engineers are like the stewards of data. They work with large collections of data and set up automated systems that move data from one place to another, preparing it to be analyzed and used for reports.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vSdN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vSdN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vSdN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg" width="349" height="268" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:268,&quot;width&quot;:349,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:31056,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vSdN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vSdN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d00e764-3d64-45cf-9c56-07f6f60ca663_349x268.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The role of data engineer exists purely because the cloud made <strong>Big Data</strong> possible.</p><p><a href="https://www.educative.io/blog/what-is-big-data?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Big Data</a> refers to the massive amounts of information collected from interconnected apps and devices. Storing and processing all this data would have been nearly impossible using only pre-cloud technology like physical servers, but now, the cloud now enables both processing and analysis to drive decision-making. Data engineers play a key role in organizing and preparing data to provide accurate insights for leaders.</p><p>Data engineers take advantage of cloud tools to:</p><ul><li><p><strong>Process large amounts of data quickly:</strong> Handle and analyze datasets faster than a regular computer or server, with tools like AWS EMR or Google BigQuery.</p></li><li><p><strong>Automate how data moves between systems:</strong> Set up automated processes to prepare data for analysis with tools like AWS Glue or Google Cloud Dataflow.</p></li><li><p><strong>Automatically adjust resources:</strong> Leveraging cloud services like AWS Lambda or Azure Data Factory to ensure the right amount of computing power is available when needed. These tools scale up when there&#8217;s a lot of data to process, and scale down when there's less, so you don&#8217;t have to manage it manually.</p></li></ul><blockquote><p><em>Fun fact: Data engineering is a somewhat newer role, compared to web development &#8211; it exists primarily because of the rise of cloud computing!</em></p></blockquote><h2>Get your head in the cloud(s)</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TFeD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TFeD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TFeD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg" width="315" height="320" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:320,&quot;width&quot;:315,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TFeD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TFeD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6346dabc-c820-44db-b43f-df7db8a5b8a2_315x320.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The cloud is a <strong>career multiplier</strong>, offering countless ways and roles where developers interact with cloud technology. While it may still seem a little abstract at this stage, adding the right cloud skills to your developer toolkit is one of the most powerful steps you can take.</p><p>In next week&#8217;s post, I'll give actionable tips on how you can learn cloud skills that help you excel in your career (and how to get some hands-on practice)</p><p>In the meantime, you can keep building cloud computing foundations with Educative's hands-on course: <a href="https://www.educative.io/courses/cloud-computing-fundamentals?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cloud Computing Fundamentals</a>.&nbsp;</p><p><em>Happy learning!</em></p><p><em>&#8212; Fahim</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The cloud WILL play a role in your coding journey. Here's how. ]]></title><description><![CDATA[Want to become a successful developer in 2024? You need to understand the cloud.]]></description><link>https://www.letterstocoders.com/p/the-cloud-will-play-a-role-in-your</link><guid isPermaLink="false">https://www.letterstocoders.com/p/the-cloud-will-play-a-role-in-your</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 25 Sep 2024 18:16:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!106Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The tech landscape experiences a major paradigm shift every few years. When I started my career in the 2000s, <strong>cloud computing</strong> was the major transformation in the industry. In fact, as a young software engineer at Microsoft, I had the honor of working on Project Red Dog, the internal code name for Azure &#8212; an experience that would shape my career in immeasurable ways.&nbsp;</p><p>Today, the paradigm shift is AI. However, today's AI boom would be impossible without the cloud &#8212; AI systems rely on cloud infrastructure for the computing power, scalability, and storage that complex AI models require. As it turns out, the cloud is <strong>integral to nearly all internet technology today as we know it</strong>. Whether you're streaming shows on Netflix or working in Google Drive, you're likely interacting with the cloud every day, whether or not you realize it.</p><p>Cloud technology is such a cornerstone of modern software development, that any new developer should have at least a working understanding of cloud computing fundamentals (eventually, you should also learn how to leverage the cloud for your applications, too). That's why I'm spending the next three posts focusing on the cloud, and cloud-related skills you'll need to succeed.</p><p>This week is the groundwork. I'll introduce cloud fundamentals, and why the cloud is important:</p><ul><li><p>What is cloud computing?</p></li><li><p>A quick history of the cloud</p></li><li><p>How the cloud affects everyday life</p></li><li><p>Cloud computing 101&nbsp;&nbsp;</p></li></ul><p>Let's get started.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>What is cloud computing?</strong></h2><p><strong>Cloud computing</strong> is a model that lets us access compute resources &#8212; like storage and processing power &#8212; over the internet, rather than on a local machine.&nbsp;</p><p>Before the cloud, companies had to own and maintain their own servers (large, expensive computers) to store data and run applications. This meant only the biggest companies could afford these resources. Luckily, the cloud has democratized access to those powerful resources, making them available to more people.&nbsp;</p><blockquote><p>The term "cloud computing" is used interchangeably with "cloud."</p></blockquote><p>To understand the cloud a little better, let's look at the stages that led to the cloud era.</p><h2><strong>A quick history of the cloud</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wJrN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wJrN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wJrN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg" width="715" height="285" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:285,&quot;width&quot;:715,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:36077,&quot;alt&quot;:&quot;history of cloud&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="history of cloud" title="history of cloud" srcset="https://substackcdn.com/image/fetch/$s_!wJrN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wJrN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9c760cb4-8a80-41b7-8052-f99491b45592_715x285.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It took roughly 4 stages for us to reach the cloud era.&nbsp;</p><h4><strong>1) Mainframes</strong></h4><p>In the early days of computing, we used mainframe computers. Mainframes were <strong>huge, expensive machines</strong> that filled entire rooms and required experts to operate them.&nbsp;</p><blockquote><p>People and companies had to rent time slots to run their programs on a mainframe, a concept called time-sharing.</p></blockquote><h4><strong>2) Networks and personal computers</strong></h4><p>As technology progressed, networks were created to <strong>connect computers over distances</strong>. This allowed users to access computers remotely&#8212;without having to be physically near the machine. Around the same time, personal computers (PCs) became affordable, so <strong>individuals could have their own machines</strong> at home or work instead of relying on mainframes.</p><h4><strong>3) Virtualization</strong></h4><p>Eventually, businesses started using virtualization, a technology that lets you create <strong>virtual machines</strong> (VMs). A VM is software that <strong>acts like a real computer</strong>, and runs inside another physical computer. Rather than buying several computers, <a href="https://www.educative.io/blog/what-is-virtualization?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">virtualization</a> allowed companies to run multiple VMs on one computer, which could each be rented out to clients or used for different tasks.</p><h4><strong>4) The cloud era</strong></h4><p><a href="https://www.educative.io/blog/cloud-computing-benefits-challanges-best-practices?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cloud computing</a> took virtualization to the next level. In cloud computing, cloud service providers (CSPs) like Amazon, Google, and Microsoft operate massive<strong> data centers</strong> full of physical computers. Through virtualization, these data centers run thousands of virtual machines among their computers, which they <strong>rent to companies or individuals</strong>. Cloud computing shifted the responsibility of managing and maintaining physical infrastructure to CSPs, rather than developers.&nbsp;</p><blockquote><p>Instead of renting time on mainframes, the cloud era gives us the option of renting more accessible and scalable virtual machines in the cloud.</p></blockquote><h2>How does the cloud affect everyday life?</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!106Q!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!106Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 424w, https://substackcdn.com/image/fetch/$s_!106Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 848w, https://substackcdn.com/image/fetch/$s_!106Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!106Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!106Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg" width="489" height="366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:366,&quot;width&quot;:489,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:54372,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!106Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 424w, https://substackcdn.com/image/fetch/$s_!106Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 848w, https://substackcdn.com/image/fetch/$s_!106Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!106Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721d5dce-e1fb-4787-bbca-9167ca0de906_489x366.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The cloud powers much of what we do daily. Whether you're ordering food through DoorDash or getting real-time traffic updates through Maps, the cloud makes essential tools more fast, accessible, and flexible.</p><p>Cloud services benefit <strong>both users and developers</strong>, and can consist of storage, networks, apps, and more.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wB6x!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wB6x!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wB6x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg" width="294" height="443" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:443,&quot;width&quot;:294,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23216,&quot;alt&quot;:&quot;cloud diagram&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="cloud diagram" title="cloud diagram" srcset="https://substackcdn.com/image/fetch/$s_!wB6x!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wB6x!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F734ef9ba-afbd-4528-9a10-c9f875fd612a_294x443.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, anyone can access the massive computing power of cloud providers to run applications, host websites, or store data. As a dev, the cloud lets you create and publish apps without needing physical servers. As a user, you can access your favorite apps and services from anywhere, provided you have internet access.</p><blockquote><p>By allowing us to drop worries about hardware limitations, the cloud has allowed developers to focus their attention on building highly effective solutions.&nbsp;</p></blockquote><p>Now that we&#8217;ve covered the basics, let&#8217;s dive into how the cloud is structured and the services it offers.</p><h2>Cloud computing 101</h2><h3><strong>Cloud environments: Where is the cloud?</strong></h3><p>There are three main types of cloud environments, which describe the <strong>different ways we access and use cloud services</strong>:</p><ol><li><p><strong>Public clouds</strong> consist of services provided over the internet by third-party providers like AWS, Google, or Microsoft Azure.&nbsp;&nbsp;</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6JCf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6JCf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6JCf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg" width="339" height="187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:187,&quot;width&quot;:339,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8329,&quot;alt&quot;:&quot;public cloud&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="public cloud" title="public cloud" srcset="https://substackcdn.com/image/fetch/$s_!6JCf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 424w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 848w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!6JCf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2e591b3-f1e2-4610-805e-399bc1b9d3d0_339x187.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ol start="2"><li><p><strong>Private clouds </strong>are each dedicated clouds for a single organization, either managed internally or hosted by a third-party provider. These are more common for businesses with strict security or compliance requirements.</p></li><li><p><strong>Hybrid clouds </strong>combine both public and private clouds, allowing data and applications to move between them. This allows for more flexibility and resource optimization. Hybrid clouds are common for businesses that want to maintain control over certain systems due to regulatory requirements while benefiting from the scalability provided by the cloud.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OJBN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OJBN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OJBN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg" width="349" height="239" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:239,&quot;width&quot;:349,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9632,&quot;alt&quot;:&quot;hybrid cloud&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="hybrid cloud" title="hybrid cloud" srcset="https://substackcdn.com/image/fetch/$s_!OJBN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 424w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 848w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!OJBN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d6e0810-94fe-42d4-883b-a531b2100edb_349x239.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3><strong>Cloud service models: What is offered on the cloud?</strong></h3><p>Cloud providers offer different services<strong>, </strong>under the following categories:</p><ol><li><p><strong>Infrastructure as a service (IaaS)<br></strong>Think of IaaS as renting computing power. The cloud provider manages the hardware, while you handle what runs on it. For example, Netflix uses AWS (Amazon Web Services) to power its streaming service.</p></li><li><p><strong>Platform as a service (PaaS)<br></strong>Similar to renting office space that's ready for you to work in, PaaS lets you rent a platform where you can immediately build applications. All you have to do is work on your applications &#8211; the provider does the rest. For instance, Shopify runs its e-commerce work on Google Cloud&#8217;s App Engine so their devs can focus on building features.</p></li><li><p><strong>Software as a service (SaaS)<br></strong>SaaS is when you use software that&#8217;s hosted in the cloud. You access it via a web browser or other devices, without needing to install anything. Apps like Gmail or Google Docs are examples of SaaS.</p></li><li><p><strong>Serverless computing<br></strong>Serverless computing means you write code, and you don&#8217;t need to worry about having enough servers for low or high traffic. Instead, the cloud provider automatically scales to handle changes in demand. For example, AirBnB is one of many companies using serverless computing.</p></li></ol><h2><strong>So, which cloud skills should you learn?</strong></h2><p>From collaboration to innovation, the cloud opens doors to possibilities that were unimaginable just a few decades ago. Thanks to the cloud, cutting-edge technology is more accessible and affordable, which makes it <strong>easier for you to make great solutions as a developer</strong>.</p><p>Once you've started building apps with confidence, you can start to add cloud skills. For example:&nbsp;</p><ul><li><p>Web developers might add to their app's functionalities with cloud service APIs</p></li><li><p>Systems engineers can use services like Elastic Beanstalk to more efficiently scale systems</p></li></ul><p>It can be a bit abstract to imagine how devs use something as ubiquitous as the cloud to do their work. To clarify this, <strong>I'll introduce just </strong><em><strong>how</strong></em><strong> developers use the cloud next week</strong>, so that you can understand <em>which</em> cloud skills you&#8217;ll eventually need to learn.</p><p>If you want to learn more about cloud computing, I recommend checking out Educative's course, which takes today's discussion much further: <a href="https://www.educative.io/courses/cloud-computing-fundamentals?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Cloud Computing Fundamentals</a>.&nbsp;</p><p><em>Happy learning!</em></p><p><em>- Fahim</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Conditionals 101: The building blocks of adaptive programs]]></title><description><![CDATA[Learning conditionals was an "aha" moment for me. I hope it'll be the same for you.]]></description><link>https://www.letterstocoders.com/p/conditionals-programming</link><guid isPermaLink="false">https://www.letterstocoders.com/p/conditionals-programming</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 18 Sep 2024 17:48:00 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/753b3d74-99e2-4f20-8bdd-1065623a2dc8_294x282.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine this: It&#8217;s an autumn morning, and you&#8217;re about to leave the house. You pause at the door and think, &#8220;If it&#8217;s raining, I&#8217;ll grab my rain boots; otherwise, sneakers will do.&#8221;</p><p>That simple <strong>decision-making process mirrors how conditionals work</strong> in programming.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Learning conditionals was something of an &#8220;aha!&#8221; moment for me as a student. I felt like I had unlocked a new dimension in programming. Suddenly, my code could do more than follow a linear sequence &#8211; it came alive and could adjust to different inputs. That&#8217;s when I knew I could create things capable of solving complex, real-world problems. What a feeling!</p><p>Learning conditionals will do that for you, too. Conditionals are a fundamental part of computer programming that <strong>allow your code to respond dynamically</strong> to different situations. Instead of following fixed instructions, your code can change behavior depending on specific circumstances &#8211; making it more intelligent, flexible, and responsive.</p><p>Today, I&#8217;ll explore how conditionals can help you solve real-world challenges, using examples in Python. Then I'll give you some next steps to start practicing your use of conditionals.&nbsp;</p><h2>When is it time to learn conditionals?</h2><p>So, when would you be ready to learn conditionals? Once you&#8217;ve gotten the hang of programming basics like sequential code, variables, data types, and handling input and output. </p><p>As you encounter more complex situations where your code needs to make decisions, conditionals are your next logical step.</p><h2>Types of conditionals</h2><p>Conditionals come in <strong>various forms</strong>, allowing you to:</p><ul><li><p>Specify actions if a condition is met</p><ul><li><p>Specify alternative actions if said condition <em>isn't</em> met</p></li></ul></li><li><p>Specify actions if certain combinations of conditions are met</p></li></ul><p>Conditionals check for a condition and evaluate as either True or False. Depending on that result, the program can run different blocks of code.&nbsp;</p><p>In Python, <strong>basic conditionals</strong> include:</p><ul><li><p><code>if</code>: Checks if a condition is True, and runs if True</p></li><li><p><code>elif</code>: Checks for a second condition if previous one is False</p></li><li><p><code>else</code>: Executes if the previous <code>if</code> or <code>elif</code> are False</p></li></ul><p>We can also use logical operators like <code>and</code>, <code>or</code>, and <code>not</code> to achieve combinations of conditions (but we won't cover that for today's introduction).</p><p>For example, you can see <code>if</code> , <code>elif</code>, and <code>else</code> working together below.&nbsp;</p><pre><code>x=4

if x&gt;4:
     print("x is greater than 4")
elif x==4:
     print("x is equal to 4")
else:
     print("x is less than 4") </code></pre><p>While these conditionals consist of two lines, as a whole they are referred to as <strong>blocks </strong>(e.g., "if block"). For statements like <code>if</code> and <code>elif</code>, the indented block will only run if the checked condition is True. The <code>else</code> block, on the other hand, runs only if all preceding conditions are False.</p><p>In this blog, we'll focus on <code>if</code> and <code>else</code>. Let&#8217;s get started with a real-world example.</p><h2>Coding for the real world</h2><p>As the problems you solve become more complex, your code will have to adapt. Let's look at an example where conditionals make a simple program capable of handling bigger questions.</p><p>Picture a <strong>ticketing kiosk</strong> at an event. First, we&#8217;ll explore how the program operates without conditionals, and then we&#8217;ll dig into how it changes once we add them.</p><p>In a <strong>basic sequential program</strong>, everyone is charged the same ticket price, regardless of any unique factors.&nbsp;</p><p>Here&#8217;s what that looks like in a flow chart:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!PDHD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!PDHD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!PDHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg" width="264" height="344" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:344,&quot;width&quot;:264,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17399,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!PDHD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 424w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 848w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!PDHD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6078a479-50c2-449c-9c36-f822a702b4d8_264x344.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In coding, that flow chart translates to three lines of code, all executed in order from line 1 to 3. Here&#8217;s what that code would look like in Python:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RBke!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RBke!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 424w, https://substackcdn.com/image/fetch/$s_!RBke!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 848w, https://substackcdn.com/image/fetch/$s_!RBke!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 1272w, https://substackcdn.com/image/fetch/$s_!RBke!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RBke!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif" width="1456" height="242" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:242,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;python conditionals&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="python conditionals" title="python conditionals" srcset="https://substackcdn.com/image/fetch/$s_!RBke!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 424w, https://substackcdn.com/image/fetch/$s_!RBke!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 848w, https://substackcdn.com/image/fetch/$s_!RBke!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 1272w, https://substackcdn.com/image/fetch/$s_!RBke!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12874245-1684-4c99-a0bd-5ccf67a67f1b_1576x262.gif 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>This sequence is pretty straightforward! But <strong>coding, like real life, is rarely that simple</strong>.&nbsp;</p><p>Sometimes, events charge customers a different price for their tickets. For example, prices are sometimes <em>conditional</em> upon the age of the attendee (e.g., children, adults, and seniors).</p><p><strong>Enter: conditionals.</strong></p><p>For the different ticket prices, conditionals will help our program decide ticket prices based on the customer&#8217;s age.&nbsp;</p><p>Here&#8217;s how it works:</p><ul><li><p><code>If</code> the customer is older than 12, they&#8217;ll pay the full adult ticket price.</p></li><li><p><code>Else</code>, if the customer is 12 or younger, they&#8217;ll pay half the adult price.</p></li></ul><p>Next, let&#8217;s update our ticket pricing program using these conditionals.&nbsp;</p><p>Here&#8217;s the updated program sequence:</p><ol><li><p>It checks if age &gt; 12.</p></li><li><p>If the condition is <strong>true</strong>, the <code>if</code> block runs.</p></li><li><p>If the condition is <strong>false</strong>, the <code>else</code> block runs.</p></li></ol><p>In a flow chart, that looks like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2fro!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2fro!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2fro!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2fro!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2fro!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2fro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg" width="294" height="346" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:346,&quot;width&quot;:294,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16374,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2fro!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2fro!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2fro!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2fro!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F501e77a0-bac3-4b1c-be50-631f00a614ce_294x346.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And in Python code, that translates to:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kEpj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kEpj!,w_424,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 424w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_848,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 848w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_1272,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 1272w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_1456,c_limit,f_webp,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kEpj!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif" width="1456" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;python conditionals&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="python conditionals" title="python conditionals" srcset="https://substackcdn.com/image/fetch/$s_!kEpj!,w_424,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 424w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_848,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 848w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_1272,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 1272w, https://substackcdn.com/image/fetch/$s_!kEpj!,w_1456,c_limit,f_auto,q_auto:good,fl_lossy/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcee30c4f-ff6a-4027-ba64-be7d714c9f87_1580x432.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Each time this program runs, <em>either</em> the <code>if</code> condition <em>or</em> the <code>else</code> condition will be executed &#8212; but never both.&nbsp;</p><h2>The do&#8217;s and don&#8217;ts of using conditionals</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h5w-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h5w-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h5w-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg" width="528" height="395" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:395,&quot;width&quot;:528,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:46732,&quot;alt&quot;:&quot;dos and donts conditionals&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="dos and donts conditionals" title="dos and donts conditionals" srcset="https://substackcdn.com/image/fetch/$s_!h5w-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 424w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 848w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!h5w-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe289fae5-d869-4f73-bec5-164583fae766_528x395.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Getting comfortable with conditionals</h2><p>Mastering conditionals will greatly expand the kinds of programs you can write &#8211; your whole brain will light up when they click and you realize that you&#8217;ve written flexible, intelligent code that can make a real-world difference.</p><p>Now that you understand what conditionals are and how they work, it&#8217;s time to get some practice in. A great way to work on what you&#8217;ve learned is to <strong>modify small programs</strong> and make them more dynamic.&nbsp;</p><p>Some beginner-friendly examples of conditionals you can build are:</p><ul><li><p>Using conditionals to check if a number is even or odd:</p></li><li><p>Checking the temperature for weather advice (rain boots again!)</p></li><li><p>A simple password checker</p></li></ul><p>Conditionals are just the foundation to learn more advanced concepts later on in your learning journey. And remember, programming is all about practice and improvement.</p><p>For more in-depth learning, Educative's <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code resources</a> are a great place to get hands-on with programming fundamentals like conditionals in various programming languages.&nbsp;&nbsp;</p><p><em>As always, happy learning!</em></p><p><em>- Fahim</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Want to be a successful dev? 6 underrated traits you'll need ]]></title><description><![CDATA[Spoiler: You probably already have these skills... whether or not you know it!]]></description><link>https://www.letterstocoders.com/p/want-to-be-a-successful-dev-6-underrated</link><guid isPermaLink="false">https://www.letterstocoders.com/p/want-to-be-a-successful-dev-6-underrated</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 11 Sep 2024 18:04:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/008694fe-ab78-4f25-940b-6cccaf67c86c_834x595.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'm going to say something that might sound controversial: The best developers aren't necessarily the best coders.</p><p>Here's what I mean by that.</p><p>When I was hiring software engineers at Meta and Microsoft, we saw many exceptionally talented candidates apply. When evaluating sometimes dozens of technically proficient candidates, <strong>we had to look to other skills as differentiators</strong>.</p><p>So what was the key difference between those who got hired versus those who didn't? It wasn't their technical skills &#8212;&nbsp;it was their <strong>soft skills</strong>.</p><p>Soft skills are personal traits, which differ from technical skills like knowing Python basics. While some may argue that soft skills are innate qualities that you either have or don't, I believe many of these qualities can be cultivated over time.&nbsp;</p><p>Whether you're hunting for your first job or you're learning to code, I wanted to share<strong> 6 surprising traits</strong> that can give you a leg up in your coding journey.</p><p>The best part? I promise you that these qualities will be differentiators when applying and interviewing to industry jobs.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>1. You have a knack for collaboration</h2><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!r1il!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!r1il!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 424w, https://substackcdn.com/image/fetch/$s_!r1il!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 848w, https://substackcdn.com/image/fetch/$s_!r1il!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!r1il!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!r1il!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg" width="244" height="252" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:252,&quot;width&quot;:244,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:8769,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!r1il!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 424w, https://substackcdn.com/image/fetch/$s_!r1il!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 848w, https://substackcdn.com/image/fetch/$s_!r1il!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!r1il!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe8eae32e-f34c-4bb7-8207-653cb434cad4_244x252.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you hoped programming would bring you a quiet career spent solo at your desk, well, I have some bad news: collaboration is essential to being a successful developer.&nbsp;</p><p>Crafting simple and effective solutions is all about teamwork. You will always need to rely on junior and senior developers alike for new ideas, feedback, and support. And that&#8217;s a good thing: <strong>more perspectives make for better software</strong>.</p><p>Everyone can, and should, nurture their collaboration skills. Being a good collaborator involves various sub-skills, such as being open to feedback, communicating proactively, and treating colleagues with respect.</p><p>Once you're in the workforce, you can grow by taking advantage of collaborative activities that are built into developer workflows, like:</p><ul><li><p><a href="https://www.educative.io/blog/code-review-best-practices?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Code reviews</a>, which provide an opportunity for peers to exchange feedback before changing a software&#8217;s code</p></li><li><p>Pair programming, where two developers look at the same screen and share thoughts as they write new lines of code</p></li></ul><p>As a student, you can flex your collaboration skills by working with peers on projects.</p><h2>2. You&#8217;re a creative problem-solver</h2><p>Do you enjoy the process of discovering the right answer just as much as knowing it? If so, you&#8217;re a creative problem-solver.</p><p>Programming is all about problem-solving: a developer's core task is to find optimal ways to approach a solution to a problem. But <strong>add creativity to the mix, and you get innovation</strong>.&nbsp;</p><p>Creative problem-solvers have a knack for crafting intuitive or overlooked solutions to pressing problems. If you have this trait, you can bring an irreplaceable perspective to your team, pointing out solutions that others may have missed.</p><p>Creative problem-solvers also make for excellent entrepreneurs, because they&#8217;re capable of finding fresh ways to address persistent challenges through transformative technologies.</p><p>The great news here is that <strong>you can strengthen your creative problem-solving skills over time</strong>. The better you get at problem-solving, the more prepared you'll be to identify unique and novel approaches to problems&nbsp;(one of the best ways to do this is by practicing logic problems, which I talked about more in <a href="https://www.letterstocoders.com/p/the-missing-piece-in-your-coding">last week's post on problem-solving</a>).</p><h2>3. You enjoy building things</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JUz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JUz0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JUz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg" width="243" height="141" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:141,&quot;width&quot;:243,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4914,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JUz0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JUz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F717a9211-b6d2-40b5-9883-e1f9f389a6be_243x141.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Which of these sounds better to you: exploring the theory of why something works, or seeing something you&#8217;ve created in motion?</p><p>If you picked the second one, you're certainly going to be <strong>fulfilled by your coding career</strong>.&nbsp;</p><p>Many developers (myself included) aren't satisfied with learning theory or abstract concepts alone. They have an itch to get hands-on and build something. Luckily, being a developer lets you work on projects that lead to <strong>tangible outcomes</strong> that change how people interact with technology every day.</p><p>The aptitude for building things is less of a soft skill and more of a trait, but it&#8217;s still something you can grow to enjoy over time, and you&#8217;ll have lots of opportunities to practice and experiment in your career.</p><p>Whether you're optimizing code or improving a user's experience, everything you do as a developer will play a role in getting something great into the hands of the people who need it (and if that's not rewarding, I don't know what is).</p><h2>4. You&#8217;re empathetic</h2><p>At its core, <strong>effective software development is about understanding people</strong>. Ultimately we are building software with and for people. And of course, nothing human-centered will succeed without empathy.</p><p>As a teammate or a leader, empathy equips you to better appreciate or relate to your team&#8217;s feelings, allowing you to better support them or guide them toward success. As a developer, empathy helps you better understand the genuine needs of your end user to create a tailored solution for them.</p><p>Among other things, <em>empathy</em> means you have these abilities:</p><ul><li><p><strong>Active listening</strong>, or the art of being fully present in a conversation. People with this skill recognize a speaker&#8217;s emotions and intent, give their undivided attention, and let speakers finish before responding</p></li><li><p><strong>Switching perspectives, </strong>or the ability to understand someone else&#8217;s viewpoint and its nuances</p></li><li><p><strong>Proactive foresight, </strong>or the mindfulness to anticipate the needs of colleagues and end users alike</p></li></ul><p>Whether empathy and its related skills come naturally to you or not, cultivating them over time can help you become a conscientious, trustworthy developer people want to work with.</p><p>Here&#8217;s a real-world example of empathy&#8217;s impact in coding: through perspective-switching, you can help your teammates better understand your code through effective code comments, the notes you leave in your code to explain your reasoning. Comments are most effective if you are skilled at anticipating your reader's thoughts. The impact of good code comments can range from helping onboard new developers to making debugging easier.</p><h2>5. You're a student at heart</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!h-2E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!h-2E!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 424w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 848w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 1272w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!h-2E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png" width="399" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f813135f-48e2-43e0-9084-b7170d615a51_399x615.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:399,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:289953,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!h-2E!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 424w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 848w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 1272w, https://substackcdn.com/image/fetch/$s_!h-2E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff813135f-48e2-43e0-9084-b7170d615a51_399x615.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Edited meme, originally by Sarah Andersen</figcaption></figure></div><p>Development is a practice of<strong> lifelong learning</strong>. We all have something new to learn, and something to learn from each other.</p><p>If you love learning, you&#8217;ll never feel stagnant in a coding career. The tech industry changes fast and there are always new technologies to keep up with. The developers that excel are always ready to stretch their technical skills so they can keep up with the industry and stand out in the market &#8212;&nbsp;and they do this through <strong>constant practice</strong>.</p><p>Of course, this learning goes beyond tech skills. With every experience, you'll also get to nurture your soft skills to grow and advance over time.</p><h2>6. You're bold enough to fail</h2><p>I can&#8217;t tell you how many times I&#8217;ve encountered the unexpected or made mistakes in my career. So have Steve Jobs, Bjarne Stroustrup, and all the colleagues I respect.&nbsp;</p><p>Everybody fails &#8212; but what separates great coders from good ones is that they persist anyway.</p><p><strong>Failures are inevitable</strong>, but they're also learning opportunities &#8212;&nbsp;if you embrace them as such, each mistake will only make you a stronger developer. Failing forward is all about <strong>humility</strong> <strong>and</strong> <strong>a growth mindset</strong>.</p><blockquote><p>Growth doesn&#8217;t happen in safe, routine environments: it happens when you step outside your comfort zone.&nbsp;</p></blockquote><p>No matter how big or small the task, we'll always face challenges and failures. But learning to <strong>reframe those failures as teachable moments</strong> will make a world of a difference.</p><h2>You&#8217;re at the beginning of a long and exciting journey&nbsp;</h2><p>The traits I shared today are commonalities I've seen in the most accomplished developers in my circle. Having any number of these traits will only help your coding career keep growing and going &#8212;&nbsp;and make you an unforgettable team member and hire.&nbsp;</p><p>Even if you don&#8217;t have the skills I&#8217;ve touched on here, it doesn&#8217;t mean your career is destined for failure. While you'll be able to develop some of these traits over time, the truth is that developers come in all shapes and sizes &#8212;&nbsp;ultimately, <strong>the only traits you need to succeed are determination and a willingness to grow</strong>.&nbsp;</p><p>As a reminder, you can learn everything you need along the way with Educative&#8217;s <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a> courses, from writing your first line of code, to strengthening your problem-solving skills, to practicing for your first interview.</p><p><em>Happy learning!</em></p><p>- Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[The missing piece in your coding journey]]></title><description><![CDATA[Why problem-solving is the first step to ensuring your long-term success]]></description><link>https://www.letterstocoders.com/p/the-missing-piece-in-your-coding</link><guid isPermaLink="false">https://www.letterstocoders.com/p/the-missing-piece-in-your-coding</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 04 Sep 2024 19:15:34 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/e646759b-518b-40f8-90c3-976c25987ee1_1072x1038.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Note:</strong> This post is adapted from a blog I originally wrote over on educative.io, called <a href="https://www.educative.io/blog/best-learn-to-code-advice?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=codesyla_post_1&amp;utm_term=&amp;eid=5082902844932098">The 1 piece of coding advice I wish I had received</a>. Like me, I think a lot of aspiring programmers start at the wrong place when building their skills.&nbsp;</em></p><p><em>I'm hoping this post will help you become a strong developer by pointing you first toward the most important foundations of coding.&nbsp;</em></p><p><em>Let's dive in!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Many aspiring coders start their journey with questions like, <em>"Which programming language should I learn?"</em> or <em>"Which code editor should I use?"</em></p><p>While these are valid questions for someone who's just decided to learn to code, there's a <strong>more foundational skill</strong> that they could be building right off the bat: problem-solving.&nbsp;</p><p>From Meta to Microsoft, problem-solving was the core skill behind all of my developer roles. Similarly for you, problem-solving will <strong>determine your success in any role or specialization</strong> you choose to pursue (whether that's being a web developer or a systems engineer).&nbsp;</p><p>Today, I'll explain why it's worth taking the time to strengthen your problem-solving skills, and how you can do it.&nbsp;</p><p>I'll cover:&nbsp;</p><ul><li><p>What is problem-solving in programming?&nbsp;</p></li><li><p>Strengthening your problem-solving skills</p></li><li><p>Preparing for long-term success</p></li><li><p>Learning to think like a programmer</p></li></ul><h1>What is problem-solving in programming?</h1><p>Problem-solving is the<strong> core skill of a developer.&nbsp;</strong></p><p>Put simply, we can break down the developer&#8217;s problem-solving process in 3 steps:</p><ol><li><p>Understanding the problem</p></li><li><p>Considering the best solution for the problem</p></li><li><p>Translating the problem into something the computer can understand (i.e., writing code)</p></li></ol><p>Note: it's not until the last step of this problem-solving process that you'd be writing code. To add, writing code is just a small fraction of a programmer's job &#8212; which means that <strong>problem-solving is about a whole lot more than coding</strong>.</p><p>In reality, developer problem-solving can involve more than the 3 simple steps I&#8217;ve outlined. For example: research, comparing solutions, evaluating downsides of each solution, considering constraints, and so on. Generally, the more complex your problem is, the more complex finding the solution becomes.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ViSN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ViSN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 424w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 848w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 1272w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ViSN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png" width="870" height="888" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:888,&quot;width&quot;:870,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:361312,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ViSN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 424w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 848w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 1272w, https://substackcdn.com/image/fetch/$s_!ViSN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc5ce7605-7fbe-4067-bfe9-33e7c6e0fac7_870x888.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Learning to code without covering logic and problem-solving is like wading into waters without knowing how to swim.</strong> It&#8217;s not enough to know how to build a program. Knowledge of syntax, algorithms, or programming languages alone won't help you decide on an optimal solution for your specific scenario&#8230; but problem-solving skills will. </p><p>You'll do plenty of coding in your career &#8212; but before you ever write a line of it, you should grow your ability to understand a problem and the implications of its potential solutions. Once you can do that, you'll be better able to find optimal solutions to any coding problem (and finally, translate them into code).</p><h1>Strengthening your problem-solving skills&nbsp;</h1><p>Here's the thing: <strong>you're already solving problems every day</strong>. You're organizing your room. Navigating traffic. Planning your budget. Mundane as these tasks may seem, you're already using a core developer skill to tackle them.&nbsp;</p><p>That said, we all have room to strengthen those problem-solving skills &#8212; and the sooner you work on yours, the more quickly you'll become a strong developer.&nbsp;</p><p>The best way to get started? <strong>Practice logic problems</strong>.&nbsp;</p><p>Let's try one out as an example.&nbsp;</p><h2>Logic problem: The Farmer's Dilemma</h2><p><strong>Problem</strong>: A farmer must transport a duck, fox, and corn across a river.&nbsp;</p><p><strong>Rules</strong>:</p><ul><li><p>The farmer can only take one item at a time.</p></li><li><p>The fox and duck can't be left alone together (the fox will eat the duck)</p></li><li><p>The duck and corn can't be left alone together (the duck will eat the corn)</p></li></ul><p>At any step, the farmer has to choose between these options:&nbsp;</p><ul><li><p>Take fox</p></li><li><p>Take duck</p></li><li><p>Take corn</p></li><li><p>Go alone</p></li></ul><blockquote><p>With these rules in place, take a moment to write down the step-by-step instructions to transport the duck, fox, and corn across the river.&nbsp;</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-TL0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-TL0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 424w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 848w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 1272w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-TL0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png" width="1254" height="682" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:682,&quot;width&quot;:1254,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:371717,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-TL0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 424w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 848w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 1272w, https://substackcdn.com/image/fetch/$s_!-TL0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F97d4f837-c09a-4f89-accf-e39f348ca707_1254x682.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">^^I&#8217;m just an image. Don&#8217;t click my buttons!</figcaption></figure></div><p>If you're not sure where to start, spend some more time understanding the problem. For instance, <strong>you can</strong> <strong>deduce more information</strong> through the rules you've been provided:</p><ul><li><p>The duck can't be alone with either the fox or corn, <strong>which</strong> <strong>implies that</strong> the duck <em>can</em> be with the farmer or left completely alone</p></li><li><p>The corn can't be alone with the duck, <strong>which</strong> <strong>implies that</strong> the corn can be with the fox, the farmer, or left completely alone</p></li></ul><p>By solving the farmer's dilemma step-by-step, you're already practicing a key aspect of coding. Sharpening these analytical abilities will only help you handle more complex challenges down the road.&nbsp;</p><blockquote><p>You can find problems like the Farmer's Dilemma in Educative&#8217;s Skill Path: <a href="https://www.educative.io/path/computer-science-bootcamp?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=codesyla_post_1&amp;utm_term=&amp;eid=5082902844932099">Computer Science Bootcamp</a>.&nbsp;</p></blockquote><h1>Preparing for long-term success</h1><p><strong>Change is constant in software development</strong>. New languages, frameworks, and methodologies emerge every year. However, what remains unchanged is the importance of strong problem-solving skills in developers. To keep up with the industry, being a proficient problem-solver is essential.</p><p>When I graduated and entered the workforce, the major shift in tech was the rise of distributed systems. My generation of developers navigated uncertainty as we helped build what would become the discipline of System Design: the practice of designing scalable distributed systems. This new territory came with entirely new challenges, and yet: everything we did to navigate and establish that new discipline still boiled down to problem-solving.</p><p>It&#8217;s safe to say that <strong>problem-solving will remain the constant through every technological shift.</strong></p><p>Let's consider the most recent shift &#8212;&nbsp;the rise of Generative AI tools like ChatGPT in developer workflows &#8212;&nbsp;and whether it&#8217;s impacted the need for problem-solving skills.&nbsp;</p><p>Developers are using Generative AI for various tasks, from testing code to writing documentation. According to the latest Stack Overflow Developer Survey, its most popular use case is writing code (at 82%).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!euu4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!euu4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 424w, https://substackcdn.com/image/fetch/$s_!euu4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 848w, https://substackcdn.com/image/fetch/$s_!euu4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 1272w, https://substackcdn.com/image/fetch/$s_!euu4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!euu4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png" width="1322" height="906" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:906,&quot;width&quot;:1322,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:622796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!euu4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 424w, https://substackcdn.com/image/fetch/$s_!euu4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 848w, https://substackcdn.com/image/fetch/$s_!euu4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 1272w, https://substackcdn.com/image/fetch/$s_!euu4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0787ce72-d77f-41a4-9646-240291cdf54e_1322x906.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">This Survey information is made available under the Open Database License: <a href="https://www.google.com/url?q=http://opendatacommons.org/licenses/odbl/1.0/&amp;sa=D&amp;source=docs&amp;ust=1725417078602632&amp;usg=AOvVaw0rzMRUzUck_xM2Cm14mHk2">http://opendatacommons.org/licenses/odbl/1.0/</a>. Any rights in individual contents of the database are licensed under the Database Contents License: <a href="https://www.google.com/url?q=http://opendatacommons.org/licenses/dbcl/1.0/&amp;sa=D&amp;source=docs&amp;ust=1725417078602790&amp;usg=AOvVaw2YWW4nOpluEcaZOI2YM1iN">http://opendatacommons.org/licenses/dbcl/1.0/</a></figcaption></figure></div><p>With all these use cases for Gen AI, did developers have to do less problem-solving? <strong>No &#8212;&nbsp;quite the opposite.</strong> <a href="https://www.letterstocoders.com/p/will-ai-replace-software-developers">Generative AI has only emphasized the importance of strong human problem-solving skills</a>.&nbsp;</p><p>Remember: writing code is just the final step in the problem-solving process. Generative AI may assist in this stage, but it cannot handle the critical thinking required in the earlier steps. </p><p>Why? AI tools lack the context and nuanced judgment needed to understand a problem,  as well as the human creativity needed to find innovative solutions. Gen AI tools can only assist when guided by well-crafted prompts, and even then, they're prone to errors and biases.</p><p>As Generative AI becomes more integrated into software development, <strong>developers' roles as critical thinkers and problem-solvers will only become more important</strong>. Developers will have to guide and supervise AI in the right direction. As Gen AI tools help reduce tedium, developers will be able to spend more time solving the complex problems that are unique to the AI era.</p><blockquote><p>Problem-solving skills will always be crucial for developer success. The earlier you start building yours, the better prepared you'll be for whatever changes lie ahead.</p></blockquote><h1>Learning to think like a programmer</h1><p>Thinking like a programmer means thinking sequentially, breaking complex problems into small chunks, and understanding how each component interacts with each other. Doing this successfully all boils down to problem-solving and logic skills.&nbsp;</p><p>Problem-solving is the <strong>universal prerequisite to all programming languages and specialities</strong>. There's a lot to learn when it comes to programming, but you can start building problem-solving skills before you even decide between Python or Java (or whichever language you're considering).</p><p>As a reminder, you can learn to think like a programmer with <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=codesyla_post_1&amp;utm_term=&amp;eid=5082902844932097">Learn to Code resources</a> at Educative. With a bottom-up learning approach, you can cover all your bases from problem-solving skills to landing your first job (in various programming languages).</p><p><em>Happy problem-solving!</em></p><p>&#8211; Fahim</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/p/the-missing-piece-in-your-coding?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/p/the-missing-piece-in-your-coding?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.letterstocoders.com/p/the-missing-piece-in-your-coding?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Unit testing 101: Making sure your code actually works]]></title><description><![CDATA[Great developers don't write good code: they write good tests.]]></description><link>https://www.letterstocoders.com/p/unit-testing-101-making-sure-your</link><guid isPermaLink="false">https://www.letterstocoders.com/p/unit-testing-101-making-sure-your</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 28 Aug 2024 14:01:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/392fa520-ce1b-47ff-a441-87a8da28c323_221x143.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>In light of the <a href="https://www.letterstocoders.com/p/the-crowdstrike-crash-lesson-every">CrowdStrike fiasco</a>, I discussed how proper testing could've prevented the massive software outage. Today, I'll discuss one of the primary types of software testing.</em></p><p>You can't write good code without being prepared to test it. Unit testing is one of the primary ways to ensure you've got quality code.</p><p>Once you've started writing code, you can learn to write unit tests. While other forms of testing often fall on quality assurance engineers, unit testing is most often your responsibility as a developer. This is because you'll have the best understanding of how the code you wrote was intended to behave.&nbsp;</p><p>Today, I'll explain <strong>best practices of unit testing</strong> so you can hit the ground running with unit tests that help improve your code.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>What is unit testing?</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hJVn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hJVn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hJVn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg" width="350" height="333" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:333,&quot;width&quot;:350,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:20707,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hJVn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hJVn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F63e02d5f-d18c-4126-a721-61f6b7da963c_350x333.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Unit tests ensure that the different parts of your application work as intended. They focus on units: the smallest parts of your program that can be independently tested. Units can include functions, methods, classes, or more.</p><p>By focusing on these small, individual components, unit testing helps <strong>identify and resolve problems</strong> before they cause larger issues in your application. Unit testing can't guarantee that your application will be entirely free of bugs after deployment, but it <em>can</em> help catch issues early in the process.&nbsp;</p><h3>Why do we unit test?</h3><p>There are several advantages to unit testing:</p><ul><li><p><strong>Smoother debugging</strong>: By testing individual units, you can catch bugs before they spread to other parts of the application.</p></li><li><p><strong>Encourages <a href="https://www.educative.io/blog/coding-best-practices#lowhigh?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">loosely coupled code</a></strong>: Unit testing encourages you to write code where different parts are less dependent on each other, which is a best practice in software development.</p></li><li><p><strong>Minimizes code regression</strong>: Code regression refers to bugs that occur when new code interferes with existing functionalities. After modifying or extending your code, you can rerun unit tests to ensure the changes don't break existing functionality.</p></li></ul><h3>Increasing test coverage</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-xm7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-xm7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-xm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg" width="294" height="282" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/afe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:282,&quot;width&quot;:294,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9345,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-xm7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 424w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 848w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!-xm7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fafe7be4b-4b95-427a-a2e3-4a68dfe40dd5_294x282.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>The amount of our code that has been tested is a metric we call <strong>test coverage</strong>. By focusing testing on each small component, unit testing helps ensure higher test coverage.</p><p>Test coverage can consist of:</p><ul><li><p><strong>Function coverage</strong>: The percentage of functions that have been tested.</p></li><li><p><strong>Statement coverag</strong>e: The percentage of individual statements in your code that have been tested.</p></li><li><p><strong>Path coverage</strong>: The percentage of different paths or branches in your code that have been tested.&nbsp;</p></li></ul><p>Generally, we want to maximize test coverage, <em>however</em>, 100% test coverage is neither practical or achievable. Full coverage can require more time and resources than available, and it's also theoretically impossible for complex systems. This being the case, it's enough to strive for the highest coverage possible within your constraints.</p><h2>5 unit testing best practices</h2><h3>1. Test names should be descriptive</h3><p>Your test names should clearly state what the test is meant to check.&nbsp;</p><p>This is the difference between the names:&nbsp;</p><ul><li><p><em>test_1</em></p></li><li><p><em>test_user_login_with_valid_credentials</em></p></li></ul><p><em>&#8220;test_1&#8221;</em> does not provide any context about what is being tested. Meanwhile, <em>&#8220;test_user_login_with_valid_credentials&#8221;</em> clearly indicates that the test is checking if a user can log in with valid credentials. (I think you can draw the conclusion about which is the better test name.)</p><p>Consistent naming conventions help make your tests easier to understand and maintain. This practice also supports code readability, which is crucial for long-term project sustainability (and the sanity of fellow developers working in the same codebase).</p><h3>2. Tests should be deterministic</h3><p>False positives and negatives are common in software testing, so you have to be diligent to avoid them. This is done by writing deterministic tests.</p><p>Deterministic unit tests behave the same way every time they are run, assuming the code hasn't changed. This consistency helps ensure that test results are reliable.&nbsp;</p><h3>3. Follow the Arrange, Act, Assert (AAA) Protocol</h3><p>The AAA protocol is a recommended approach for structuring unit tests. AAA improves your test&#8217;s readability by giving it a logical flow.&nbsp;</p><p>The AAA protocol is a structured approach that organizes unit tests and enhances test readability.</p><p>You can use the AAA protocol to structure your unit tests with the following steps:</p><ul><li><p><strong>Arrange</strong>: Arrange the conditions needed for your test</p></li><li><p><strong>Act</strong>: Act on the unit you're testing</p></li><li><p><strong>Assert</strong>: Assert or verify if the outcome was as expected</p></li></ul><p>Here's an example of the AAA structure in Python, testing the absolute value function:</p><pre><code>def test_abs_for_negative_number():
 
  # Arrange
  negative = -4
   
  # Act
  answer = abs(negative)
   
  # Assert
  assert answer == 4</code></pre><h3>&nbsp;4. Test a single use case per unit test</h3><p>Each test should concern a single use case, ensuring that a specific method or function behaves as expected in that scenario. This makes it easier to locate the cause of a failure if a test doesn't pass.</p><h3>&nbsp;5. Avoid logic in tests</h3><p>The more logic in your tests, the higher the chance of introducing bugs into the tests themselves. Keep your test code simple by minimizing logic, such as conditionals or string manipulations.&nbsp;</p><p>Consider this test with logic:</p><pre><code>def test_user_access():

&nbsp;&nbsp;&nbsp;&nbsp;if user_is_admin(user_id):

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert has_access_to_admin_panel(user_id)

&nbsp;&nbsp;&nbsp;&nbsp;else:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert not has_access_to_admin_panel(user_id)</code></pre><p>This test combines two different scenarios (admin and non-admin users) into one, making it <strong>more complex and difficult</strong> to maintain.</p><p>You can improve this by breaking it into two simpler, more focused tests:</p><pre><code>def test_admin_user_has_access():

&nbsp;&nbsp;&nbsp;&nbsp;assert has_access_to_admin_panel(admin_user_id)

def test_non_admin_user_does_not_have_access():

&nbsp;&nbsp;&nbsp;&nbsp;assert not has_access_to_admin_panel(non_admin_user_id)</code></pre><p>By separating the tests, each one becomes easier to understand and less prone to errors, as they focus on a single condition or behavior.</p><h2>Unit testing frameworks</h2><p>To get started, I recommend picking a testing framework for your given language. A unit testing framework provides tools to help you write, run, and manage your tests efficiently. If a test fails, the framework can capture the results or raise an alert.</p><p>These frameworks offer several useful features:</p><ul><li><p><strong>Test suite</strong>: A collection of related test cases that can be run together, making it easier to test multiple similar units.</p></li><li><p><strong>Test runner</strong>: A tool that automates the execution of tests and reports the results.</p></li><li><p><strong>Test fixture</strong>: A consistent setup for your tests, ensuring they run in a controlled environment every time.</p></li></ul><p>There are many unit testing frameworks available, each suited to different programming languages. Some popular ones include:</p><ul><li><p>PyUnit (Python)</p></li><li><p>CUnit (C)</p></li><li><p>Mocha (JavaScript)</p></li><li><p>JUnit (Java)</p></li></ul><h2>Great developers are avid test writers</h2><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9TCR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9TCR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9TCR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg" width="221" height="143" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:143,&quot;width&quot;:221,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9TCR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9TCR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1be58866-c551-4c5c-b5de-5ebef9867594_221x143.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><p>&#8230;And if you're here, I'm sure you want to be a great developer.&nbsp;</p><p>By testing your code as you write it, you can reduce bugs and ensure your project progresses smoothly. Be sure to carry the best practices we learned today as you begin your foray into unit testing.</p><p>If you work with Java, you might consider diving into unit testing with our course, <a href="https://www.educative.io/courses/unit-testing-java8-junit?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Pragmatic Unit Testing in Java 8 with JUnit 5</a>. In this course, you'll learn how to use JUnit to write tests, automate their execution, handle test failures with assertions, and record results.</p><p><em>Happy learning!</em></p><p>- Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[A gentle introduction to algorithms]]></title><description><![CDATA[Spoiler: Even if you don&#8217;t know how to code, you already know a few algorithms!]]></description><link>https://www.letterstocoders.com/p/a-gentle-introduction-to-algorithms</link><guid isPermaLink="false">https://www.letterstocoders.com/p/a-gentle-introduction-to-algorithms</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 21 Aug 2024 17:16:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Kko7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Algorithms are at the heart of the technology we see around us. They generate your social media news feed, your Google search results, and the routes you may take daily through navigation apps like Google Maps.</p><p>You're ready to start learning about algorithms once you've learned some programming basics in one language. If you feel intimidated by algorithms, the truth of the matter is that you already know a few from elementary school. In fact, algorithms have been used for thousands of years, before programming ever existed.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Today I'll give a gentle introduction to algorithms, covering:</p><ul><li><p>What are algorithms?</p></li><li><p>How to use and combine algorithms</p></li><li><p>Which algorithm is &#8220;best&#8221;?</p></li><li><p>Your secret weapon: Big O notation</p><p></p></li></ul><p>Consider this &#8220;lesson 0&#8221; on algorithms. Let&#8217;s dive in!</p><p></p><h3>What are algorithms?</h3><p>Put simply, algorithms are a set of steps we take to solve a problem or perform a particular task. While <a href="https://www.letterstocoders.com/p/data-structures-101-how-to-choose">data structures</a> are ways we store data, algorithms are the <strong>proven methods we use to solve problems</strong> with that data.&nbsp;</p><p>For example, this is an algorithm for making an omelet:</p><ol><li><p>Crack eggs into bowl</p></li><li><p>Whip eggs</p></li><li><p>Heat pan</p></li><li><p>Cook eggs in pan</p></li></ol><p>The simplest algorithms are those we learn without even knowing they&#8217;re algorithms. In fact, you might be surprised to learn that math formulas are algorithms.&nbsp;</p><p>Consider the <strong>Pythagorean theorem</strong>, which you've likely encountered before. The Pythagorean theorem is a simple algorithm for calculating the length of the hypotenuse of a right triangle (and it has been used since ancient Mesopotamian times).&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Kko7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Kko7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 424w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 848w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 1272w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Kko7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png" width="1052" height="592" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:592,&quot;width&quot;:1052,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202394,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Kko7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 424w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 848w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 1272w, https://substackcdn.com/image/fetch/$s_!Kko7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F17311ffe-f657-4bd3-9f6b-ffa824d10893_1052x592.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Imagine: if we didn't have the Pythagorean theorem, we'd have to measure triangles manually. In a similar way, algorithms allow us to efficiently apply mathematical principles like the Pythagorean theorem to solve problems efficiently as programmers.</p><p>Math formulas are the inspiration for the algorithms used in modern computing. That said, math formulas have to be turned into machine algorithms (i.e., translated into algorithms that computers understand). This task is the responsibility of a programmer.</p><p><em>&gt; Fun fact: Ada Lovelace is considered the first programmer to have written a machine algorithm.</em></p><h3>How to use and combine algorithms</h3><p>While many algorithms are tried-and-true, new algorithms are constantly being developed.</p><p>On your day job, you'll most frequently be using <strong>known algorithms</strong> to solve problems. With enough experience, you can even make your own algorithms. Being able to write algorithms specific to your problem will help you solve problems even more efficiently than a cookie-cutter algorithm that wasn't written specifically for your job at hand.</p><p>If this seems intimidating, just know that you won't be expected to create your own algorithms as a beginner. But when you do, it doesn't have to be as hard as inventing a circle. In fact, you can create new algorithms by simply building upon an established algorithm.</p><p>Many<strong> algorithms build on each other to solve bigger, more specific problems</strong>.&nbsp;</p><p>For example, remember the area of a circle (A=&#120587;&#119903;<sup>2</sup>)?</p><p>We build upon the area of a circle to solve a more complex problem: finding the volume of the cylinder (&#119881;=&#120587;&#119903;<sup>2</sup>&#8462;). What we did here was to extend the algorithm for calculating the area of a circle (A=&#120587;&#119903;<sup>2</sup>) to create a more complex algorithm that solves the volume of a cylinder. (&#119881;=&#120587;&#119903;<sup>2</sup>&#8462;)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zr6z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zr6z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 424w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 848w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 1272w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zr6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png" width="1062" height="634" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:634,&quot;width&quot;:1062,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zr6z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 424w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 848w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 1272w, https://substackcdn.com/image/fetch/$s_!Zr6z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8bc6dc2-0327-41fd-b217-4d6f67dc0e42_1062x634.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>This is all to say that you don't have to be writing a new theorem as a mathematician to create an algorithm: you can simply build upon what you know, factoring in the needs of your specific problem.</p><h3>Which algorithm is &#8220;best&#8221;?</h3><p>You will start your journey with some basic, introductory algorithms, often focusing on sorting and searching algorithms.</p><p>For example:</p><ul><li><p>How to sort an array of numbers</p></li><li><p>How to search within an array efficiently</p></li><li><p>How to traverse different data structures quickly.&nbsp;</p></li></ul><p>And here's the thing: often, you can get the same end result from various algorithms.&nbsp;</p><p>This means you have to choose which one is the most efficient. And this choice is always subjective to the particular problem at hand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JWvG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JWvG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 424w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 848w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 1272w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JWvG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png" width="1092" height="470" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:470,&quot;width&quot;:1092,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210745,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JWvG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 424w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 848w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 1272w, https://substackcdn.com/image/fetch/$s_!JWvG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa79b6c4c-d222-4494-9c07-dbf66cdf310d_1092x470.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For example, consider the following algorithms for moving furniture between two houses.</p><p>Algorithm 1</p><ol><li><p>Take one piece of furniture from house 1</p></li><li><p>Transport it to house 2</p></li><li><p>Return to house 1&nbsp;</p></li><li><p>Repeat steps 1 &amp; 2 until all furniture is moved</p></li></ol><p>Algorithm 2</p><ol><li><p>Take all furniture from house 1</p></li><li><p>Transport it to house 2</p></li></ol><p>At first glance, it may seem that algorithm 2 is better. You take less trips between houses, so you should be done faster. However, the <strong>best algorithm isn't always the one that has the least steps.&nbsp;</strong></p><p>Algorithm 2 may take less time, but it will require a massive moving truck to fit the entire house's contents, which might be costly, especially if you're on a budget.&nbsp;</p><p>These problems each have different needs, whether material needs (vehicles, money) or time. And this is analogous to what we refer to as different complexities for algorithms.&nbsp;</p><p>Early in your journey, you'll be using what's called Big O notation to understand each algorithm's complexity, and compare them to pick the best choice for your problem.</p><h3>Your secret weapon: Big O notation</h3><p>Big O notation is a way to describe how an algorithm's efficiency changes as the amount of data grows. It helps us understand the worst case scenario for:</p><ul><li><p>How many steps an algorithm might take (time complexity)</p></li><li><p>How much memory it might use (space complexity)</p></li></ul><p>We use Big O to compare algorithms and choose the best one for our needs, ESPECIALLY when dealing with large amounts of data.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!W5m9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!W5m9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 424w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 848w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 1272w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!W5m9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png" width="1050" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1050,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:237030,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!W5m9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 424w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 848w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 1272w, https://substackcdn.com/image/fetch/$s_!W5m9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e835fbc-84dd-4d59-8d65-bb61c9ce73bb_1050x856.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When we're dealing with large amounts of data, our algorithms tend to get more complicated. Indeed, the complexity of an algorithm usually depends on the number of inputs.</p><p>For instance, if we have to sort just three numbers in order from smallest to largest, there are only three inputs: a, b, and c.</p><p>We can use the following algorithm to sort a, b, and c:</p><ol><li><p>Compare the first two (a and b) to see which is greater.</p></li><li><p>Swap a and b if necessary&nbsp;</p></li><li><p>Compare the greater of the two with c.</p></li><li><p>Swap b and c if necessary</p><ol><li><p>If c is greater, we know enough to sort from lowest to highest</p></li><li><p>If c is NOT greater:</p><ol><li><p>Compare c with the smaller of a and b.</p></li></ol></li></ol></li></ol><p>So, we can solve this problem with three inputs with no more than five steps. But if we try to sort <em>five</em> numbers from lowest to highest, the algorithm becomes more complex.&nbsp;</p><p>Even the most efficient algorithm, when applied to millions of numbers, will become complex. Whether it's how fast it will be or how much memory it will need, understanding how an algorithm's efficiency will change over time is crucial to making a fully informed choice on which algorithm to opt for.&nbsp;</p><p>This is why Big O notation becomes an essential, everyday tool for programmers &#8212;&nbsp;but it's not a lesson 0 topic, so we'll wrap up our discussion here.</p><h3>Ready to build your knowledge of algorithms?</h3><p>Computers excel at one thing: executing simple instructions. Programmers excel at another: choosing the best algorithm for a given task. Once we give the computer some data (packaged in a data structure), we can use algorithms to elegantly solve problems with that data.&nbsp;</p><p>To get hands-on with algorithms, you may want to try the Educative course, <a href="https://www.educative.io/courses/visual-introduction-to-algorithms?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">A Visual Introduction to Algorithms</a>. This interactive course trains you on the foundations of algorithms, where you'll dive deeper into Big O notation and learn introductory algorithms in your preferred language (e.g., Java, Python, C++ or Javascript).&nbsp;</p><p><em>Happy learning!<br><br></em>- Fahim</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Will AI replace software developers? Learning to code in the AI era]]></title><description><![CDATA[Will AI will make software engineers obsolete? Your burning AI questions answered.]]></description><link>https://www.letterstocoders.com/p/will-ai-replace-software-developers</link><guid isPermaLink="false">https://www.letterstocoders.com/p/will-ai-replace-software-developers</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 14 Aug 2024 15:01:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7016966-bf9d-4099-9c72-cbc7aab56e46_256x256.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em><strong>Note:</strong> This post is adapted from a blog I originally wrote over on educative.io, called <a href="https://www.educative.io/blog/will-ai-replace-programmers">Will AI replace programmers? A guide for Junior Developers</a>. I still get asked this question frequently by aspiring programmers, so I want to take this opportunity to clear up some common misconceptions about the capabilities of generative AI and its potential impact on the software development industry.</em></p><p><em>My hope is that this post will answer your most burning questions about AI and coding &#8212; and even get you excited about the possibility of solving even more interesting and exciting problems in your future career.</em></p><p><em>Let&#8217;s dive in!</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div><hr></div><p>Aspiring developers are facing an unnerving tech climate.</p><p>Generative AI tools like ChatGPT have flourished, with specialized AI software engineers like Magic.dev and Cognition's Devin on the horizon. At the same time, layoffs and hiring freezes have made finding a secure job difficult.</p><p>Recently, a <strong>reader wrote to me</strong> with a question that's weighing on the minds of many new coders.</p><p><em>"<strong>Will the world stop needing junior developers?</strong>"</em></p><p>Many developers are worried that AI is a threat to their job security, but new coders are most vulnerable to this concern.</p><p>The possibility of AI replacing junior developers has massive implications. For that reason, many aspiring coders are wondering <strong>if it's still worth <a href="http://www.educative.io/learn-to-code">learning to code</a></strong>. They also worry about how they could possibly compete in an AI-powered world, when the supply of junior developers exceeds the demand.</p><p>Today, I'll talk about why the world still needs new coders, and why we should embrace <a href="https://www.educative.io/generative-ai">Generative AI</a> rather than fear it:</p><ul><li><p>If AI isn't the end, what is it?</p></li><li><p>Why we still need (human) junior devs</p></li><li><p>What skills do junior devs need in the AI era?</p></li><li><p>How to stand out in the job market</p></li></ul><h2><strong>If AI isn't the end, what is it?&nbsp;</strong></h2><p>For those feeling nervous about an AI takeover, let&#8217;s try a quick perspective shift.&nbsp;</p><p>Throughout programming history, the technologies we've used have changed immensely &#8212; and <strong>for the better</strong>. Before the 1970s, most computer programmers used punch cards to write and store computer programs. They then moved on to assembly language, and eventually modern programming languages, like C++, Python, Java, and so on.&nbsp;</p><p><strong>Each advancement</strong> in technology has <strong>helped reduce tedium</strong> and made software engineers more productive. As a result, we were able to tackle bigger problems and build more complex and powerful solutions. Early technologies like punch cards and assembly languages were very difficult to work with &#8212;&nbsp;and we certainly couldn't have built modern apps like Facebook with them.&nbsp;</p><p>These advancements in technology did not make programmers obsolete. In fact, they made learning programming accessible to more people.</p><p>Similarly, AI tools aren't going to stop the demand for developers. They are just the <strong>next step</strong> in the evolution of programming technologies.&nbsp;</p><p>As AI integrates into more products and services, it's going to create <strong>more jobs</strong> for developers. As advanced developers move into senior roles or AI roles, we still need entry-level developers to do more generalized tasks. Along the way, we'll have to solve new problems. For example, Generative AI tools require close attention to matters of privacy and data integrity.&nbsp;</p><p>Having the option of using Generative AI tools is a <strong>luxury</strong> we should celebrate. But just like how power drills didn't replace the need for a handyman, AI tools won't replace the need for developers &#8212;&nbsp;they'll only help you be more effective and efficient.&nbsp;</p><p>Let's talk about why.</p><h2><strong>We still need (human) junior devs</strong></h2><p>While Generative AI tools will continue to be popular, they aren't replacing the need for human developers. This is because these tools have several limitations.</p><h3><strong>AI lacks nuanced human judgment</strong></h3><p>Entry-level engineering tasks, like integrating APIs and UI components, may appear simple. However, creating a delightful experience that solves a problem for the user requires a human touch. And we can't write optimized, maintainable, scalable code without human intelligence.&nbsp;</p><p>Writing software is a complex task that requires <strong>context</strong>. Incidentally, one of AI's greatest limitations is its <em>lack</em> of context. The context for a given problem determines what will be a functional solution and impacts what code gets written and run. Without it, we can only get as far as writing small snippets of code. That necessary context can't be found in the codebase itself, but is in the <strong>head of the human being</strong>.&nbsp;</p><p>For example, if we're developing a health monitoring application, its success relies not just on the algorithms for monitoring health metrics, but also on understanding healthcare expertise, user diversity, cultural dietary norms, and privacy laws. These are all necessary details that AI can't pull from the codebase itself.</p><p>While AI tools reduce the grunt work, they aren't able to fully comprehend a problem or evaluate solutions. The <strong>real value of developers</strong>, including those at the junior level, lies in their ability to discern the best application of solutions in the context of a situation.</p><h3><strong>AI only performs one part of the developer's core process</strong></h3><p>Underneath the programming syntax and algorithms, a developer's core task lies in problem-solving.&nbsp;</p><p>We can break down problem-solving as 3 steps:</p><ol><li><p>Understanding the problems and the user's needs</p></li><li><p>Thinking of an approach to solving the problem</p></li><li><p>Translating the problem into computer-readable form (writing code)</p></li></ol><p>Of this process, AI can only help with the last step of writing code. In fact, in the latest Stack Overflow Developer Survey, <strong>82.55% of developers</strong> reported using Generative AI for writing code. However, a developer's work encompasses so many more tasks than writing code, from debugging to code documentation and so on.&nbsp;</p><p>Generative AI tools can't help us solve problems without human supervision and guidance. They can take a prompt and generate code (which is great for streamlining your work). But they don't have the full context and human judgment needed to reliably perform the steps that come before it. And even the AI-generated code needs careful review and edits.&nbsp;</p><h3><strong>AI is a closed loop</strong></h3><p>The key to good problem-solving is creativity, and for that, we need human imagination. Without human innovation and creativity, your code will be stuck in the <strong>patterns</strong> it has already seen.&nbsp;</p><p>As it turns out, Generative AI, and the <a href="https://www.educative.io/courses/essentials-of-large-language-models-a-beginners-journey">Large Language Models (LLMs)</a> that power them, are only able to generate code that reflects what they've seen before. They function by predicting the next word or sequence based on the data they've been trained on. For example, if a user inputs "file open," the model predicts the next word based on the probability derived from its training data, which might include several instances where "file open" is followed by particular commands or phrases.</p><p>This ability to <strong>think outside the box</strong> is another skill with which Generative AI simply can't compete with humans. Their underlying models operate within a "closed loop" of existing knowledge. On the other hand, human creativity isn't as bound by patterns. In thinking of new approaches to problems, we can draw from various sources outside of existing codebases and documentation.</p><p>Human imagination is the same reason that great literature won't die just because of AI. Even if you feed all literature books to an AI, it won't generate anything new. It will be somewhat <strong>formulaic</strong>.&nbsp;</p><h2><strong>What skills do junior devs need in the AI era?</strong></h2><h3><strong>What's new: AI readiness &amp; prompt engineering</strong></h3><p>I've hired junior developers at Microsoft, Facebook, and now here at Educative. Over the last year alone, what makes junior developers stand out is signs that they're "AI ready." After all, the investment in AI initiatives isn't going to go away anytime soon. If you're someone who's going to climb up the ladder in my company, you need to show that you're willing to embrace these new technologies.</p><p>What I mean by "AI ready" is not that you're ready to start working on AI models directly (especially if you're entry-level). Rather, what I'm looking for is a curiosity and <strong>demonstrated willingness</strong> to learn how to leverage AI &#8212; especially Generative AI.</p><p>Every developer today <strong>eventually needs to learn AI skills</strong>. Beginners should be learning <strong><a href="https://www.educative.io/courses/all-you-need-to-know-about-prompt-engineering">prompt engineering</a></strong>, so they can learn how to write effective prompts for Generative AI tools like ChatGPT to help write their code. But they should also be able to edit that AI-generated code&#8230; after all, we know these tools aren't perfect.&nbsp;</p><p>That said,<strong> </strong>don't jump to AI skills if you haven't mastered programming fundamentals. After all, you can't properly advise an AI tool on how to solve problems if you don't have relevant experience yourself. Besides, you need to have the right expertise to edit that AI-generated code too&#8230; as we know, these tools are far from perfect.</p><h3><strong>All the other prerequisites still apply</strong></h3><p>The fundamentals of learning math didn't change just because we were able to use calculators. So the rest of the junior developer skill set remains the same.&nbsp;</p><p>New coders still need a strong foundation on <strong><a href="https://www.educative.io/path/fundamentals-web-programming">programming fundamentals</a></strong>. You still need to know how to write code, which <strong><a href="https://www.educative.io/blog/data-structures-algorithms">data structures and algorithms</a> </strong>to use for particular scenarios, and how to implement them.&nbsp;</p><p>So yes, for those wondering: It's not only worth learning to code in the AI era &#8212; you also shouldn't be skipping any steps. Even if tools like ChatGPT can <em>technically </em>help you, you shouldn't rely on them. If the power goes out and you can't access an AI assistant, you should still know what to do with a given problem.&nbsp;</p><p>Again, while you'll likely use AI tools to be more productive in your job, you still need to instruct them on what to do. They are not self-driving vehicles, and they will go off-course if you're not behind the wheel.</p><h2><strong>How to stand out in the job market</strong></h2><p>Generative AI tools are a great advancement, and we should celebrate them. By helping us with the tedious tasks, we'll be able to focus more of our time and focus on problem-solving in new and effective ways.&nbsp;</p><p>No matter where you're at, remember that the only threat to your job security is other developers<strong> </strong>who have AI skills.&nbsp;</p><p>Beginners should focus on prompt engineering to start, while more experienced developers can move on to learning about machine learning and LLMs to leverage other tools like LangChain.</p><p>And if you're looking for your first dev job soon, you can't afford to slack on job preparation in today's market. You'll need to prepare for your job hunt by building a strong portfolio of diverse projects and cracking down on interview prep. Participate in as many opportunities to showcase your work and meet new people &#8212; from open-source collaborations to coding competitions to networking events.</p><p>You can learn everything you need to know about writing your first program to acing your first System Design Interview with our hands-on courses and projects on programming foundations, interviews, and more:&nbsp;</p><ul><li><p><a href="https://www.educative.io/learn-to-code">Learn to Code</a></p></li><li><p><a href="https://www.educative.io/interview">Interview Prep</a></p></li></ul><p>Good luck out there, and remember &#8212;&nbsp;AI is a tool that will help you, rather than replace you.</p><p><em>As always, happy learning!</em></p><p>&#8211; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Data structures 101: How to choose the right data structure]]></title><description><![CDATA[Here's a 4-step process that will help you select the optimal data structure for any problem you encounter.]]></description><link>https://www.letterstocoders.com/p/data-structures-101-how-to-choose</link><guid isPermaLink="false">https://www.letterstocoders.com/p/data-structures-101-how-to-choose</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 07 Aug 2024 15:47:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Once you understand some programming basics, like loops and conditionals, you're ready to learn data structures. As a way to store data, data structures open the door to cleaner and organized code (and with that, peace of mind).</p><p>A common mistake I see from beginners when starting to learn about data structures is that they focus more on the <em>what</em> than the <em>why</em>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>In other words, they over-index on learning the syntax of each data structure, without taking the time to understand the characteristics that make certain data structures better for certain scenarios. Having the proper syntax for a data structure won't help you much if you're using that data structure in the wrong situation!</p><p>Today, I'm not even discussing syntax. Instead, I'll share a process for <strong>how to choose the right data structure</strong> for any use case.</p><p>I'll cover:</p><ul><li><p>What are data structures? (A simple example)</p></li><li><p>Understanding trade-offs</p></li><li><p>A 4-step process to choosing the right data structure</p></li></ul><h2>What are data structures? (A simple example)</h2><p>Data structures are indispensable tools that help you organize and manage information in a computer program. You can think of them as storage tools that help you code more efficiently.&nbsp;</p><p>Let's start with an introduction to one of the simplest data structures: <strong>arrays</strong>.&nbsp;</p><p>An array is a row of items or "elements" in a certain order. The items can be any type: numbers, words, or even more complex things.</p><p>Imagine an egg carton that has one row and holds 4 eggs. Each slot in the carton holds one egg. This is equivalent to saying we have an array with <strong>4 elements</strong>. The positions where items are stored in an array are referred to as <strong>"indices"</strong> (plural for index). The indices of an array start at 0, where the first element is stored.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!c-3n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!c-3n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 424w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 848w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 1272w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!c-3n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png" width="786" height="696" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:696,&quot;width&quot;:786,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:561854,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!c-3n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 424w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 848w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 1272w, https://substackcdn.com/image/fetch/$s_!c-3n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc9dc65f6-48c2-4b78-8547-3404b158209f_786x696.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Arrays are <strong>one of the simplest ways</strong> to organize and manage collections of items in coding. You'll find arrays in programs for nearly any application you can think of, like keeping track of game scores, listing names in a contact book, etc.&nbsp;</p><p>Voila! You now know your very first data structure. But <em>really</em> understanding a data structure is more complex than this.</p><h2>Understanding trade-offs</h2><p>Every data structure has its own way of storing things, which affects how you can work with that data. For example, arrays make it very efficient to retrieve data. However, they're impractical if you want to rearrange the order of your data often.</p><p>When you're coding, you can choose from a variety of data structures for a given problem. Choosing a suboptimal data structure can make life unnecessarily difficult for you. To make a smart choice about which structure to use, you need to understand each data structure's <strong>pros and cons</strong>.&nbsp;</p><p>Just like the array, different data structures will be better optimized for certain scenarios, such as:</p><ul><li><p>Updating<em> (or changing) </em>data quickly</p></li><li><p>Retrieving data quickly</p></li><li><p>Processing data quickly</p></li><li><p>Navigating data quickly</p></li></ul><p>There's<strong> no such thing as a perfect data structure</strong> that can be optimized for all scenarios. You'll have to choose a data structure that has downsides that you're willing to accept. Any compromises made in the process are what we call <strong>trade-offs</strong>. Ultimately, a strong problem-solver knows how to make wise trade-offs.</p><h2>A 4-step process for choosing the right data structure</h2><p>When making a choice, the <strong>needs of your problem </strong>will guide you to the appropriate data structure.&nbsp;</p><p>Here's a <strong>4-step process</strong> that you can use to choose data structures. (We'll explore this process through a simple analogy of storing new shoes.)&nbsp;</p><ol><li><p>Understand your problem &amp; its constraints</p><ol><li><p>E.g., Computer has limited memory</p></li><li><p><strong>Real-world example</strong>: You need to store new dress shoes, but have limited closet space.</p></li></ol></li><li><p>Evaluate requirements for data you're storing&nbsp;</p><ol><li><p>E.g. Data must be easy to update</p></li><li><p><strong>Real-world example</strong>: Shoes must be easy to access once in a while, but not cause clutter.</p></li></ol></li><li><p>Identify data structures that meet key requirement(s)</p><ol><li><p><strong>Real-world example</strong>: Two storage options are boxes under the bed, or a hanging rack behind the door.&nbsp;</p></li></ol></li><li><p>Select the data structure with the most acceptable trade-offs</p></li></ol><p><strong>Real-world example</strong>: Because the hanging door rack causes clutter, the shoes can be stored under the bed. The trade-off of under-bed storage is that it takes effort to pull it out, but this is acceptable since you don't need the shoes often.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!q2ms!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!q2ms!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 424w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 848w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 1272w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!q2ms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png" width="1176" height="936" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:936,&quot;width&quot;:1176,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:121761,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!q2ms!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 424w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 848w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 1272w, https://substackcdn.com/image/fetch/$s_!q2ms!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F80a5c9a2-352e-4133-9f0c-192844f856cc_1176x936.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Learning how to choose data structures is just a matter of <strong>learning when to make acceptable trade-offs</strong>. You're never just picking a structure based off its pros &#8212;&nbsp;you need to remember its cons, and assess which con is most tolerable for the given scenario at hand.</p><h2>You'll have better judgment over time</h2><p>Becoming a strong programmer requires you to make strategic choices when solving problems. This is true whether you're deciding on data structure, algorithm, or more complex matters like software or system design.&nbsp;</p><p>How do you make the "right" choice? This is something you'll perfect over time. You will make "wrong" or non-optimal choices as you're learning, and that's ok! When you do, you may still be able to solve your problem &#8212;&nbsp;just less efficiently. These "wrong choices" are some of the best learning opportunities, as long as you assess why your choice wasn't practical, and take that lesson with you for the future.&nbsp;</p><p>As a reminder, you can find what you need to get from your first line of code to your first day on the job with Educative's <strong><a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a></strong> subscription, including 30+ hands-on courses and projects in the industry&#8217;s most popular programming languages.</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[The CrowdStrike crash lesson every dev should remember]]></title><description><![CDATA[What a small, yet devastating bug can teach us about effective software development]]></description><link>https://www.letterstocoders.com/p/the-crowdstrike-crash-lesson-every</link><guid isPermaLink="false">https://www.letterstocoders.com/p/the-crowdstrike-crash-lesson-every</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 31 Jul 2024 15:00:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>On July 19, we saw what might have been the largest IT outage in history.</p><p><strong>8.5 million Windows devices</strong> crashed and were unable to boot up. This crash affected everything from flights to university classes to surgeries. Even Times Square was illuminated with the ghostly blue of the "Blue Screen of Death" on its big screens.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>The outage wasn't a cybersecurity issue, as was initially suspected. However, it <em>was</em> caused by an update to the cybersecurity software, CrowdStrike. Unfortunately, this update contained some bad code.&nbsp;</p><p>Today, I'll break down exactly what happened with the CrowdStrike crash, and why it serves as a warning for developers and companies alike:</p><ul><li><p>The consequences of bad code</p></li><li><p>Why CrowdStrike's code caused crashes</p></li><li><p>How we can prevent this from happening again</p></li></ul><p>Let's get started.</p><h2>The consequences of bad code</h2><p>In cybersecurity, we use terms like <strong>bad actors</strong> and <strong>malicious code</strong> when we're talking about individuals and code with the intent to harm users. But when we say <em>bad code,<strong> </strong></em>what we simply mean is that the code had a <strong>bug</strong>.&nbsp;</p><p>Bugs come from various sources. They can be logic errors, syntax errors, semantic errors, etc. They can lead to programs crashing, or otherwise unexpected results. The particular bug that led to the CrowdStrike crash involved a <strong>logic error</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!BX4-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!BX4-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 424w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 848w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 1272w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!BX4-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2407206,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!BX4-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 424w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 848w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 1272w, https://substackcdn.com/image/fetch/$s_!BX4-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4ec3e05-ff5b-4381-a780-1f63644c3d24_1588x894.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">BSOD in Times Square <a href="https://www.reddit.com/r/pics/comments/1e7h3bn/times_square_crowdstrike_bsod/">(Reddit)</a></figcaption></figure></div><p>The bad code in the July 19 update was in a particular <strong>configuration file</strong>. A configuration file is basically a set of instructions that tells the software what to do in certain scenarios. For CrowdStrike's update, the configuration file contained new information intended to protect from new threats. Unfortunately, it instead caused CrowdStrike to crash &#8212;&nbsp;along with the devices on which it was installed.</p><h2>Why CrowdStrike's code caused crashes</h2><p>We've all had programs crash on our computers, and it usually doesn't take the whole computer down with it. So why would CrowdStrike's crash cause an <em>entire device</em> to fail?</p><p>The short answer is the type of permissions that security software like CrowdStrike. We can visualize CrowdStrike's permissions on the <strong>protection ring</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!88Nb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!88Nb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 424w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 848w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!88Nb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png" width="1048" height="1296" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1296,&quot;width&quot;:1048,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:504263,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!88Nb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 424w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 848w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 1272w, https://substackcdn.com/image/fetch/$s_!88Nb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F34a7a0e2-e84d-48c0-9b15-477a43a4c4d0_1048x1296.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The protection ring determines the <strong>level of control</strong> a program has over a device's CPU (Core Processing Unit). The CPU is like the heart of a computer. Programs that run in Ring 0 have the greatest access to CPU, while programs in Ring 3 have the least access.&nbsp;&nbsp;</p><p>If a program running in Ring 3 were to fail, it wouldn't impact the rest of the system. However, a failure in a program running in Ring 0 can take down the entire device. This is exactly what happened when CrowdStrike's bug occurred.&nbsp;</p><p>Cybersecurity software like CrowdStrike has to run in <strong>Ring 0</strong>. This is because the protective software needs to be active before any other processes start. If not, malicious code could take over before the software can stop it. Unfortunately, millions of Windows devices simply couldn't boot up because of CrowdStrike's crash.</p><h2>How we can prevent this from happening again</h2><p>Bugs are inevitable. That's why <a href="https://www.letterstocoders.com/p/the-debugging-secret-i-wish-they">debugging</a> is an essential skill. However, it isn't failproof, and debugging alone is not enough to prevent bugs from happening.&nbsp;</p><p>The good news is that there are several <strong>well-established best practices</strong> that can catch and resolve bugs. Most organizations implement these practices. (As you may expect, there has been some question as to whether CrowdStrike has been implementing them, and I'll get to that in a moment.)&nbsp;&nbsp;</p><p>Before discussing those practices, let's take a look at the software development life cycle (SDLC).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!91s0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!91s0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 424w, https://substackcdn.com/image/fetch/$s_!91s0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 848w, https://substackcdn.com/image/fetch/$s_!91s0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 1272w, https://substackcdn.com/image/fetch/$s_!91s0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!91s0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png" width="1456" height="391" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:391,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:355893,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!91s0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 424w, https://substackcdn.com/image/fetch/$s_!91s0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 848w, https://substackcdn.com/image/fetch/$s_!91s0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 1272w, https://substackcdn.com/image/fetch/$s_!91s0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8d3c5623-2f7f-4a66-bd94-1d3bc8f93089_1818x488.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If you're not familiar with it, SDLC is a <strong>plan that organizations follow</strong> to develop and maintain their software. Leadership can coordinate everything from new software to updates using the roadmap outlined by the SDLC. The SDLC is not only designed around efficiency and effective solutions, but also around the goal of yielding high quality software. The tasks that really begin to target bugs are seen in the <strong>later stretch of the SDLC cycle</strong>, once the building has begun.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uWwU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uWwU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 424w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 848w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 1272w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uWwU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png" width="1448" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1448,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:358557,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uWwU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 424w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 848w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 1272w, https://substackcdn.com/image/fetch/$s_!uWwU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0231ee3-21d9-4063-81cf-48f0dee79c98_1448x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Some of the most helpful practices for spotting and resolving bugs are found in the Build, Test, and Deploy phases. These include:</p><ul><li><p><strong>Code reviews: </strong>Developers review code to catch errors and inconsistencies</p></li><li><p><strong>Version control:</strong> Keeping a log of recent changes and previous versions</p></li><li><p><strong>Testing: </strong>Ensuring the software works in different situations</p></li><li><p><strong>Staged rollouts: </strong>Releasing software or updates in<strong> </strong>stages, instead of all at once</p></li><li><p><strong>Rollback mechanisms: </strong>The ability to undo changes and revert to previous versions of software, if needed</p></li></ul><p>Some of these practices help catch bugs before they are sent out to users. However, that's not always possible. No matter how rigorous we are, some bugs can slip past safeguards, or will happen in unexpected scenarios we haven't tested for. When that happens, practices such as staged rollouts and rollback mechanisms help us bounce back with minimal impact on users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Huh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Huh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 424w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 848w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 1272w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Huh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png" width="1456" height="401" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:401,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246857,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Huh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 424w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 848w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 1272w, https://substackcdn.com/image/fetch/$s_!9Huh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1096abd3-75df-447a-8e01-00ce3ee56604_1626x448.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Visualization of staged rollouts</figcaption></figure></div><p>There has been significant concern about how closely CrowdStrike has been adhering to these best practices. For instance, it's clear that <strong>CrowdStrike did not implement staged rollouts</strong>. Staging rollouts means we release an update gradually, starting from a small portion of users and ending with every user. This gradual release would help us become aware of any bugs in an early stage, at which point we would stop releasing the update to more users. If CrowdStrike had staged rollouts, they would have known the update was crashing Windows devices earlier, and stopped before it affected 8.5 million users.&nbsp;</p><p>Unfortunately CrowdStrike didn't adhere fully to several best practices, and this outage is a grave demonstration of the consequences of ignoring these tried-and-true safety measures.</p><h2>What CrowdStrike teaches us about software development</h2><p>In a world that depends on technology, developers and organizations have a huge responsibility to ensure their software is as good as it can be. This doesn't mean we have to achieve perfection. Mistakes are inevitable. But we can prevent major mistakes such as the CrowdStrike bug by adhering to all these standards at an individual and organizational level.&nbsp;</p><p>When it comes to ensuring software quality, you will likely work with other specialists like DevOps engineers. But even if you do, certain key tasks will always be <strong>your responsibility</strong>. These include code reviews, writing tests, and following the coding best practices and guidance within your organization.&nbsp;</p><p>Every software development practice has a good reason behind it. While they may seem tedious, don't take them for granted. Your team, your software's users, and the world will be counting on you!</p><p><em>Happy learning!</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Landed your first job? Burn your old CS homework.]]></title><description><![CDATA[Why your best solution as a student won't make it in the real-world &#8212; and that&#8217;s okay.]]></description><link>https://www.letterstocoders.com/p/landed-your-first-job-burn-your-old</link><guid isPermaLink="false">https://www.letterstocoders.com/p/landed-your-first-job-burn-your-old</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 24 Jul 2024 15:01:52 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Iqr-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I started my first job as a professional software developer, I was shocked to find that most of the best practices I had learned as a student no longer applied.</p><p>You can be the best in your class. You can have an amazing, elegant solution to any problem school throws at you. And yet, once you enter the workforce, you might be in for a rude awakening.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Why? <strong>There's a big difference between academic and practical</strong> <strong>solutions</strong>.</p><p>As a student, many of the problems you encounter in your coursework will have clearly defined starting and ending points. You will be learning concepts in an academic setting &#8211; often outside of their real-world context &#8211; building self-contained toy problems that don&#8217;t resemble the complex applications you will be working on as a pro.</p><p>On the job, the problems you will encounter are messy. You will rarely (if ever) build an entire application from start to finish yourself.</p><p>That said, while real-world problems are a lot more complex, you can still find a path through them. Today, I'll show you how to problem-solve like a professional, so you can hit the ground running in your first job.</p><p>Let&#8217;s dive in!</p><h3>The limits of academic solutions</h3><p>Imagine that while you learned to code, you practiced each new concept by adding upon the same program you built for your very first coding project. This approach would lead to a far more complex program than starting from scratch. Now imagine that very first program codebase was written by 300 developers over the course of 20 years... Welcome to the real world.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Iqr-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Iqr-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 424w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 848w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 1272w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Iqr-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png" width="706" height="772" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1e7621f-a02b-4809-9452-02a9146f8923_706x772.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:772,&quot;width&quot;:706,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:245637,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Iqr-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 424w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 848w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 1272w, https://substackcdn.com/image/fetch/$s_!Iqr-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1e7621f-a02b-4809-9452-02a9146f8923_706x772.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Whether in a university program or a tutorial, academic solutions and their corresponding problems are designed purely for learning. No matter how elegant it may be, <strong>you can't usually bring your solution from a student project to your first developer job</strong>.&nbsp;</p><p>This is because academic environments offer a blank slate, unlike real-world work environments. Blank slates are excellent for learning. They give us opportunities to apply our learnings by building projects from scratch. But once we enter the real world, the best practices and techniques that worked on our blank slates may not be relevant for our new situations. This is because we now have to work around existing code and its bugs or constraints.</p><p>At work, you'll be dealing with codebases that could be decades old. The old code (i.e. "legacy code") can be completely incompatible with what would otherwise be an academically sound solution.&nbsp;</p><p>When working with an existing program, you'll have to <strong>make compromises</strong> between your ideal state and the existing codebase. For example, let's say you're writing a program that can store someone's name. You have names with different characters and accents (e.g. &#233;). Instead of removing the accents, you might want to keep them in their correct form. You could do this by creating a unicode string, which can support names with various characters. However, the unicode standard was not supported in many languages two decades ago. If you were to try to store these names in an older program, and an older part of the program tried to parse it, it would yield unintended results. It would be safer to opt for non-accented characters instead.</p><p>The difference between an academic solution and a workplace solution is like the <strong>difference between building a new house and renovating an old house</strong>. When building from scratch, you have the freedom to apply any practices you'd like. But an existing building has its own constraints and history you'd have to work around.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hERN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hERN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 424w, https://substackcdn.com/image/fetch/$s_!hERN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 848w, https://substackcdn.com/image/fetch/$s_!hERN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 1272w, https://substackcdn.com/image/fetch/$s_!hERN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hERN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png" width="1456" height="706" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:706,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1770166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hERN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 424w, https://substackcdn.com/image/fetch/$s_!hERN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 848w, https://substackcdn.com/image/fetch/$s_!hERN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 1272w, https://substackcdn.com/image/fetch/$s_!hERN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F27df853f-d80e-4c91-8322-9dd6f5844208_2016x978.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>This may look like a disastrous renovation, but trust me, some of the solutions you'll have to implement in legacy code will seem just as questionable!</em></p><p>Even if you wanted to add the most efficient technologies to an old building, it might have constraints that could make that difficult, impossible, or even disastrous. For example, if you wanted to install a modern HVAC system, an old building may not have the necessary electrical infrastructure and structural support. Worse yet, its walls and layout could be unable to support the weight or configuration of such a system. Installing a modern HVAC without considering these constraints could lead to inefficient heating and cooling or, at worst, structural damage.</p><p>Applying best practices to existing codebases is similar. Even if the engineering community has generally understood a best practice or new technique to be beneficial, their <strong>implementation in a legacy codebase could yield unpleasant results</strong>.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IcX8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IcX8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IcX8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg" width="651" height="383" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:383,&quot;width&quot;:651,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:62936,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IcX8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IcX8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F840a5d33-4c70-42e2-9302-33892a6fece4_651x383.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For instance, you can't just decide to use modular architecture when your codebase is a monolith. Similarly, implementing new, touted security protocols could result in vulnerabilities if you don't understand the legacy code's dependencies.&nbsp;</p><p><em>This all being said, it's not the case that every coding best practice can be risky in a codebase. Some practices are certainly safe to apply regardless of the legacy code you're working with, such as code commenting or the DRY principle (Don't Repeat Yourself).</em></p><h3>Learning to work with legacy code</h3><p>If legacy code is what's preventing us from using more efficient solutions, why not just overhaul it and start over? Rewriting may seem like an obvious solution, but it's not practical.&nbsp;</p><p>When I was working at Microsoft, the codebase we were dealing with was written using C99, a standard that was created when I was in high school. It was 15-year-old code, and there was so much in the codebase that upgrading all of it would have been difficult&#8230; so we just continued to build the software in C99. (There were other teams at Microsoft with legacy that was even older than this code, and they had to stick with it, too).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xpD_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xpD_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 424w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 848w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 1272w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xpD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png" width="902" height="760" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:760,&quot;width&quot;:902,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:257655,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xpD_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 424w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 848w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 1272w, https://substackcdn.com/image/fetch/$s_!xpD_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94b4a63b-98a3-4175-9e32-9ec597f7f6ab_902x760.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It may seem like a worthwhile investment to just start over and rewrite code. Truthfully, it isn't.&nbsp;</p><p>For one, it's <strong>incredibly costly</strong>. The development time and costs that would be involved would be immense. Meanwhile, services can't afford to cease running while we rebuild them. There are still users who need them, and bugs that pop up everyday. You would need to hire an entire development to rewrite the software in parallel to the team that maintains it.</p><p>If development teams are expensive, we might have an urge to simply write a converter and just convert and upgrade everything. But you don't know what <strong>unintended consequences</strong> changes can have. These kinds of mega upgrades will often uncover hidden bugs that were there for decades, but for some reason didn't manifest themselves before they were changed. This alone holds us back. It would create a lot of problems for customers and developers alike.&nbsp;</p><p>There's unimaginable complexity that comes with attempting to rewrite codebases, and the scale of the code that would have to be rewritten can be immense. In most cases, it's not worth taking the risk to take on such an endeavor. As a developer working in a codebase, this means you have to <strong>learn to live with the decisions someone has already made</strong> &#8212; sometimes decades ago.</p><h3>As always, success comes down to problem-solving</h3><p>How do you make strong choices and smart moves in an imperfect world? Consider the nuances, and let your problem-solving skills do the rest.</p><p>After all, it&#8217;s not the specific coding skills you learn as a student that will serve you most in your career &#8212; it&#8217;s the problem-solving skills you build.</p><p>When solving problems, you are always dealing with constraints. Legacy codebases will give you various constraints themselves. From your first job onward, you'll have to consider that code's constraints and requirements as you consider optimal solutions. As a student, you may have jumped to a textbook example of a best practice&#8230; but as a professional, your solution may instead be a more creative compromise between the goal you want to achieve, and the legacy code you're striving to maintain.&nbsp;</p><p>As a reminder, you can build your programming career from the basics on up with our <strong><a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a></strong> courses and projects at Educative. These hands-on courses are designed to help you build and practice the real-world problem solving skills that will enable you to thrive as a professional developer.</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How do programs actually get executed?]]></title><description><![CDATA[The magic starts after you click "run"]]></description><link>https://www.letterstocoders.com/p/how-do-programs-actually-get-executed</link><guid isPermaLink="false">https://www.letterstocoders.com/p/how-do-programs-actually-get-executed</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 17 Jul 2024 18:42:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wylo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I was a new programmer, there was one essential under-the-hood process that perplexed me for some time: <strong>how programs get executed</strong>.&nbsp;</p><p>Specifically, I wondered, "How does a word in English translate into something a computer understands?" I would type in a command in human-readable language (e.g. "print()"), and somehow it would run. However, I knew that computers really only understand machine language, which only consists of binary numbers (0s and 1s).&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Turns out that the key player working behind the scenes here is the <strong>compiler </strong>(or interpreter, depending on the language). Once you learn how the compiler works in tandem with other key components, you'll better understand how your code can create a fully functional program. And with that, will come a deeper appreciation for the technologies you'll be using on a daily basis.</p><p>Let&#8217;s dive in!</p><h2>The role of the compiler in program execution</h2><p>In simplest terms, we can think of the compiler as a <strong>translator</strong>.</p><p>The compiler converts high-level programming languages ( human-readable code) into binary numbers (machine-readable code), which is a set of instructions for the computer to understand.&nbsp;</p><p>This set of instructions is then executed by the processor, which we can think of as the "brain" of the computer that does all the thinking and math (e.g. Intel, M4).</p><p>Nearly every programmer today uses one of countless high-level programming languages (Python and Java are two popular examples). These high-level programming languages allow us to use more human-readable code, and distance ourselves from the low-level, machine-readable code that consists of binary numbers. As humans, writing in binary code is both a cumbersome and error-prone process (and quite frankly, it's not for everybody).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wylo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wylo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 424w, https://substackcdn.com/image/fetch/$s_!wylo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 848w, https://substackcdn.com/image/fetch/$s_!wylo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 1272w, https://substackcdn.com/image/fetch/$s_!wylo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wylo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png" width="1456" height="428" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:428,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:326333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wylo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 424w, https://substackcdn.com/image/fetch/$s_!wylo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 848w, https://substackcdn.com/image/fetch/$s_!wylo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 1272w, https://substackcdn.com/image/fetch/$s_!wylo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8722de-46a3-4470-ae4b-f7c563e090e8_5117x1505.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To aid its translation, the compiler has a static list of english commands and its binary counterparts. These lists are called <strong>instruction sets</strong>. Each processor has its own distinct machine language, and your compiler will translate your language into the machine code of the target computer hardware using its given instruction set.</p><p>Human translators don't just translate words &#8212; they also understand many semantic nuances. Similarly, compilers also have the capacity to understand the intention of the program and syntax, allowing us to more easily write sophisticated programs. For example, if you're running a loop, and you want to print something ten times, the compiler is not going to print ten <em>print</em> instructions. Instead, it will tell the computer that it wants to execute something ten times, which is far more efficient.</p><h2>What comes after translation?</h2><p>What we've learned about compilers applies to how programs are written and executed in almost all modern computers. But what comes next?</p><p>Before we get to that, let's just discuss the <strong>von Neumann architecture</strong> that applies to most modern computers today, which consists of these main components:&nbsp;</p><ol><li><p><strong>Processor</strong>: The core component responsible for executing logical instructions and performing arithmetic calculations.&nbsp;</p></li><li><p><strong>Memory:</strong> Where the computer stores information and instructions, like a big filing cabinet.</p></li><li><p><strong>Input devices</strong>: How we tell the computer what to do (e.g. keyboard or mouse).</p></li><li><p><strong>Output devices</strong>: How the computer presents results after processing the data (e.g. screen or printer).</p></li></ol><p>Each of these components are essential players in the execution of a program. The processor, in particular, takes center stage after receiving instructions from the computer, orchestrating the entire process <strong>from code to tangible results</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X8Bd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X8Bd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 424w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 848w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 1272w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X8Bd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png" width="1456" height="449" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:449,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:141476,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X8Bd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 424w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 848w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 1272w, https://substackcdn.com/image/fetch/$s_!X8Bd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff8be9c20-e7bc-4ed0-866c-266e15b13514_3654x1127.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>(Depicted above: von Neumann Architecture - The Stored Program Concept)</em></p><p>Once translated, programs can then be loaded into the computer memory. From there onwards, the processor executes them through what we call the <strong>read-execute-store cycle</strong>. In this process, each instruction is read, executed, and the results are stored back in memory for later use. This process continues until the last instruction is executed.&nbsp;</p><h2>A practical example</h2><p>Let's imagine we want to build a program that can follow recipes to prepare meals in a simulated game environment.&nbsp;</p><p>The following table shows a sample <strong>instruction set</strong>, or numeric codes for instructions and ingredients:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1bW1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1bW1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 424w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 848w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 1272w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1bW1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png" width="1456" height="758" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:758,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1756019,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1bW1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 424w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 848w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 1272w, https://substackcdn.com/image/fetch/$s_!1bW1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c3ab5f8-5576-40c3-bb15-e2b62d1e2ade_10242x5333.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Note that different instructions require varying numbers of items to operate upon. For example, MIX requires two things to be mixed whereas BAKE requires only one item to be baked. Thus, the length of each statement corresponding to a recipe step will vary accordingly.</p><p>We can utilize this instruction set and ingredients to construct a recipe. A sample recipe for baking a cake follows:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gwyI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gwyI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 424w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 848w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 1272w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gwyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png" width="1456" height="531" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:531,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:543939,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gwyI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 424w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 848w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 1272w, https://substackcdn.com/image/fetch/$s_!gwyI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f9517b4-52b1-42ce-9dfe-e2ca75e0cb91_3857x1407.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But we wouldn't actually want to write our program this way &#8212;&nbsp;that's the compiler's job. To make it user-friendly, the <strong>translator</strong> will take our instructions in a human readable language and automatically convert it to the machine code.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EADt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EADt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 424w, https://substackcdn.com/image/fetch/$s_!EADt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 848w, https://substackcdn.com/image/fetch/$s_!EADt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 1272w, https://substackcdn.com/image/fetch/$s_!EADt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EADt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png" width="1456" height="486" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:486,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:789166,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EADt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 424w, https://substackcdn.com/image/fetch/$s_!EADt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 848w, https://substackcdn.com/image/fetch/$s_!EADt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 1272w, https://substackcdn.com/image/fetch/$s_!EADt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d9e1fd0-a4e5-412d-b09a-58e4205fbedf_5894x1967.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Conclusion</h2><p>There is unimaginable complexity hidden behind programming. But thanks to advancements in technologies such as compilers, more of us can enjoy programming without having to dive into its technical depths.&nbsp;</p><p>We can be incredibly grateful to the generations before us that have worked to develop the thousands of high-level programming languages that allow us to work in human-readable code as opposed to machine language.</p><p>No matter where you're at in your learning journey, understanding the "why" behind what we're doing is just as important as getting plenty of hands-on practice. As a reminder, you can find various hands-on, beginner-friendly courses and projects to build a strong foundation in programming with our hands-on <strong><a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code resources</a></strong>.&nbsp;</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[SWE Interview 101: What's the deal with take-home projects?]]></title><description><![CDATA[A FAANG hiring manager's intro to one of the trickiest parts of the software developer interview loop.]]></description><link>https://www.letterstocoders.com/p/swe-interview-101-whats-the-deal</link><guid isPermaLink="false">https://www.letterstocoders.com/p/swe-interview-101-whats-the-deal</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 10 Jul 2024 14:02:27 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="pullquote"><p><strong>Note:</strong> This post is adapted from a <a href="https://www.educative.io/blog/faang-manager-demystifies-take-home-coding-project?utm_campaign=github_nurture&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">blog</a> I wrote for CS students over at Educative. If you&#8217;re currently a student, you can get <strong>6 free months</strong> of access to Educative via our <a href="https://www.educative.io/github-students?utm_campaign=github_nurture&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">GitHub Student Pack</a> (including our AI Mock Interviewer tool). If you are able to take advantage, definitely do!</p></div><p>The internet is full of horror stories about take-home assignments in coding interviews. Some candidates report spending 50+ hours building an application, only to submit it and be ghosted by the interviewer.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!_lnp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_lnp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 424w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 848w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 1272w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!_lnp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png" width="1456" height="318" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:318,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_lnp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 424w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 848w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 1272w, https://substackcdn.com/image/fetch/$s_!_lnp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7c6428b-ef8e-41b6-a9f8-61dfa7e4fe6c_1568x342.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>While these experiences are unfortunate, they're <strong>not typical</strong>.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I've conducted hundreds of interviews at Microsoft, Meta, and now Educative. I don't ask candidates to spend more than <strong>a few hours</strong> on a take-home project. Plus, if you spend much more, it won't help your chances &#8212; I have time to review a couple hundred lines of code, not a few thousand.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LjgE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LjgE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 424w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 848w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 1272w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LjgE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png" width="1246" height="750" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:750,&quot;width&quot;:1246,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LjgE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 424w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 848w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 1272w, https://substackcdn.com/image/fetch/$s_!LjgE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa359c07b-27c9-4941-bc52-eb0f719c8762_1246x750.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, what are most take-home coding projects <strong>actually like?</strong></p><p>For the most part, companies want to see how you approach a small project in <strong>one workday</strong> or less. Project specifications vary widely across companies and roles, which is a good thing! A well-designed assignment offers a glimpse into the type of work you'd do on that team. It also enables interviewers to assess<strong> </strong>your technical and problem-solving skills, <strong>without the pressure </strong>of a live coding session.&nbsp;</p><p>Today, I want to provide a <strong>roadmap</strong> for tackling the take-home coding project so that you can advance in your technical interview. Whatever your project, these guidelines will help you build an effective solution in a reasonable timeframe.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X8w4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X8w4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 424w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 848w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 1272w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X8w4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png" width="980" height="506" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:980,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X8w4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 424w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 848w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 1272w, https://substackcdn.com/image/fetch/$s_!X8w4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ac3990e-33e4-4a01-a6c8-c0635835c5d4_980x506.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>First, let's address <strong>what to expect </strong>from the take-home project.</p><h1>How do take-home projects work?</h1><p>Take-home assignments present a task for you to complete asynchronously in a limited timeframe. Companies may assign a task at any stage of the coding interview. It can be an early screening tool, or an assessment later in the process.</p><p>Projects can <strong>vary widely</strong> by role. For example, front-end candidates may be asked to replicate a reference design given in Figma, while full-stack candidates may need to create an appointment scheduler application. You may receive starter code, or be asked to build from scratch in a language of your choice. Some companies even allow you to pick your own project.</p><p>Depending on the complexity of your task, you typically have a day or two to work on it, sometimes with a cap of a few hours.</p><p>You may wonder <strong>if it's worth </strong>investing time in a take-home project, especially if you're not yet a serious candidate. To that point, I'd encourage you to <strong>keep 2 things in mind:</strong></p><h4><strong>1. The software engineering job market is highly saturated.</strong></h4><p>Software engineering is a more popular field than ever, but there aren't enough roles to meet this demand. Companies often screen hundreds, sometimes 1,000+ candidates for each position.</p><p>Think of it this way. About <strong>5%</strong> of candidates are selected for initial screening. In a pool of 1,000 candidates, that's <strong>still 50</strong>. Managers may not have time to speak with all 50 candidates.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!UBDx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!UBDx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 424w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 848w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 1272w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!UBDx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png" width="1414" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1414,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!UBDx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 424w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 848w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 1272w, https://substackcdn.com/image/fetch/$s_!UBDx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ff0f350-36ce-4832-8d2e-7974f45ba8f5_1414x590.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Take-home assignments give interviewers a better sense of your skills and help narrow the candidate pool to a <strong>manageable number.</strong></p><p>In a saturated market, take-home assignments can actually <strong>help you stand out </strong>&#8212;as long as you're prepared to tackle them efficiently.</p><h4><strong>2. Reasonable coding assignments should only take a few hours.</strong></h4><p>As we discussed earlier, it's possible you'll encounter an unreasonable coding assignment. But most companies understand that you're juggling interview prep for multiple roles.</p><p>Well-designed coding assignments <strong>aren't</strong> a test of who's willing to work the hardest. They <strong>do</strong> show interviewers how you build practical solutions under a deadline, using whatever setup and resources you find most helpful.</p><p><strong>Remember:</strong> time limits on assignments exist for a reason. In one quick scan, interviewers want to get a sense of the core skills you used to solve the problem. It's okay to spend 6 hours on a 4-hour assignment. But if you spend 40, it will be obvious that you did (and more difficult to assess your core skills).</p><h1>I received my assignment&#8230; now where do I start?</h1><p>If you've received a take-home assignment from a company, congratulations! It's difficult to stand out from the pack, so any progress in your application is worth celebrating.</p><p>It can be tempting to dive into building right away. However, <strong>rushing into your project</strong> can lead you to miss key requirements and work inefficiently. You don't want to realize several hours in that you've started something too complicated to finish, or failed to address core requirements.</p><p>You only have a few hours, so it's critical that you take a <strong>measured and strategic</strong> approach. I've outlined <strong>5 tips</strong> to guide you through the take-home project, so that you can focus on what matters, minimize anxiety, and advance in your technical interview.</p><h2>5 tips to ace your coding take-home project</h2><h3>1. Clarify requirements</h3><p>Descriptions for take-home projects are typically very brief. To ensure you understand the task, read the instructions<strong> </strong>two or three times and take notes. You'll probably have all the information you need. However, if it's unclear which frameworks, libraries, or data sources you should use, ask for clarity as soon as possible.</p><h3>2. State the assumptions</h3><p>Part of being a developer is making sound decisions in ambiguous contexts. Some aspects of the assignment will leave room for interpretation &#8212; this is likely intentional.</p><p>Avoid asking tons of clarifying questions. Instead, make reasonable assumptions whenever possible and state them in your code comments. Providing insight into your assumptions helps interviewers understand your work. Plus, it reflects well on your communication skills.&nbsp;</p><h3>3. Focus on core requirements</h3><p>To make efficient use of your time, it's important to focus on the core requirements rather than &#8220;nice to have&#8221; features. As you decide what to build, divide your planned tasks into "core functionality" and "optional." Only return to the "optional" category if you finish earlier than expected.</p><p>Some candidates struggle to complete the functionality of their project because they spend too much time laying the groundwork. Boilerplate code and directory structures are important. However, don't get carried away &#8212; you'll be more successful if you start by creating what's absolutely necessary.</p><h3>4. Test</h3><p>As a professional developer, you'll need to write unit tests to ensure your code works as expected. These standards apply to your take-home project.</p><p>There's no need to write a comprehensive battery of tests, but I recommend writing a few unit tests and including some edge cases. It will improve your code quality and show that you know what it takes to write great software.</p><h3>5. Write clean code</h3><p>You may have a creative idea for how to solve a problem. But if your code is inefficient or difficult to follow, interviewers will doubt your technical abilities.&nbsp;</p><p>These best practices can help you write clean code and catch mistakes:</p><ul><li><p>Use tools like prettifiers, linters, and memory leak detection tools</p></li><li><p>Read your code carefully &#8212; tools don't catch everything</p></li><li><p>Write modular code and follow the SOLID principles</p></li><li><p>If you create a database (instead of using a JSON file), be sure to normalize it</p></li><li><p>Keep scalability and robustness in mind</p></li><li><p>Validate all inputs</p></li><li><p>When in doubt, add code comments</p></li></ul><p>To be clear, interviewers aren't expecting perfect code in your take-home project. However, incorporating these guidelines shows that you have the technical skills and discipline to do production-quality work.</p><h1>Don't forget to enjoy the process!</h1><p>If you've completed a degree or bootcamp to become a software engineer, I'm guessing it's because you love solving complex problems with code. To land a role where you can do this, there are many hoops you need to jump through, from writing your resume and submitting applications to preparing for interviews.</p><div class="pullquote"><p><strong>Reminder: </strong>If you are currently a student and want 6 months free to Educative &#8211; including access to our new AI Mock Interview tool &#8211; you can sign up for the <a href="https://www.educative.io/github-students?utm_campaign=github_nurture&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">GitHub Student Pack</a> today.</p></div><p>Only a small portion of the process involves what you enjoy most &#8212; <strong>building stuff!</strong></p><p>So, if you're feeling anxiety or dread about the take-home project, remember<em> why</em> you want a software engineering job in the first place. You've spent months or years studying so that you can solve tasks like this one. The more you're able to connect to the joy of coding, the <strong>less arduous</strong> your take-home project will feel.</p><p>Remember: there's no need<strong> </strong>to overthink it! The skills you've honed in your studies, plus the tips I've shared today, are <strong>more than enough</strong> to help you complete a successful project.</p><p>Good luck, and stay tuned for more tips on how to ace your coding interview.</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[AMA: What are your most burning questions about learning to code?]]></title><description><![CDATA[Plus, I'll share the inspiration behind your favorite Letters to New Coders posts so far.]]></description><link>https://www.letterstocoders.com/p/ama-what-are-your-most-burning-questions</link><guid isPermaLink="false">https://www.letterstocoders.com/p/ama-what-are-your-most-burning-questions</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 03 Jul 2024 15:01:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F98f7e59a-e53b-4ba2-8b6d-96de17130b04_2556x3408.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Time flies! I have been writing Letters to New Coders for two months.</p><p>I sincerely hope you have found value in these letters so far. I will say, writing every week has certainly been a fantastic learning experience for me.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>So today, to commemorate the 2-month milestone (and celebrate the <strong>hundreds</strong> of you who have already subscribed), I want to do two things:</p><ol><li><p>Count down the <strong>top three most popular posts</strong> so far (and share the background story and inspiration for each)</p></li><li><p>Invite you to <strong>ask any burning questions you have</strong> about learning to code!</p></li></ol><p>Most of the newsletters I have written thus far were inspired directly by <strong>questions I have personally been asked by new coders</strong>. In my opinion, that makes for the most useful and valuable content. Plus, odds are that if you&#8217;re thinking it, someone else is too &#8212; so I really looking forward to hearing from you.</p><p>You are welcome to just respond or comment here, and I will plan on addressing your questions in upcoming newsletters!</p><p>Now without further ado, I&#8217;ll count down the <strong>three most-read letters</strong> so far:</p><h1>#3</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;1902765e-6edc-46bd-bc63-80a791f16a3d&quot;,&quot;caption&quot;:&quot;My daughter just turned 12 and will learn to drive in a few years. When I picture her getting behind the wheel, I can't help but think about how different her experience will be from mine. When I got my US driver's license in 2006, I didn't even have a back-up camera, let alone automatic parking. I certainly never imagined that semi-autonomous cars would&#8230;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How to learn to code with AI in 2024&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:89132484,&quot;name&quot;:&quot;Fahim ul Haq&quot;,&quot;bio&quot;:&quot;Ex-Facebook &amp; Microsoft Software Engineer, now creating interactive tech skills courses @ Educative.io.&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/98f7e59a-e53b-4ba2-8b6d-96de17130b04_2556x3408.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-05-08T20:20:56.366Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50e94bdc-1ab5-45b8-84fd-33d582ea68e2_1184x800.png&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.letterstocoders.com/p/how-to-learn-to-code-with-ai-in-2024&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:144419938,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:5,&quot;comment_count&quot;:1,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Letters to New Coders&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7016966-bf9d-4099-9c72-cbc7aab56e46_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p><strong>Why this letter?</strong></p><p>I have been asked this question more times than I can count lately. New coders, CS students, and early-career developers can see the writing on the wall, and are concerned about their long-term career prospects. I don&#8217;t blame them for feeling this way.</p><p>That said, I stand by what I wrote in this piece. The reality is that with AI coding tools becoming more commonplace and powerful , it becomes even MORE important to master the fundamentals than ever before. Of course, there is plenty more to say on this topic &#8212; so stay tuned for more AI + Learn to Code discussions in upcoming newsletters!</p><p><em>Note: This is also a question I&#8217;ve been thinking about at Educative in terms of our own AI-enabled <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a> resources. The goal is to use AI to your advantage, while not letting it become a crutch in the learning process. If you are curious to get hands-on with foundational coding concepts with the help of AI, we have some cool courses over there that you might enjoy.</em></p><h1>#2</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;14a5a153-e1d8-42f0-b622-1d540c793d48&quot;,&quot;caption&quot;:&quot;Within a few weeks of starting my university computer science program, I hit a pretty demoralizing \&quot;coder's block.\&quot; This hiccup was agonizing at the time &#8212; but ended up giving me one of the biggest lessons I learned in my coding career. I'm sharing this lesson today in the hopes that it will save you some potential stress along your own journey.&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;How drawing a chess board became my greatest coding lesson&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:89132484,&quot;name&quot;:&quot;Fahim ul Haq&quot;,&quot;bio&quot;:&quot;Ex-Facebook &amp; Microsoft Software Engineer, now creating interactive tech skills courses @ Educative.io.&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/98f7e59a-e53b-4ba2-8b6d-96de17130b04_2556x3408.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-05-29T15:18:08.929Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde9cd2e5-8567-4d0d-a9cf-3d532d3b847c.heic&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.letterstocoders.com/p/how-drawing-a-chess-board-became&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:145078576,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:6,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Letters to New Coders&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7016966-bf9d-4099-9c72-cbc7aab56e46_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p><strong>Why this letter?</strong></p><p>I have always loved coding lessons that show up when and where you least expect them. Here&#8217;s a bit of a counterintuitive one:</p><p>At the start of your learning journey, learning how to program is as much about training your brain to <em>think</em> like a developer as it is about actually learning literal code.</p><p>I count this particular story as one of those perfect little problem-solving lessons &#8212; and one of the first times I started to really understand how to &#8220;hack&#8221; a problem like a developer would. I hope you find it useful in your own journey!</p><h1>#1</h1><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;a15ed5cf-7413-409c-a890-9f6478e7386f&quot;,&quot;caption&quot;:&quot;Many aspiring developers ask themselves: \&quot;Am I smart enough to become a developer?\&quot; I actually hate this question. Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work. It's rooted in myths about what it takes to be a developer &#8212; not in reality. Developers are by no means geniuses. We're not smarter than th&#8230;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Am I smart enough to become a developer?&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:89132484,&quot;name&quot;:&quot;Fahim ul Haq&quot;,&quot;bio&quot;:&quot;Ex-Facebook &amp; Microsoft Software Engineer, now creating interactive tech skills courses @ Educative.io.&quot;,&quot;photo_url&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/98f7e59a-e53b-4ba2-8b6d-96de17130b04_2556x3408.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2024-05-15T18:40:20.458Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75b7a924-40cb-4d3c-aa70-e6ef4a25d85e_642x389.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://www.letterstocoders.com/p/am-i-smart-enough-to-become-a-developer&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:144665551,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:7,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Letters to New Coders&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd7016966-bf9d-4099-9c72-cbc7aab56e46_256x256.png&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p><br><strong>Why this letter?</strong></p><p>I don&#8217;t know a single great developer who hasn&#8217;t struggled with fears around feeling smart enough at one point or another.</p><p>This topic clearly struck a chord, even helping spark this fantastic Reddit thread, which asked the question of <a href="https://www.reddit.com/r/learnprogramming/comments/1csvwia/struggling_with_do_you_have_to_be_smart_to_be_a/">&#8220;do you have to be smart to be a developer?</a>&#8221;.</p><p>I absolutely love seeing the community weigh in and share their insights. To quote one of the posters:</p><blockquote><p>In order to stay the course on a long journey of software development, the question is not, "am I smart?", the question is, "am I prepared to be made to feel stupid on a regular basis?"</p></blockquote><p>I couldn&#8217;t have said it better myself!</p><div><hr></div><p>That&#8217;s all for this week. Please comment with your questions if you have them, and I look forward to responding to them in the coming weeks! Until then&#8230;</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><p></p><h1></h1><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Is learning to code hard? A pragmatic guide]]></title><description><![CDATA[Today let's unpack this popular, but misguided question.]]></description><link>https://www.letterstocoders.com/p/is-learning-to-code-hard-a-pragmatic</link><guid isPermaLink="false">https://www.letterstocoders.com/p/is-learning-to-code-hard-a-pragmatic</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 26 Jun 2024 14:01:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As someone who started a company that helps people learn coding skills, I hear this question all the time:</p><p>"Is learning to code hard?" (In fact, the last time I was asked this was less than 24 hours ago).&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>It&#8217;s a popular question, but it&#8217;s also a misguided question. It's impossible to objectively claim whether learning to code is hard. Everything is subjective. Of course, it&#8217;s safe to expect that learning to code will have its challenging moments. But learning to code is also very attainable.</p><p>So if someone asked me &#8220;is coding hard,&#8221; I would tell them this:</p><p><em>Your personal learning journey is a function of the skills you need to learn and the time you have to study.&nbsp;</em></p><p>Or, to put it more simply: <strong>all it takes is time and effort</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nHTw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nHTw!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nHTw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg" width="542" height="515" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:515,&quot;width&quot;:542,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:16796,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nHTw!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nHTw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3eb10b6-5510-4cfa-bd96-316991c6b341_542x515.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Today I want to go back to the question &#8220;is learning to code hard,&#8221; and unpack a few assumptions.</p><p>Whether they realize it or not, anyone asking this question is most likely trying to grapple with another question &#8212;&nbsp;and I'll share what that question is at the end of this blog.</p><p>But first, I want to share what you can expect from your learning journey based on your personal background.</p><h2>Your learning curve = Time x Skills</h2><p>Learning to code is all about building new skills, and it takes time to obtain those skills.</p><p>Depending on your background, you will have a different learning journey (and curve) than other aspiring programmers. Let&#8217;s break down what that could mean for you.</p><p></p><h4>Skills you&#8217;ll need to become a developer</h4><p>Some skills will differ depending on your specialization, but apart from that, the coding fundamentals remain the same.&nbsp;</p><p>Many people start immediately by trying to learn a programming language, but I personally believe that starting with foundational <strong>problem-solving skills</strong> is the way to go.</p><p>Problem-solving is the core of what developers do. We understand problems and learn how to tell computers how to implement optimal solutions. Every successful developer has highly developed problem-solving skills, so you'll want to strengthen these skills from the start.</p><p>This involves training your brain to <em>think</em> like a coder, i.e. learning to solve problems algorithmically by breaking them down into their component parts.</p><p>Either after or alongside problem-solving, you'll learn a <strong>programming language</strong> and its basics: its syntax, functions, variables, and so on. From there, you'll learn the specialized tools that developers use to solve problems: <strong>data structures and algorithms</strong>.&nbsp;</p><p>Another essential skill is <strong>debugging</strong>. As unpleasant as it may be, your code will suffer from bugs for various reasons. It's either going to behave unexpectedly or it won't even run. This is normal and to be expected. Debugging is just as essential as learning to code. (In case you missed it, check out my recent post on <a href="https://www.letterstocoders.com/p/the-debugging-secret-i-wish-they">debugging secrets</a>).</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3bhq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3bhq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3bhq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg" width="447" height="371" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:371,&quot;width&quot;:447,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:26451,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3bhq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3bhq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f0857b7-d2ba-4f18-a9d0-bbacb947e61c_447x371.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>At this point, you've covered the coding basics, but the rest of your skill acquisition depends on your goals for <strong>career</strong> <strong>specialization</strong>.</p><p>Certain specializations will require more advanced skills than others. For example, let's zoom in on the math requirements. While a front-end web developer can do well with just basic algebra, machine learning engineers will need to learn Linear Algebra, etc.</p><h4>Time it takes to become a developer</h4><p>Learning to code could take anywhere from <strong>12 weeks to six years</strong>. That's a big range because there are significant variables that can affect your learning progress. The biggest variable of all is simply the <strong>time you can commit to learning and practicing</strong>.</p><p>The person who has only 2 hours to study every week simply won&#8217;t learn as quickly as someone with 40 hours of study time. If you have less time to spare due to other commitments, it's more effective to <strong>practice often</strong> for shorter periods of time, than to fit your studies into infrequent cram sessions (e.g., 1 hour twice a week is better than 2 hours once a week).</p><p>If you're fortunate enough to have a lot of time <em>and</em> happen to pick up programming quickly, you might be able to build decent sized programs in as little as 12 weeks. However, you'd still need a lot more time to secure a job or become truly proficient as a programmer.</p><h4>Are there other variables?</h4><p>Skills and time are the most easily predictable variables. However, there are various other circumstances that may slow or accelerate your learning journey.</p><p>Just as with sports, there may be skills (or in the case of sports, genetics) that can help you learn coding more quickly. For instance, you may find that thinking like a programmer comes more naturally if you come from a background in analytical thinking, such as math, philosophy, logic, engineering, or even science. And of course, if you already have exposure to seeing code or programming languages, that will also help you ramp up more quickly.</p><p>Because they can either accelerate or slow down our learning process, it can be easy to think of unique circumstances as advantages or disadvantages, but I think that&#8217;s an oversimplification.&nbsp;</p><p>To me, there's no benefit in attaching a positive/negative value statement to circumstances that you cannot change. These words are a product of comparing oneself with your perception of others &#8212; perceptions that may not be grounded in reality. (In fact, I would even argue that the more obstacles you overcome, the stronger programmer you will be in the long run).</p><p>Just as with learning any new skill, everyone will face unique challenges when learning certain aspects of programming. Some topics will come easier to you while others won't. This is true for every developer, no matter how &#8220;talented&#8221; they may be.</p><p>These challenges that lead to difficulty are what I like to call <strong>roadblocks</strong>.</p><p>There's truly no way to predict exactly <em>when</em> you will hit roadblocks, but you should expect that they will arise at various points along your journey. And while roadblocks may seem to slow your progress, just know that these dips or plateaus in your learning are actually the precedent to having breakthroughs. (In fact, this process is what educators call a <strong>productive struggle</strong>, something I talked about in a <a href="https://www.letterstocoders.com/p/learning-to-code-heres-why-getting">post a couple weeks back</a>).</p><p>No matter our circumstances, the only difference between skilled developers and beginners is persistence and time.</p><h2>Let&#8217;s answer the REAL question in your head</h2><p>Now let&#8217;s revisit our original question: &#8220;is learning to code hard?&#8221;</p><p>I believe what people are really wondering when they ask this question is this:</p><p><strong>Can I really manage to become a programmer?</strong></p><p>And to answer that question, there's really only one way to find out.</p><p>How can we tell if someone can manage to become a chef? There's no diagnostic test that tells us this information. Even if there <em>were</em> a diagnostic test, what would it assess? A person's textbook knowledge of ingredients, food allergies, and the difference between stainless steel and cast iron isn't enough to make them a great chef. Neither is it enough to simply have them cook something and taste it.</p><p>The final product or the presentation can't tell us whether someone's a great chef because it's what happens behind the scenes that proves their greatness.</p><p>Excellent chefs deliver your meal despite any challenges they encounter in the inevitable chaos of the kitchen. They may have burnt the food, used salt instead of sugar, or gotten new oil stains, but you still wouldn't know the difference based on the quality of the dish in front of you.&nbsp;</p><p>The only true way to know if you can become a programmer is to try it and stick with it. This means persisting <strong>despite any struggle</strong> along the way. Only when you get past that baking period (pun intended) can you know if you have what it takes to be a programmer.&nbsp;</p><p>On that note, you can take your first steps at the problem-solving foundations of coding with a <a href="https://www.educative.io/module/page/k5m3gAColoJZZj89Y/10370001/4607683377364992/6679102928060416?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Taste of Code</a>. And if you're ready for more, we have plenty more <a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">hands-on, AI-powered courses for beginners</a> looking to build a strong foundation in their career.&nbsp;</p><p><em>Happy learning!</em></p><p>&#8211; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[A gentle introduction to print statement debugging]]></title><description><![CDATA[It's like shining a flashlight in a dark tunnel to find those pesky bugs.]]></description><link>https://www.letterstocoders.com/p/a-gentle-introduction-to-print-statement</link><guid isPermaLink="false">https://www.letterstocoders.com/p/a-gentle-introduction-to-print-statement</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Thu, 20 Jun 2024 13:02:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If writing code is day, then debugging is night. Dealing with bugs is non-negotiable in coding. In fact, the most skilled programmers are also the best at debugging.&nbsp;</p><p>Today, I want to give a gentle introduction to one of the most effective debugging strategies that will be relevant throughout your career: <strong>print statement debugging</strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>If you have already written an entire program, then you're ready for this tutorial. If you haven't, feel free to join us and get a sneak peek of this skill that's waiting for you later in your learning journey.</p><h2>What is print statement debugging?</h2><p>Print statement debugging is a fantastic way to trace the behavior of a program to understand where an error occurred, and how to fix it. (Another perk: it requires no additional tools or complex setups.)</p><p>This debugging technique involves <strong>placing print statements</strong> at various positions in your program.&nbsp;</p><p>These print statements help elucidate your code's behavior by generating outputs that reflect:</p><ul><li><p>The values of variables</p></li><li><p>Flow of execution</p></li><li><p>The state of your program at various points</p></li></ul><p>These print statements are additional lines that you write into your program. If you owned a coffee shop, you can think of print statements as shift supervisors who are present at the shop, keeping you updated on the status of operations.&nbsp;</p><p>Of course, print statements are not placed randomly throughout code<strong>.</strong> You should place statements strategically at <strong>key areas where the state changes or important operations occur</strong>, such as:</p><ul><li><p>Before and after loops</p></li><li><p>Inside conditional blocks</p></li><li><p>At the beginning, middle, and end of functions</p></li></ul><p>For example, suppose we have written a program that calculates the sum of numbers in a list but it&#8217;s not returning the expected result. Here&#8217;s the code:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ow2R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ow2R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 424w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 848w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 1272w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ow2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png" width="1456" height="501" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:501,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:64040,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ow2R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 424w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 848w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 1272w, https://substackcdn.com/image/fetch/$s_!Ow2R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F453c6272-6b88-4657-b267-e7ca5977efc9_1626x560.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can add a print statement in the code to help us notice what's happening in the program.&nbsp;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GD24!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GD24!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 424w, https://substackcdn.com/image/fetch/$s_!GD24!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 848w, https://substackcdn.com/image/fetch/$s_!GD24!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 1272w, https://substackcdn.com/image/fetch/$s_!GD24!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GD24!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png" width="1456" height="544" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:544,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77822,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GD24!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 424w, https://substackcdn.com/image/fetch/$s_!GD24!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 848w, https://substackcdn.com/image/fetch/$s_!GD24!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 1272w, https://substackcdn.com/image/fetch/$s_!GD24!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F59648b63-e93e-4c5e-94d9-71004f0c73d8_1612x602.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This added print statement will show us the value of the number being added and the intermediate value of the <code>total</code>. This helps us trace the execution and verify if the logic inside the loop is correct.</p><h2>Using print statements for debugging</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kUj_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kUj_!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kUj_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg" width="923" height="818" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:818,&quot;width&quot;:923,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:74860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kUj_!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 424w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 848w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!kUj_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5977095-91e7-4e1f-bb38-33e338ae6b6a_923x818.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>In its simplest form, the steps to using print statements for debugging are:&nbsp;</p><ol><li><p>Identifying key areas</p></li><li><p>Inserting print statements</p></li><li><p>Running the program</p></li><li><p>Analyzing the output</p></li><li><p>Identifying the issue</p></li><li><p>Fixing the bug</p></li><li><p>Removing the print statement&nbsp;</p></li></ol><p>Here are some best practices to keep in mind:</p><h4>Use descriptive messages</h4><p>Instead of just printing variable values, include context about what those values represent. For example:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xzYL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xzYL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 424w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 848w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 1272w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xzYL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png" width="1456" height="209" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:209,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23914,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xzYL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 424w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 848w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 1272w, https://substackcdn.com/image/fetch/$s_!xzYL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F31df9a20-f6b3-4c53-8b0d-fded4910ab7b_1628x234.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Track execution flow</h4><p>Use print statements to trace the flow, especially in complex logic with multiple branches. For example:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DSd1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DSd1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 424w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 848w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 1272w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DSd1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png" width="1456" height="218" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:218,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:21333,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DSd1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 424w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 848w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 1272w, https://substackcdn.com/image/fetch/$s_!DSd1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbfeb0dfe-7bdf-4fff-a72e-ef9635c52ee6_1614x242.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h4>Be strategic (don&#8217;t overdo it!)</h4><p>Overdoing print statements can affect the performance of your application &#8212;&nbsp;especially when you're working in the professional environment.</p><p>In professional development, you'll be working on massive codebases where performance is likely a priority. Instead of using print statements, you may be using a related technique called logging, however you'll still need to decide where to place logging to help monitor a program. Figuring out exactly where to put print statements without overdoing is not so much a science as it is an art. But the more you do it, the better your judgment will get.</p><h2>Example: Code with a logical error</h2><p>Let's try with an example.</p><p>Suppose we have a function that checks if a list of numbers contains any even number(s). The code is intended to return <code>True</code> if there is at least one even number and <code>False</code> otherwise.&nbsp;</p><p>However, there is a logical error:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P_s9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P_s9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 424w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 848w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 1272w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P_s9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png" width="1456" height="566" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:566,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72741,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P_s9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 424w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 848w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 1272w, https://substackcdn.com/image/fetch/$s_!P_s9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c49da5c-655a-4341-9aed-95febcee66f7_1622x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Expected output: </strong><code>True</code><br><strong>Actual output:</strong> <code>False</code></p><p>To debug this, we can <strong>add print statements</strong> to understand the flow of execution and the values being checked:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FE_6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FE_6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 424w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 848w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 1272w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FE_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png" width="1456" height="677" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:677,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:106457,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FE_6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 424w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 848w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 1272w, https://substackcdn.com/image/fetch/$s_!FE_6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff49331bb-3cf8-464e-a73b-32a62c7f3c14_1626x756.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Analyzing the output</strong></h4><p>By running the modified code, we get the following output:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rFbd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rFbd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 424w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 848w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 1272w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rFbd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png" width="842" height="436" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f244e981-8291-4161-b330-f4ce9725b0e0_842x436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:436,&quot;width&quot;:842,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:29089,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rFbd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 424w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 848w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 1272w, https://substackcdn.com/image/fetch/$s_!rFbd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff244e981-8291-4161-b330-f4ce9725b0e0_842x436.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The output shows that the function returns <code>False</code> after checking only the first number, <code>1</code>. This indicates that the <code>else</code> branch is causing an immediate return of <code>False</code>, even if there might be even numbers later in the list.</p><h4><strong>Corrected code</strong></h4><p>To fix this logical error, we should only return False after checking all numbers in the list:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!38pG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!38pG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 424w, https://substackcdn.com/image/fetch/$s_!38pG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 848w, https://substackcdn.com/image/fetch/$s_!38pG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 1272w, https://substackcdn.com/image/fetch/$s_!38pG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!38pG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png" width="1456" height="589" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:589,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:90571,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!38pG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 424w, https://substackcdn.com/image/fetch/$s_!38pG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 848w, https://substackcdn.com/image/fetch/$s_!38pG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 1272w, https://substackcdn.com/image/fetch/$s_!38pG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe64374e-b41b-4f10-8256-8d199d48cb10_1618x654.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Corrected output</strong></h4><p>Now, the output correctly identifies that there is an even number in the list:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VSIg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VSIg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 424w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 848w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 1272w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VSIg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png" width="724" height="574" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:574,&quot;width&quot;:724,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:50982,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VSIg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 424w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 848w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 1272w, https://substackcdn.com/image/fetch/$s_!VSIg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5442dba0-34ce-4a75-ae16-f1803933170e_724x574.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Using print statements, we traced the execution flow and identified that the function was returning <code>False</code>. This allowed us to correct the logic and ensure the function worked as required.</p><h2>Becoming a professional debugger&nbsp;</h2><p>Becoming a developer means becoming a debugger too. And print statements are a great way to start getting methodical with debugging. Once you've understood print statements and strengthened your debugging skills, you'll be able to move on to <strong>logging</strong> for the professional development environment.&nbsp;</p><p>Either way, the best way to grow your debugging skills is by making mistakes and getting your hands dirty with debugging.</p><p>If you'd like to learn more about debugging, we've launched a great beginner-friendly course that covers various debugging strategies: <strong><a href="https://www.educative.io/courses/mastering-debugging-techniques-for-eficient-code-diagnosis?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Mastering Debugging: Techniques for Efficient Code Diagnosis</a></strong>.</p><p>Happy debugging!</p><p>&#8211; Fahim</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Learning to code? Here's why getting stuck is a good thing.]]></title><description><![CDATA[When your beginner's luck runs out, the productive struggle begins.]]></description><link>https://www.letterstocoders.com/p/learning-to-code-heres-why-getting</link><guid isPermaLink="false">https://www.letterstocoders.com/p/learning-to-code-heres-why-getting</guid><dc:creator><![CDATA[Fahim ul Haq]]></dc:creator><pubDate>Wed, 12 Jun 2024 17:28:37 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Imagine a game of billiards. An intermediate player teaches a total beginner how the rules work, and they play a round. The beginner wins.</p><p>This is a classic case of <strong>beginner's luck</strong>: when circumstances grant an inexperienced person success that is disproportionate to their novice skill level.&nbsp;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Beginner's luck usually gives people a false sense of confidence. As a new coder, imagine you solved your first 10 coding challenges with 100% success rate, or you wrote your first five programs without a single bug. This is all well and great, but it's circumstantial &#8212; and it does run out before too long.&nbsp;</p><p>Losing your beginner's luck can be disheartening. Things don't come easily anymore, and unfortunately, this is the point when some beginners quit. It may seem counterintuitive, but losing your luck means you've entered a more productive part of your learning journey.</p><p>Today I'll talk about the idea of the <strong>productive struggle</strong> &#8212; and explain why losing your luck is actually one of the most important parts of the learning curve:</p><ol><li><p>Why beginner's luck ends (and why that&#8217;s a good thing)</p></li><li><p>Embracing the entire learning curve</p></li><li><p>Setting up for long term success</p></li></ol><h2>Why beginner&#8217;s luck ends</h2><p>The only way to master any skill is with time and plenty of practice (and failures). This is especially true for coding.</p><p>When I first started learning to use pointers in C, it seemed easy. But over the course of a few weeks, I realized pointers were a significant and even mind-bending concept that would take months and years to master.&nbsp;</p><p>As soon as beginner's luck starts running out, you may feel that you don't know what you're doing wrong. You can feel stuck and <strong>lose momentum</strong>. You may even feel your progress is moving backwards.&nbsp;</p><p>What you may not realize is that this shift is not a matter of luck at all &#8212; you&#8217;ve just reached a <strong>new phase of the learning curve</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-t_w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-t_w!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 424w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 848w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 1272w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-t_w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png" width="978" height="938" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/94e0d328-8f98-4530-884e-c6b02871deec_978x938.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:938,&quot;width&quot;:978,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:384473,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-t_w!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 424w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 848w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 1272w, https://substackcdn.com/image/fetch/$s_!-t_w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F94e0d328-8f98-4530-884e-c6b02871deec_978x938.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Learning to program is <strong>like hiking up a mountain </strong>with different paths<strong>.</strong> All the paths reach the same summit, but you'll experience <strong>steepness in different parts</strong> of the journey. Every path has its own challenges. You may not know when you'll encounter a steep incline, but when you do, it's going to be an arduous climb (and you'll have to persist despite it).</p><h2>The steeper part of the learning curve</h2><p>Some developers hit dips in their learning and think, "Coding isn't for me." But this is far from the truth. Everyone encounters obstacles. It may feel counterintuitive, but struggling in the learning process is actually very effective for your learning.&nbsp;</p><p>There's actually a term educators use for this:<strong> productive struggle</strong>. By actively engaging in challenging (even uncomfortable) learning activities, our brains even produce myelin, which encourages skill retention and effective signaling in the brain.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H3gH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H3gH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 424w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 848w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H3gH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png" width="1456" height="802" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:802,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:769107,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H3gH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 424w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 848w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 1272w, https://substackcdn.com/image/fetch/$s_!H3gH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F287d7a4c-bab9-4abc-bc08-e3b17777a815_2016x1110.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There's a sweet spot between ease and overwhelm, where you need to be challenged by a concept in order to make a breakthrough in your learning. However, to make the most of that sweet spot, it's essential that you:</p><ul><li><p>Remain clear on what your goal is</p></li><li><p>Get support when you need it</p></li><li><p>Have a healthy relationship with failure&nbsp;</p></li></ul><p>A lot of people even <strong>give up programming prematurely</strong> because they hit an incline and don't have mentors to tell them they're a healthy part of the learning process. Imagine someone started to lift weights and gave up because they were sore, and thought this meant they weren't good. This is when a coach should be there to tell you, "Hey, becoming sore is part of the process. It's normal and means you're growing &#8212; that&#8217;s literally the feeling of your muscles breaking down and growing back stronger. In some cases, the soreness won't go away for a week, but you'll still keep getting better."</p><p>Any professional developer gets stuck on countless concepts and bugs throughout their coding journey. The only difference is that successful programmers persisted. And sometimes, persistence just means taking a nap (in other words, taking a break).</p><h2>It&#8217;s not the wrong path. Keep pushing ahead.</h2><p>When you hit a roadblock and lose momentum, it's best to stick to that path that you&#8217;re already on than to abandon your progress for a different one.</p><p>I've seen many new developers switch programming languages just because they lost momentum. This can be tempting if you're self-taught and have an abundance of choices available when it comes to learning your first programming languge.&nbsp;</p><p>Switching tracks like this ultimately slows your growth, making you the jack of all trades and <strong>master of none</strong>. If you take up Python and get stuck, you might think, &#8220;Maybe I would've been better off with Java,&#8221; and switch over. At first, you might find that you&#8217;re picking up Java faster, further validating your belief that Python was the wrong choice. In reality, the only reason you'd feel more comfortable with the new language in this situation is because you&#8217;re <strong>repeating the beginner steps in another language</strong>. (After all, the skills you learn in one language do transfer over to the other, which is why it doesn&#8217;t <em>really</em> matter which programming language you learn first).&nbsp;</p><p>No matter which language, skill, or concept you're learning, you can expect to hit a steep incline sooner or later (and several times). When you do, your key to success is maintaining resilience and embracing the struggle.</p><h2>Luck alone won&#8217;t make you a pro</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OVUX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OVUX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 424w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 848w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 1272w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OVUX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png" width="746" height="704" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ed596c44-389a-4b47-93fa-5302f1784975_746x704.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:704,&quot;width&quot;:746,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:185530,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OVUX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 424w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 848w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 1272w, https://substackcdn.com/image/fetch/$s_!OVUX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fed596c44-389a-4b47-93fa-5302f1784975_746x704.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>When I learned my first programming language, I was confident that I could build <strong>complex apps like Microsoft Word</strong> quickly. After all, this program would just need a few functionalities, of which I already knew a few (how to get input and save a file).</p><p>As soon as I tried building a text editor myself, the reality hit quickly that it wasn't that easy. In reality, every successful product is a complex software backed by a lot of engineering. And while building basic programs is a good start, it's only the beginning of building job-ready skills.</p><p>It can be easy to believe that if you've picked up a language quickly, you can become a professional developer quickly, too. The truth is that successful developers have gone much farther and spent more time not only learning a language. They've understood the core of data structures and algorithms that help them solve problems optimally. As a professional developer, your main task is not even using a programming language: it's <strong>problem-solving</strong>. In the problem-solving process, you really only use the programming language at the very end, to translate your solution into executable instructions for the computer.</p><p>Coding is an amazing career, and it will constantly challenge you. Once you're in the professional world, you'll need to learn to leverage more complex computer science skills to apply your current tools to the fullest. You can worry about these more complex skills later down the line, but in the meantime, I hope you <strong>enjoy the learning process</strong> &#8212;&nbsp;even when you have to move uphill.</p><h2>Braving the summit</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RT62!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RT62!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 424w, https://substackcdn.com/image/fetch/$s_!RT62!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 848w, https://substackcdn.com/image/fetch/$s_!RT62!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!RT62!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RT62!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png" width="956" height="1108" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1108,&quot;width&quot;:956,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:370689,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RT62!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 424w, https://substackcdn.com/image/fetch/$s_!RT62!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 848w, https://substackcdn.com/image/fetch/$s_!RT62!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 1272w, https://substackcdn.com/image/fetch/$s_!RT62!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F498cd38e-243c-4d69-b5ce-e3d709741301_956x1108.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>You don't need luck </strong>to succeed in your coding journey. The true key to success is persistence.&nbsp;</p><p>Inclines in the learning curve can be frustrating and demoralizing, yet we all encounter them &#8212;&nbsp;and they're a good thing. Every professional programmer I've talked to can recount days where they were stuck because of an obstacle in their learning, despite endless Googling and nail-biting.&nbsp;</p><p>Even if you're stuck, remember that you're still on the same path as the greats. <strong>Take a break, ask for help, or retrace your steps</strong> to find the root that's tripping you up. When you're making mistakes or feeling stuck, breakthroughs are just around the corner. You will find the way forward as long as you try.&nbsp;</p><p>As a reminder, you can learn everything you need, from your first line of code to your first job with Educative's <strong><a href="https://www.educative.io/learn-to-code?utm_campaign=learn_to_code&amp;utm_source=substack&amp;utm_medium=text&amp;utm_content=&amp;utm_term=&amp;eid=5082902844932096">Learn to Code</a></strong> courses.&nbsp;</p><p><em>Happy learning!</em></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.letterstocoders.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Letters to New Coders! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>