<?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: Helen Kent</title>
    <description>The latest articles on DEV Community by Helen Kent (@helen8297).</description>
    <link>https://dev.to/helen8297</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%2F242338%2F25a3a8d6-7eed-44d8-bf38-d7d843979cac.jpeg</url>
      <title>DEV Community: Helen Kent</title>
      <link>https://dev.to/helen8297</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/helen8297"/>
    <language>en</language>
    <item>
      <title>A day in the life of a Junior Front End Engineer</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Tue, 08 Jun 2021 19:48:34 +0000</pubDate>
      <link>https://dev.to/helen8297/a-day-in-the-life-of-a-junior-front-end-engineer-3nj0</link>
      <guid>https://dev.to/helen8297/a-day-in-the-life-of-a-junior-front-end-engineer-3nj0</guid>
      <description>&lt;p&gt;I joined Purplebricks in October 2020 as a Junior Front End Engineer. Having worked as a Primary School Teacher for 10 years prior, I was absolutely ready for a change! I completed a full stack JavaScript development bootcamp with the School of Code in Birmingham at the start of 2020, and am now in my 7th month with Purplebricks. I can wholeheartedly say that embarking on a career change was definitely the right decision for me—I feel like a brand new person!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Y47IU6pqyrn1tsPivl/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Y47IU6pqyrn1tsPivl/giphy.gif" alt="Cinderella gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My days at Purplebricks can be quite varied, and depending on my calendar, can either be fairly meeting heavy, or pretty open—giving me a good chance to get stuck into some work. As I’m writing this on a Tuesday, we’ll go with a regular Tuesday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8.45 — 9.15: Starting the day&lt;/strong&gt;&lt;br&gt;
I usually switch on between 8:45 and 9:00. I use this time before standup to catch up on my Slack messages, emails and check any outstanding PRs (Pull Requests) to see if I have any comments I need to resolve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9.15—9.30: Squad standup&lt;/strong&gt;&lt;br&gt;
This is the time for our daily standup. Due to a re-shuffle, I’m about to move squad, but my current team meet at this time everyday on Teams to talk through our sprint backlog and find solutions to any problems and blockers. I enjoy our daily check-ins, and I think 9:15 is a good time to have them as it allows team members who need to do the school run to get back in time. Our squads are made up of Product Managers, UX, UI and Content Designers, QA Engineers (Automated and Manual) and Front End and Back End Engineers, so there is a great mix of people that I get to work with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9.30 — 10.00: Reviewing PRs&lt;/strong&gt;&lt;br&gt;
The Front End team are responsible for reviewing each other’s code to ensure any errors are caught and best practices are followed. I’m trying to learn as much as I can each day, so if I have a bit of time in between meetings, I’ll often have a look through the Front End slack channel and read through some of the other engineers’ PRs to approve them. I’ll often ask questions if there are parts of the code I don’t understand, as I’m not quite able to make handy suggestions for code improvements yet!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10.00 — 11.00: Sprint Review&lt;/strong&gt;&lt;br&gt;
As today was the end of our sprint, we had our Sprint Review meeting. Key stakeholders and other members of the Digital team join us for a meeting where we run through the goal for our sprint, and what we achieved over the last 2 weeks. This is a good opportunity to get comfortable speaking about your work in front of a slightly larger audience. For most Sprint Reviews, I will add details of my contribution to the slide deck and then explain what the problem was that I was solving, usually accompanied by before and after visuals to aid comprehension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11.00—12.00: 121 Meeting&lt;/strong&gt;&lt;br&gt;
Straight after our Sprint Review I have my fortnightly 121 meeting with my Engineering Manager. In order to prepare for this meeting, I have a reminder that pings at the end of each day — it reminds me to add to my achievements and notes page so that I have items to talk through during the meeting. I really appreciate having these regular catch-ups, as it keeps a focus on my progression. I’m working towards completing my Junior 1 skills matrix, so this is a chance to talk through what else I can add to it, if anything can be ticked off, and if my manager has suggestions for how I can achieve a particular success criteria. I’m not too far from completing Junior 1 now! 🥳.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/IwAZ6dvvvaTtdI8SD5/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/IwAZ6dvvvaTtdI8SD5/giphy.gif" alt="Celebratory gif from The Office"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;12.00—13.00: Lunch time strolls&lt;/strong&gt;&lt;br&gt;
I usually have a walk around the Tamworth Castle Grounds at lunch and eat just after. Today was lemon &amp;amp; thyme chicken with broccoli. Delish!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13.00—14.00: Sprint Retrospective&lt;/strong&gt;&lt;br&gt;
Immediately after lunch it’s time for another sprint ceremony. This time it was my squad’s Sprint Retrospective. Our UX Designer, Dylan, has been running these sessions and he mixes it up pretty much every time — it’s always a nice surprise to find out what he has planned for us! This week it was ‘Mad, Sad, Glad &amp;amp; Shoutouts’ week. We use a digital whiteboard tool, mural.co, to collaborate and add notes about the things that made us feel mad, sad and glad for this sprint. Sprint Retros are a great chance to air frustrations, share successes, say thank you and make improvements ready for the next sprint.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;14.00 — 17.30: Time to code&lt;/strong&gt;&lt;br&gt;
This is the first chunk of the day that I’ve had to get stuck into some code. During this time I usually have a Spotify playlist on quietly in the background. I find that time seems to fly when I’m working on code and I really enjoy it. I do a lot of Googling and sometimes reach out to other Front Enders to ask for advice if I come across challenges that require a little extra knowledge.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/4SXW1rU9loG1HIXXg2/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/4SXW1rU9loG1HIXXg2/giphy.gif" alt="Woman asking for help gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ve been really fortunate at Purplebricks that everyone I’ve come into contact with has been so lovely and helpful. My teammates are always around and happy to answer questions or give suggestions. I’m also lucky enough to have a couple of weekly ‘code chats’ — one with a Senior Front End Engineer, Josh, and one with a Mid Front End Engineer, Dan. With Josh, we’re diving into React hooks, and with Dan we talk about random things from my ‘I want to know this’ list. Over the last couple of weeks, we talked about Webpack and built the beginnings of a React project without ‘create-react-app’ using Webpack, and this week we’re going to talk about how one of our pipelines works — so all quite varied!&lt;/p&gt;

&lt;p&gt;Whilst I’ve been at Purplebricks, I’ve worked on a good variety of different tasks. When I started, my first few PBIs (Product Backlog Item) were copy changes to the main marketing website to update our guidance on COVID-19. These were nice, small changes that helped me get to know the PR processes. Since then, I’ve worked on making changes to linting tools (and having to correct 900+ errors along with them), made my own toggle component for our shared component library, fixed bugs, contributed to a new app, and much more.&lt;/p&gt;

&lt;p&gt;Most recently, I’ve been working on updating the UI for a section of our legacy codebase, ‘Uber’. I found this very challenging, as it is written with KnockoutJS and Razor files —frameworks that are totally different to everything I’ve learned so far!&lt;/p&gt;

&lt;p&gt;I’ve really enjoyed my first seven months with Purplebricks. I joined at an exciting time for the Digital team amidst lots of positive changes. I’m looking forward to continue learning as much as I can, and seeing where I’ll be in another seven months time!&lt;/p&gt;

</description>
      <category>firstyearincode</category>
      <category>react</category>
      <category>frontend</category>
      <category>company</category>
    </item>
    <item>
      <title>Bootcamp final project 🥳</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Tue, 19 May 2020 21:51:16 +0000</pubDate>
      <link>https://dev.to/helen8297/bootcamp-final-project-3n5p</link>
      <guid>https://dev.to/helen8297/bootcamp-final-project-3n5p</guid>
      <description>&lt;h2&gt;
  
  
  My Final Project
&lt;/h2&gt;

