If I had to recommend you to learn 1 topic for any FullStack Web Developer role it would be: Javascript

This is the fourth thread in the Interview Preparation series.

new Promise(youWillLearnSomething)
.then(leaveALike)
.then(commentBelow)
Javascript is a programming language, the one native for web browsers, and one of the most used in the world.

It allows you to create a front end, back end (node), and even mobile with some magic in the middle. Let's go through the fundamentals that you should learn.

⬇️
Topics to cover:

- DOM Manipulation (get elements, add classes, add events, add elements, and remove them).
- Types of variables & scope
- Objects, creation, properties.
- Lamba functions (arrow)
- Destructuring
- Modules
- Promises
- Collections manipulation

⬇️
Let's go through the complex concepts from above, and you can research the rest by yourself (useful links at the end)

Let's start with objects, take a look at this simple example, and make sure you understand what it does.

⬇️
Lambda functions:
Arrow functions are an anonymous compact alternative to traditional functions with some limitations but also advantages.
They do not have their own binding to this or super. Do not have args or http://new.target  keywords, cannot be used as constructors

⬇️
On the positive side, they are compact, easy to write, and handy for blocks of code or inline functions params.

Simple example:
(aParam) => console.log("Hello " + aParam);

⬇️
Destructuring allows you to decompose an object for easy access to its attributes, it takes a little time to wrap your head around it, test in the console to see results, that will help.

⬇️
Array methods (collections)
This is KEY and cross for almost every OOP lang.

Map for transforming data, filter to get a subset (filters), reduce to accumulate (theoretically you can do whatever with reduce). The others are nice to know, those 3 are the most important.

⬇️
Let's see a couple of quick common questions:

Closure: a combination of a function with references to its surrounding state. A function that can use anything in the scope of the outer function.

⬇️
Spread operator: Expands an iterable such as an array to get each item. Useful for objects and collections manipulation. You can shallow copy arrays [...array]

⬇️
Callback: Function passed into another function as an argument, which then can be invoked

Keyword this (you have to read about it, link end)

Promise: A proxy for a value not necessarily known when created. 3 states: pending, fulfilled, & rejected. Methods then() & catch()

⬇️
OK, now we covered some basics, practice with algorithms in JS, and MAKE PROJECTS! Add DOM manipulation to your websites, make them interactive. Try to do something interesting, something you would like to show in an interview.

Let's talk about some JS frameworks & Libraries

⬇️
React: technically a library (some can be picky).
Angular: Framework
Vue: Framework
Jquery: Library
There are MUCH more, those are the most commonly asked but look at the stack they ask for
Fundamentals for React, Angular & Vue can be translated to some extent to the others

⬇️
They are all framework to help you build Single Page Applications (SPAs) with reactive UIs.

They bring data binding, component-oriented design, routing, pipes, data handling utilities, and more. Pick 1 and learn to build web apps with it :)!

⬇️
Finally some useful links for info and guidelines:
(Doc)
https://developer.mozilla.org/en-US/docs/Web/JavaScript
(Beginner Friendly doc)
https://www.w3schools.com/js/DEFAULT.asp 
(Beginners tutorial)


+ the previous mentioned sites for courses online!
That will be all for today's thread, I hope this gives you some guidelines and insights!

Thanks for reading and I will see you tomorrow for some Algorithms Thread!
You can follow @MattCodeJourney.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: