<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Elly Loel</title>
    <description>The latest articles on DEV Community by Elly Loel (@ellyloel).</description>
    <link>https://dev.to/ellyloel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F878395%2F040c2625-4f69-4a41-894a-b3e484ca58a1.png</url>
      <title>DEV Community: Elly Loel</title>
      <link>https://dev.to/ellyloel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ellyloel"/>
    <language>en</language>
    <item>
      <title>CSS Grid vs Flexbox: How to decide (with examples)</title>
      <dc:creator>Elly Loel</dc:creator>
      <pubDate>Sun, 09 Oct 2022 13:00:12 +0000</pubDate>
      <link>https://dev.to/ellyloel/should-i-use-flex-or-grid-305m</link>
      <guid>https://dev.to/ellyloel/should-i-use-flex-or-grid-305m</guid>
      <description>&lt;p&gt;Should you use a hammer or a screwdriver? Of course that would depend on the job!&lt;/p&gt;

&lt;p&gt;The same is true when comparing CSS Grid vs Flexbox. No one layout mode is better than the other. It depends on the task at hand!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This post shows you examples of when to use CSS Grid and examples of when to use Flex before explaining the differences in detail so you can confidently reason about which tool to reach for no matter the scenario.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is some overlap in what Grid and Flex can do, and that can be super confusing! By the end of this tutorial, you will understand the key differences and know how to pick the most suitable tool for your task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flexbox
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The history of the flexible box layout module
&lt;/h3&gt;

&lt;p&gt;The idea of flexbox was first discussed by the CSS Working Group sometime before 2008 and the first public draft was published in 2009. In their blog post “&lt;a href="https://www.xanthir.com/blog/b4Dm0"&gt;Flexbox is Dead, Long Live Flexbox!&lt;/a&gt;” Tab Atkins explains that “the original spec was too close of a direct translation from XUL”. XUL was Mozilla’s proprietary UI building language, it looks like an alternate universe version of HTML, which is why they were able to base the flexbox spec on it.&lt;/p&gt;

&lt;p&gt;Due to the issues with the first working draft, Tab Atkins rewrote the spec and over the course of 2011 and 2012, publishing four working drafts.&lt;/p&gt;

&lt;p&gt;Towards the end of 2012 the spec reached W3C candidate recommendation. This means the spec is stable, supported in browsers, tests are being written for it and there should not be a significant change from this version.&lt;/p&gt;

&lt;p&gt;But, there was still performance and efficiency improvements to be made. So over 2014 and 2015 there were three more working drafts. Finally, the spec once again reached candidate recommendation in early 2016.&lt;/p&gt;

&lt;p&gt;This is basically the flexbox we know and love today. The reason I covered this history in such detail is to help bring some context to the discussion surrounding layout in CSS. It wasn’t a easy or straight forward path to get to where we are today.&lt;/p&gt;

&lt;p&gt;People had reservations around flexbox, because it changed multiple times people felt like they couldn’t use it, because they thought it might change again.&lt;/p&gt;

&lt;p&gt;For the same reason people had reservations around grid when it first came out but the process for releasing the grid spec was much different to flexbox so it was needless worry.&lt;/p&gt;

&lt;p&gt;
  Flexbox vs Grid publication history
  &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ziHf-GG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/HdqQJNms6o-600.924e22e5.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ziHf-GG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/HdqQJNms6o-600.924e22e5.avif" alt="The flexbox spec went from draft to recommendation, then back to draft and back to recommendation again!" width="600" height="588"&gt;&lt;/a&gt; &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--62RJO44d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/0YI7yvMlCx-600.97524720.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--62RJO44d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/0YI7yvMlCx-600.97524720.avif" alt="The grid spec followed the usual draft to recommendation flow with no back tracking." width="600" height="749"&gt;&lt;/a&gt; 

&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS’s first layout mode intended for designing UIs
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Flex layout ... is designed for laying out more complex applications and webpages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— &lt;a href="https://www.w3.org/TR/css-flexbox-1/#flex-layout"&gt;W3C Flexbox spec&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I covered this history in detail to help bring some context to the discussion surrounding layout in CSS. The path to get here was long and windy. So windy, many developers were reluctant to adopt Flexbox in case it changed again. For this reason, it would be many years until Flexbox became commonplace. Around that time, Grid entered the scene and confused matters further.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qnxlDw4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/p74SGaIG4K-768.64a4c9aa.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qnxlDw4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/p74SGaIG4K-768.64a4c9aa.avif" alt="The history of flexbox. 2008, Birth of an idea, CSS Working Group first discussed the idea of Flexbox. 2009, Published Draft, CSS Working Group publishes first public draft. 2012, W3C Candidate Recommendation, Flexbox is stable and supported in browsers. 2014, Improvements, The Flexbox team started working on improvements. 2016, W3C Candidate Recommendation, Flexbox is updated and is stable and supported in browsers." width="768" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flex and Grid are not the only layout modes! There’s flow (aka the default layout mode), tables, floats, multi-column, and the list goes on. There are many different options, and it’s all about picking the best one for your use case.&lt;/p&gt;