&lt;p&gt;As part of my full stack 16 week development bootcamp we spend the final 4 weeks working on a team project. I was in a team of 3. Jodie, Mel and I built a Bootcamper Network App for alumni and current school of code bootcampers to connect and share details of their roles etc. We loved building this app together and worked in sprints of 5 days to firstly meet our MVP and then achieve some of our stretch goals. &lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Link
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bootcamper-network.netlify.app/" rel="noopener noreferrer"&gt;Bootcamper Network App&lt;/a&gt;&lt;br&gt;
Our app is live for now but we are planning to continue to work on it whilst we wait for the job offers to role in...!&lt;br&gt;
We did a live demo last week, so if you're interested, please have a watch (we start at about 16 mins into the vid) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GMoxQ1RvbzU" rel="noopener noreferrer"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcryuti4ki2mbyejp18w5.png" alt="front page of app presentation" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Link to Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SchoolOfCode" rel="noopener noreferrer"&gt;
        SchoolOfCode
      &lt;/a&gt; / &lt;a href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React" rel="noopener noreferrer"&gt;
        Bootcamper-Network-App-React
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      React front end for Bootcamper Network Mobile App - final School of Code bootcamp project for Team Jomellen
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;School of Code Bootcamper Network App&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Final project for team Jomellen&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Jodie Neville, Mell Kay &amp;amp; Helen Kent&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHlogin.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHlogin.png" width="200px" height="auto" alt="login screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHdash.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHdash.png" width="200px" height="auto" alt="dashboard screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHcompanies.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHcompanies.png" width="200px" height="auto" alt="companies page screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Faced with the problem of a distributed network of current bootcampers and alumni, team Jomellen decided to bring everyone together with our Bootcamper Network App. School of Code bootcampers past and present can all now login to the app and share their career progress with each other. This enables other bootcampers to see all SoC affiliated companies easily. Bootcampers can also share (privately, with only the SoC team) their job satisfaction rating, allowing the team to reach out to support the bootcamper with a new job hunt.&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;&lt;strong&gt;&lt;a href="https://bootcamper-network.netlify.app/" rel="nofollow noopener noreferrer"&gt;Click here for the live site hosted on Netlify&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHdemo1.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHdemo1.gif" width="200px" height="auto" alt="demo gif 1"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHdemo2.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHdemo2.gif" width="200px" height="auto" alt="demo gif 2"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React./src/images/GHdemo3.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-React.%2Fsrc%2Fimages%2FGHdemo3.gif" width="200px" height="auto" alt="demo gif 3"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to use (only if you're from the School of Code!)&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Click the link above and login with your Google account.&lt;/li&gt;
&lt;li&gt;Create an account.&lt;/li&gt;
&lt;li&gt;Investigate the app!&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Clone or download this repository and the back…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.dev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/SchoolOfCode" rel="noopener noreferrer"&gt;
        SchoolOfCode
      &lt;/a&gt; / &lt;a href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End" rel="noopener noreferrer"&gt;
        Bootcamper-Network-App-Back-End
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Express server, nodejs back end for Bootcamper Network App - final School of Code bootcamp project for Team Jomellen
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;School of Code Bootcamper Network App - Back End&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Final project for team Jomellen&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Jodie Neville, Mell Kay &amp;amp; Helen Kent&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHlogin.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHlogin.png" width="200px" height="auto" alt="login screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHdash.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHdash.png" width="200px" height="auto" alt="dashboard screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHcompanies.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHcompanies.png" width="200px" height="auto" alt="companies page screenshot"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Faced with the problem of a distributed network of current bootcampers and alumni, team Jomellen decided to bring everyone together with our Bootcamper Network App. School of Code bootcampers past and present can all now login to the app and share their career progress with each other. This enables other bootcampers to see all SoC affiliated companies easily. Bootcampers can also share (privately, with only the SoC team) their job satisfaction rating, allowing the team to reach out to support the bootcamper with a new job hunt.&lt;/h3&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;&lt;strong&gt;&lt;a href="https://bootcamper-network.netlify.app/" rel="nofollow noopener noreferrer"&gt;Click here for the live site hosted on Netlify&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHdemo1.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHdemo1.gif" width="200px" height="auto" alt="demo gif 1"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHdemo2.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHdemo2.gif" width="200px" height="auto" alt="demo gif 2"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End./images/GHdemo3.gif"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2FSchoolOfCode%2FBootcamper-Network-App-Back-End.%2Fimages%2FGHdemo3.gif" width="200px" height="auto" alt="demo gif 3"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to use (only if you're from the School of Code!)&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Click the link above and login with your Google account.&lt;/li&gt;
&lt;li&gt;Create an account.&lt;/li&gt;
&lt;li&gt;Investigate the app!&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Installation&lt;/h2&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Clone or download this repository…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How we built it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;We used React to build the front end and we decided to build it as a progressive web app so that we could have one code base that worked flexibly across all devices. We built it mobile first, but currently it only looks nice on mobile...we still need to work on desktop sizes!&lt;/li&gt;
&lt;li&gt;We chose to use google firebase for user authentication&lt;/li&gt;
&lt;li&gt;We used the meet up pro api to pull in local tech events. We discovered we needed to use OAuth2 to interface with the api. This was a giant faff and took us a long time to get to grips with, but we did it!&lt;/li&gt;
&lt;li&gt;We used the google maps api to embed little maps for company locations, i really like this!&lt;/li&gt;
&lt;li&gt;We challenged ourselves to learn a bit more about AWS so used RDS and elastic beanstalk for our database and for hosting our back end. Elastic beanstalk has a really nice cli that let us deploy our back end code easily quite early on. &lt;/li&gt;
&lt;li&gt;We used nodejs and express for our server as we knew it and felt very comfortable with it. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional Thoughts
&lt;/h2&gt;

&lt;p&gt;We're really proud of our app. There is still more we'd like to do (push notifications, fixing the edit form patch request, adding form validation, private messaging) but after 12 weeks of learning and 4 weeks of building I think we did a great job and i'm really proud of it!&lt;/p&gt;

&lt;p&gt;Thank you for letting me share our app!&lt;/p&gt;

</description>
      <category>devgrad2020</category>
      <category>octograd2020</category>
    </item>
    <item>
      <title>Weeks 11-16 - The School Of Code Bootcamp</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Tue, 19 May 2020 21:21:13 +0000</pubDate>
      <link>https://dev.to/helen8297/weeks-11-16-the-school-of-code-bootcamp-316e</link>
      <guid>https://dev.to/helen8297/weeks-11-16-the-school-of-code-bootcamp-316e</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" alt="school of code logo" width="380" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What we've learnt
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Web Sockets &amp;amp; socket.io&lt;/li&gt;
&lt;li&gt;Using a development server (ngrok)&lt;/li&gt;
&lt;li&gt;Web scraping&lt;/li&gt;
&lt;li&gt;To 'always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live' &lt;/li&gt;
&lt;li&gt;Form refactoring&lt;/li&gt;
&lt;li&gt;Form validation&lt;/li&gt;
&lt;li&gt;Firebase user authentication&lt;/li&gt;
&lt;li&gt;useReducer in more detail&lt;/li&gt;
&lt;li&gt;Recursion (functions that call themselves)&lt;/li&gt;
&lt;li&gt;DevOps and back end talk from the Economist&lt;/li&gt;
&lt;li&gt;Intro to AWS (S3, EC2, IAM Roles...)&lt;/li&gt;
&lt;li&gt;Docker &amp;amp; Containers&lt;/li&gt;
&lt;li&gt;Software development life cycle&lt;/li&gt;
&lt;li&gt;Gatsby&lt;/li&gt;
&lt;li&gt;TDD, BDD, decision tables&lt;/li&gt;
&lt;li&gt;Cucumber, Jenkins, Selenium &amp;amp; Cypress&lt;/li&gt;
&lt;li&gt;MongoDB &amp;amp; NoSQL intro&lt;/li&gt;
&lt;li&gt;GraphQL intro&lt;/li&gt;
&lt;li&gt;Progressive Web Apps&lt;/li&gt;
&lt;li&gt;Creating an NPM package&lt;/li&gt;
&lt;li&gt;Python intro&lt;/li&gt;
&lt;li&gt;Making an Alexa skill (we made a bootcamper randomiser!)&lt;/li&gt;
&lt;li&gt;SASS&lt;/li&gt;
&lt;li&gt;Figma&lt;/li&gt;
&lt;li&gt;My persona for user stories&lt;/li&gt;
&lt;li&gt;UI libraries for React (material UI &amp;amp; bootstrap)&lt;/li&gt;
&lt;li&gt;The twelve factor app&lt;/li&gt;
&lt;li&gt;Devops talk from PM Connect&lt;/li&gt;
&lt;li&gt;Intro to kubernetes&lt;/li&gt;
&lt;li&gt;Hyperautomation&lt;/li&gt;
&lt;li&gt;OAuth2 (during project build)&lt;/li&gt;
&lt;li&gt;AWS RDS &amp;amp; elastic beanstalk (during project build)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How I feel
&lt;/h3&gt;

&lt;p&gt;Elated! We finished the School of Code bootcamp last week and I can't quite believe its over! During weeks 11-16 we had another couple of weeks of learning and then for the last 4 weeks Jodie, Mell and I formed team Jomellen and we built a Bootcamper Network App. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0ubu88zlyx2o5amqk620.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0ubu88zlyx2o5amqk620.png" alt="screenshots of our app" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We decided to use React to build it mobile first as a PWA so we had one code base but so it had the flexibility to be used on all devices. We chose to use AWS RDS &amp;amp; elastic beanstalk with an express server for our backend as we wanted to challenge ourselves to learn more about AWS and I'm really glad we did. It was tricky at times but I really feel that I'm more prepared to use AWS in the real world now. We used firebase for authentication and we interfaced with the google maps api, a postcode convertor api and the meet up api (the OAuth2 process for this was longgggg but i'm glad we did it!). One of my smallest but most exciting little wins was using this &lt;a href="https://www.npmjs.com/package/timeago-react" rel="noopener noreferrer"&gt;beautiful little npm package&lt;/a&gt; to format our db timestamps for our messaging component into whatsapp style '2 mins ago' snippets - it was so easy and looked much better. &lt;/p&gt;

&lt;p&gt;The code for our project can be found on my github - &lt;a href="https://github.com/SchoolOfCode/Bootcamper-Network-App-React" rel="noopener noreferrer"&gt;front end&lt;/a&gt; / &lt;a href="https://github.com/SchoolOfCode/Bootcamper-Network-App-Back-End" rel="noopener noreferrer"&gt;back end.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On Thursday 14th May we presented our project for demo day. I was a bit gutted to have not experienced real demo day as it should have been - in front of an audience of roughly 100 possible employers - but it is what it is and it probably meant it was less nerve wracking. We'll save the post-demo-day celebrations for after lockdown! Every group worked so hard and did a brilliant job.  If you'd like to watch our demo, it starts at around 16 mins into the video:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=GMoxQ1RvbzU" rel="noopener noreferrer"&gt; &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fcryuti4ki2mbyejp18w5.png" alt="front page of app presentation" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Where I'm at
&lt;/h3&gt;

