Becoming a front end web developer in 2021
Tags: programming, career, learning, webdev
Published: 2021-04-27 19:45:28

# You are here, therefore you belong ❤️

I know that a lot of people want or know someone who wants to start learning web development or coding in general. Perhaps you are too afraid to take this bold move, perhaps you think that coding is hard and not sure if you are the right fit. Maybe you are too scared to open the code editor and start coding because you are afraid you may get stuck and lose motivation, or you don't know where to get started in the vast sea of knowledge. I am here to tell you - You got this! We will get through this together!

In this article, I will dive into the resources, a proposed plan of getting started, and a list of resources to help you learn to become a web developer. This plan is going to be focused on getting you a job, and therefore project-heavy.

## Debunking some myths that hold you back

1. You do not need an expensive laptop or setup.
1. You do not need to spend tons of money to get started.
1. You do not have to go to college to become a web developer.
1. You do not need to be a certain years old to get started.
1. You do not need to know all the technologies before applying for a job.


---

## Getting started: things you need

1. Equipment
   - computer
   - internet connection
   - code editor. Some options are:
     - Sublime Text
     - Atom
     - Visual Studio
     - Webstorm
     - Brackets
   - web browser. Some options are:
     - Google Chrome
     - Mozilla Firefox
     - Safari
     - Edge
2. Finances
   - both free and paid options available
3. Time commitment
   - As much or as little as you want
   - Recommended: 2 - 4 hours / week
4. Self-care
   - Write down your list of affirmations. Some affirmations that will help you through this journey:
     - You are already smart enough to be a web developer.
     - You are capable of amazing things.
     - You can make things happen.
     - You can do anything you set your mind to.
     - You are competent.
     - Your creative power will help you succeed in this journey.
   - Break day: Give yourself at least one day a week to rest and recharge. I love break days! These are my days to "nurture myself" and have "me time". I usually paint, go on a hike, do something creative, create a DIY project, hang out with friends, nap, sleep in, watch F.R.I.E.N.D.S, drink chai all day long or watch a cute feel-good movie.

5. List of accomplishments: As you progress through this journey, keep a written list of things you have accomplished. Items on this list could be as small as completing a chapter on time, or solving a hard coding problem. Everything counts! This list is a proof that you are growing!

6. Inspiration sources:
   - List of people who inspire you.
   - Write down what about these people are you inspired by.
   - Reach out to a few of these people to let them know of the journey you are embarking on, and see if they would be willing to help out. Most people are happy to offer any help and support they can.

7. List of "cool project ideas": These will be your inspirations for building cool things. The idea can be anything - an app you always wanted to build, an improvement you wanted to see in an app, a funny meme bot you wanted to generate. We will be using this list of ideas to build projects. Some examples are:
   - dog image generator
   - Music player app
   - Pomodoro timer
   - random joke generator
   - cat picture generator
   - an app to show time in different parts of the world

