Slide 1

Slide 1 text

1 PAGE NUMBER

Slide 2

Slide 2 text

2 PAGE NUMBER What can we learn with JavaScript Fatigue? github: lucasfcosta twitter: lfernandescosta L U C A S F C O S T A . C O M

Slide 3

Slide 3 text

3 PAGE NUMBER github: lucasfcosta twitter: lfernandescosta L U C A S F C O S T A . C O M

Slide 4

Slide 4 text

PAGE NUMBER 4 github: lucasfcosta twitter: lfernandescosta L U C A S F C O S T A . C O M

Slide 5

Slide 5 text

PAGE NUMBER 5 github: lucasfcosta twitter: lfernandescosta L U C A S F C O S T A . C O M

Slide 6

Slide 6 text

PAGE NUMBER 6 LUCASFCOSTA.COM

Slide 7

Slide 7 text

PAGE NUMBER 7 Realities of your industry 101

Slide 8

Slide 8 text

PAGE NUMBER REALITIES OF YOUR INDUSTRY 101 8 LUCASFCOSTA.COM Software solves business problems Don't Call Yourself A Programmer, And Other Career Advice - Patrick McKenzie

Slide 9

Slide 9 text

REALITIES OF YOUR INDUSTRY 101 PAGE NUMBER LUCASFCOSTA.COM 9 You are not paid to write code The less code you write, the better

Slide 10

Slide 10 text

PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 10 Technology is not a goal

Slide 11

Slide 11 text

PAGE NUMBER LUCASFCOSTA.COM 11 REALITIES OF YOUR INDUSTRY 101 versus Revenue Cost All that matters™

Slide 12

Slide 12 text

PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 12

Slide 13

Slide 13 text

PAGE NUMBER 13 Realities of your industry 101 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 14

Slide 14 text

PAGE NUMBER 14 Realities of your industry 101 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 15

Slide 15 text

PAGE NUMBER 15 Realities of capitalism 101 REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 16

Slide 16 text

16 PAGE NUMBER 64% 36% Coding Design Some Experience With Automated Aids To The Design Of Large-Scale Reliable Software - 1975 Occurrence of Errors REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 17

Slide 17 text

PAGE NUMBER LUCASFCOSTA.COM 17 REALITIES OF YOUR INDUSTRY 101 In the NASA Apollo project about 73% of all errors were design errors. HAMILTON, M., AND ZELDIN, S. "Higher order software--a methodology for defining software,"

Slide 18

Slide 18 text

18 PAGE NUMBER “ Louis Srygley Without requirements or design, programming is the art of adding bugs to an empty text file. REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 19

Slide 19 text

PAGE NUMBER LUCASFCOSTA.COM 19 REALITIES OF YOUR INDUSTRY 101 Good design adds value faster than it adds cost. Thomas C. Gale

Slide 20

Slide 20 text

PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 20 JS These things exist to solve problems.

Slide 21

Slide 21 text

PAGE NUMBER 21 JS Fatigue happens when people use tools they don't need to solve problems they don't have. REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 22

Slide 22 text

PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 Donald Knuth “ 22 "Premature optimisation is the root of all evil"

Slide 23

Slide 23 text

PAGE NUMBER LUCASFCOSTA.COM 23 REALITIES OF YOUR INDUSTRY 101 The purpose of software engineering is to control complexity, not to create it. Pamela Zave

Slide 24

Slide 24 text

PAGE NUMBER 24 REALITIES OF YOUR INDUSTRY 101 The greatest performance improvement of all is when a system goes from not-working to working John Ousterhout

Slide 25

Slide 25 text

PAGE NUMBER LUCASFCOSTA.COM REALITIES OF YOUR INDUSTRY 101 25 Remember this?

Slide 26

Slide 26 text

PAGE NUMBER LUCASFCOSTA.COM 26 REALITIES OF YOUR INDUSTRY 101 analysis paralysis

Slide 27

Slide 27 text

PAGE NUMBER LUCASFCOSTA.COM 27 REALITIES OF YOUR INDUSTRY 101 analysis paralysis