&lt;p&gt;Flexbox was what the web needed, but because it was the first tool of it’s kind, developers misunderstood and misused it from time to time. Many layout problems would be better solved with Grid but are hacked together with Flex instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iWJgDRV4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/ZVFRUuAXVJ-768.49ddbcf0.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iWJgDRV4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/ZVFRUuAXVJ-768.49ddbcf0.avif" alt="Not the hero we deserved, but the hero we needed." width="768" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Law_of_the_instrument"&gt;law of the instrument&lt;/a&gt; is a cognitive bias that involves an over-reliance on a familiar tool. This perfectly describes most web developers’ relationship with Flexbox 🤣.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If the only tool you have is a hammer, it is tempting to treat everything as if it were a nail&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;— A. Maslow&lt;/p&gt;

&lt;p&gt;You might think there’s no need to learn Grid when you know Flex because they are basically the same.&lt;/p&gt;

&lt;p&gt;Ehhh, no, not really. It’s important to remember that there will never be one layout mode to rule them all. They all exist for a reason.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to use Flexbox?
&lt;/h3&gt;

&lt;p&gt;In this section let’s look at some common uses for Flexbox:&lt;/p&gt;

&lt;h4&gt;
  
  
  Responsive navigation bar
&lt;/h4&gt;

&lt;p&gt;An example of distributed navigation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZGkgGQ0Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Distributed-navigation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZGkgGQ0Z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Distributed-navigation.png" alt="" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/navigation.html"&gt;🔗 Play with the responsive navigation bar code&lt;/a&gt;




&lt;h4&gt;
  
  
  Split navigation
&lt;/h4&gt;

&lt;p&gt;An example of split navigation:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XwP00lff--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Split-navigation.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XwP00lff--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Split-navigation.png" alt="" width="800" height="808"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/split-navigation.html"&gt;🔗 Play with the split navigation bar code&lt;/a&gt;



&lt;h4&gt;
  
  
  Centring an element
&lt;/h4&gt;

&lt;p&gt;An example of centring an element:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--P0JfNyGP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Centring-an-element.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--P0JfNyGP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Centring-an-element.png" alt="" width="800" height="906"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/center.html"&gt;🔗 Play with the centring an element code&lt;/a&gt;



&lt;h4&gt;
  
  
  Card layout pushing footer down
&lt;/h4&gt;

&lt;p&gt;An example of a card layout pushing footer down:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--60Mvrcmp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Card-layout-pushing-footer-down.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--60Mvrcmp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Card-layout-pushing-footer-down.png" alt="" width="800" height="1022"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/cards.html"&gt;🔗 Play with the card layout code&lt;/a&gt;



&lt;h4&gt;
  
  
  Media objects
&lt;/h4&gt;

&lt;p&gt;An example of media objects:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FIQwoyro--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Media-objects.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FIQwoyro--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Media-objects.png" alt="" width="800" height="764"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/media.html"&gt;🔗 Play with the media objects code&lt;/a&gt;



&lt;h4&gt;
  
  
  Form controls
&lt;/h4&gt;

&lt;p&gt;An example of form controls:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M8RV0V1---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/form-control-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M8RV0V1---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/form-control-2.png" alt="" width="800" height="632"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://mdn.github.io/css-examples/flexbox/use-cases/label-input-button.html"&gt;🔗 Play with the form controls code&lt;/a&gt;



&lt;h2&gt;
  
  
  CSS Grid
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does CSS Grid replace Flexbox?
&lt;/h3&gt;

&lt;p&gt;No! Not at all, they both have their use cases, and they work wonderfully together!&lt;/p&gt;

&lt;p&gt;Grid is often seen as the replacement of Flexbox or “Flex 2.0” when it’s really another tool for us to utilise.&lt;/p&gt;

&lt;p&gt;Web browser developers wrote the specifications for Flex and Grid around the same time, but their journeys from spec to implementation were very different.&lt;/p&gt;

&lt;p&gt;Grid makes so many layouts that used to be near impossible a lot simpler.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to use CSS Grid?
&lt;/h3&gt;

&lt;p&gt;In this section let’s look at some common uses for CSS Grid:&lt;/p&gt;

&lt;h4&gt;
  
  
  Responsive 1-3 column holy grail layout
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4si8ATVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/2022/10/Responsive-1-3-column-holy-grail-layout.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4si8ATVs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/2022/10/Responsive-1-3-column-holy-grail-layout.png" alt="" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Realizing_common_layouts_using_CSS_Grid_Layout#a_responsive_layout_with_1_to_3_fluid_columns_using_grid-template-areas"&gt;🔗 Play with the holy grail layout code&lt;/a&gt;



&lt;h4&gt;
  
  
  RAM (Repeat, Auto, Minmax)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3aa5nM4t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/RAM--Repeat--Auto--Minmax--1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3aa5nM4t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/RAM--Repeat--Auto--Minmax--1.png" alt="" width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://codepen.io/rachelandrew/pen/GZQYOL"&gt;🔗 Play with the RAM code&lt;/a&gt;



