<?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[Exceptional Frontend: 🧠 On Learning]]></title><description><![CDATA[Collection of past emails on the meta-skill of learning (learning how to learn) and on personal insights into Frontend development itself.]]></description><link>https://exceptionalfrontend.substack.com/s/posts-on-learning</link><image><url>https://substackcdn.com/image/fetch/$s_!c9T9!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F224ce758-7d8b-4a5b-bb6f-031382b629ad_500x500.png</url><title>Exceptional Frontend: 🧠 On Learning</title><link>https://exceptionalfrontend.substack.com/s/posts-on-learning</link></image><generator>Substack</generator><lastBuildDate>Thu, 09 Apr 2026 00:40:55 GMT</lastBuildDate><atom:link href="https://exceptionalfrontend.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Mauro Accorinti]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[exceptionalfrontend@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[exceptionalfrontend@substack.com]]></itunes:email><itunes:name><![CDATA[Mauro Accorinti]]></itunes:name></itunes:owner><itunes:author><![CDATA[Mauro Accorinti]]></itunes:author><googleplay:owner><![CDATA[exceptionalfrontend@substack.com]]></googleplay:owner><googleplay:email><![CDATA[exceptionalfrontend@substack.com]]></googleplay:email><googleplay:author><![CDATA[Mauro Accorinti]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[I revamped the Roadmap.sh Frontend Roadmap!]]></title><description><![CDATA[An alternative to frontend learning!]]></description><link>https://exceptionalfrontend.substack.com/p/i-revamped-the-roadmapsh-frontend</link><guid isPermaLink="false">https://exceptionalfrontend.substack.com/p/i-revamped-the-roadmapsh-frontend</guid><dc:creator><![CDATA[Mauro Accorinti]]></dc:creator><pubDate>Fri, 04 Jul 2025 23:16:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cWG-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I'll be honest, the last few weeks have made writing weekly particularly hard. Finding the time to prioritize researching, thinking, and writing a weekly newsletter issue has been a challenge. Personal stuff got in the way, and... yeah.</p><p>This week was no exception. I've been trying to find more ways to teach you how to be exceptional, but the well is drying up. I don't really have a good article-like story-filled email for you this week &#128532;</p><h2><strong>SO INSTEAD I SAID SCREW IT, LET'S REVAMP <a href="https://roadmap.sh/frontend">&#8203;THE ROADMAP.SH FRONTEND ROADMAP&#8203;</a>!</strong></h2><p>Instead of working hard with words, I decided to work hard with diagrams! I will never allow the well to dry up. If it does, I'll just continue drilling deeper &#128526;</p><p>HAVE FUN:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cWG-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cWG-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 424w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 848w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 1272w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cWG-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png" width="1399" height="1815" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1815,&quot;width&quot;:1399,&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_!cWG-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 424w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 848w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 1272w, https://substackcdn.com/image/fetch/$s_!cWG-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2bfab8dc-dff1-4e55-81c0-c547579f4093_1399x1815.png 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><figcaption class="image-caption"></figcaption></figure></div><p>Now, I know what you're thinking... <strong>Why the heck revamp the roadmap at all?</strong></p><p><a href="https://roadmap.sh/">&#8203;Roadmap.sh&#8203;</a> is a wonderful resource for any developer. It gives you a terrific map of the things you could learn in the future and helps you understand where in the learning journey you probably are.</p><h2><strong>I only have one problem with it.</strong></h2><p>While it's great for showing you <strong>the recommended order</strong> in which to learn each big topic of front-end development, it's missing <strong>an overall structure of how these topics relate to one another.</strong></p><p>The roadmap, as it is, is basically a diagrammed, ordered list. First, learn HTML, then CSS, then JavaScript, then Git, then... ad infinitum.</p><p>As a complete beginner,<strong> I have a massive amount of knowledge to learn.</strong> I don't know what anything is. I don't have a mental model of how these topics work together.</p><p>"What's Git? How does it relate to code? Why are there so many frameworks? How does OAuth work in the front end? Does that have to do with SSR? What is SSR? I'm so confused!"</p><p>With the roadmap <em>as it is,</em> I learn a new topic and then have to do all the hard work of understanding how this new knowledge integrates with all my previously learned knowledge. But it doesn't have to be like that.</p><p>So, I want to kindly challenge the current roadmap, give a new perspective on learning you could pick up as an <strong>exceptional frontend developer</strong>, and offer an alternative change to the roadmap:</p><p>What if we kept the order in which we learn things as is in the roadmap, <strong>but then rearranged the physical locations of the topics and gave them a dotted "bounding box", which shows how they relate to each other?</strong></p><p>Suddenly, you look at the roadmap and something magical happens.</p><p>I'm not learning 24 different topics that I have to later understand how they relate to one another.<strong> I'm understanding that the front end could be divided into these "islands" that host a wide variety of topics.</strong> These islands can be called:</p><ol><li><p>Fundamentals</p></li><li><p>Collaboration and workflow</p></li><li><p>Frameworks and Architecture</p></li><li><p>Security</p></li><li><p>Advanced CSS</p></li><li><p>Type Safety</p></li><li><p>Other advanced stuff</p></li></ol><p>And look! I can see categories and their topics at a glance now. I can quickly understand that Git, build tools, linters, and package managers are tools related to collaboration and workflow. TypeScript is for JavaScript type-safety. Frameworks and SSR are heavily related to architecture. As a beginner, would I know how that exactly happens? Nope, but it doesn't matter! I know that those are tightly linked topics at a high level.</p><p>That's not even the best part! The new roadmap <strong>still respects the original order roadmap.sh has.</strong> It's just that now each topic has a number attached to it, which shows what order to tackle each one.</p><p>Notice that it's not sequential. If you were to follow the new roadmap, <strong>you'd still be jumping around to different islands.</strong> You'd first start with fundamentals, learn a few topics of collaboration and workflow, but then fall into picking a framework, and then go all the way back to learn more advanced things about CSS.</p><p>This benefits you because <strong>it creates a physical map of the topics instead of an ordered one.</strong> Which helps because even though&nbsp;<a href="https://exceptionalfrontend.substack.com/p/learning-is-sequential-knowledge?utm_source=publication-search">learning is sequential, knowledge is relational</a>. </p><p>With this type of map, you get the best of both!</p><p>Now don't get me wrong &#8211; <strong>I love and have</strong> <strong>complete and mad respect </strong>for the wonderful people at roadmap.sh, who have helped me and thousands of devs guide our learning and how to level up!</p><p>I just think it would be fun to rock the boat a bit, offer an alternative for roadmapping your developer journey, and (hopefully) find a nice way of rethinking how to make learning easier.</p><p>Let me know what you think!</p><p>And as always, have a wonderful weekend &#10084;&#65039;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://exceptionalfrontend.substack.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 Exceptional Frontend! 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 is sequential, knowledge is relational]]></title><description><![CDATA[Original email from Sep 20, 2024]]></description><link>https://exceptionalfrontend.substack.com/p/learning-is-sequential-knowledge</link><guid isPermaLink="false">https://exceptionalfrontend.substack.com/p/learning-is-sequential-knowledge</guid><dc:creator><![CDATA[Mauro Accorinti]]></dc:creator><pubDate>Sun, 09 Mar 2025 23:08:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c2714692-90ee-4075-bfea-8d34b671abb8_2000x2000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>First, you learn HTML, then CSS, then JavaScript...</strong></h1><p>Four years ago, that was the first thing I learned when I took the plunge into front-end. There was an "order" to how to learn this set of skills for making websites.</p><p>If we take a look at sites like <a href="https://roadmap.sh/frontend">the front-end roadmap</a>, we can see this in action. There's a recommendation being made here in what should (more or less) be known in what order.</p><p>This is helpful because, in most fields, a few key concepts <strong>have</strong> to be introduced first. That way, they can be used to build other concepts on top of those.</p><p>In front-end development, these first concepts are HTML, CSS, and JavaScript. And they take quite a while to get the hang of in the beginning. But then afterward you realize there's an endless list of concepts, knowledge, and tech stacks to learn. So then... how can you make learning a little bit easier?</p><h2><strong>Understand that while learning is sequential, knowledge is relational</strong></h2><p>We don't store information in our heads as if it were a giant array that we just access whenever we want.</p><p>(That would be funny if we did though. Imagine if remembering what you had for dinner last night meant accessing <strong>brainInformation[5739575397522572402774525727529524837438595]</strong>)</p><h2><strong>Instead, it's more effective to store information in our minds based on the relationship it has with other information.</strong></h2><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://exceptionalfrontend.substack.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 Exceptional Frontend! 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>Think of information as just data. It's facts, memories, ideas, thoughts, and opinions that we can absorb and remember at a later date.</p><p>"The date March 14th"</p><p>"My co-worker today wore a Yoda shirt"</p><p>"Avocados are a fruit, not a vegetable."</p><p>By themselves, these little bits of information hold no value. There is no context behind them or reason for them to stick out from other information you hold in your head. In fact, without a reason to remember these little bits of data, they become very easy to forget. And in fact, your brain does this every day with most of the information you learn and see.</p><p>To better remember information, it becomes necessary to make it relevant or related to other information in your brain. So if we wanted to remember this information better we could say:</p><p>"The date March 14th is relevant because <strong>it's my birthday"</strong></p><p>"My co-worker today wore a Yoda shirt and <strong>he told me last week it's his favorite shirt. He must really love Star Wars"</strong></p><p>"Avocados are a fruit, not a vegetable and <strong>I guess I don't know what a vegetable is anymore oh no. This changes my definition of vegetables."</strong></p><p>Suddenly, these little bits of information become more memorable, and you're more likely to store them in your head for longer. Doing this with information to make it easier to remember is a skill... And that's exactly what knowledge is.</p><h2><strong>Knowledge is the ability to relate information to make it more memorable</strong></h2><p>Information is only as useful as the use you can get from it. And the value of information will always come from <strong>its relationship with other bits of information</strong>.</p><p>That's why when you're learning, always try to relate it with other bits of information. Try to explain the similarities and differences between two concepts, and you'll quickly understand them better.</p><p>For example, what are the differences and similarities between HTML and Javascript?</p><p>Can you clearly explain that without googling or asking AI? &#128064;</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://exceptionalfrontend.substack.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 Exceptional Frontend! 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 Software Development Croissant 🥐]]></title><description><![CDATA[Original email from Sep 18, 2024]]></description><link>https://exceptionalfrontend.substack.com/p/the-software-development-croissant</link><guid isPermaLink="false">https://exceptionalfrontend.substack.com/p/the-software-development-croissant</guid><dc:creator><![CDATA[Mauro Accorinti]]></dc:creator><pubDate>Sun, 09 Mar 2025 23:05:45 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%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1><strong>Huzzah! You just got hired as a junior front-end developer in a company to create websites!</strong></h1><p>Congratulations Reader! You got your fancy nice computer and chair, met the team, got onboarded, and were given your first ticket:</p><p><strong>Add a button on a webpage</strong></p><p>"Oof, how do I do that again? What's a tag? Where's the repo again? What's a variable?"</p><p>It takes you three days of googling, but you manage it! Let's go &#128170;</p><p>You just completed one small task of what turns out to be a huge and complicated machine of millions of moving parts and processes.</p><h2><strong>We call this machine "the software development process".</strong></h2><p>To make sense of this giant machine, very smart people in the past figured out you could divide this process into a series of steps or phases. These phases are part of what's called "the software development 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_!cZc4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cZc4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cZc4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png" width="848" height="475" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45cb8564-3620-4762-823f-322722edd831_848x475.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:475,&quot;width&quot;:848,&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_!cZc4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!cZc4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45cb8564-3620-4762-823f-322722edd831_848x475.png 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>It's a simple series of concepts and is separated into x amount of steps. The x number will depend on which author you choose to read (although the main concept doesn't change). For this explanation, let's say there are 6 steps:</p><ol><li><p>You talk to the client and plan what you want to make or develop</p></li><li><p>You analyze how hard it would be to create what the client wants, what resources you'll need, and identify all requirements based on said needs of the client.</p></li><li><p>You sit down and design the solution. This means working together with designers and architects to get an idea of how you're going to build it.</p></li><li><p>You develop and build it! This is a very long and messy step. You'll run into loads of issues and it usually isn't pretty.</p></li><li><p>You finish development and QA takes over as they test the developed code to make sure things work as expected. Once everything is okay, you integrate it.</p></li><li><p>Maintenance starts. This means you support and fix any issues that might pop up as the software runs and is used by its users.</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://exceptionalfrontend.substack.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">Are you enjoying Exceptional Frontend? 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>Every step and phase has its roles and processes to follow. There's a lot of simplification going on here as well, as most of the time, the phases can have a lot of back and forth, as well as overlap, and can happen at the same time! So, understand this involves a lot of nuance in practice.</p><p>Despite the nuance, it still means that developing software is a team effort. In a big project, you might need project managers, functional analysts, client and stakeholder participation, architects and designers who consider scalability and UX/UI; developers for backend, frontend, and DevOps; quality assurance teams; and lots and lots of money and time.</p><p>If you're a freelancer or a senior dev, you might need to put on different hats and help with many phases of the development cycle.</p><h2><strong>But if you're a junior dev, you'll only have to focus on 2 or 3 phases in the beginning</strong></h2><p>You're still figuring stuff out. You're understanding how to develop software based on somebody's interpretation of the client's needs. Things are still really hard! So don't worry (too much) about planning, analyzing, or designing the software. As you gain experience and increase the impact you have, you'll slowly learn the different skills these phases require.</p><p>But for now as a Junior?</p><h2><strong>Just focus on the Software Development Croissant &#129360;</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_!qYSF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qYSF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qYSF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png" width="848" height="475" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:475,&quot;width&quot;:848,&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_!qYSF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!qYSF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b6bfef6-3c26-4e5b-9864-517b60955c14_848x475.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>Focus on learning <strong>how to implement (with best practices), work with QA teams, and maintainability of projects.</strong></p><p>Another way of looking at these phases is <strong>they're the steps that will help you practice and improve your hard skills.</strong> You know, the program-y types of skills we all love to work on. How to implement code in such a way that it's easy to read, easy to test, easy to maintain, easy to scale, and easy to add upon.</p><p>Once you <em>more or less</em> get a good handle on it, it becomes easier to consider the other aspects and skills needed in the other phases.</p><p>Plus croissants are delicious and dividing the wheel in 3 makes it look like a croissant!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jRIH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jRIH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jRIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png" width="848" height="475" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:475,&quot;width&quot;:848,&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_!jRIH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 424w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 848w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.png 1272w, https://substackcdn.com/image/fetch/$s_!jRIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d2514c8-109a-4563-add6-7138ea51afa9_848x475.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><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://exceptionalfrontend.substack.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 Exceptional Frontend! 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>