Slide 28

Slide 28 text

PAGE NUMBER 28 More choices
 Less satisfaction REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 29

Slide 29 text

PAGE NUMBER 29 As the number of options increases, the costs, in time and effort, of gathering the information needed to make a good choice also increases Barry Schwartz REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 30

Slide 30 text

PAGE NUMBER 30 Our willpower is limited REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 31

Slide 31 text

PAGE NUMBER LUCASFCOSTA.COM 31 REALITIES OF YOUR INDUSTRY 101 Creative Slides Presentation Your willpower is like a muscle Judges would make more favorable decisions after those breaks. After a lunch break the rates of favorable decisions immediately jumps to 65% again. Dotted lines represent food breaks In the morning we started with 65% of favorable decisions and at the end of the day this rate steadily drops to zero. As time goes by, less favorable decisions occur James Clear Image by James Clear

Slide 32

Slide 32 text

PAGE NUMBER 32 We might not be JavaScript fatigued maybe we’re just decision fatigued REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 33

Slide 33 text

PAGE NUMBER 33 JavaScript REALITIES OF YOUR INDUSTRY 101 LUCASFCOSTA.COM

Slide 34

Slide 34 text

PAGE NUMBER 34 A bunch of impressive numbers™ LUCASFCOSTA.COM JAVASCRIPT

Slide 35

Slide 35 text

PAGE NUMBER LUCASFCOSTA.COM JAVASCRIPT 35 packages on

Slide 36

Slide 36 text

PAGE NUMBER LUCASFCOSTA.COM JAVASCRIPT 36 520,121 packages on

Slide 37

Slide 37 text

PAGE NUMBER LUCASFCOSTA.COM JAVASCRIPT 37 ~494 packages a day

Slide 38

Slide 38 text

PAGE NUMBER LUCASFCOSTA.COM JAVASCRIPT 38 465 a day Birth Rate in the Netherlands

Slide 39

Slide 39 text

PAGE NUMBER 39 LUCASFCOSTA.COM JAVASCRIPT

Slide 40

Slide 40 text

PAGE NUMBER 40 ? But how did that happen? JAVASCRIPT LUCASFCOSTA.COM

Slide 41

Slide 41 text

JAVASCRIPT PAGE NUMBER LUCASFCOSTA.COM 41 Transpilers

Slide 42

Slide 42 text

JAVASCRIPT PAGE NUMBER LUCASFCOSTA.COM 42 Module Bundlers

Slide 43

Slide 43 text

JAVASCRIPT PAGE NUMBER LUCASFCOSTA.COM 43 Front-end Frameworks

Slide 44

Slide 44 text

PAGE NUMBER “ 44 Abstractions are necessary to reduce the cognitive load of how things work so you can focus on creating. Eric Clemmons LUCASFCOSTA.COM JAVASCRIPT

Slide 45

Slide 45 text

PAGE NUMBER 45 The web platform moves too fast LUCASFCOSTA.COM JAVASCRIPT

Slide 46

Slide 46 text

PAGE NUMBER 46 Natural Selection LUCASFCOSTA.COM JAVASCRIPT

Slide 47

Slide 47 text

PAGE NUMBER 47 The Unix Philosophy JAVASCRIPT LUCASFCOSTA.COM

Slide 48

Slide 48 text

PAGE NUMBER LUCASFCOSTA.COM 48 JAVASCRIPT Do one thing, and do it well.

Slide 49

Slide 49 text

PAGE NUMBER LUCASFCOSTA.COM 49 Do one thing, and do it well. JAVASCRIPT

Slide 50

Slide 50 text

PAGE NUMBER 50 So much complexity in software comes from trying to make one thing do two things. Ryan Singer

Slide 51

Slide 51 text

PAGE NUMBER LUCASFCOSTA.COM 51 JAVASCRIPT Write programs that work together.

Slide 52

Slide 52 text

M A R K 0 3 P R E S E N T A T I O N PAGE NUMBER 52 Our tools are not new LUCASFCOSTA.COM

Slide 53

Slide 53 text