&lt;h4&gt;
  
  
  Different sized grid items
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ce2NY2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Different-sized-grid-items-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ce2NY2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/Different-sized-grid-items-1.png" alt="" width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://codepen.io/rachelandrew/pen/QKwvxJ"&gt;🔗 Play with the multiple image hero block code&lt;/a&gt;



&lt;h4&gt;
  
  
  Overlapping elements
&lt;/h4&gt;

&lt;p&gt;Grid gives you great control over element placement, including layering elements on top of each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q9B319nV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/10/image.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q9B319nV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/10/image.png" alt="" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Basic_Concepts_of_Grid_Layout#layering_items_with_z-index"&gt;🔗 Play with the overlapping elements code&lt;/a&gt;



&lt;h4&gt;
  
  
  Subgrid (coming soon)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Subgrid"&gt;Subgrid&lt;/a&gt; is only supported in Gecko (Firefox) and WebKit (Safari), currently in development for Blink/Chromium (Chrome/Edge/Opera/Samsung/etc.):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WtElLAuu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/nEVRvhUkSW-768.08b36d47.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WtElLAuu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/nEVRvhUkSW-768.08b36d47.avif" alt="2 grids, each with 3 columns containing cards. The first grid's cards content sections are misaligned while the second grid's cards are correctly aligned thanks to subgrid." width="768" height="283"&gt;&lt;/a&gt;&lt;/p&gt;
The contents of the cards are able to be aligned thanks to subgrid.



&lt;h4&gt;
  
  
  Masonry layout (coming not so soon)
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/Masonry_Layout"&gt;Masonry&lt;/a&gt; layout only supported in Gecko (Firefox) behind a flag.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IXHVcvm3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/oJVICcr1We-768.a271d33e.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IXHVcvm3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/oJVICcr1We-768.a271d33e.avif" alt="A screenshot of a search for 'cats' on Pinterest showcasing their iconic masonry layout." width="768" height="572"&gt;&lt;/a&gt;&lt;/p&gt;
We’re focusing on the layout, right? Totally not the cats…



&lt;h2&gt;
  
  
  How to choose CSS Grid or Flexbox?
&lt;/h2&gt;

&lt;p&gt;Now you’ve seen some examples I hope you’ll have a better idea about which tool to reach for and when. Still, it’s not always obvious which tool to reach for when you’re building a custom UI so let’s look at some of the ways you can think about when to use Grid and when to use Flexbox.&lt;/p&gt;

&lt;h3&gt;
  
  
  One-dimensional versus two-dimensional layout
&lt;/h3&gt;

&lt;p&gt;Flexbox lays out it’s elements in either a row or a column, not both. You can fake it, and get something that looks like a Grid with Flexbox but the Flexbox algorithm doesn’t know about the second dimension.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Wo1VoIY8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Wo1VoIY8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid.png" alt="5 elements laid out with flex, 4 and 5 are much wider than 1, 2, and 3." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grid positions its elements based on both it’s rows and columns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bMy3iKG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bMy3iKG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-1.png" alt="5 elements laid out with grid, all the elements are the same width." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Content first (intrinsic) or layout first (extrinsic)?
&lt;/h3&gt;

&lt;p&gt;Use Grid when you already have the layout structure in mind, and Flexbox when you aren’t as worried about the layout and just want everything to fit.&lt;/p&gt;

&lt;h4&gt;
  
  
  Flexbox will listen to it’s content, so it’s content first (intrinsic).
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sqsBI_VT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sqsBI_VT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-3.png" alt="5 elements laid out with flex, 4 and 5 are much wider than 1, 2, and 3." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;
Intended layout.



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jbSDEyuF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-2-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jbSDEyuF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-2-1.png" alt="The same 5 elements but now 1 and 2 have shrunk slightly and 3 has grown slightly due to it's content." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;
Doesn’t look like it’s changed (it has).



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6HmL6g1N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6HmL6g1N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-4.png" alt="The same 5 elements but now 1, 2, 3, and 4 are all the same size and 5 is twice their size." width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;
Woah, what the?!



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FPUnHMMy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FPUnHMMy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-7.png" alt="The same 5 elements but now none of the elements are the same size, all because of 3's large content." width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;
Oh boy, what in the world is going on?!?



&lt;h4&gt;
  
  
  Grid will stick to it’s rows and columns no matter what, so it’s layout first or extrinsic.
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CWpSWEK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CWpSWEK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-5.png" alt="5 elements laid out with grid, all the elements are the same width." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;
Intended layout.



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--93WlYwwF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--93WlYwwF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-6.png" alt="The same 5 elements but now 2 and 5 are slightly wider because of 2's content." width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;
Doesn’t look like it’s changed (it has).



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---kHa2tUi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/2022/10/intrinsic-or-extrinsic-7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---kHa2tUi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/2022/10/intrinsic-or-extrinsic-7.png" alt="The same 5 elements but now 2 and 5 are wider because of 2's content." width="500" height="112"&gt;&lt;/a&gt;&lt;/p&gt;
Never changing these columns.



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fwTCUNcv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-9-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fwTCUNcv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-9-1.png" alt="The same 5 elements but now 2 and 5 are a lot wider and 3 is overflowing because of 2's content." width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;
Uh oh, we’ve got some overflow.