&lt;p&gt;Well, I've had a few days to relax after an intense 4 months. I've had a few lovely walks, lie ins and done some gardening and now I'm ready to get back to it! I want to build my portfolio and I think i'm going to use Gatsby as its quite like React but its for static sites and I'd like to learn a bit more about it. Before that though i'm going to finish a &lt;a href="https://scrimba.com/g/gresponsive" rel="noopener noreferrer"&gt;responsive css course&lt;/a&gt; that i'm half way through as I'd like my portfolio to be super responsive. &lt;/p&gt;

&lt;p&gt;I'm also going to keep working on our Bootcamper Network App. I'd like for the forms to be a bit more beautiful and they need validation. We need to decide on a way for it to work so that only SoC bootcampers/staff can sign up to the app.  We'd also like to build in push notifications and private messaging. Login via linkedin might be worth looking at too (we did originally want to do this but found out that there is a 2 week wait for applications and that wasn't ideal for a 4 week build!)&lt;/p&gt;

&lt;p&gt;On top of the portfolio and sharpening up the bootcamper app I'd like to try some css artwork, i've seen a few tutorials online - i'd like to follow a few and then make my own css delights!&lt;/p&gt;

&lt;h3&gt;
  
  
  Where I want to be
&lt;/h3&gt;

&lt;p&gt;I would like a job...soon if possible!  I have every faith that Jack from Spinks and everyone at SoC are doing whatever they can to present what opportunities there are out there to us - it's just going to take longer than normally would do. I might need to find a job to tide me over in the mean time (slightly excited about the possibility of working in a giant amazon warehouse!) But I will be making sure my skills stay sharp so i'll be ready for any opportunity should it arise. &lt;/p&gt;

&lt;p&gt;Thank you for reading my blog! If you have any questions about the bootcamp or my experience please send me a message! &lt;br&gt;
&lt;a href="https://twitter.com/helen8297" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; / &lt;a href="https://www.linkedin.com/in/helen8297/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; / &lt;a href="https://github.com/helen8297" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>bootcamp</category>
      <category>schoolofcode</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>How to use Storybook JS with React - a basic tutorial</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Wed, 01 Apr 2020 21:22:06 +0000</pubDate>
      <link>https://dev.to/helen8297/how-to-use-storybook-js-with-react-a-basic-tutorial-3826</link>
      <guid>https://dev.to/helen8297/how-to-use-storybook-js-with-react-a-basic-tutorial-3826</guid>
      <description>&lt;p&gt;Storybook is a fancy tool that allows you to test your React components on their own. This means you can see how your components behave without any interaction from anything else within your app. Storybook has lots of different features...but this is a basic tutorial and I won't be going into them! You can see a good example of how Storybook works &lt;a href="http://airbnb.io/react-dates/?path=/story/daterangepicker-drp--default" rel="noopener noreferrer"&gt;here&lt;/a&gt; - it is how airbnb uses it to test its calendar/date components. Different components are listed on the left hand side and you can see them working in the window on the right. &lt;/p&gt;

&lt;p&gt;This tutorial is best for developers who are familiar with React, if you've not used it yet, bookmark this and learn some &lt;a href="https://reactjs.org/docs/getting-started.html" rel="noopener noreferrer"&gt;React first!&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to install and use Storybook
&lt;/h3&gt;

&lt;p&gt;1) Use &lt;strong&gt;npx create-react-app your_app_name&lt;/strong&gt; to create your React app. Don't forget to cd into your app.&lt;/p&gt;

&lt;p&gt;2) Reorganise your folders so you've got a components folder within src. I always like to clear out the React app too!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7h5pu80epwm4tvbq0dnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7h5pu80epwm4tvbq0dnk.png" width="216" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Install storybook with &lt;strong&gt;-npx -p @storybook/cli sb init --type react_scripts&lt;/strong&gt; This will install a .storybook folder and in your src folder, a stories folder.&lt;/p&gt;

&lt;p&gt;4) Now you can take a look at the storybook interface - run it with the command &lt;strong&gt;npm run storybook&lt;/strong&gt; and it'll load up in your browser, usually on localhost:9009.&lt;/p&gt;

&lt;p&gt;5) In your components folder, make a folder called 'Button' and make an index.js file for it. Paste in the following code to make a button component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;CSS&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./Button.module.css&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;##FFFF00&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;backgroundColor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;CSS&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//I have passed in props for text and color (with a default value)&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6) Make a css file for your button and style it as you'd like. I've used css modules so name it Button.module.css &lt;br&gt;
Feel free to copy and paste the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.button {
  border-radius: 25px;
  border: black solid 2px;
  font-size: 1em;
  padding: 10px;
  margin: 3px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7) You will need to create a js file for each component you make. It's best to keep these files in your components folder. When storybook was installed you were given a ready-made story file for your button component. Move this from your stories folder in src into your button component folder. Remove the '1-' from the front of your file. &lt;/p&gt;

&lt;p&gt;8) In Button.stories.js remove &lt;strong&gt;import { Button } from "@storybook/react/demo"&lt;/strong&gt; and replace it with &lt;strong&gt;import Button from "../Button/index"&lt;/strong&gt; to link to your Button component. &lt;/p&gt;

&lt;p&gt;9) The code below is how I adapted/added to the button story. Each 'export const' is a different 'test' for the same button component. You can see they have been given different text, background colours, props etc. Each one is shown separately in storybook as you can see in the video below the code. If you find your tests aren't rendering as you would expect, then you will need to adapt your button component.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;action&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@storybook/addon-actions&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;../Button/index&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;//this imports your component and gives it a title to show in storybook&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Button&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;clicked&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hello Button&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Emoji&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt;
    &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;clicked&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;
    &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt; &lt;span class="nx"&gt;role&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;img&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;aria&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;label&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;so cool&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="err"&gt;😀&lt;/span&gt; &lt;span class="err"&gt;😎&lt;/span&gt; &lt;span class="err"&gt;👍&lt;/span&gt; &lt;span class="err"&gt;💯&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/span&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Login&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Login&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lightgreen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Logout&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Logout&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lightgreen&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;BlueButton&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Button&lt;/span&gt; &lt;span class="nx"&gt;onClick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;clicked&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt; &lt;span class="nx"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HelloBlue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Lightblue&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/f2JhzR1P87E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Try using storybook to really put your components to the test! &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Weeks 7-10 - The School Of Code Bootcamp</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Mon, 30 Mar 2020 22:02:24 +0000</pubDate>
      <link>https://dev.to/helen8297/weeks-7-10-the-school-of-code-bootcamp-44ka</link>
      <guid>https://dev.to/helen8297/weeks-7-10-the-school-of-code-bootcamp-44ka</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" alt="school of code logo" width="380" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So quite a lot has changed since my last blog! We've learnt a lot more, experienced our first project week and now we're all doing the bootcamp remotely because of coronavirus. &lt;/p&gt;

&lt;h3&gt;
  
  
  What we've learnt
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Proptypes and default props for React&lt;/li&gt;
&lt;li&gt;More conditional rendering&lt;/li&gt;
&lt;li&gt;A lot more working with React on mini projects including with express back ends.&lt;/li&gt;
&lt;li&gt;Animating buttons&lt;/li&gt;
&lt;li&gt;Lean StartUp Methodology&lt;/li&gt;
&lt;li&gt;React Router&lt;/li&gt;
&lt;li&gt;Github milestones, issues and using story points &amp;amp; planning poker&lt;/li&gt;
&lt;li&gt;More github - branching off&lt;/li&gt;
&lt;li&gt;REST API's (Talk from Talis)&lt;/li&gt;
&lt;li&gt;More in-depth look at dev tools in chrome&lt;/li&gt;
&lt;li&gt;Cookies - adding to get requests &lt;/li&gt;
&lt;li&gt;Postgres and pgAdmin&lt;/li&gt;
&lt;li&gt;Environment Variables&lt;/li&gt;
&lt;li&gt;Setting up logging in and out&lt;/li&gt;
&lt;li&gt;Using bCrypt for passwords&lt;/li&gt;
&lt;li&gt;Express session&lt;/li&gt;
&lt;li&gt;PG Simple&lt;/li&gt;
&lt;li&gt;Wrappers in React&lt;/li&gt;
&lt;li&gt;Hosting projects on netlify &amp;amp; heroku&lt;/li&gt;
&lt;li&gt;Local storage and session storage&lt;/li&gt;
&lt;li&gt;JWT's (Json Web Tokens)&lt;/li&gt;
&lt;li&gt;React classes &amp;amp; converting a react hooks app to classes.&lt;/li&gt;
&lt;li&gt;useEffect, useCallBack, useContext, useRef, useReduce, useLayoutEffect&lt;/li&gt;
&lt;li&gt;How to sort out git conflicts locally.&lt;/li&gt;
&lt;li&gt;More react router&lt;/li&gt;
&lt;li&gt;Composition&lt;/li&gt;
&lt;li&gt;React Storybook&lt;/li&gt;
&lt;li&gt;How to write CV's - great talk from Matt Rose&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How I feel
&lt;/h3&gt;