PAGE NUMBER 53 These things are not new LUCASFCOSTA.COM JAVASCRIPT

Slide 54

Slide 54 text

PAGE NUMBER 54 These things are not new LUCASFCOSTA.COM JAVASCRIPT E4X JSX

Slide 55

Slide 55 text

PAGE NUMBER 55 These things are not new LUCASFCOSTA.COM JAVASCRIPT

Slide 56

Slide 56 text

PAGE NUMBER 56 These things are not new grunt npm webpack LUCASFCOSTA.COM JAVASCRIPT

Slide 57

Slide 57 text

PAGE NUMBER 57 These things are not new LUCASFCOSTA.COM JAVASCRIPT Symbian
 WRT

Slide 58

Slide 58 text

PAGE NUMBER 58 How to deal with it

Slide 59

Slide 59 text

PAGE NUMBER LUCASFCOSTA.COM 59 HOW TO DEAL WITH IT you don’t need to know everything

Slide 60

Slide 60 text

PAGE NUMBER LUCASFCOSTA.COM 60 REALITIES OF YOUR INDUSTRY 101 Every great developer you know got there by solving problems they were unqualified to solve until they actually did it. Patrick McKenzie

Slide 61

Slide 61 text

PAGE NUMBER 61 start from the beginning HTTP CompSci
 Fundamentals HOW TO DEAL WITH IT LUCASFCOSTA.COM

Slide 62

Slide 62 text

PAGE NUMBER LUCASFCOSTA.COM 62 HOW TO DEAL WITH IT don’t be too attached to a single technology

Slide 63

Slide 63 text

PAGE NUMBER LUCASFCOSTA.COM 63 HOW TO DEAL WITH IT don’t be defined by your stack

Slide 64

Slide 64 text

PAGE NUMBER LUCASFCOSTA.COM 64 HOW TO DEAL WITH IT Master Foo & The Recruiter

Slide 65

Slide 65 text

PAGE NUMBER LUCASFCOSTA.COM 65 HOW TO DEAL WITH IT A technical recruiter, having discovered that the ways of Unix hackers were strange to him, sought an audience with Master Foo to learn more about the Way.

Slide 66

Slide 66 text

PAGE NUMBER LUCASFCOSTA.COM 66 HOW TO DEAL WITH IT The recruiter said:
 “I have observed that Unix hackers scowl or become annoyed when I ask them how many years of experience they have in a new programming language. Why is this so?”

Slide 67

Slide 67 text

PAGE NUMBER LUCASFCOSTA.COM 67 HOW TO DEAL WITH IT Master Foo stood, and began to pace across the office floor. The recruiter was puzzled, and asked “What are you doing?”

Slide 68

Slide 68 text

PAGE NUMBER LUCASFCOSTA.COM 68 HOW TO DEAL WITH IT “I am learning to walk,” replied Master Foo.

Slide 69

Slide 69 text

PAGE NUMBER LUCASFCOSTA.COM 69 HOW TO DEAL WITH IT “I saw you walk through that door” the recruiter exclaimed “and you are not stumbling over your own feet. Obviously you already know how to walk.”

Slide 70

Slide 70 text

PAGE NUMBER LUCASFCOSTA.COM 70 HOW TO DEAL WITH IT “Yes, but this floor is new to me.” replied Master Foo. Upon hearing this, the recruiter was enlightened. http://www.catb.org/esr/writings/unix-koans/recruiter.html

Slide 71

Slide 71 text

PAGE NUMBER LUCASFCOSTA.COM 71 HOW TO DEAL WITH IT dig deep

Slide 72

Slide 72 text

PAGE NUMBER LUCASFCOSTA.COM 72 HOW TO DEAL WITH IT What I cannot create I do not understand. Richard Feynman

Slide 73

Slide 73 text

PAGE NUMBER LUCASFCOSTA.COM 73 HOW TO DEAL WITH IT focus on what matters

Slide 74

Slide 74 text

PAGE NUMBER LUCASFCOSTA.COM 74 HOW TO DEAL WITH IT a.k.a. don't do bikeshedding