&lt;p&gt;If you want you can even make the layout so rigid that it stays exactly the same, though you probably don’t actually want this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Qetf_gCo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Qetf_gCo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://scrimba.com/articles/content/images/size/w1000/2022/09/flex-vs-grid-10.png" alt="The same 5 elements, all the elements are the same width but 2's content is cut off." width="800" height="177"&gt;&lt;/a&gt;&lt;/p&gt;
A very very long what?



&lt;h2&gt;
  
  
  Layout mode cheat sheet
&lt;/h2&gt;

&lt;p&gt;A CSS layout mode, sometimes called layout, is an algorithm that determines the position and size of boxes based on the way they interact with their sibling and ancestor boxes. There are several of them:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s2-NaVhh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/ckqlrP7C7h-768.8616d120.avif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s2-NaVhh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.ellyloel.com/assets/ckqlrP7C7h-768.8616d120.avif" alt="" width="768" height="756"&gt;&lt;/a&gt;&lt;/p&gt;
Download and print the layout mode cheat sheet &lt;a href="https://scrimba.com/articles/content/images/2022/09/layout-cheatsheet-2.png"&gt;here&lt;/a&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
    Layout mode cheat sheet
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;th&gt;Flexbox&lt;/th&gt;
            &lt;td&gt;The children of a flex container can be laid out in a column or a row and will automatically flex their size, either growing to fill unused space or shrinking to avoid overflowing the parent. Horizontal and vertical alignment can easily be set, making Flexbox ideal for distributed nav/header, split nav/header, centring an element, card layout pushing footer down, media objects, and form controls.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Grid&lt;/th&gt;
            &lt;td&gt;The children of a grid container are laid out in rows and columns that can be easily defined. This is best when you have a structured layout in mind, for example responsive 1-3 column holy grail layout, RAM (Repeat, Auto, Minmax), different sized grid items, overlapping elements, subgrid (soon!), and masonry layout (not so soon).&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Multi column&lt;/th&gt;
            &lt;td&gt;The children of a multi column container are laid out in columns. You are able to set the number of columns and/or the width of columns, as well as how content should flow between columns, the size of columns gaps, and lines in the gaps. This is best when you have lots of text that you want to break into multiple columns.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Table&lt;/th&gt;
            &lt;td&gt;Table layout may seem similar to grid layout but table layout comes with semantics. This is best when you have a structured set of data made up of rows and columns (tabular data). If you have tabular data is is important you use a table and not grid, as the semantics tables have helps screen readers and other assistive technology describe it better.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Flow&lt;/th&gt;
            &lt;td&gt;Flow layout is the default layout mode for most elements. It’s best for laying out document like content, because of how it handles inline and block elements differently.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Float&lt;/th&gt;
            &lt;td&gt;Floats are best for placing media within text. The text is able to wrap around floated elements, like images in a newspaper article for example.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;th&gt;Positioned&lt;/th&gt;
            &lt;td&gt;There are multiple different types of positioned layout. An element can be positioned relative to itself, it’s containing block, or the viewport. This can be used, for example, to position the header to always be at the top of the viewport, to position a chat window in the corner of the viewport, or to position a tooltip next to a button.&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;br&gt;
&lt;strong&gt;⚠️ Warning&lt;/strong&gt;&lt;br&gt;
Developers used to push table and float to the limit to layout pages. This is now considered a bad practice, as you should use the best layout mode for the job, reserving table and float for what they were originally designed to do.&lt;br&gt;

&lt;h2&gt;
  
  
  The verdict
&lt;/h2&gt;

&lt;p&gt;Layout is the bedrock of CSS. Different layout modes are useful in different circumstances. There’s no silver bullet answer to the question of which one you should use.&lt;/p&gt;

&lt;p&gt;The most important thing is to know is that they all have their use cases. Take your time to learn about them all, so that you can use the right tool for each situation.&lt;/p&gt;

&lt;p&gt;And remember, it’s okay if you can’t remember all this right away. This article isn’t going anywhere, so feel free to come back and use this as a reference when you’re trying to make this tricky decision. We’re here to help!&lt;/p&gt;

&lt;p&gt;There is an overwhelming amount of resources available online for learning more about layout. If you’re interested in learning more check out Scrimba’s &lt;a href="https://scrimba.com/learn/flexbox"&gt;Learn Flexbox for free&lt;/a&gt; or &lt;a href="https://scrimba.com/learn/cssgrid"&gt;Learn CSS Grid for free&lt;/a&gt; courses, or check out &lt;a href="https://scrimba.com/podcast/how-not-to-struggle-with-css-with-kevin-powell/"&gt;How not to struggle with CSS, with Kevin Powell&lt;/a&gt; on the Scrimba Podcast. And lastly, if you’re looking for something more comprehensive checkout Kevin Powell’s awesome &lt;a href="https://scrimba.com/learn/responsive"&gt;Learn Responsive Web Design&lt;/a&gt; course on Scrimba.&lt;/p&gt;