&lt;p&gt;Working remotely: We're getting used to doing the bootcamp remotely. I think we'd all prefer to be at SoCHQ. It was lovely to be together, I miss our social lunchtimes and chatting things through in person but we're managing well with zoom and still having our daily stand ups and squats. We've discovered hivemind - where if one of us is struggling with something, we can share our screen and all work together to find the error. We couldn't do this quite so easily in person so this has been a nice surprise. It's great getting to experience working from home and to know that I can actually do it. There is the huge advantage of no commute - loving that!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flye125eyqwdesw67uq50.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flye125eyqwdesw67uq50.jpeg" alt="zoom call photos" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We were gutted to find out our trip to the Google offices was cancelled, but they sent goodie bags and we all got more excited than we probably should've been...free stuff, woo!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmg792gwznq392n411v9g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fmg792gwznq392n411v9g.png" alt="Bootcampers wearing google sunglasses" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Project Week: Project week went well. I didn't expect to learn QUITE so much and mostly it was about team and project work. We definitely over stretched ourselves and we could've used our time more wisely to plan in more detail. I'll definitely be doing a few things differently for our final project. &lt;/p&gt;

&lt;h3&gt;
  
  
  Where I'm at
&lt;/h3&gt;

&lt;p&gt;The curriculum is definitely still getting harder and harder. I certainly feel that we're being put through our paces. I probably need to relax a bit more, not get frustrated with being so confused about things and trust the google magic. &lt;br&gt;
We worked in small teams to make a game last week. Murray and I made an online version of &lt;a href="https://ringoffire.netlify.com/" rel="noopener noreferrer"&gt;Ring of Fire&lt;/a&gt; so drinking game deprived people can play remotely with friends. We're really happy with the result and it was actually put to the test on a Friday eve zoom social! I've begun to improve it by adding media queries for different screen sizes. We began working with a quiz API last week so Liv and I are working together to make a nice little quiz app - that's going well. I've also designed my portfolio, just got to start making that. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi7fn6gorutsree5vd359.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi7fn6gorutsree5vd359.png" alt="Ring of fire game" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Where I want to be
&lt;/h3&gt;

&lt;p&gt;I need to spend more time going over what we learn during the day. I had a bit of a slump as we first went remote (too much screen time in the day) but I'm getting back into the swing of things now. I want to make good progress with our quiz app, make my portfolio and work on understanding the bits and bobs from each day that I don't quite get in the evenings. &lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>bootcamp</category>
      <category>schoolofcode</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Weeks 4-6 - The School Of Code Bootcamp</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Tue, 03 Mar 2020 21:17:54 +0000</pubDate>
      <link>https://dev.to/helen8297/weeks-4-6-the-school-of-code-bootcamp-p80</link>
      <guid>https://dev.to/helen8297/weeks-4-6-the-school-of-code-bootcamp-p80</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" alt="school of code logo" width="380" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It feels like I wrote my last blog post around 6 months ago. Nope, it was just 3 weeks but we've crammed so much in! We've enjoyed hearing from a variety of guest speakers over the last three weeks. Narj from BJSS talked about her career and her current role, Wendy from West Midlands Police talked about preventing cyber crime, Theo Millward talked about how technology has revolutionised his business, David Hore talked about computational linguistics at Fluence and Martin Reynolds from Advanced talked to us about his DevOps role. It's brilliant hearing from so many different people within tech and i'm quite surprised at the number of tech companies in and around Birmingham. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fd06k5oxn6jwno2g03clo.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fd06k5oxn6jwno2g03clo.JPG" alt="visitors to bootcamp" width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What we've learnt
&lt;/h3&gt;

&lt;p&gt;Again, SO MUCH.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Databases, using Google Cloud Platform to host our first DB&lt;/li&gt;
&lt;li&gt;Making DBs with SQL and writing SQL queries&lt;/li&gt;
&lt;li&gt;Postgres - linking up our server to our DB&lt;/li&gt;
&lt;li&gt;CRUD (Create, read, update, delete)&lt;/li&gt;
&lt;li&gt;REST API's&lt;/li&gt;
&lt;li&gt;HTTP request methods - (we made some fancy pokemon requests with these!)&lt;/li&gt;
&lt;li&gt;Used Jest for testing&lt;/li&gt;
&lt;li&gt;CSS Variables&lt;/li&gt;
&lt;li&gt;Used the express generator to set up a server&lt;/li&gt;
&lt;li&gt;We made our own codewars style kata and wrote tests for it (ours was called 'Microwave Mayhem')&lt;/li&gt;
&lt;li&gt;A bit more about scope in js.&lt;/li&gt;
&lt;li&gt;Iffes - immediately invoked function expressions&lt;/li&gt;
&lt;li&gt;Closures (one function closing over another)&lt;/li&gt;
&lt;li&gt;Began learning React&lt;/li&gt;
&lt;li&gt;React components, JSX, Babel, transpiling, Webpack&lt;/li&gt;
&lt;li&gt;Conditional rendering of components&lt;/li&gt;
&lt;li&gt;Using state to control things in react&lt;/li&gt;
&lt;li&gt;SVGs and changing their size with buttons and state.&lt;/li&gt;
&lt;li&gt;Deployment - continuous iteration and continuous deployment&lt;/li&gt;
&lt;li&gt;Creating a react app with npx create-react-app &lt;/li&gt;
&lt;li&gt;The useEffect function &lt;/li&gt;
&lt;li&gt;We made a shopping list react app and a Pokemon search react app&lt;/li&gt;
&lt;li&gt;How to understand problems and break them down to begin solving them&lt;/li&gt;
&lt;li&gt;More testing in react with beforeEach and afterEach&lt;/li&gt;
&lt;li&gt;Custom hooks (we made a counter)&lt;/li&gt;
&lt;li&gt;We learnt about Agile and the different ways it can be implemented (scrum, kanban, extreme programming, waterfall)&lt;/li&gt;
&lt;li&gt;CSS modules&lt;/li&gt;
&lt;li&gt;Typechecking with PropTypes&lt;/li&gt;
&lt;li&gt;Animating a button with onAnimationEnd&lt;/li&gt;
&lt;li&gt;Lean start up methodology&lt;/li&gt;
&lt;li&gt;React router&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How I feel
&lt;/h3&gt;

&lt;p&gt;I feel quite astounded at the amount we've learnt. I really enjoyed weeks 4 and 5 but found week 6 (the first proper week we spent learning React) exceptionally hard. I think it was quite an emotional week for a lot of us as we battled feeling quite inadequate and at times unable to even think of how to begin solving a problem. I think I also felt so frustrated with myself that I forgot other simpler things we'd previously learnt. I started to think that I wasn't destined to 'get' React...but after receiving help from my fellow bootcampers and after having lots of supportive chats with each other, it somehow slowly started to sink in on Friday afternoon whilst putting together our Pokesearch app. It was lovely to feel a little more in control of what we were doing!&lt;/p&gt;

&lt;p&gt;I'm really loving being with such a lovely, supportive group of people. We have energisers everyday around 3pm which help wake us up a little during the afternoon slump. Energiser highlights include mini golf, floor ping pong, the sock game, backwards Mario Kart+squats and Ben's invention 'Binny-Pong-Quizzy-Song' - a quiz game where you get the chance to answer a question if you manage to throw the ball in the bin and the quiz question is delivered by Ben, singing it to a well known tune that you've also got to get. Skills. The bootcampers and I are still enjoying lunchtime walks around Digbeth and Friday night social sessions! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr16tidlis6y3594pag4x.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr16tidlis6y3594pag4x.JPG" alt="bootcampers on a walk" width="800" height="910"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Where I'm at
&lt;/h3&gt;

&lt;p&gt;I'm happier with react now than last week and I think I could manage simple React projects with a lot of googling and lots of planning. A couple of the other bootcampers and I have begun a side project to get more experience with managing something as a small team from start to finish. We've been learning about using github for project management (milestones and issues) so we're going to practice using that too. I feel like I've got a good basic understanding of a fair amount of front end and back end but I think we could do with some consolidating and putting the two together now. &lt;/p&gt;

&lt;p&gt;I went to the brum.js meet up a week or so ago with a few other bootcampers and found the networking and open discussion session really helpful. It was lovely to meet people from the Bham tech scene and particularly enjoyed speaking to Tom from Purple Bricks about his team. I'm looking forward to more meet ups in the next few weeks. &lt;/p&gt;

&lt;h3&gt;
  
  
  Where I want to be
&lt;/h3&gt;

&lt;p&gt;I would like to get more confident with React and remind myself about back end (it feels like so long ago that we did it!) Our side project will help with that as well as what we're doing during the day at SoC. &lt;br&gt;
We've got our first project week coming up in week 8. I'd like to make sure we use all of the different things we've been taught, stick to best practice and deliver a good MVP by the end of the week - also hoping I'm able to contribute well for both front end and back end. 🤞🏼&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>bootcamp</category>
      <category>schoolofcode</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>The first 3 weeks - The School of Code Bootcamp</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Sun, 09 Feb 2020 21:29:53 +0000</pubDate>
      <link>https://dev.to/helen8297/the-first-3-weeks-the-school-of-code-bootcamp-171j</link>
      <guid>https://dev.to/helen8297/the-first-3-weeks-the-school-of-code-bootcamp-171j</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fou0i1kx2xwj176j6xtyw.png" alt="Alt Text" width="380" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the 20th January I joined 23 other eager bootcampers for our first day on the &lt;a href="https://www.schoolofcode.co.uk/" rel="noopener noreferrer"&gt;School of Code&lt;/a&gt; bootcamp. I had intended on writing a blogpost each week but three weeks have flown by and here we are! I read lots of the SoC blogposts while I was researching the bootcamp and I really liked the format of Jaskaran Sarkaria's weekly blogs, so i'm pinching it!&lt;/p&gt;

