JavaScript Survival Skills
Tips from my life as a consultant
November 2, 2018
Becca Nelson
@beccaliz
👋 Hi, I'm Becca
Chicago, IL
beccanelson
http://beccanelson.is
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5255787/8th-Light-Logo-Color-Text-d560477d.png)
@beccaliz
What we think JavaScript looks like...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757840/440px-JavaScript-logo.png)
var todos = []
function addTodo(task) {
todos.push({
task: task,
completed: false,
});
}
addTodo("Feed my cat");
@beccaliz
What we think JavaScript looks like...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757840/440px-JavaScript-logo.png)
var todos = []
function addTodo(task) {
todos.push({
task: task,
completed: false,
});
}
addTodo("Feed my cat");
@beccaliz
What JavaScript actually looks like...
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757854/Angular_full_color_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757858/webpack-tuts.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757859/6320506.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757861/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757863/iruTC031_400x400.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757865/babel.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757871/backbone-js.sh-600x600.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757877/0_g3ns8QALNBBH7CBA.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757881/avatar.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757884/zfY6lL7eFa-3000x3000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757886/1200px-Node.js_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757888/logo__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757890/enzyme-logo-mobile.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757891/download.png)
@beccaliz
JavaScript fatigue is real...
@beccaliz
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757854/Angular_full_color_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757886/1200px-Node.js_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757854/Angular_full_color_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438927/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438927/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757861/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757886/1200px-Node.js_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757886/1200px-Node.js_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438983/kisspng-ruby-on-rails-the-ruby-programming-language-comput-rirug-w-john-sawers-your-emotional-api-mojotech-5b651b19434131.6405522415333527292755.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438987/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438987/pasted-from-clipboard.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438990/icon-apollo-midnight-400x400.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438990/icon-apollo-midnight-400x400.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757859/6320506.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757888/logo__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757884/zfY6lL7eFa-3000x3000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757884/zfY6lL7eFa-3000x3000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757891/download.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438997/Logo_jasmine.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438997/Logo_jasmine.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5439000/250px-Apple_logo_black.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757858/webpack-tuts.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757858/webpack-tuts.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757858/webpack-tuts.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5439002/0_U2DmhXYumRyXH6X1.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757891/download.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757891/download.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5439011/1481354.png)
?
@beccaliz
@beccaliz
When was the last time you felt really overwhelmed?
✋ me too
@beccaliz
@beccaliz
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5436580/Screen_Shot_2018-11-01_at_10.13.23_PM.png)
Web Components
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5240612/logo-192x192.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5255871/iu.jpeg)
🤷♀️
@beccaliz
Micro Architecture
@beccaliz
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5438183/1_JO_lCFjbSo70mfeOmD9NgA.png)
Web Assembly
🤷♀️
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5277906/pasted-from-clipboard.png)
@beccaliz
🚫 Every side project, ever
🚫 Learn every New ™️ and Shiny© toy
@beccaliz
🚫 Just use React
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757880/download.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5240571/clojurescript.png)
⚠️
⚠️
⚠️
@beccaliz
Is this language the best long-term choice for my client (or my company), or is it just closer to my own comfort zone?
@beccaliz
🤩 Architecture! Design Patterns!
🤩 What is the DOM anyway?
🤩 Share your knowledge
@beccaliz
@beccaliz
So, now what?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757854/Angular_full_color_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757858/webpack-tuts.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757859/6320506.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757860/typescriptlang.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757861/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757863/iruTC031_400x400.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757865/babel.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757866/1200px-React-icon.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757871/backbone-js.sh-600x600.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757877/0_g3ns8QALNBBH7CBA.gif)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757881/avatar.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757884/zfY6lL7eFa-3000x3000.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757886/1200px-Node.js_logo.svg.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757888/logo__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757890/enzyme-logo-mobile.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/4757891/download.png)
@beccaliz
Agility
Humility
Courage
@beccaliz
Agility
@beccaliz
Agile
@beccaliz
agile
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5436583/Screen_Shot_2018-11-01_at_10.14.28_PM.png)
@beccaliz
Humility
@beccaliz
"I don't know"
@beccaliz
This project would be easier if <insert teammate here> hadn’t added Redux.
Why should I use a tool like Redux if I can just build state management myself?
@beccaliz
I can’t get this to work because Redux is just so complicated
😒
😩
🤯
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5436544/funny-cat-fails-5__605.jpg)
@beccaliz
"I don't know... "
@beccaliz
Courage
@beccaliz
@beccaliz
The End
![](https://s3.amazonaws.com/media-p.slid.es/uploads/451251/images/5277927/IMG_0874.jpg)
@beccaliz
JavaScript Survival Skills
By Becca Nelson
JavaScript Survival Skills
- 1,314