</description>
      <category>flex</category>
      <category>grid</category>
      <category>css</category>
      <category>layout</category>
    </item>
    <item>
      <title>I Dropped Out of My Computer Science Degree to Learn Coding</title>
      <dc:creator>Elly Loel</dc:creator>
      <pubDate>Sun, 19 Jun 2022 12:41:47 +0000</pubDate>
      <link>https://dev.to/ellyloel/i-dropped-out-of-my-computer-science-degree-to-learn-coding-45d0</link>
      <guid>https://dev.to/ellyloel/i-dropped-out-of-my-computer-science-degree-to-learn-coding-45d0</guid>
      <description>&lt;p&gt;Well hello there! My name is &lt;a href="https://ellyloel.com/"&gt;Elly Loel&lt;/a&gt;. I'm a developer, designer and writer, currently working as a junior developer at Portable! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TPxPTb6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655637610371/vKLY7GibS.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TPxPTb6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655637610371/vKLY7GibS.png" alt="Lulu our black cat sitting behind my laptop with code open poking her eyes over looking at the camera" width="800" height="561"&gt;&lt;/a&gt;&lt;em&gt;Lulu trying her very best to distract me.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I run a &lt;a href="http://newsletter.ellyloel.com/"&gt;newsletter&lt;/a&gt; and love &lt;a href="https://elly.to/twitter"&gt;sharing interesting things&lt;/a&gt; to help people become better coders! In my spare time, I love building mechanical keyboards, watching cartoons and anime, and hanging out with my partner Brodie and our cat Lulu. 🐈‍⬛&lt;/p&gt;

&lt;p&gt;You might have heard me on &lt;a href="https://scrimba.com/podcast/ep-44-elly-loel/"&gt;the Scrimba podcast with Alex Booker&lt;/a&gt; or seen me in Portable’s &lt;a href="https://youtu.be/1vix3U1P5xk"&gt;How to land your first tech job&lt;/a&gt; event.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I landed my first tech job
&lt;/h2&gt;

&lt;p&gt;I always knew I wanted to work with computers for a career, but I never specifically knew how that would happen until I took a game development course in year 10. In this course, I built a game and made a website to advertise the game. After spending far too much time on my game's website, I knew what I wanted to do, I knew I wanted to be a web developer. There was one issue, I was about to undertake the final two years of high school which would make or break my chances of getting the score I needed to get into university. But the most annoying part was that my school didn’t offer tech subjects. My ADHD brain didn’t give a shit about subjects I wasn’t interested in. Despite my scores, I managed to make it into university, and that is where my love of web development really blossomed.&lt;/p&gt;

&lt;p&gt;Just as the pandemic spread around the world and the first Melbourne lockdown was enforced in March 2020, I started a degree in Computer Science at Swinburne University of Technology. During the first half of my course, I fell in love with web development but then realised that I wouldn’t be able to pursue it in this course. Unfortunately, I had completed all of the web development classes, leaving me with a difficult choice: stay and finish the degree or take a leap and learn web development on my own. Obviously, I left and took the self-taught route, mainly with the help of Scrimba. I eventually completed The Frontend Developer Career Path. This helped me learn most of what I needed to know to land a job as a web developer. I also focused a lot of effort into building my personal portfolio website to demonstrate my knowledge and skills.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qoVsZenz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655637924672/OMtjTRPwO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qoVsZenz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655637924672/OMtjTRPwO.png" alt="A design frame in Figma with an early design of my portfolio website. The design has an alternating gradient and solid colour backgrounds, filled with placeholder content." width="800" height="471"&gt;&lt;/a&gt;&lt;em&gt;An early design of my portfolio website&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When it came to the job hunt I really won the lottery, I only applied to two tech jobs before I landed my role at Portable. With hindsight, I realise how lucky I was to find a recruiter, on LinkedIn, who was looking for new people to help. The support that I got from the recruiter to find roles that were the right fit for me was invaluable. I would have never discovered Portable if it wasn’t for him. Finding that right fit job is the first step, then really going for it is the best way to secure a job. The ‘shotgun method’ of applying, where you send of as many applications as you can, means that you’re likely going to end up at some random company that you don’t know, doing work that you don’t care about, while you could be at an awesome company where you fit in, doing work that you love!&lt;/p&gt;

&lt;h2&gt;
  
  
  Your motivation to start coding
&lt;/h2&gt;

&lt;p&gt;I’ve always loved computers, I grew up playing video games like &lt;a href="https://youtu.be/VqB1uoDTdKM"&gt;Counter Strike&lt;/a&gt; and tinkering with my computer to customise it to my exact liking. The first real step I took towards starting coding was taking that game development course, during year 10. I thought that because I loved playing games I’d love making them too, but I was very wrong about that.&lt;/p&gt;