&lt;h3&gt;
  
  
  What we've learnt so far
&lt;/h3&gt;

&lt;p&gt;So, so, so much. We have gone through a fair amount of html &amp;amp; css. I've really enjoyed the CSS tasks as I love seeing what we're working on improve as we learn. We've learnt about the history of JavaScript, about arrays and their methods, objects, for &amp;amp; while loops, functions, different variables and their scope. We learnt about the DOM and how to use it to make changes to our webpages with JS. We learnt more about github and used it with our pair programming partner for an afternoon &lt;a href="https://lokhnor.github.io/pairhackathon/" rel="noopener noreferrer"&gt;hackathon&lt;/a&gt;. Last week we learnt about APIs and used used fetch to get Kanye quotes and random dog pics into our sites! We began using node, npm and used express to create our own server. We learnt about object oriented programming, and at the end of week 3 we used get and post requests to display and update Pokemon data! &lt;/p&gt;

&lt;h3&gt;
  
  
  How I feel
&lt;/h3&gt;

&lt;p&gt;The last three weeks have been brilliant and intense. I'm starting to get used to feeling the complete frustration of not being able to solve a problem. We had a couple of very hard days during the first two weeks and I was quite hard on myself which didn't help. Having spoken to past bootcampers, my mentor, other developers and my cohort pals, I'm definitely not alone in feeling quite lost sometimes and I'm getting to grips with knowing how to deal with the frustrations. It's important to remember we're still very new to everything and to have faith that things will be sinking in even when it might not feel like it. I am absolutely loving learning with the rest of our cohort. I've found their support invaluable and I've enjoyed helping others when I can. I am absolutely not missing spending my lunchtimes marking books, instead I've been enjoying social time and our daily walks around Digbeth. The School of Code bootcamp certainly has not disappointed at all so far. As well as the learning and code tasks it's been really helpful to have our daily standup recaps(including daily squats!) and we've had some brilliant guest speakers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where I'm at
&lt;/h3&gt;

&lt;p&gt;I'm happy with how each day is going. I've gotten into a good rhythm with note-taking and coding along as we're taught. I feel like I'd be able to explain what most of the code we've come across does if I was shown it again, however I definitely would not be able to use it all if I was asked to. I'm enjoying our daily Codewar sessions. Most level 8KYU katas are doable although some are still fairly challenging. &lt;/p&gt;

&lt;h3&gt;
  
  
  Where I want to be
&lt;/h3&gt;

&lt;p&gt;I'd like to continue to develop my confidence with JS on the front end. I've been going through notes and codewars at home but I think working on a project would be a better use of my time this week. &lt;/p&gt;

&lt;p&gt;Really looking forward to this week. More back end and databases are coming up!&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>bootcamp</category>
      <category>schoolofcode</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Watch and Code: Javascript</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Sun, 12 Jan 2020 21:48:37 +0000</pubDate>
      <link>https://dev.to/helen8297/watch-and-code-javascript-73</link>
      <guid>https://dev.to/helen8297/watch-and-code-javascript-73</guid>
      <description>&lt;h2&gt;
  
  
  Notes from the watchandcode.com Practical JavaScript course.
&lt;/h2&gt;

&lt;p&gt;I've started Gordon Zhu's watchandcode.com Practical Javascript course. In the course you work on building a todo list, so here are some of the commands and notes about them so I remember them!&lt;/p&gt;

&lt;p&gt;Its best to work in chrome. Open a new tab (about:blank) and right click and choose inspect then click on console. &lt;/p&gt;

&lt;h4&gt;
  
  
  How to store the to do list:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;todos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;item 1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;item 2&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;item 3&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;todos is the name of my variable.&lt;/li&gt;
