footer: © NodeProgram.com, Node.University and Azat Mardan 2018 theme: Simple, 1 build-lists: true
[.slidenumbers: false] [.hide-footer]
Azat Mardan Twitter: @azatmardan
- Author of 18 books and over 20 online courses, taught over 500 engineers in-person and over 25,000 online (Udemy and Node University)
- Likes FinTech, blockchain and his coffee ☕ with coconut oil
- Works as a Sr. SE Manager at Indeed, ex-Tech Fellow at Capital One
- #239 most active GitHub contributor in the world
- Microsoft Most Valuable Professional
document.getElementById('main').style.borderLeft = '2px dashed red';
document.getElementById('main').style.color = '#ff0000';
document.getElementById('nav').style.left = 300;
[.autoscale:true]
- import vs. require
- Webpack vs. Gulp
- React vs. Angular
- Vue vs. pReact
- TypeScript vs. Flow
- npm vs. yarn
- Semicolons vs. no semicolons
^Source: https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f
- Over 64,000 developers
- 72% Web developers
- 63% Full stack web developers
^ Stack Overflow Developer Survey Results 2017
- Over 100,000 developers
- JavaScript increase from 62.5% to 69.8%
^ Stack Overflow Developer Survey Results 2018
- Fat arrow functions
- Promises
- Object literals
- Classes
- Modules (import)
- Async await functions
- Trailing commas in functions
Blog posts:
Courses
https://kangax.github.io/compat-table/es6/
Include specific features ✅ by targets with @babel/preset-env
:
npm install @babel/preset-env --save-exact
{
"presets": ["env"]
}
- CoffeScript v2
- TypeScript
- Elm
- ClojureScript
- Redux
- Mobx
- Relay
- SASS/SCSS
- LESS
- CSS Modules
- Aphrodite
^TL;DR Love inline approach for React. SASS/SCSS is the dominant framework.CSS Modules are probably worth looking into as well.
- React (or preact or inferno)
- Angular 4
- Vue
- Ember
- Backbone
- REST API
- GraphQL (Apollo or Relay)
- Firebase
- Falcor
- Meteor
- Mocha
- Jasmine
- Enzyme
- Jest
- Cucumber
- Ava
^not live reloading
Benefits:
- Static analysis, a.k.a. type checking (IDEs and build tools)
- Better, safer code reuse
Get started:
- For Angular, use TypeScript
- For React, use Flow
Seriously! 😏
- Smart autocomplete
- Debugger
- Git
- Terminal
- Quick, extendable and customizable
util.promisify
- Chakra instead of Chrome V8
- http2
- v8 + npm v5
- Large mainstream and enterprise adoption
[.autoscale:true]
- Back-end 73%
- Full stack 61%
- Front-end 51%
- DevOps 22%
- Desktop apps 20%
- Mobile 18%
- Security 8%
^ 2017 USER SURVEY EXECUTIVE SUMMARY
The following feature is currently at stage 4:
- Lifting template literal restriction
- s (dotAll) flag for regular expressions Mathias Bynens
- RegExp named capture groups
- Rest/Spread Properties
- RegExp Lookbehind Assertions
- RegExp Unicode Property Escapes Mathias Bynens
- Promise.prototype.finally
- Asynchronous Iteration
^https://github.com/tc39/proposals
[.autoscale:true]
The following features are currently at stage 3:
- Function.prototype.toString revision
- global
- import()
- Legacy RegExp features in JavaScript
- BigInt
- import.meta
- Private instance methods and accessors
- Array.prototype.{flat,flatMap}
- Class Public Instance Fields & Private Instance Fields
- Static class fields and private static methods
- String.prototype.{trimStart,trimEnd}
- String.prototype.matchAll
- Symbol.prototype.description
- Object.fromEntries
^Talk about class fields, import(), global, finally
https://github.com/adam-golab/react-developer-roadmap
- Commodity programmers and consumers of frameworks and services
- Top-notch experts and authors of frameworks and services
https://insights.stackoverflow.com/survey/2018/#technology-a
- Continue learning
- Niche out and focus (80/20)
- Be financially wise (don't depends just on one salary)
- Learn ES.Next
- Use Webpack and Hot Module Reloading
- Add Flow, Redux, React Router to React if needed
- Consider Vue instead of Angular
- Use Node 10 or at least Node 8, it's faster (and Node 10 has worker threads)
- Switch to VS Code
- Adopt async functions or just use callbacks
- JavaScript was a toy language
- It spread to other platforms
- It conquered web, i.e., all software
- It's used by startups and enterprises
- It's becoming feature-rich
If can be written in JavaScript, it will be written in JavaScript. If you can pick only one language, with JS you can do so much more:
- Mixed Reality (VR and AR)
- Blockchain and dapps
- Mobile and desktop
- IoT
- Cloud and databases