&lt;p&gt;As I mentioned, we had to create a little website to showcase our game, this side task ended up being what I spent most of my time on throughout the course. We were only required to learn the basics of HTML and CSS but I delved into it and spent all my time trying to make my website look amazing.&lt;/p&gt;

&lt;p&gt;The realisation that I could make a website about anything and share it online with my friends and family was completely mind blowing to me.&lt;/p&gt;

&lt;p&gt;At the time, I was into graphic and motion design, which really flowed through into my love of CSS. Instead of just creating things for people to look at, I could now create experiences for people to interact with.&lt;/p&gt;

&lt;p&gt;After the course finished I was left with the desire to code and create websites but I couldn’t due to high school, and as I mentioned, university didn’t really fulfil that desire either. So I had lots of motivation but no way to use it. Which is what led me to trying to find resources online so I could continue learning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YgQy2CKw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638039241/8Q9jiy0lZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YgQy2CKw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638039241/8Q9jiy0lZ.png" alt="A photo of my desk and computer setup which is absolutely covered with prints, figurines, pins, zines, stickers, and much more." width="800" height="628"&gt;&lt;/a&gt;&lt;em&gt;My desk setup is the perfect showcase and explanation of my love of design and art.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How you picked a resource
&lt;/h2&gt;

&lt;p&gt;Considering my ADHD I knew video tutorials were going to be more effective, so as I was trying to build things I would search for help on YouTube. Through that I found &lt;a href="https://www.youtube.com/kevinpowell"&gt;Kevin Powell&lt;/a&gt;’s CSS tutorials, which really helped me fall in love with, and gain a greater understanding of, the language.&lt;/p&gt;

&lt;p&gt;I was also learning more about the web development landscape from channels like &lt;a href="https://www.youtube.com/channel/UCsBjURrPoezykLs9EqgamOA"&gt;Fireship&lt;/a&gt; and &lt;a href="https://www.youtube.com/channel/UC29ju8bIPH5as8OGnQzwJyA"&gt;Brad Traversy&lt;/a&gt;. They helped me decide on what languages and frameworks to learn as I was getting more advanced. Which is what led me to discovering &lt;a href="https://www.youtube.com/watch?v=DLX62G4lc44"&gt;Bob Ziroll’s free React course&lt;/a&gt; (there is a &lt;a href="https://www.youtube.com/watch?v=bMknfKXIFA8"&gt;newer version&lt;/a&gt; now) on the &lt;a href="https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ"&gt;Free Code Camp YouTube channel&lt;/a&gt;. From there I looked into the &lt;a href="https://scrimba.com/"&gt;Scrimba platform&lt;/a&gt; and discovered how much better it was for reinforcing your learning. With that in mind when I was looking at investing in a paid course to help get me job ready it was an obvious choice to go for &lt;a href="https://scrimba.com/learn/frontend"&gt;the Frontend Developer Career Path&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Since finishing the career path and landing my first tech job I’ve been focusing on specialising in advanced CSS and design systems. I’ve been following &lt;a href="https://www.joshwcomeau.com/"&gt;Josh W. Comeau&lt;/a&gt;’s amazing articles and his course, &lt;a href="https://css-for-js.dev/"&gt;CSS for JS devs&lt;/a&gt;. As well as, the &lt;a href="https://pod.link/thecsspodcast"&gt;CSS podcast&lt;/a&gt; by &lt;a href="https://twitter.com/argyleink"&gt;Adam Argyle&lt;/a&gt; and &lt;a href="https://twitter.com/una"&gt;Una Kravets&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  How you structured your learning
&lt;/h2&gt;

&lt;p&gt;When it came to structuring my learning I kinda had the perfect storm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I was on break between semesters at university, so I had nothing on my plate.&lt;/li&gt;
&lt;li&gt;I had a clear goal, to land a job before next semester's census date (the final date you could withdraw from classes without incurring fees).&lt;/li&gt;
&lt;li&gt;I had a hard deadline set for when I needed to land the job, August 31st 2021.&lt;/li&gt;
&lt;li&gt;I had ADHD hyperfocus (sort of) working in my favour.&lt;/li&gt;
&lt;li&gt;I was in a COVID lockdown, so I had nothing better to do.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So for roughly 2 to 3 months I worked nearly non-stop to achieve my goal, though as perfect or amazing as this may sound it also had its downsides. I worked so hard that I burnt myself out quite severely. Once I knew I got the job I had about a month before I started, in that time I completely crashed and barely did anything.&lt;/p&gt;

&lt;p&gt;What I'm trying to say is that you probably shouldn't do what I did, or what anyone else does for that matter. We're each different in who we are and what our circumstances are, some of us might be able to focus just on learning to code while others might be working a job, still in school, being a primary or sole carer, or all manner of other things. So don't be hard on yourself for not being able to follow a structure laid out by someone who isn't you.&lt;/p&gt;

&lt;p&gt;Take the time to think about what is going to work best for you in terms of time and energy. And also consider how you learn best, maybe to make things stick you need to go over the lessons twice or maybe you're someone who loves taking notes, just make sure you do whatever works for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--o_y3Ngn1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638307704/GWb0rtRAg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--o_y3Ngn1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638307704/GWb0rtRAg.png" alt="A chibi style drawing of me, a blonde woman in a white sweater hunched over sleeping on a desk drooling with Z’s floating above my head." width="800" height="628"&gt;&lt;/a&gt;&lt;em&gt;Commission by &lt;a href="https://twitter.com/nervousgh0st"&gt;Nervous Ghost&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What made coding concepts “stick” for you
&lt;/h2&gt;

&lt;p&gt;If I'm honest, I don't know if I've really had a whole lot of concepts stick for myself. I'm not someone who's spent hours upon hours learning data structures and algorithms or how to invert a binary tree. Because honestly, I don't think I could do that.&lt;/p&gt;

&lt;p&gt;For me it was more of getting to a point where I felt like I had enough of an idea to be able to G̶o̶o̶g̶l̶e̶ DuckDuckGo solutions to my problems and figure it out on the fly. Then through lots and lots of repetition I slowly started to remember things.&lt;br&gt;
I think it's less about making sure all the coding concepts stick and more about getting to the point where you're able to start creating things. The more you create the more you'll learn by doing.&lt;/p&gt;

&lt;p&gt;Once you have a base of practical knowledge from building things then you might want to look into specific concepts. Having a practical understanding is extremely important to learning theoretical concepts and being able to translate them into what you're building.&lt;/p&gt;

&lt;h2&gt;
  
  
  How you knew you felt “ready” to start applying
&lt;/h2&gt;

&lt;p&gt;I didn't, I really didn't feel ready to start applying at all. I forced myself to get in contact with a recruiter to start applying. I remember one day I was on LinkedIn and I saw a post from a recruiter that said they had spaces open and they were looking for new people to help out. And even though I most definitely didn't feel ready, I knew that an opportunity like this likely wasn't going to come around again anytime soon. So I replied to the post saying that I'd love to work together.&lt;/p&gt;

&lt;p&gt;I'm so glad I did it because I wouldn't have my job if it wasn't for the recruiter. I would still be stuck at university going through my course.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_naoA5PG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638728707/HzZaKEEnm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_naoA5PG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638728707/HzZaKEEnm.png" alt="The recruiter’s LinkedIn post: “I heard a little rumour... that apparently... the Australian job market is HOT.&amp;lt;br&amp;gt;
Every 2nd or 3rd post I'm seeing on here is for people looking to hire.&amp;lt;br&amp;gt;
There's some absolutely brilliant opportunities out there at the moment - some of which just happen to be with my clients :)&amp;lt;br&amp;gt;
If you're a Developer or Designer, let's have a chat. Maybe you're wanting a bigger/smaller company? A bit of a bump up in your salary? An opportunity to take on more responsibility? More flexibility with WFH or Remote options? Something else?&amp;lt;br&amp;gt;
There's plenty of options :)&amp;lt;br&amp;gt;
Cheers!”&amp;lt;br&amp;gt;
My comment response: “Hi Andrew, I'd love to have a chat 😄”" width="800" height="1021"&gt;&lt;/a&gt;&lt;em&gt;The post that lead me to getting in contact with the recruiter&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How you went about applying to new jobs
&lt;/h2&gt;

&lt;p&gt;So as I mentioned I didn't do the usual way of applying to jobs, I worked with a recruiter who was able to direct me to jobs. When I first got in contact with him we had a chat and he got to know me and what I was looking for so he could figure out what jobs would best fit me.&lt;/p&gt;

&lt;p&gt;Having that help from someone who had lots of connections in the industry and was able to find the best fit for me was vital to me landing my job.&lt;/p&gt;

&lt;p&gt;I would definitely recommend for anyone who is about to or is currently applying to jobs to reach out to a recruiter. Even if you don't think you're ready, get in contact with a recruiter and see if they can help you find some roles that would fit you in terms of who you are and what you're looking for.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uiEHECna--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638841822/GmUTyUUCZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uiEHECna--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655638841822/GmUTyUUCZ.png" alt="Elly: “Yeah exactly, that's definitely what my first year showed me.&amp;lt;br&amp;gt;
The reason I wanted to have a chat was in relation to your post, as you can tell I'm pretty new to the job market, so I'm looking for some guidance towards finding my first web development job.”&amp;lt;br&amp;gt;
Recruiter: “Have you finished your degree? Or looking for part time work? Or can you study and full time work?”&amp;lt;br&amp;gt;
Elly: “Ideally I'm looking for part time work but I could do full-time if part-time isn't available.”&amp;lt;br&amp;gt;
Recruiter: “Ok cool. Big workload to take on. Good on you though!”&amp;lt;br&amp;gt;
Recruiter: “I dropped out of uni... twice... can’t imagine working full time AND studying. I couldn’t even do the study part 🤣”&amp;lt;br&amp;gt;
Elly: “hahah fair enough! I'm actually planning on dropping out if I can get a job.”&amp;lt;br&amp;gt;
Recruiter: “When it comes to web/software development... you don’t need a degree”&amp;lt;br&amp;gt;
“It’s not like a doctor or lawyer”&amp;lt;br&amp;gt;
Elly: “yeah exactly that's what I've figured out, which is why I'm trying to get into a job before the next semester of uni starts.”" width="800" height="1230"&gt;&lt;/a&gt;&lt;em&gt;Part of the conversation I had with the recruiter&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The interview process and how it made you feel
&lt;/h2&gt;