&lt;li&gt;The items are in an array. Which is like a list of items. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  How to display the to do list:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;My to do list:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Console.log() prints whatever is in the brackets.&lt;/li&gt;
&lt;li&gt;You can join items between the brackets. &lt;/li&gt;
&lt;li&gt;If you put quotation marks it prints whatever is inside them. &lt;/li&gt;
&lt;li&gt;As todos isn't in quotation marks it prints out the contents of the variable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Adding new todos:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;push&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;item 4&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;You can add items to the array by calling the variable and 'pushing' another item to the end of the array.&lt;/li&gt;
&lt;li&gt;When you press enter, the console returns the number of items in the array. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Changing an item in an array:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;item 1 updated&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To edit the array item you call the variable and in square brackets put the item number you want. &lt;/li&gt;
&lt;li&gt;Computers start counting at zero so item number one is item 0.&lt;/li&gt;
&lt;li&gt;Then you just put what you want the new value to be after an equals sign in quotation marks. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Deleting an item in the array:
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;todos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;splice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Call the array and then use &lt;em&gt;splice&lt;/em&gt; &lt;/li&gt;
&lt;li&gt;To use this you need brackets. &lt;/li&gt;
&lt;li&gt;The first number is the position at which you start deleting, the second number is how many items you delete.&lt;/li&gt;
&lt;li&gt;In this example, you just delete the first item in the array.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>100daysofcode</category>
      <category>codenewbie</category>
      <category>womenintech</category>
    </item>
    <item>
      <title>Codecademy - CSS 7: Typography</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Wed, 08 Jan 2020 23:26:38 +0000</pubDate>
      <link>https://dev.to/helen8297/codecademy-css-7-typography-p</link>
      <guid>https://dev.to/helen8297/codecademy-css-7-typography-p</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;What i've learnt from the typography lesson of Codecademy's CSS course.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Typography is the art of arranging text on a page. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Font-family
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This property changes the font of a particular element.&lt;/li&gt;
&lt;li&gt;Default font is Times New Roman if none is specified.&lt;/li&gt;
&lt;li&gt;When the typeface (font) is more than one word you must put it in quote marks.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  font-family: "Courier New";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Font-weight
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This property can make text bold if you set it to:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;p {
  font-weight: bold;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The default is usually 'normal' but if you definitely don't want something to be bold or if you want to make something not bold, you can set the value to normal instead. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alternatively, some fonts can be given a numeric value for their font-weight. The values are in multiples of 100 from 100 up to 900. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It is useful to note that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;400 is the default font-weight of most text.&lt;/li&gt;
&lt;li&gt;700 signifies a bold font-weight.&lt;/li&gt;
&lt;li&gt;300 signifies a light font-weight.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Font-style
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can use font-style to italicise text. Values can either be &lt;em&gt;italic&lt;/em&gt; or &lt;em&gt;normal&lt;/em&gt;(which is the default)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h3 {
  font-style: italic;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Word-spacing and letter spacing
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can increase the spacing between words and letters with these properties.

&lt;ul&gt;
&lt;li&gt;word-spacing -The default amount of space between words is usually 0.25em.&lt;/li&gt;
&lt;li&gt;letter-spacing - technical term for adjusting this is called tracking.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  word-spacing: 0.3em;
  letter-spacing: 0.01em
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;You can also use pixels (px) for word-spacing and letter-spacing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Line-height
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcy2ag1rda99ifi4vtl8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcy2ag1rda99ifi4vtl8x.png" alt="Line height diagram" width="577" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Line heights can take one of several values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A unitless number, such as 1.2. This number is an absolute value that will compute the line height as a ratio of the font size.&lt;/li&gt;
&lt;li&gt;A number specified by unit, such as 12px. This number can be any valid CSS unit, such as pixels, percents, ems, or rems.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Generally the unitless number is preferred as it is based on the font size so if that is changed, the line height would readjust itself accordingly.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.banner p {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  line-height: 1.4;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Text-transform
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can make text all uppercase or all lowercase using this property. Values are either &lt;em&gt;uppercase&lt;/em&gt; or &lt;em&gt;lowercase&lt;/em&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  text-transform: uppercase;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Text-align
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can align text on a webpage using this property. As a default all text is aligned to the left.&lt;/li&gt;
&lt;li&gt;Values for this property are:

&lt;ul&gt;
&lt;li&gt;left - aligns text to the left hand side of the browser.&lt;/li&gt;
&lt;li&gt;center - centers text.&lt;/li&gt;
&lt;li&gt;right - aligns text to the right hand side of the browser.
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  text-align: right;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Serif and Sans-serif
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1xp2penkn5h2gv8pmj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1xp2penkn5h2gv8pmj1.png" alt="Serif and sans-serif diagram" width="600" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Fallback fonts
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;For fonts to show up on a webpage they need to be installed on a users computer. If they're not, you can set fallback fonts that are more likely to be available as a back up option.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  font-family: "Garamond", "Times", serif;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The rule above says, to use garamond for the h1, but if that isn't available use times and if that isn't available, use any serif font. The times and serif fonts are the two fallback fonts. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Linking fonts - google fonts
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Google has a huge library of free fonts for you to use.&lt;/li&gt;
&lt;li&gt;Go to fonts.google.com and search for what you want.&lt;/li&gt;
&lt;li&gt;Click the little plus button for the detail and customise to select which styles you want.&lt;/li&gt;
&lt;li&gt;You can minimise the little window to add other styles to your list (it's a bit like adding things to a shopping cart)&lt;/li&gt;
&lt;li&gt;Or you can go back to the embed tab.&lt;/li&gt;
&lt;li&gt;Copy and paste the html link into the header of the html file as in the example below. &lt;/li&gt;
&lt;li&gt;You will then be able to use the font in your css file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg3qxdk4olyvhmzz2nzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg3qxdk4olyvhmzz2nzw.png" alt="Pic of the font link in the header" width="438" height="172"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Alternatively, you can link to the fonts in your CSS file. You need a different link for this.&lt;/li&gt;
&lt;li&gt;To get the link, put the direct url of the font into your browser e.g. &lt;a href="https://fonts.googleapis.com/css?family=Space+Mono:400,700/" rel="noopener noreferrer"&gt;https://fonts.googleapis.com/css?family=Space+Mono:400,700/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Copy the /* latin */ @font-face link to the top of your CSS file for each font style that you want. Like this:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq77y8y6q2h5gt0phfxg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq77y8y6q2h5gt0phfxg9.png" alt="Font face link in a CSS file" width="436" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Hosting a font
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;As an alternative, we could host the font with our site files instead of depending on another site.&lt;/li&gt;
&lt;li&gt;Plenty of font sites now help to do this e.g. &lt;a href="https://www.fontsquirrel.com/" rel="noopener noreferrer"&gt;Font Squirrel&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;You need to have the font saved in your directory.&lt;/li&gt;
&lt;li&gt;You still add the links to the top of your CSS file, instead this time they're relative links to the font file in your directory.&lt;/li&gt;
&lt;li&gt;You add a format for each file to specify which font to use. Different browsers support different font types, so providing multiple font file options will support more browsers.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@font-face {
  font-family: "Glegoo";
  src: url(../fonts/Glegoo-Regular.ttf) format('truetype');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;In the example above, the font-family is given the name Gleegoo for you to refer to in your CSS. &lt;/li&gt;
&lt;li&gt;You can then link to multiple formats of the same font to support different browsers. &lt;/li&gt;
&lt;li&gt;Truetype fonts are older so support older browsers.&lt;/li&gt;
&lt;li&gt;WOFF2 (Web open font format 2) is currently the best as it offers small file sizes and better performance so if you can, include a woff2 file.&lt;/li&gt;
&lt;li&gt;In the example below, lots of different browsers have been supported.&lt;/li&gt;
&lt;li&gt;(I'd like to know if there is an order that these files are chosen by the browser or do they automatically load the best one they can handle?
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjp539maw500qwg0d42xo.png" alt="Different font types in css" width="698" height="238"&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>100daysofcode</category>
      <category>css</category>
      <category>womenintech</category>
    </item>
    <item>
      <title>Codecademy - CSS 6: Colours</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Tue, 07 Jan 2020 22:12:28 +0000</pubDate>
      <link>https://dev.to/helen8297/codecademy-css-6-colours-5h01</link>
      <guid>https://dev.to/helen8297/codecademy-css-6-colours-5h01</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;What i've learnt from the colours lesson of Codecademy's CSS course.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Colors in CSS can be described in three different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Named colors — English words that describe colors, also called keyword colors&lt;/li&gt;
&lt;li&gt;RGB — numeric values that describe a mix of red, green, and blue&lt;/li&gt;
&lt;li&gt;HSL — numeric values that describe a mix of hue, saturation, and lightness&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;When you style an elements colour you can either style the foreground colour or the background colour. You would use these properties for this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;color - this property styles an element’s foreground color.&lt;/li&gt;
&lt;li&gt;background-color - this property styles an element’s background color.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;There are many different colours to choose from...&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/color_value" rel="noopener noreferrer"&gt;here are just some!&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Hex
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Hexadecimal colours can be used. These are 3 or 6 digit numbers that begin with a hash character. The numbers and letters represent values for red, blue and green.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.green {
  background-color: #8FBC8F;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  RGB
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;As an alternative to hex colour codes, RGB codes can be used. There isn't a right or wrong choice, its a matter of personal preference. However its best to stick to one format throughout your CSS.&lt;/li&gt;
&lt;li&gt;The first number represents the amount of red, the second is green, and the third is blue.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;h1 {
  color: rgb(23, 45, 23);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  HSL
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Another colour scheme is HSL or hue-saturation-lightness.&lt;/li&gt;
&lt;li&gt;HSL is laid out similarly to RGB except the numbers mean different things.&lt;/li&gt;
&lt;li&gt;The first number represents the degree of the hue, and can be between 0 and 360. The second and third numbers are percentages representing saturation (intensity of the colour) and lightness respectively (50% is about normal lightness). Here is an example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.box {
color: hsl(120, 60%, 70%);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The first number is the hue and it refers to an angle on the colour wheel below.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdmgxl8mnstkomb5o801.png" alt="Colour wheel" width="742" height="760"&gt;
&lt;/li&gt;
&lt;li&gt;HSL is useful because you can change things like the lightness by changing one number, rather than affecting each number in the code. &lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Opacity and Alpha
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can change the opacity of elements so they show the elements beneath them. &lt;/li&gt;
&lt;li&gt;You can adapt your RGB and HSL properties to include an opacity value that is called an alpha.&lt;/li&gt;
&lt;li&gt;To change the HSL you add an a onto the property and a fourth value.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;color: hsla(34, 100%, 50%, 0.1);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;To change the RGB you also add an a onto the property and a fourth value.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;color: rgba(234, 45, 98, 0.33);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The alpha values can be between 0 and 1. Zero is completely transparent and one is opaque. Half transparent is 0.5.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can think of the alpha value as, “the amount of the background to mix with the foreground”. When a color’s alpha is below one, any color behind it will be blended in. The blending happens for each pixel; no blurring occurs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Alpha can only be used with HSL and RGB, not hex or named colours.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is a value for completely transparent which is equivalent to rgba(0, 0, 0, 0) which is:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;color: transparent;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>100daysofcode</category>
      <category>css</category>
      <category>womenintech</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Codecademy - CSS 9: Advanced Grid</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Mon, 06 Jan 2020 22:11:02 +0000</pubDate>
      <link>https://dev.to/helen8297/codecademy-css-7-advanced-grid-ami</link>
      <guid>https://dev.to/helen8297/codecademy-css-7-advanced-grid-ami</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;What i've learnt from the advanced grid lesson of Codecademy's CSS course.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;This lesson covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grid-template-areas&lt;/li&gt;
&lt;li&gt;justify-items&lt;/li&gt;
&lt;li&gt;justify-content&lt;/li&gt;
&lt;li&gt;justify-self&lt;/li&gt;
&lt;li&gt;align-items&lt;/li&gt;
&lt;li&gt;align-content&lt;/li&gt;
&lt;li&gt;align-self&lt;/li&gt;
&lt;li&gt;grid-auto-rows&lt;/li&gt;
&lt;li&gt;grid-auto-columns&lt;/li&gt;
&lt;li&gt;grid-auto-flow&lt;/li&gt;
&lt;li&gt;implicit and explicit grids&lt;/li&gt;
&lt;li&gt;grid axes&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;It took me a while to get my head around this and i'm not 100% sure how it works...&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-template-areas
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This property allows you to name sections of your web page to use as values in your grid-row-start, grid-row-end, grid-col-start, grid-col-end, and grid-area properties.&lt;/li&gt;
&lt;li&gt;This property is declared on the grid container.&lt;/li&gt;
&lt;li&gt;Read through the code below:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML
&amp;lt;body&amp;gt;
  &amp;lt;div class="container"&amp;gt;
    &amp;lt;header&amp;gt;
      &amp;lt;h1&amp;gt;Header&amp;lt;/h1&amp;gt;
    &amp;lt;/header&amp;gt;
    &amp;lt;nav&amp;gt;
      &amp;lt;h1&amp;gt;Nav&amp;lt;/h1&amp;gt;
    &amp;lt;/nav&amp;gt;
    &amp;lt;section class="left"&amp;gt;
      &amp;lt;h2&amp;gt;Left&amp;lt;/h2&amp;gt;
    &amp;lt;/section&amp;gt;
    &amp;lt;section class="right"&amp;gt;
      &amp;lt;h2&amp;gt;Right&amp;lt;/h2&amp;gt;
    &amp;lt;/section&amp;gt;
    &amp;lt;footer&amp;gt;
      &amp;lt;h1&amp;gt;Footer&amp;lt;/h1&amp;gt;
    &amp;lt;/footer&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container {
  display: grid;
  max-width: 900px;
  position: relative;
  margin: auto;
  grid-gap: 10px;
  grid-template-areas: "header header"
                        "nav nav"
                        "left right"
                        "footer footer";
  grid-template-columns: 200px 400px;
  grid-template-rows: 150px 200px 600px 200px;
}

h1, h2 {
  font-family: monospace;
  text-align: center;
}

header {
  background-color: dodgerblue;
  grid-area: header;
}

nav {
  background-color: beige;
  grid-area: nav;
}

.left {
  background-color: dodgerblue;
  grid-area: left;
}

.right {
  background-color: beige;
  grid-area: right;
}

footer {
  background-color: dodgerblue;
  grid-area: footer;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The code above creates this:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadibygpx9ubplnpdqair.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fadibygpx9ubplnpdqair.png" alt="Grid layout" width="454" height="822"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The grid-template-areas values in speech marks specify the number of rows (4 in this example, one for each set of speech marks) and for each row, how many columns the items take up. The third row is set as "left right" because in one row there are two columns, one taken up by the item "left" and one taken up by "right"&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Overlapping Elements
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can specify, using grid-area and its values, that elements can overlap each other.&lt;/li&gt;
&lt;li&gt;If this happens, you can use the property &lt;strong&gt;z-index&lt;/strong&gt; to state which element will be on top etc.&lt;/li&gt;
&lt;li&gt;In the code below, it is set up so that there is a grid with 8 rows and 6 columns. There are three items in the container - info, services and an image.&lt;/li&gt;
&lt;li&gt;The grid-area values state the gridlines at which the item starts and finishes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.container {
  display: grid;
  grid-template: repeat(8, 200px) / repeat(6, 100px);
}

.info {
  grid-area: 1 / 1 / 9 / 4;
}

.services {
  grid-area: 1 / 4 / 9 / 7;
}

img {
  grid-area: 2 / 3 / 5 / 5;
  z-index: 5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;This would look like the image below and it would put the image on top. &lt;/li&gt;
&lt;li&gt;I tested the z-index value from 1-10 and it always put the image on top - would like to know why this happened if anyone can help please!
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68s6iaz7ixso88k62ii3.png" alt="Image of the grid" width="432" height="268"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Justify-items
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;There are two axes in grid layout. The column (or &lt;em&gt;block&lt;/em&gt;) axis and the row (or &lt;em&gt;inline&lt;/em&gt;) axis.&lt;/li&gt;
&lt;li&gt;The justify-items property aligns elements along the row/inline axis and it accepts the following values amongst others:

&lt;ul&gt;
&lt;li&gt;start - aligns items to the left&lt;/li&gt;
&lt;li&gt;end - aligns items to the right&lt;/li&gt;
&lt;li&gt;center - aligns items to the centre&lt;/li&gt;
&lt;li&gt;stretch - stretches items to fill the grid&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;This property is declared on the grid container.
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main {
  display: grid;
  grid-template-columns: 250px 250px;
  grid-template-rows: repeat(3, 450px);
  grid-gap: 20px;
  margin-top: 44px;
  grid-auto-rows: 500px;
  justify-items: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Justify-content
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can also position a grid within its parent element.&lt;/li&gt;
&lt;li&gt;You can use justify-content to position the entire grid along the row axis. It accepts these values amongst others:

&lt;ul&gt;
&lt;li&gt;start — aligns the grid to the left side of the grid container&lt;/li&gt;
&lt;li&gt;end — aligns the grid to the right side of the grid container&lt;/li&gt;
&lt;li&gt;center — centers the grid horizontally in the grid container&lt;/li&gt;
&lt;li&gt;stretch — stretches the grid items to increase the size of the grid to expand horizontally across the container&lt;/li&gt;
&lt;li&gt;space-around — includes an equal amount of space on each side of a grid element, resulting in double the amount of space between elements as there is before the first and after the last element&lt;/li&gt;
&lt;li&gt;space-between — includes an equal amount of space between grid items and no space at either end&lt;/li&gt;
&lt;li&gt;space-evenly — places an even amount of space between grid items and at either end&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;This property is declared on the grid container.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;In the example below, there is a grid that is 1000px wide but it only has two columns that total 600px. So there is 400px of unused space. You use justify-content to specify where the grid is placed within that large space.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML
&amp;lt;main&amp;gt;
  &amp;lt;div class="left"&amp;gt;Left&amp;lt;/div&amp;gt;
  &amp;lt;div class="right"&amp;gt;Right&amp;lt;/div&amp;gt;
&amp;lt;/main&amp;gt;

CSS
main {
  display: grid;
  width: 1000px;
  grid-template-columns: 300px 300px;
  grid-template-areas: "left right"; 
  justify-content: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Align-items
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Align-items works very similarly to justify-items, except it is aligning the items from top to bottom within the grid space, rather than from left to right.&lt;/li&gt;
&lt;li&gt;Some of the values (amongst others) that are accepted are:

&lt;ul&gt;
&lt;li&gt;start — aligns grid items to the top side of the grid area&lt;/li&gt;
&lt;li&gt;end — aligns grid items to the bottom side of the grid area&lt;/li&gt;
&lt;li&gt;center — aligns grid items to the center of the grid area&lt;/li&gt;
&lt;li&gt;stretch — stretches all items to fill the grid area&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;This property is declared on the grid container.
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main {
  display: grid;
  grid-template-rows: repeat(3, 400px);
  align-items: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Align-content
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Align-content works very similarly to justify-content, except it is aligning the grid within the grid container from top to bottom, rather than left to right. &lt;/li&gt;
&lt;li&gt;Some of the possible values align-content accepts are:

&lt;ul&gt;
&lt;li&gt;start — aligns the grid to the top of the grid container&lt;/li&gt;
&lt;li&gt;end — aligns the grid to the bottom of the grid container&lt;/li&gt;
&lt;li&gt;center — centers the grid vertically in the grid container&lt;/li&gt;
&lt;li&gt;stretch — stretches the grid items to increase the size of the grid to expand vertically across the container&lt;/li&gt;
&lt;li&gt;space-around — includes an equal amount of space on each side of a grid element, resulting in double the amount of space between elements as there is before the first and after the last element&lt;/li&gt;
&lt;li&gt;space-between — includes an equal amount of space between grid items and no space at either end&lt;/li&gt;
&lt;li&gt;space-evenly — places an even amount of space between grid items and at either end&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;As before, if the grid container is for example, 1600px, but the grid has 3 rows of 400px each, there are an empty 400px. You can use align-content to state where the grid goes within this space from top to bottom. &lt;/li&gt;

&lt;li&gt;This property is declared on the grid container.
&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main {
  display: grid;
  height: 600px;
  rows: 200px 200px;
  grid-template-areas: "top"
                       "bottom"; 
  align-content: center;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Align-self and justify-self
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;These two properties allow you to align (top to bottom) or justify (left to right) the elements in the individual grid boxes.&lt;/li&gt;
&lt;li&gt;If you use these properties they overrule justify-items and align-items.&lt;/li&gt;
&lt;li&gt;They take the values start, end, center and stretch amongst others.&lt;/li&gt;
&lt;li&gt;These properties are declared on the grid items.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.a {
  align-self: end;
}

.c {
  justify-self: start;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Implicit vs Explicit Grid
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;So far we've been specifying the sizes of the grids which is ok for some sites.&lt;/li&gt;
&lt;li&gt;Sometimes this will not be any good - e.g. on an online shopping site where a customer searches for a product, a different number of results will be brought back each time.&lt;/li&gt;
&lt;li&gt;If more items are returned for the grid, something called the &lt;em&gt;implicit grid&lt;/em&gt; takes over.&lt;/li&gt;
&lt;li&gt;The default behaviour for this is that items fill up rows first and add new rows as necessary. &lt;/li&gt;
&lt;li&gt;New grid rows will only be tall enough to contain the content within them. &lt;/li&gt;
&lt;li&gt;Its important to know how to change this default behaviour.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-auto-rows and grid-auto-columns
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;These properties allow you to specify the size of rows and columns that are added implicitly.&lt;/li&gt;
&lt;li&gt;They accept the same values as &lt;em&gt;grid-template-rows&lt;/em&gt; and &lt;em&gt;grid-template-columns&lt;/em&gt; (px, %, fr, repeat())&lt;/li&gt;
&lt;li&gt;This property is declared on the grid container.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-auto-flow
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;This property allows you to set how the extra grid items are rendered - whether they are added to new rows or new columns.&lt;/li&gt;
&lt;li&gt;It accepts these values:

&lt;ul&gt;
&lt;li&gt;row — specifies the new elements should fill rows from left to right and create new rows when there are too many elements (default)&lt;/li&gt;
&lt;li&gt;column — specifies the new elements should fill columns from top to bottom and create new columns when there are too many elements&lt;/li&gt;
&lt;li&gt;dense — this keyword invokes an algorithm that attempts to fill holes earlier in the grid layout if smaller elements are added&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;You can pair the values like this grid-auto-flow: column dense;&lt;/li&gt;

&lt;li&gt;This property is declared on the grid container.&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;That's it for advanced grid on codecademy!&lt;/p&gt;

&lt;p&gt;EDIT: I don't know if it's mega cheating to use this, but I found it and don't want to forget it - design a grid and set out the divs and ask for the code... &lt;a href="https://cssgrid-generator.netlify.com/" rel="noopener noreferrer"&gt;https://cssgrid-generator.netlify.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>100daysofcode</category>
      <category>womenintech</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Codecademy - CSS 8: Grid Essentials</title>
      <dc:creator>Helen Kent</dc:creator>
      <pubDate>Sun, 05 Jan 2020 21:27:42 +0000</pubDate>
      <link>https://dev.to/helen8297/codecademy-css-6-grid-essentials-2lpp</link>
      <guid>https://dev.to/helen8297/codecademy-css-6-grid-essentials-2lpp</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;What i've learnt from the grid essentials lesson of Codecademy's CSS course.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The grid method is another way of laying out elements on a web page. &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This lesson will include the following grid properties to create grid layouts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;grid-template-columns&lt;/li&gt;
&lt;li&gt;grid-template-rows&lt;/li&gt;
&lt;li&gt;grid-template&lt;/li&gt;
&lt;li&gt;grid-template-area&lt;/li&gt;
&lt;li&gt;grid-gap&lt;/li&gt;
&lt;li&gt;grid-row-start / grid-row-end&lt;/li&gt;
&lt;li&gt;grid-column-start / grid-column-end&lt;/li&gt;
&lt;li&gt;grid-area&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;To set up a grid you need a grid container (parent) and grid items (children) - the grid container applies overarching styling and positioning.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;To turn an HTML element into a grid container you must set its CSS display property to grid (if its a block level grid) or inline-grid (if its an inline grid). After that you can assign other properties to lay it out.&lt;br&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML:
&amp;lt;body&amp;gt;
  &amp;lt;div class="grid"&amp;gt;
    &amp;lt;div class="box a"&amp;gt;A&amp;lt;/div&amp;gt;
    &amp;lt;div class="box b"&amp;gt;B&amp;lt;/div&amp;gt;
    &amp;lt;div class="box c"&amp;gt;C&amp;lt;/div&amp;gt;
    &amp;lt;div class="box d"&amp;gt;D&amp;lt;/div&amp;gt;
    &amp;lt;div class="box e"&amp;gt;E&amp;lt;/div&amp;gt;
    &amp;lt;div class="box f"&amp;gt;F&amp;lt;/div&amp;gt;
    &amp;lt;div class="box g"&amp;gt;G&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

CSS:
.grid {
  border: 2px blue solid;
  width: 400px;
  height: 500px;
  display: grid;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;By setting width and height properties it means that the grid will always be that size no matter the size of the browser. If you delete these properties the grid will increase or decrease in size if the browser is made bigger or smaller (i think!)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-template-columns
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;By default grids have just one column. We use grid-template-columns to define the number of columns.&lt;/li&gt;
&lt;li&gt;Eg. grid-template-columns: 100px 200px  - these values are each the width of a column and as there are two values, it knows there will be two columns. &lt;/li&gt;
&lt;li&gt;values can be given in px or as % of the total grid width.&lt;/li&gt;
&lt;li&gt;The values can be a mixture of px or %&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The grid from the code above would look like this:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlued3io5pxvstarkjr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjlued3io5pxvstarkjr8.png" alt="grid just in rows" width="800" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you add the grid-template-column CSS:
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid {
  border: 2px blue solid;
  width: 400px;
  height: 500px;
  display: grid;
  grid-template-columns: 100px 50% 200px
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It changes to:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0u1fczvrwoknksojbis3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0u1fczvrwoknksojbis3.png" alt="grid with 3 columns" width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;so the grid items still stay in that order and go from left to right. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;some items are outside the grid boundaries but this will apparently be fixed later!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Grid-template-rows
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Works pretty much identically to grid-template-columns...except for rows! The rows are defined as a percentage of the grids total height.&lt;/li&gt;
&lt;li&gt;In the example below the first two rows are fairly similar heights and the last one is pretty small in comparison.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid {
  display: grid;
  border: 2px blue solid;
  width: 400px;
  height: 500px;
  grid-template-columns: 100px 50% 200px;
  grid-template-rows: 40% 50% 50px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Grid-template
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can forget the first two properties and use this if you like!
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  grid-template: 200px 300px / 20% 10% 70%;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;The first two values for this property specify the number and height of the rows, the values after the slash specify the number and width of your columns. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Fraction
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;We've already seen that values for rows and columns can be given as px and % (codecademy said em and rem can also be used, i had to google these and kind of understand them, but not going to go into them here!)&lt;/li&gt;
&lt;li&gt;fraction was also introduced for grid as a way of sectioning off the rows/columns without them going over the grid limits.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-template: 2fr 1fr 1fr / 1fr 3fr 1fr;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;In the example above, there are still 3 rows (the first set of values) but the grid height is split into four. The first row gets 2 quarters of this, the last two rows get 1 quarter each. &lt;/li&gt;
&lt;li&gt;The width of the grid (second set of values) is split into 5 equal parts, the first and last column will be 1 fifth of the width each, the second column will be 3 fifths of the width.&lt;/li&gt;
&lt;li&gt;fractions can also be mixed with px and % units. &lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Repeat function
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Rather than specify each row/column value you can use the repeat function.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; grid-template-columns: repeat(3, 100px);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;In the above example there will be 3 columns of 100px each.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-template-rows: repeat(5, 1fr);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;p&gt;It can also be used with fraction, so here there would be 5 rows of equal height.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The second parameter of the repeat function can have multiple values e.g:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-template-columns: repeat(2, 20px 50px)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Here there would be four columns. The first and second would be 20px and 50px and the 3rd and 4th would also be 20px then 50px.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Minmax function
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You might sometimes want your rows/columns to have a min or max size due to what is contained within it. E.g. a 100px image should not be in a grid box smaller than 100px.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid {
  display: grid;
  grid-template-columns: 100px minmax(100px, 500px) 100px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;In this example, the first and third columns will stay as 100px. The second column can't go smaller than 100px or larger than 500px but it can vary between these values if the overall grid resizes.&lt;/li&gt;
&lt;li&gt;For this example to work you need to remove the grid width property (see first example in this post)&lt;/li&gt;
&lt;li&gt;If you do this then make your browser window larger, the other columns will get bigger when the minmax column reaches its max size.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Grid-gap
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can use grid-gap to give space between the rows and columns in your grid.&lt;/li&gt;
&lt;li&gt;The gaps are just in-between rows and columns and not at the top/bottom/sides.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid {
  display: grid;
  width: 320px;
  grid-template-columns: repeat(3, 1fr);
  grid-column-gap: 10px;
  grid-row-gap: 15px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;These gaps are included in the grid width. Say the grid width was 320px and there are two gaps between the three columns. That leaves 300px for the three columns which are 1fr each = each column is 100px.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-The column and row gaps can be specified in separate properties like above or you can put them in the same property &lt;strong&gt;grid-gap&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-gap: 20px 5px;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Here, the row gaps would be 20px and the column gaps would be 5px.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Grid items
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;So far, grid items have just taken up space in one square of our grid. E.g. in the image below items A, B, C and E take up more than one row and C spans more than one column too.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5y85i4r00cizraxg47ji.png" alt="Image of css grid with items in different number of columns/rows" width="800" height="496"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-row-start &amp;amp; grid-row-end
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Using these properties you can make grid items take up several rows like in the image above.&lt;/li&gt;
&lt;li&gt;The values that you give these properties are the gridlines, not the grid rows.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.item {
  grid-row-start: 1;
  grid-row-end: 3;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Therefore, the item above would take up two rows. It would start on row 1 and end on row 2. (Think of these values as the gridlines either side of the item.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Grid-row
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can use the shorthand of &lt;strong&gt;grid-row&lt;/strong&gt; to replace using both of the properties above. The example below gives exactly the same output (number before the slash is row start and after the slash is row end.&lt;/li&gt;
&lt;li&gt;These properties include any grid-gap that is included in the css.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.item {
  grid-row: 1 / 3;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Grid-column and span
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;The properties above also exist for column and work in exactly the same way. &lt;/li&gt;
&lt;li&gt;Instead of specifying an end column or row you can use &lt;strong&gt;span&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;In the example below, item 'b' starts in column 2 and spreads across 6 columns. and it starts in row 2 and takes up 3 rows.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.b {
  grid-column: 2 / span 6;
  grid-row: 2 / span 3;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Grid-area
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You can refactor the code above further by just using &lt;strong&gt;grid-area&lt;/strong&gt; instead.&lt;/li&gt;
&lt;li&gt;The values are set in this order:

&lt;ol&gt;
&lt;li&gt;grid-row-start&lt;/li&gt;
&lt;li&gt;grid-column-start&lt;/li&gt;
&lt;li&gt;grid-row-end&lt;/li&gt;
&lt;li&gt;grid-column-end&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Span can still be used.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.a {
  grid-area: 5 / 1 / span 2 / span 2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Example code using the properties above and the output it gives.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTML

&amp;lt;body&amp;gt;
  &amp;lt;div class="grid"&amp;gt;
    &amp;lt;div class="box a"&amp;gt;A&amp;lt;/div&amp;gt;
    &amp;lt;div class="box b"&amp;gt;B&amp;lt;/div&amp;gt;
    &amp;lt;div class="box c"&amp;gt;C&amp;lt;/div&amp;gt;
    &amp;lt;div class="box d"&amp;gt;D&amp;lt;/div&amp;gt;
    &amp;lt;div class="box e"&amp;gt;E&amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

CSS

.grid {
  display: grid;
  border: 2px blue solid;
  height: 500px;
  width: 500px;
  grid-template-columns: 25% 25% 2fr 1fr;
  grid-template-rows: 200px 200px;
  grid-column-gap: 15px;
  grid-row-gap: 10px;
}

.box {
  background-color: beige;
  color: black;
  border-radius: 5px;
  border: 2px dodgerblue solid;
}

.a {
  grid-column: 1 / span 2;
  grid-row-start: 1;
  grid-row-end: 3;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1ejducbzlhsbh5myxef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj1ejducbzlhsbh5myxef.png" alt="Empty grid boxes set out as per the code" width="800" height="726"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The code below gives the same output, but it has been refactored to use the properties that are more concise (right word??)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.grid {
  display: grid;
  border: 2px blue solid;
  height: 500px;
  width: 500px;
  grid-template: 200px 200px / 25% 25% 2fr 1fr;
  grid-gap: 10px / 15px;
}

.box {
  background-color: beige;
  color: black;
  border-radius: 5px;
  border: 2px dodgerblue solid;
}

.a {
  grid-area: 1 / 1 / span 2 / span 2;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it! Advanced grid next...&lt;/p&gt;

</description>
      <category>css</category>
      <category>100daysofcode</category>
      <category>womenintech</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
