# Roadmap FE Developer ## JavaScript - [x] declaring variables: var, let, const (https://tylermcginnis.com/var-let-const/) - [x] hoisting - [x] booleans - [x] truthy values - [x] falsy values - [x] if, else if, else - [x] switch statements - [x] ternary operator - [x] working with numbers - [x] declaring numbers - [x] integers and floating points - [x] parsing string to numbers - [x] NaN (Not a number) - [x] Number methods (parseInt, parseFloat etc) - [x] working with Strings - [x] String properties, indexes - [x] String Methods (charAt, includes, replace, etc) - [x] Template literals - [x] working with arrays - [x] manipulation: push, pop, shift, unshift, slice, splice, `rest ...`, concat, join - [x] finding: includes, every, some, find, findIndex, indexOf - [x] iteration: forEach, for…of, map, filter, reduce - [x] destructuring - [x] working with functions - [x] function literal, function expresssions - [x] function parameters, function defaults - [x] rest parameters, and arguments (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters) - [x] return values - [x] function scope for variables - [x] function closure (http://javascriptissexy.com/understand-javascript-closures-with-ease/ https://www.freecodecamp.org/news/learn-javascript-closures-in-n-minutes/) - [x] IIFEs - [x] callbacks (https://codeburst.io/javascript-what-the-heck-is-a-callback-aba4da2deced) - [x] this in functions - [x] arrow functions - [ ] .call, .bind,.apply - [ ] working with objects - [x] object literals - [x] declaring properties, methods - [x] shorthand properties & methods - [x] destructuring objects - [x] checking if properties exist(https://thisinterestsme.com/javascript-check-object-property-exists/) - [x] adding/ updating/ removing properties - [x] merging objects(https://plainjs.com/javascript/utilities/merge-two-javascript-objects-19/ * https://gomakethings.com/merging-objects-with-vanilla-javascript/) - [x] copying objects - [x] Object methods (keys, entries, values, create, freeze, is etc) - [ ]instance of - [ ] DOM - [x] querying dom nodes - [x] adding/ removing / updating dom nodes - [x] event listeners (click, input, change, etc) -https://davidwalsh.name/event-delegate - [x] form validation - [ ] Window - [ ] fetch API - [ ] localStorage - [ ] location - [ ] history - [ ] console - [ ] ES Modules - [ ] types of Module systems - [ ] importing modules - [ ] exporting modules ## HTML - [x] basic tags - [x] writing semantic html - [ ] accesibility features - [ ] forms & form validation ## CSS - [x] css variables - [x] grid - [x] floats - [x] positioning - [x] display - [x] box model - [x] flexbox - [x] CSS frameworks (Bootstrap) - [ ] BEM - [x] media queries - [x] basic styling - [x] specificity - [x] selectors - [x] pseudo-selectors - [x] preprocessors (SASS/SCSS) ## Databases (SQL/NoSQL) - [x] retrieving all items in a collection - [x] retrieving some items in a collection by a property (aggregates) - [x] inserting items in a collection - [x] updating items in a collection - [x] deleting items in a collection - [x] grouping items in a collection based on a specific criteria - [ ] creating a Schema - [ ] normalizing data - [ ] SQL vs NoSQL - [ ] creating collections/deleting collections - [ ] data types stored - [ ] limiting results ## Tools **Git** - [x] cloning repos from the internet (especially cloning from Github) - [x] git fetch - [x] git pull - [x] git push - [x] git commit - [x] git add - [ ] branching - [ ] git merge - [ ] solving conflicts **CMD Line** - [ ] navigating between directories - [ ] deleting files - [ ] creating directories **npm/yarn** - [ ] installing packages locally - [ ] installing dev dependencies - [ ] installing packages globally - [ ] using packages in projects - [ ] uninstalling packages **SASS** - [x] basic syntax - [x] partials - [x] mixins - [x] bult-in functions **SSH** - [x] generating SSH keys - [ ] how to connect via ssh to remote servers - [ ] executing commands via remote window - [ ] using them in a context like Github/Bitbucket **Free resources** - [ ] [JavaScript 30](https://javascript30.com/) - practice with ES6 syntax (1,2,3,4,5, 6 nu,7,8,9,10,11, 12, 13,14, 15, 16, 17, 18, 19,20, 21, 22) - [ ] [Vanilla JS Projects](https://learnvanillajs.com/projects/) - very useful because they represent similar request that you might get from clients - [ ] [SSH in Windows](https://docs.joyent.com/public-cloud/getting-started/ssh-keys/generating-an-ssh-key-manually/manually-generating-your-ssh-key-in-windows) - [ ] [SSH in Github](https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) **Paid Courses** - [ ] [Complete Web Development Bootcamp - Angela Yu](https://www.udemy.com/course/the-complete-web-development-bootcamp/) - [ ] [The Complete Junior to Senior Web Developer Roadmap (2019)](https://www.udemy.com/course/the-complete-junior-to-senior-web-developer-roadmap/) - only if you finished the previous ones, it gives you more knowledge about more advanced tools, techniques and different technologies in the web development spaces - ES6 - https://scrimba.com/g/ges6?utm_source=freecodecamp.org&utm_medium=referral&utm_campaign=ges6_launch_article EXTRA: - typescript: https://morioh.com/p/48063c02cb1e set up:https://morioh.com/p/aed97925b139