&lt;p&gt;The interview process for my current role was a very long one. I remember it was something like two months long, and there were about six different interviews. Don't get me wrong though, it was really good, just very long.&lt;/p&gt;

&lt;p&gt;I remember I was really anxious so I kept emailing them, double and triple checking what was happening and when the next interviews were. Also, seeing as all the people that I was meeting with were very busy, whenever I got calendar sharing links the closest open times were a week or more in the future. So I would just be hanging out waiting and working on the Frontend Developer Career Path, twiddling my thumbs and getting really anxious looking forward to these interviews.&lt;/p&gt;

&lt;p&gt;Step by step the interview process was:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Initial interview

&lt;ul&gt;
&lt;li&gt;Get to know me, what I'm about and why I'm applying to the company.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Technical chat

&lt;ul&gt;
&lt;li&gt;No coding, just a chat to gauge my knowledge. I remember one of the questions the interviewer asked was about responsive design and what you might add on a smaller screen rather than take away? I answered saying that you might add a navigation menu button on a smaller screen but not on a bigger screen.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Work sample solo coding

&lt;ul&gt;
&lt;li&gt;Spend one hour adding features to a partially functioning project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Work sample pair coding

&lt;ul&gt;
&lt;li&gt;Spend another hour with one of the developers adding another feature to the project.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Psychometric assessment

&lt;ul&gt;
&lt;li&gt;A look at your preferred ways of working.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Salary chat

&lt;ul&gt;
&lt;li&gt;Talk about salary expectations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Senior Leadership interview

&lt;ul&gt;
&lt;li&gt;I got to chat and ask lots of questions to the CEO and the head of the tech team.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Reference check

&lt;ul&gt;
&lt;li&gt;They contacted and chatted to my reference.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Offer ﻿🎉&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What you know now that you wished back then
&lt;/h2&gt;

&lt;p&gt;I wish I knew that I didn't need to go to university. That would have saved me about $10,000 in debt 🥲. I wish I knew that you didn't need a degree to be a web developer, it's not like we're doctors or lawyers where you need to have the degree. I really wish I knew that being self taught was a completely acceptable way to get into this industry.&lt;/p&gt;

&lt;p&gt;I also wish I knew how important building projects to showcase your abilities and knowledge is. I did build a few projects while completing the Frontend Developer Career Path but I wish I had built more personal projects, as people always say, build projects that fill your own needs.&lt;/p&gt;

&lt;p&gt;The final thing I wish I had done was written more and shared more as I was going through the journey of learning web development and applying to jobs. As they always say, the best time to plant a tree was 20 years ago and the second best time is now. So I'm glad I've started doing it now, better late than never.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GIw42Yir--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655639024240/uQp5wkvC5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GIw42Yir--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655639024240/uQp5wkvC5.png" alt="A website entitled “React Movie Search” displaying results for the search “Evangelion 3.0”. Each result has the movie poster, title, release date, rating, and description." width="800" height="943"&gt;&lt;/a&gt;&lt;em&gt;React Movie Search project from the Frontend Developer Career Path&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Your greatest challenges and how you overcame them
&lt;/h2&gt;

&lt;p&gt;I think one of the biggest challenges for me was the imposter syndrome around applying to jobs. If I'm honest I left it way too late, I should have forced myself to start applying much earlier, even though I didn't feel as though I was ready.&lt;/p&gt;

&lt;p&gt;The most important thing to keep in mind is that you're never going to feel ready, there will never be that perfect moment when you are finally like "Yes! I've learned everything, I'm ready!" You're always learning, whether you're a junior or the head developer, so you may as well start applying and if you manage to get something then that's awesome!&lt;/p&gt;

&lt;p&gt;The other huge challenge for me was taking the leap of faith to leave university and focus on learning web development and getting myself ready to apply for jobs. I had no idea whether it was going to work out or not. I was very concerned that it might not, as the census date was approaching fast while I was in the final stages of the interview process. I didn't know if I was going to get the job and leave university or if I was going to not get it and have to go back to university and be weeks behind on my classes.&lt;/p&gt;

&lt;p&gt;So that was a really huge challenge and a big leap of faith that I took, but I'm very grateful I did.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lqqSwnM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655639102853/H-b4F9Azs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lqqSwnM_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1655639102853/H-b4F9Azs.png" alt="A drawing of me, a blonde woman in a white sweater with headphones on sitting at my desk in front of a keyboard and monitor coding." width="800" height="800"&gt;&lt;/a&gt;&lt;em&gt;Commission by &lt;a href="https://twitter.com/nervousgh0st"&gt;Nervous Ghost&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>career</category>
      <category>adhd</category>
    </item>
  </channel>
</rss>