Slide 75

Slide 75 text

PAGE NUMBER LUCASFCOSTA.COM 75 HOW TO DEAL WITH IT don’t get ahead of yourself

Slide 76

Slide 76 text

PAGE NUMBER LUCASFCOSTA.COM 76 HOW TO DEAL WITH IT build things

Slide 77

Slide 77 text

PAGE NUMBER 77 First you learn the value of abstraction, then you learn the cost of abstraction, then you're ready to engineer Kent Beck LUCASFCOSTA.COM JAVASCRIPT

Slide 78

Slide 78 text

PAGE NUMBER LUCASFCOSTA.COM 78 HOW TO DEAL WITH IT do things that don’t scale Paul Graham

Slide 79

Slide 79 text

79 PAGE NUMBER What am I? Programmer or Software Developer? Software Architect? Software Engineer? HOW TO DEAL WITH IT

Slide 80

Slide 80 text

PAGE NUMBER LUCASFCOSTA.COM 80 engineering software development HOW TO DEAL WITH IT

Slide 81

Slide 81 text

PAGE NUMBER 81 This is Barcelona. LUCASFCOSTA.COM HOW TO DEAL WITH IT

Slide 82

Slide 82 text

PAGE NUMBER 82 This is Barcelona as seen from the sky. LUCASFCOSTA.COM HOW TO DEAL WITH IT

Slide 83

Slide 83 text

PAGE NUMBER 83 Be a town planner LUCASFCOSTA.COM HOW TO DEAL WITH IT

Slide 84

Slide 84 text

PAGE NUMBER 84 Software is flexible. Engineering is not. HOW TO DEAL WITH IT

Slide 85

Slide 85 text

85 PAGE NUMBER We can break things We spend more time designing and thinking than building We can build as many times as we want We can always change things Our build time is compile time. HOW TO DEAL WITH IT

Slide 86

Slide 86 text

PAGE NUMBER 86 LET IT GROW ADAPT AS NEEDED Be a town planner. LUCASFCOSTA.COM HOW TO DEAL WITH IT

Slide 87

Slide 87 text

PAGE NUMBER LUCASFCOSTA.COM HOW TO DEAL WITH IT “ 87 Abstractions only work well in the right context, and the right context develops as the system develops. Sam Koblenski

Slide 88

Slide 88 text

PAGE NUMBER LUCASFCOSTA.COM 88 HOW TO DEAL WITH IT strive to be lazy

Slide 89

Slide 89 text

PAGE NUMBER LUCASFCOSTA.COM 89 HOW TO DEAL WITH IT talk to people

Slide 90

Slide 90 text

PAGE NUMBER LUCASFCOSTA.COM 90 HOW TO DEAL WITH IT Be curious. Read widely. Try new things. What people call intelligence just boils down to curiosity. Aaron Swartz

Slide 91

Slide 91 text

PAGE NUMBER LUCASFCOSTA.COM 91 HOW TO DEAL WITH IT solve problems

Slide 92

Slide 92 text

PAGE NUMBER LUCASFCOSTA.COM 92 solve problems thank you L U C A S F C O S T A . C O M github: lucasfcosta twitter: lfernandescosta

Slide 93

Slide 93 text

93 PAGE NUMBER Related Material/References THANK YOU! • Don't Call Yourself A Programmer, And Other Career Advice (Highly Recommended)
 Patrick McKenzie
 http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ • The Cost of Abstraction
 Sam Koblenski
 http://sam-koblenski.blogspot.com/2014/07/the-cost-of-abstraction.html • The Deep Roots of Javascript Fatigue
 Calvin French-Owen
 https://segment.com/blog/the-deep-roots-of-js-fatigue/ • JavaScript Fatigue
 Eric Clemmons
 https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4 • JavaScript Fatigue Fatigue - Dr. Axel Rauschmayer
 http://2ality.com/2016/02/js-fatigue-fatigue.html • JavaScript Fatigue, AMP, and Paths.js - JS Party Episode #3
 https://changelog.com/jsparty/3 Building Microservices (Book)
 Sam Newman