6. Support group:
   - reach out to your group of friends who make you feel proud of yourself and let them know of the journey you are embarking on. These people will be your cheerleaders throughout this process.
   - other new developers in the industry. you can find people with similar interest on the same journey as you by attending [local meetups in your area](https://www.meetup.com/Free-Code-Camp-SF/events/276180196). A popular online version of meetups group is Discord. Check out this list of [Discord servers for developers](https://dev.to/htnguy/top-10-discord-servers-for-developers-559o) joining discord servers or facebook groups.
   - [100 Days of Code](https://www.100daysofcode.com/) is an amazing community of individuals who are getting started with coding. This is how I kept myself motivated when I was learning to code, applying for jobs and preparing for interviews.



## Resources


1. Online resources
    - [JavaScript 30 by Wes Bos](https://javascript30.com/)
    - [JavaScript.info](https://javascript.info/)
    - Youtube channels
        - [LevelUpTuts](https://www.youtube.com/user/LevelUpTuts)
        - [Traversy Media](https://www.youtube.com/user/TechGuyWeb)
        - [Freecodecamp](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ)
        - [Programming with Mosh](https://www.youtube.com/watch?v=8JJ101D3knE&ab_channel=ProgrammingwithMosh)
        - [Florin Pop](https://www.youtube.com/channel/UCeU-1X402kT-JlLdAitxSMA)
        - [Ben Awad](https://www.youtube.com/user/99baddawg)
    
2. Bootcamps
    - [Freecodecamp](https://www.freecodecamp.org/)
    - [Codeacademy](https://www.codecademy.com/)
    - [Udacity](https://www.udacity.com/course/front-end-web-developer-nanodegree--nd0011)
    - [Coursera](https://www.coursera.org/learn/html-css-javascript-for-web-developers#syllabus)

3. Books
    - [Front-End Developer Handbook](https://frontendmasters.com/books/front-end-handbook/2018/)
    - [MDN](https://developer.mozilla.org/en-US/docs/Learn) (Web Docs, but MDN is like web development bible)
    
4. Podcasts
    - [Front end happy hour](https://frontendhappyhour.com/)
    - [SyntaxFM](https://syntax.fm/)
    - [JavaScript Jabber](https://devchat.tv/podcasts/js-jabber/)
    - [Developer Tea](https://spec.fm/podcasts/developer-tea)
    - [Toolsday](https://spec.fm/podcasts/toolsday)

5. Blog sites with awesome articles
    - [Dev.to](https://dev.to/)
    - [CSS Tricks](https://css-tricks.com/)
    - [Smashing Magazine](https://www.smashingmagazine.com/)
    - [Medium](https://medium.com/)
    - [Hashnode](https://hashnode.com/)
    - [Hackernoon](https://hackernoon.com/)

6. Checklists and roadmaps
    - [Web development Checklist](https://github.com/shrutikapoor08/Learn-Web-Development-Checklist)
    - [Front End Checklist](https://frontendchecklist.io/)
    - [Roadmap to being a Front End developer](https://roadmap.sh/frontend)

**Paid Resources**

1. Online resources
    - [Frontend Masters](https://frontendmasters.com/learn/beginner/)
    - [Udemy](https://www.udemy.com/)
    - [Lynda](https://www.lynda.com/Web-training-tutorials/88-0.html)
    - [EggHead](https://egghead.io/)


2. Books
    - [Eloquent JavaScript, Marijn Haverbeke](https://www.amazon.com/Eloquent-JavaScript-3rd-Introduction-Programming/dp/1593279507)
    - [HTML and CSS: Design and Build Websites](https://www.goodreads.com/book/show/10361330-html-and-css)

---

## Bootcamp process

1. SKILL: Learn the fundamentals from a resource of your choice: 
   1. HTML
   1. CSS
   1. JavaScript.

1. PROJECT: Build a portfolio web page using the skills you learnt so far - JS, HTML, CSS. The web page should have the following: 
    1. Add your name, photo, bio using semantic HTML 
    1. Setup sections for projects. We will fill these projects as we go. The projects will have an image, description and a link. Set these up with [lorem ipsum text](https://loremipsum.io/) for now. 

2. SKILL: Learn git and version control. [Here's an instructional video](https://youtu.be/8JJ101D3knE)

3. PROJECT:
   1. Add your portfolio to GitHub.
   2. Step Up Assignment: Setup Github pages to host your portfolio. [Here's an instructional video](https://www.youtube.com/watch?v=794yrQWAOD8&ab_channel=iEatWebsites)

4. SKILL: Step up your JS and CSS knowledge

5. PROJECT: Make your portfolio mobile friendly and responsive.
   
6. PROJECT: Getting ready for job interviews
    1. Practice interview questions on [InterviewCake](https://www.interviewcake.com/). 
   1. Practice interviews questions on [Leetcode](https://leetcode.com/). Start with easy and slowly work your way up.
    
7. SKILL: Step up challenge - learn a front-end framework.
   React, Vue and Angular are the top front-end frameworks in 2021. If you were to pick one, I would recommend [React](https://reactjs.org/). Lots of companies use React in production. 
   

8. PROJECT: Implement the framework. - build an inspiration. Add this to your portfolio. Tasks: 
    1. Fetch an API of your choice. 
    2. Render data in your app. 
    3. Implement search functionality.
    4. Implement auto-complete functionality.
   
9. SKILL: Step up challenge: Learn a library for the framework.
   1. Learn a state management library. [Redux is a good library to learn.](https://redux.js.org/tutorials/essentials/part-1-overview-concepts)
    1. Learn a CSS library, eg: SASS 

10. PROJECT: Implement your next inspiration idea using the library. Add to your portfolio.
11. SKILL: Learn a testing framework: Build test coverage. Add to your portfolio. Eg: [Jest](https://jestjs.io/)
12. JOB: Get a freelance job using your portfolio. Some places to find freelance opportunities are [Upwork](https://www.upwork.com) & [Fiverr](https://www.fiverr.com/)
13. Find a mentor. Get feedback on your skills and portfolio.
15. JOB: Apply for a job. You are ready.
17. JOB: Prepare for interviews
16. Continue iterating.


## Curriculum

### HTML
- [ ] HTML main tags
    - [ ] `<html>` [Link](https://www.w3docs.com/learn-html/html-html-tag.html)
    - [ ] `<head>` [Link](https://www.w3docs.com/learn-html/html-head-tag.html)
    - [ ] `<body>` [Link](https://www.w3docs.com/learn-html/html-body-tag.html)
    - [ ] `<script>` [Link](https://www.w3docs.com/learn-html/html-script-tag.html)
    - [ ] `<style>` [Link](https://www.w3docs.com/learn-html/html-style-tag.html)
    - [ ] `<link>` [Link](https://www.w3docs.com/learn-html/html-link-tag.html)
    - [ ] `<meta>` [Link](https://www.w3docs.com/learn-html/html-meta-tag.html)

- [ ] HTML5 Structural / Semantic elements
    - [ ] `<article>` [Link](https://www.w3docs.com/learn-html/html-article-tag.html)
    - [ ] `<address>` [Link](https://www.w3docs.com/learn-html/html-address-tag.html)
    - [ ] `<aside>` [Link](https://www.w3docs.com/learn-html/html-aside-tag.html)
    - [ ] `<dialog>` [Link](https://www.w3docs.com/learn-html/html-dialog-tag.html)
    - [ ] `<details>` [Link](https://www.w3docs.com/learn-html/html-details-tag.html)
    - [ ] `<figure>` [Link](https://www.w3docs.com/learn-html/html-figure-tag.html)
    - [ ] `<main>` [Link](https://www.w3docs.com/learn-html/html-main-tag.html)
    - [ ] `<nav>` [Link](https://www.w3docs.com/learn-html/html-nav-tag.html)
    - [ ] `<header>` [Link](https://www.w3docs.com/learn-html/html-header-tag.html)
    - [ ] `<footer>` [Link](https://www.w3docs.com/learn-html/html-footer-tag.html)
    - [ ] `<summary>` [Link](https://www.w3docs.com/learn-html/html-summary-tag.html)

- [ ] HTML Elements and their attributes
    - [ ] Documents `<!DOCTYPE>` [Link](https://www.w3docs.com/learn-html/html-doctype-declaration.html)
    - [ ] Headings `<h1> - <h6>` [Link](https://www.w3docs.com/learn-html/html-h1-h6-tags.html)
    - [ ] Paragraph `<p>` [Link](https://www.w3docs.com/learn-html/html-p-tag.html)
    - [ ] Lists `<li>, <ul>, <dl>` [Link](https://www.w3docs.com/learn-html/html-lists.html)
    - [ ] Links `<a>` [Link](https://www.w3docs.com/learn-html/html-a-tag.html)
    - [ ] Images `<img>` [Link](https://www.w3docs.com/learn-html/html-images.html)
    - [ ] Table `<table>`[Link](https://www.w3docs.com/learn-html/html-table.html)

- [ ] HTML Formatting
    - [ ] `<b>` - Bold text [Link](https://www.w3docs.com/learn-html/html-b-tag.html)
    - [ ] `<strong>` - Important text [Link](https://www.w3docs.com/learn-html/html-strong-tag.html)
    - [ ] `<small>` - Smaller text
    - [ ] `<i>` - Italic text [Link](https://www.w3docs.com/learn-html/html-i-tag.html)
    - [ ] `<em>` - Emphasized text [Link](https://www.w3docs.com/learn-html/html-em-tag.html)
    - [ ] `<sub>` - Subscript [Link](https://www.w3docs.com/learn-html/html-sub-tag.html)
    - [ ] `<sup>` - superscript [Link](https://www.w3docs.com/learn-html/html-sup-tag.html)
    - [ ] `<pre>` - preformatted text [Link](https://www.w3docs.com/learn-html/html-pre-tag.html)
- [ ] HTML Comments `<!-- -->` [Link](https://www.w3docs.com/learn-html/html-comments.html)
- [ ] HTML forms [Link](https://www.w3docs.com/learn-html/html-form-tag.html)
    - [ ] `<input>` [Link](https://www.w3docs.com/learn-html/html-input-tag.html)
    - [ ] `<textarea>` [Link](https://www.w3docs.com/learn-html/html-textarea-tag.html)
    - [ ] `<button>` [Link](https://www.w3docs.com/learn-html/html-button-tag.html)
    - [ ] `<select>` [Link](https://www.w3docs.com/learn-html/html-select-tag.html)
    - [ ] `<option>` [Link](https://www.w3docs.com/learn-html/html-option-tag.html)
    - [ ] `<fieldset>` [Link](https://www.w3docs.com/learn-html/html-fieldset-tag.html)
    - [ ] `<label>` [Link](https://www.w3docs.com/learn-html/html-label-tag.html)
    - [ ] `<legend>` [Link](https://www.w3docs.com/learn-html/html-legend-tag.html)


### CSS
- [ ] Adding a CSS stylesheet to an HTML page using `<link>`
- [ ] CSS Selectors [Article](https://css-tricks.com/how-css-selectors-work/)
- [ ] Color [Article](https://css-tricks.com/almanac/properties/c/color/)
    - [ ] using hex eg: `#ff0000`
    - [ ] rgb eg: `rgb(0,0,255)`
    - [ ] common color names eg: `red, pink, brown`
- [ ] Font [Article](https://css-tricks.com/almanac/properties/f/font/)
    - [ ] Family
    - [ ] Size
    - [ ] Weight
- [ ] Text-decoration [Article](https://css-tricks.com/almanac/properties/t/text-decoration/)
- [ ] Text-transform [Article](https://css-tricks.com/almanac/properties/t/text-transform/)
- [ ] Line-height [Article](https://developer.mozilla.org/en-US/docs/Web/CSS/line-height)
- [ ] Letter-spacing [Article](https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing)
- [ ] Word-spacing [Article](https://developer.mozilla.org/en-US/docs/Web/CSS/word-spacing)
- [ ] Background-color [Article](https://cssreference.io/property/background-color/)
- [ ] Background-image [Article](https://cssreference.io/property/background-image/)
- [ ] Margin [Article](https://css-tricks.com/almanac/properties/m/margin/) [Article](https://cssreference.io/property/margin/)
- [ ] Padding [Article](https://developer.mozilla.org/en-US/docs/Web/CSS/padding) [Article](https://cssreference.io/property/padding/)
- [ ] Border [Article](https://css-tricks.com/almanac/properties/b/border/)
- [ ] Width [Article](https://css-tricks.com/almanac/properties/w/width/)
- [ ] Height [Article](https://css-tricks.com/almanac/properties/h/height/)
- [ ] percentage, pixel, em
- [ ] Box model [Article](https://css-tricks.com/the-css-box-model/)
  - [ ] list-style [Article](https://css-tricks.com/almanac/properties/l/list-style/)
- [ ] Pseudo class [Article](https://css-tricks.com/pseudo-class-selectors/)
    - [ ] hover
    - [ ] active
    - [ ] visited
- [ ] Position [Article](https://css-tricks.com/almanac/properties/p/position/)
    - [ ] relative
    - [ ] absolute
    - [ ] fixed
- [ ] Display [Article](https://css-tricks.com/almanac/properties/d/display/)
    - [ ] block
    - [ ] inline
    - [ ] grid
    - [ ] none
- [ ] class vs id [Article](https://css-tricks.com/the-difference-between-id-and-class/)

### JavaScript

#### Fundamentals
- [ ] JavaScript introduction [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction#what_is_javascript)
- [ ] Adding JavaScript to an HTML page using `script` [Article](https://www.digitalocean.com/community/tutorials/html-script-tag)
- [ ] `console.log` [Article](https://www.freecodecamp.org/news/javascript-console-log-example-how-to-print-to-the-console-in-js/)
- [ ] Comments [Article](https://stackabuse.com/commenting-code-in-javascript-types-and-best-practices/)
- [ ] Variables [Article](https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference) [Video](https://egghead.io/lessons/javascript-working-with-var-let-const-and-block-scopes?af=5buvlr)
    - [ ] `var`
    - [ ] `let` [Video](https://egghead.io/lessons/javascript-the-let-keyword-in-es6?af=5buvlr)
    - [ ] `const` [Video](https://egghead.io/lessons/javascript-const-declarations-in-es6-es2015)
- [ ] Data types [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures)
    - [ ] String
    - [ ] Boolean
    - [ ] Number
    - [ ] null
    - [ ] undefined
- [ ] `typeof` operator [Article](https://www.freecodecamp.org/news/javascript-data-types-typeof-explained/)
- [ ] String functions
    - [ ] `.concat` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/concat)
    - [ ] `length` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length)
    - [ ] `toUpperCase` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toUpperCase)
    - [ ] `toLowerCase` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/toLowerCase)
    - [ ] `subString` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substring)
    - [ ] `split` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)
    - [ ] template literals [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) [Video](https://egghead.io/lessons/javascript-use-template-literals-to-embed-expressions-in-strings?af=5buvlr)
- [ ] Operators
    - [ ] Arithmetic Operators [Article](https://www.w3schools.com/jsref/jsref_operators.asp)
        - [ ] `+`
        - [ ] `-`
        - [ ] `/`
        - [ ] ` *`
        - [ ] `++`
        - [ ] `--`
        - [ ] `%`
    - [ ] Assignment Operators [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment_operators)
        - [ ] `=` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Assignment)
    - [ ] `<`
    - [ ] `>`
    - [ ] `<=`
    - [ ] `>=`
    - [ ] `==`
    - [ ] `===`
    - [ ] `&&`
    - [ ] `||`
    - [ ] `Ternary operators ? , :` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)
    - [ ] Loops [Article](https://www.freecodecamp.org/news/javascript-loops-explained-for-loop-for/)
        - [ ] `for` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for)
        - [ ] `while` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while)
    - [ ] Conditionals
        - [ ] `if... else` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...else)
        - [ ] `switch` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch)
- [ ] Array [Article](https://www.javascripttutorial.net/javascript-array/)
    - [ ] Accessing elements [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array#accessing_array_elements)
    - [ ] `length` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length)
    - [ ] Looping through elements
        - [ ] `map` [Article](https://www.freecodecamp.org/news/javascript-map-how-to-use-the-js-map-function-array-method/)
        - [ ] `forEach` [Article](https://www.freecodecamp.org/news/javascript-foreach-how-to-loop-through-an-array-in-js/)
    - [ ] `slice` [Article](https://www.freecodecamp.org/news/lets-clear-up-the-confusion-around-the-slice-splice-split-methods-in-javascript-8ba3266c29ae/)
    - [ ] `splice` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
    - [ ] `filter` [Video](https://egghead.io/lessons/javascript-filter-an-array-with-truthy-values?af=5buvlr)
    - [ ] `push` [Video](https://egghead.io/lessons/javascript-add-elements-onto-an-array-with-push?af=5buvlr)
    - [ ] `pop` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop)
    - [ ] `shift`, `unshift` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift)
    - [ ] `isArray` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)
    - [ ] `indexOf` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) [Video](https://egghead.io/lessons/javascript-check-if-a-value-is-in-an-array-with-indexof?af=5buvlr)
    - [ ] `from` [Video](https://egghead.io/lessons/javascript-converting-an-array-like-object-into-an-array-with-array-from?af=5buvlr)
- [ ] Object [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects)
    - [ ] Creating an object [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects#creating_new_objects)
    - [ ] Accessing properties [Article](https://dmitripavlutin.com/access-object-properties-javascript/)
    - [ ] Object destructuring [Article](https://dmitripavlutin.com/javascript-object-destructuring/)
    - [ ] `Object.keys` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)
    - [ ] `Object.getOwnPropertyNames` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames)
    - [ ] Looping through properties of an object
        - [ ] `for... of` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of)
        - [ ] `for...in` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in)
        - [ ] `forEach`, `.keys` [Article](https://masteringjs.io/tutorials/fundamentals/foreach-object)
    - [ ] `.hasOwnProperty` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
    - [ ] Functions [Article](https://javascript.info/function-basics) [Video](https://www.youtube.com/watch?v=N8ap4k_1QEQ&ab_channel=ProgrammingwithMosh)
        - [ ] Named functions [Article](https://javascript.info/function-basics#function-naming)
        - [ ] Function expressions [Article](https://javascript.info/function-expressions)
        - [ ] Arrow functions `() => { }` [Article](https://javascript.info/arrow-functions-basics)
        - [ ] IIFE - Immediately Invoked Function Expressions [Article](https://flaviocopes.com/javascript-iife/)
    - [ ] `this` keyword [Video](https://egghead.io/courses/understand-javascript-s-this-keyword-in-depth?af=5buvlr)
    - [ ] ES6 Classes [Video](https://www.youtube.com/watch?v=bq_jZY6Skto&ab_channel=freeCodeCamp.org)
        - [ ] `constructor()`
        - [ ] inherting classes
    - [ ] Prototypal inheritance [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain) [Article](https://www.educative.io/blog/understanding-and-using-prototypal-inheritance-in-javascript) [Video](https://egghead.io/lessons/javascript-understanding-prototypal-inheritance-within-javascript?af=5buvlr)
        - [ ] Inheriting properties
        - [ ] Extending properties
        - [ ] Accessing properties and methods
    - [ ] `setTimeout` [Video](https://www.youtube.com/watch?v=z9lJb4D3nJY&ab_channel=CodewithAniaKub%C3%B3w)
    - [ ] `alert` [Article](https://www.educative.io/edpresso/how-to-use-the-alert-method-in-javascript)
    - [ ] JSON objects [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON)
        - [ ] `JSON.stringify` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)
        - [ ] `JSON.parse` [Article](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse)


#### Web page and JavaScript
- [ ] `document.getElementById`
- [ ] `document.getElementsByTagName`
- [ ] `document.getElementsByClassName`
- [ ] `document.getElementsByName`
- [ ] `document.querySelector`
- [ ] `document.querySelectorAll`
- [ ] `.createElement`
- [ ] `.innerHTML`
- [ ] `.innerText`
- [ ] `.append()`
- [ ] `.remove()`
- [ ] `.appendChild`
- [ ] `.style`
- [ ] `events`
    - [ ] `.addEventListener`
    - [ ] `.removeEventListener`
    - [ ] `event.preventDefault`


#### Web fundamentals
- [ ] How does the web work? [Article](https://developer.mozilla.org/en-US/docs/Learn/Common_questions/How_does_the_Internet_work)
- [ ] How does a web browser work? [Article](https://medium.com/@monica1109/what-happens-when-i-type-any-url-in-the-browser-3719c6357da2)
- [ ] HTTP basics [Video](https://www.youtube.com/watch?v=t3xrHaqX2tc&ab_channel=OracleDevelopers)
    - [ ] headers
    - [ ] request
    - [ ] response
    - [ ] verbs: PUT, POST, DELETE, PATCH, POST
- [ ] What is an API? [Video](https://www.youtube.com/watch?v=GZvSYJDk-us)
    - [ ] What is REST API? [Article](https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/)
    - [ ] What is GraphQL API? [Article](https://medium.com/devgorilla/what-is-graphql-f0902a959e4) [Podcast](https://frontendhappyhour.com/episodes/no-rest-with-quintessential-libations-graphql/)
    - [ ] What are CRUD operations? [Article](https://www.codecademy.com/articles/what-is-crud)
    - [ ] What are cookies?
        - [ ] Getting and setting cookies
    - [ ] What is local storage?
    - [ ] What is session storage?
    - [ ] What is server vs client?
    - [ ] What is a domain name?
    - [ ] What is DNS lookup?
    - [ ] What is web hosting?
    - [ ] What is CORS? [Article](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) [Article](https://javascript.info/fetch-crossorigin)
    - [ ] ARIA - What is accessibility? [Article](https://developer.mozilla.org/en-US/docs/Learn/Accessibility/What_is_accessibility) [Video](https://www.youtube.com/watch?v=HtTyRajRuyY&list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g&ab_channel=GoogleChromeDevelopers)


### Step up: Pick a stack (Front end vs back end)

Depending on your interest and passion, you may want to focus on front end development or back end development. Front end development is the development of user interfaces, and uses technologies like HTML, CSS, JavaScript. When focussing on front end development, you may want to focus on frameworks and libraries such as React, Redux, SASS. 
Back end development is the development of software that facilitates user interface such as building APIs and uses back end technologies such as NodeJS. For back-end development, you may want to focus on databases such as MongoDB and frameworks and libraries such as NodeJS, Express. 

To review a full list of step up curriculum, [check out the full web development checklist here](https://github.com/shrutikapoor08/Learn-Web-Development-Checklist/blob/main/README.md#step-up)



## Tips for job hunting

1. Use your network
   - on LinkedIn
   - on Twitter
   - in meetups
   - friends and family
1. Present your portfolio with your job applications.
1. Apply to jobs you are not 100% qualified for. 
1. Tailor resume for every job posting. 


## Interview Resources 

1. InterviewCake
1. Pramp.com
1. Leetcode

## Who am I? What is my story?

I am Shruti Kapoor, and I work as a Senior Software Engineer at PayPal. I have been a web developer for over 7 years now. I worked the first two years as a freelance developer, then as co-founder and CTO of my web development startup - World Web Warriors, and then accepted a job as a professional web developer at TELUS Communications in Vancouver, Canada for three years. In 2017, I moved to sunny California, USA and started working as a Software Engineer at PIX Systems, San Francisco. These 7 years have been really rewarding. In all of these years, I still vividly remember the moments when I was totally freaked out by the sheer ambiguity of technical problem I had at hand and having no idea of where to start. 

Being a web developer can be really hard, and it can feel very lonely. There can be days when you will feel like you don't belong here. Honestly, there have been days when I would question my decision of becoming a software engineer, whether I was good enough. But trust me, it will be these moments that will step you up - not only because it will help you persevere, but also it will be  these moments where you will realize the great joy of overcoming your deepest fears and treading deep waters.


---


Shruti Kapoor
[Follow on Twitter](twitter.com/shrutikapoor08)
[Hang out on Twitch](twitch.tv/shrutikapoor)
[Get articles like this in your inbox](bit.ly/shrutinewsletter)

---


{% twitter 1375570254777122816 %}