SlideShare a Scribd company logo
1 of 65
Download to read offline
HOW I LEARNED TO
STOP WORRYING AND
LOVE JAVASCRIPT
First, a bit about myself
Roy Peled
● Front end developer for 10+ years
● Working as a front end developer lead at Folloze
● Lecturing front end development course at Netcraft
Chapter 1:
The left-pad catastrophe
In 2010 Isaac Z.
Schlueter
created NPM
And everything changed
From download To Install
> npm install jquery
> npm install bootstrap
> npm install angular
package.json:
{
dependencies: {
jquery: “3.1.0”,
bootstrap: “3.3.7”,
angular: “1.5.8”
}
}
> npm install
❤
️
“Every month, more than 4 million
developers use npm to find, share, and reuse
code — and assemble it in powerful new
ways.”
● https://www.npmjs.com/
Fast forward to 26th of March, 2016
WHEN THE INTERNET BROKE
For front end developers
LEFT-
PADhttps://www.npmjs.com/package/left-pad
Left-pad dependencies
13,640 downloads in the last day
68,264 downloads in the last week
302,245 downloads in the last month
left-pad
node
babel
react
Left-pad dependencies
13,640 downloads in the last day
68,264 downloads in the last week
302,245 downloads in the last month
node
babel
react
☠
Left-pad dependencies
13,640 downloads in the last day
68,264 downloads in the last week
302,245 downloads in the last month
☠
☠
☠
☠
Left-pad dependencies
13,640 downloads in the last day
68,264 downloads in the last week
302,245 downloads in the last month
☠
☠
☠
☠
☠
☠
☠
☠
☠
☠ ☠ ☠
☠
☠
☠☠
☠
☠
☠
☠
☠
module.exports = leftpad;
function leftpad (str, len, ch) {
str = String(str);
var i = -1;
if (!ch && ch !== 0) ch = ' ';
len = len - str.length;
while (++i < len) {
str = ch + str;
}
return str;
}
Chapter 2:
You know, it’s all about the tech
In 2005, a new term was created in a blog
post
Asynchronous
JavaScript + XML
http://adaptivepath.org/ideas/ajax-new-approach-web-applications/
But we are lazy.
(not that there’s anything wrong with that)
var req;
function loadXMLDoc(url)
{
// branch for native XMLHttpRequest
object
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange =
processReqChange;
req.open("GET", url, true);
req.send(null);
// branch for IE/Windows ActiveX version
} else if (window.ActiveXObject) {
req = new
ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange =
processReqChange;
req.open("GET", url, true);
req.send();
}
}
}
http://www.xml.com/pub/a/2005/02/09/xml-http-request.html
SO HERE COMES THE FRAMEWORKS
In 2006 we had these toolkits
Bitkraft
sarissa.js
http://www.javaworld.com/article/2072153/web-app-
frameworks/ajax--dawn-of-a-new-developer.html
jQuery
In 2009 we ❤️templates
template
jQote Srender
Tempest jQuery
Templating Plugin
NANO
In 2011 MVC was all the rage or MVP, or MVVM
Spine
In 2013 we hate MVC but love components but also MVC!
And then some build automation...
And now, we don’t even write Javascript anymore
So, if we have to choose
1 toolkit,
1 template engine,
1 MVC framework,
1 automation tool
and 1 language to work on...
31,850
Permutations
💩
Chapter 3:
When you regret choosing Front End Development
The Front End
world is moving
fast.
Every 3 years the Front End
ecosystem changes almost
completely.
For Example, 2014
Angular + Scss + jQuery + NPM + Grunt
https://medium.com/@rogerdudler/front-end-technology-stack-survey-2014-809f7a8c92f3#.vpi8xqd14
And in 2015
Angular + Sass + jQuery + NPM +
Bower + Browserify
https://ashleynolan.co.uk/blog/frontend-tooling-survey-2015-results
2016
React + Redux + ES6 + Babel +
Webpack + NPM
2017?
Angular 2 + RxJS + Typescript +
Webpack + NPM
I’m a developer working 3+ years
on the same project,
with the same technology.
And when I meet
co-workers, these
are the questions
I’m often asked
“ Have you tried Aurelia yet? It’s
supposed to be better than
Angular! ”
Umm.. I heard of it...
And when I meet
co-workers, these
are the questions
I’m often asked
“ How did you solve static assets
with Webpack? ”
Well, we still use rails as a build tool where I work...
And when I meet
co-workers, these
are the questions
I’m often asked
“ So.. Flux, Reflux, Redux or RxJs? ”
I still didn’t get to look at React yet...
And when I meet
co-workers, these
are the questions
I’m often asked
“ You have to try ES7 decorators! ”
:(
So, frustration sets in
“ I’m not learning as fast as the industry is moving ”“ I’m not learning as fast as the industry is moving ”
😩
Chapter 4:
Redemption
There’s a way to live with the
pace of our industry
I talked about 3 extremes
1) Running to quick solutions without knowing
the consequences
☠
I talked about 3 extremes
2) Feeling the pressure to learn every piece of
new technology
💩
I talked about 3 extremes
3) Frustrating yourself with the lack of
knowledge
😩
1) Running to quick solutions
Decide if it’s really necessary
● Do you really need a new dependency for 11 lines of
code?
● Is it something that you can easily accomplish yourself?
● Are you being overly lazy?
Vet the new dependency
● What’s the size of the dependency?
● How many dependencies you inherit from it?
● How many people are using it?
2) Trying to learn every new technology
Tech inflation has a cost
● We need to keep up or be left behind
● Pressure to learn every new and shiny piece of code
● Most of the tech will be abandoned in a few years
Most of us can’t devote the time and energy to be that Superstar Developer
So don’t.
Either learn wide
So don’t.
Or (preferably), learn
deep
So don’t.
Don’t expect to have both
If you choose the wrong tech, it’s not a big
deal
● More knowledge and experience is never a bad thing
● You can always learn something new
● The fact that it’s abandoned, doesn’t mean it doesn’t work
The most important thing to learn is methodology.
Tech will always be replaced, but your skills are
here to stay.
3) Frustration
Not everyone can be a superstar
● We’re human beings
● We want to come home to relax, not burn myself by working more
● We have our job responsibilities, that sometimes limits our self growth
But that doesn’t mean we’re not good.
Feeling of inadequacy
Our industry is changing rapidly.
We want to learn everything.
There’s no time to do that.
We see the community advancing, talking about tech that we haven’t heard of.
Don’t let the industry and the community make
you feel inadequate.
Vice versa, use it.
Use the community
● Read blogs and news about our industry
● Listen to podcasts on your way to and from work
● Follow industry leaders on social media
● Attend conferences
● Go to meetups
https://uptodate.frontendrescue.org/
To wrap it up
Front end development is
freaking hard
Thank you.
● The environment is complex and breaks
easily
● There are tons of technologies to choose
from
● There is a pressure to be familiar with
everything
So...
Thank you.
● Be mindful of code you’re using for your
projects
● You can’t learn everything, choose
something, and enjoy it.
● Use the community to expand your
horizons, not to drag you down.

More Related Content

What's hot

Keeping lab notes as a software developer
Keeping lab notes as a software developerKeeping lab notes as a software developer
Keeping lab notes as a software developerJames McKay
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Christian Heilmann
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftChristian Heilmann
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Aaron Lamphere
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteChristian Heilmann
 
jQuery Mobile Jump Start
jQuery Mobile Jump StartjQuery Mobile Jump Start
jQuery Mobile Jump StartTroy Miles
 
Moore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatMoore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatChristian Heilmann
 
Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeRobson Agapito Correa
 
What are the benefits of reactive programming in java
What are the benefits of reactive programming in java What are the benefits of reactive programming in java
What are the benefits of reactive programming in java Dmytro Melnychuk
 
Modern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsModern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsAndrea Rabbaglietti
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreChristian Heilmann
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptChristian Heilmann
 
A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes backChristian Heilmann
 
Streamlining .net core development using Docker
Streamlining .net core development using DockerStreamlining .net core development using Docker
Streamlining .net core development using DockerPunit Jajodia
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaChristian Heilmann
 
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105 Can we make es6 the baseline of the “modern web”? - BrazilJS 2105
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105 Christian Heilmann
 
The State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupThe State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupChristian Heilmann
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsTomáš Strejček
 

What's hot (20)

Keeping lab notes as a software developer
Keeping lab notes as a software developerKeeping lab notes as a software developer
Keeping lab notes as a software developer
 
Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016Progressive Web Apps – the return of the web? Goto Berlin 2016
Progressive Web Apps – the return of the web? Goto Berlin 2016
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery
 
JavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynoteJavaScript is a buffet - Scriptconf 2017 keynote
JavaScript is a buffet - Scriptconf 2017 keynote
 
jQuery Mobile Jump Start
jQuery Mobile Jump StartjQuery Mobile Jump Start
jQuery Mobile Jump Start
 
Moore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix thatMoore vs. May - everything is faster and better: we can fix that
Moore vs. May - everything is faster and better: we can fix that
 
Automação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e MechanizeAutomação de testes funcionais com Python e Mechanize
Automação de testes funcionais com Python e Mechanize
 
What are the benefits of reactive programming in java
What are the benefits of reactive programming in java What are the benefits of reactive programming in java
What are the benefits of reactive programming in java
 
Fixing web and JS gaps
Fixing web and JS gapsFixing web and JS gaps
Fixing web and JS gaps
 
Modern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsModern Messaging for Distributed Systems
Modern Messaging for Distributed Systems
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and Typescript
 
A New Hope – the web strikes back
A New Hope – the web strikes backA New Hope – the web strikes back
A New Hope – the web strikes back
 
Streamlining .net core development using Docker
Streamlining .net core development using DockerStreamlining .net core development using Docker
Streamlining .net core development using Docker
 
Overboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasiaOverboard.js - where are we going with with jsconfasia / devfestasia
Overboard.js - where are we going with with jsconfasia / devfestasia
 
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105 Can we make es6 the baseline of the “modern web”? - BrazilJS 2105
Can we make es6 the baseline of the “modern web”? - BrazilJS 2105
 
JavaScript isn't evil.
JavaScript isn't evil.JavaScript isn't evil.
JavaScript isn't evil.
 
The State of the Web - Helsinki meetup
The State of the Web - Helsinki meetupThe State of the Web - Helsinki meetup
The State of the Web - Helsinki meetup
 
Monolith vs Microservices vs Teams
Monolith vs Microservices vs TeamsMonolith vs Microservices vs Teams
Monolith vs Microservices vs Teams
 

Similar to רועי פלד

"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent CerveauTheFamily
 
E4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfE4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfAnna Gandrabura
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETAnant Corporation
 
How to get started with Site Reliability Engineering
How to get started with Site Reliability EngineeringHow to get started with Site Reliability Engineering
How to get started with Site Reliability EngineeringAndrew Kirkpatrick
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Ted Husted
 
From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysOri Pekelman
 
Introduction to react js
Introduction to react jsIntroduction to react js
Introduction to react jsMunirMahmud3
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsSteve Pember
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinAlessandro Nadalin
 
Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Matt Tesauro
 
Selenium web driver | java
Selenium web driver | javaSelenium web driver | java
Selenium web driver | javaRajesh Kumar
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101POSSCON
 
Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developerTopu Newaj
 
Client-side Development 2016
Client-side Development 2016Client-side Development 2016
Client-side Development 2016Huge
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdodaniil3
 
Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solvingFlowa Oy
 
Feedback loops between tooling and culture
Feedback loops between tooling and cultureFeedback loops between tooling and culture
Feedback loops between tooling and cultureChris Winters
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?Vivek Parihar
 
An Introduction to Usability
An Introduction to UsabilityAn Introduction to Usability
An Introduction to Usabilitydirk.swart
 

Similar to רועי פלד (20)

"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
 
E4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdfE4IT STARTER - MODULE 8.pdf
E4IT STARTER - MODULE 8.pdf
 
Enterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NETEnterprise Frameworks: Java & .NET
Enterprise Frameworks: Java & .NET
 
How to get started with Site Reliability Engineering
How to get started with Site Reliability EngineeringHow to get started with Site Reliability Engineering
How to get started with Site Reliability Engineering
 
Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011Open Source Secret Sauce - Lugor Sep 2011
Open Source Secret Sauce - Lugor Sep 2011
 
From DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed ApidaysFrom DevOps to NoOps how not to get Equifaxed Apidays
From DevOps to NoOps how not to get Equifaxed Apidays
 
Introduction to react js
Introduction to react jsIntroduction to react js
Introduction to react js
 
Reactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and GrailsReactive Microservice Architecture with Groovy and Grails
Reactive Microservice Architecture with Groovy and Grails
 
The rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in TurinThe rocket internet experience @ PHP.TO.START 2013 in Turin
The rocket internet experience @ PHP.TO.START 2013 in Turin
 
Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023Tenants for Going at DevSecOps Speed - LASCON 2023
Tenants for Going at DevSecOps Speed - LASCON 2023
 
Selenium web driver | java
Selenium web driver | javaSelenium web driver | java
Selenium web driver | java
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
 
Recipe of a rockstar developer
Recipe of a rockstar developerRecipe of a rockstar developer
Recipe of a rockstar developer
 
Client-side Development 2016
Client-side Development 2016Client-side Development 2016
Client-side Development 2016
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 
Coaching teams in creative problem solving
Coaching teams in creative problem solvingCoaching teams in creative problem solving
Coaching teams in creative problem solving
 
Feedback loops between tooling and culture
Feedback loops between tooling and cultureFeedback loops between tooling and culture
Feedback loops between tooling and culture
 
How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?How fast can you onboard a new team member with VAGRANT ?
How fast can you onboard a new team member with VAGRANT ?
 
An Introduction to Usability
An Introduction to UsabilityAn Introduction to Usability
An Introduction to Usability
 

More from Netcraft

מוצרים זהים ומשתמשים שונים / אביב גרוס אלון
מוצרים זהים ומשתמשים שונים / אביב גרוס אלוןמוצרים זהים ומשתמשים שונים / אביב גרוס אלון
מוצרים זהים ומשתמשים שונים / אביב גרוס אלוןNetcraft
 
הקול בראש / יסמין לוגסי
הקול בראש / יסמין לוגסיהקול בראש / יסמין לוגסי
הקול בראש / יסמין לוגסיNetcraft
 
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבות
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבותטרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבות
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבותNetcraft
 
ניר גייר
ניר גיירניר גייר
ניר גיירNetcraft
 
זוהר ארד
זוהר ארדזוהר ארד
זוהר ארדNetcraft
 
גבי מור
גבי מורגבי מור
גבי מורNetcraft
 
יריב גלעד
יריב גלעדיריב גלעד
יריב גלעדNetcraft
 
Amir Shilo
Amir ShiloAmir Shilo
Amir ShiloNetcraft
 
Aviv Gross Alon
Aviv Gross AlonAviv Gross Alon
Aviv Gross AlonNetcraft
 
Shira Weinberg
Shira WeinbergShira Weinberg
Shira WeinbergNetcraft
 
יהונתן שיפר
יהונתן שיפריהונתן שיפר
יהונתן שיפרNetcraft
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרולNetcraft
 
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמןכשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמןNetcraft
 
ינון פרק
ינון פרקינון פרק
ינון פרקNetcraft
 
זוהר ארד
זוהר ארדזוהר ארד
זוהר ארדNetcraft
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרולNetcraft
 
אודי סלנט
אודי סלנטאודי סלנט
אודי סלנטNetcraft
 
שלומי זיגארט
שלומי זיגארטשלומי זיגארט
שלומי זיגארטNetcraft
 
יוני אושין
יוני אושיןיוני אושין
יוני אושיןNetcraft
 
קרן נוימן ונטע תבל
קרן נוימן ונטע תבלקרן נוימן ונטע תבל
קרן נוימן ונטע תבלNetcraft
 

More from Netcraft (20)

מוצרים זהים ומשתמשים שונים / אביב גרוס אלון
מוצרים זהים ומשתמשים שונים / אביב גרוס אלוןמוצרים זהים ומשתמשים שונים / אביב גרוס אלון
מוצרים זהים ומשתמשים שונים / אביב גרוס אלון
 
הקול בראש / יסמין לוגסי
הקול בראש / יסמין לוגסיהקול בראש / יסמין לוגסי
הקול בראש / יסמין לוגסי
 
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבות
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבותטרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבות
טרנדים בעולם העיצוב הדיגיטלי בשנת 2017 / ניר נבות
 
ניר גייר
ניר גיירניר גייר
ניר גייר
 
זוהר ארד
זוהר ארדזוהר ארד
זוהר ארד
 
גבי מור
גבי מורגבי מור
גבי מור
 
יריב גלעד
יריב גלעדיריב גלעד
יריב גלעד
 
Amir Shilo
Amir ShiloAmir Shilo
Amir Shilo
 
Aviv Gross Alon
Aviv Gross AlonAviv Gross Alon
Aviv Gross Alon
 
Shira Weinberg
Shira WeinbergShira Weinberg
Shira Weinberg
 
יהונתן שיפר
יהונתן שיפריהונתן שיפר
יהונתן שיפר
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרול
 
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמןכשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
 
ינון פרק
ינון פרקינון פרק
ינון פרק
 
זוהר ארד
זוהר ארדזוהר ארד
זוהר ארד
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרול
 
אודי סלנט
אודי סלנטאודי סלנט
אודי סלנט
 
שלומי זיגארט
שלומי זיגארטשלומי זיגארט
שלומי זיגארט
 
יוני אושין
יוני אושיןיוני אושין
יוני אושין
 
קרן נוימן ונטע תבל
קרן נוימן ונטע תבלקרן נוימן ונטע תבל
קרן נוימן ונטע תבל
 

Recently uploaded

Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgsaravananr517913
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptJasonTagapanGulla
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfAsst.prof M.Gokilavani
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxsomshekarkn64
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)dollysharma2066
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 

Recently uploaded (20)

Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
young call girls in Rajiv Chowk🔝 9953056974 🔝 Delhi escort Service
 
POWER SYSTEMS-1 Complete notes examples
POWER SYSTEMS-1 Complete notes  examplesPOWER SYSTEMS-1 Complete notes  examples
POWER SYSTEMS-1 Complete notes examples
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfgUnit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
Unit7-DC_Motors nkkjnsdkfnfcdfknfdgfggfg
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
Solving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.pptSolving The Right Triangles PowerPoint 2.ppt
Solving The Right Triangles PowerPoint 2.ppt
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdfCCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
CCS355 Neural Network & Deep Learning UNIT III notes and Question bank .pdf
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
lifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptxlifi-technology with integration of IOT.pptx
lifi-technology with integration of IOT.pptx
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
Call Us ≽ 8377877756 ≼ Call Girls In Shastri Nagar (Delhi)
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 

רועי פלד

  • 1. HOW I LEARNED TO STOP WORRYING AND LOVE JAVASCRIPT
  • 2. First, a bit about myself Roy Peled ● Front end developer for 10+ years ● Working as a front end developer lead at Folloze ● Lecturing front end development course at Netcraft
  • 4. In 2010 Isaac Z. Schlueter created NPM And everything changed
  • 5. From download To Install > npm install jquery > npm install bootstrap > npm install angular package.json: { dependencies: { jquery: “3.1.0”, bootstrap: “3.3.7”, angular: “1.5.8” } } > npm install
  • 7. “Every month, more than 4 million developers use npm to find, share, and reuse code — and assemble it in powerful new ways.” ● https://www.npmjs.com/
  • 8. Fast forward to 26th of March, 2016 WHEN THE INTERNET BROKE For front end developers
  • 10. Left-pad dependencies 13,640 downloads in the last day 68,264 downloads in the last week 302,245 downloads in the last month left-pad node babel react
  • 11. Left-pad dependencies 13,640 downloads in the last day 68,264 downloads in the last week 302,245 downloads in the last month node babel react ☠
  • 12. Left-pad dependencies 13,640 downloads in the last day 68,264 downloads in the last week 302,245 downloads in the last month ☠ ☠ ☠ ☠
  • 13. Left-pad dependencies 13,640 downloads in the last day 68,264 downloads in the last week 302,245 downloads in the last month ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠ ☠☠ ☠ ☠ ☠ ☠
  • 14.
  • 15. module.exports = leftpad; function leftpad (str, len, ch) { str = String(str); var i = -1; if (!ch && ch !== 0) ch = ' '; len = len - str.length; while (++i < len) { str = ch + str; } return str; }
  • 16. Chapter 2: You know, it’s all about the tech
  • 17. In 2005, a new term was created in a blog post Asynchronous JavaScript + XML http://adaptivepath.org/ideas/ajax-new-approach-web-applications/
  • 18. But we are lazy. (not that there’s anything wrong with that) var req; function loadXMLDoc(url) { // branch for native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(); } } } http://www.xml.com/pub/a/2005/02/09/xml-http-request.html
  • 19. SO HERE COMES THE FRAMEWORKS
  • 20. In 2006 we had these toolkits Bitkraft sarissa.js http://www.javaworld.com/article/2072153/web-app- frameworks/ajax--dawn-of-a-new-developer.html jQuery
  • 21. In 2009 we ❤️templates template jQote Srender Tempest jQuery Templating Plugin NANO
  • 22. In 2011 MVC was all the rage or MVP, or MVVM Spine
  • 23. In 2013 we hate MVC but love components but also MVC!
  • 24. And then some build automation...
  • 25. And now, we don’t even write Javascript anymore
  • 26. So, if we have to choose 1 toolkit, 1 template engine, 1 MVC framework, 1 automation tool and 1 language to work on...
  • 28. 💩
  • 29. Chapter 3: When you regret choosing Front End Development
  • 30. The Front End world is moving fast. Every 3 years the Front End ecosystem changes almost completely.
  • 31. For Example, 2014 Angular + Scss + jQuery + NPM + Grunt https://medium.com/@rogerdudler/front-end-technology-stack-survey-2014-809f7a8c92f3#.vpi8xqd14
  • 32. And in 2015 Angular + Sass + jQuery + NPM + Bower + Browserify https://ashleynolan.co.uk/blog/frontend-tooling-survey-2015-results
  • 33. 2016 React + Redux + ES6 + Babel + Webpack + NPM
  • 34. 2017? Angular 2 + RxJS + Typescript + Webpack + NPM
  • 35. I’m a developer working 3+ years on the same project, with the same technology.
  • 36. And when I meet co-workers, these are the questions I’m often asked “ Have you tried Aurelia yet? It’s supposed to be better than Angular! ” Umm.. I heard of it...
  • 37. And when I meet co-workers, these are the questions I’m often asked “ How did you solve static assets with Webpack? ” Well, we still use rails as a build tool where I work...
  • 38. And when I meet co-workers, these are the questions I’m often asked “ So.. Flux, Reflux, Redux or RxJs? ” I still didn’t get to look at React yet...
  • 39. And when I meet co-workers, these are the questions I’m often asked “ You have to try ES7 decorators! ” :(
  • 40. So, frustration sets in “ I’m not learning as fast as the industry is moving ”“ I’m not learning as fast as the industry is moving ”
  • 41. 😩
  • 43. There’s a way to live with the pace of our industry
  • 44. I talked about 3 extremes 1) Running to quick solutions without knowing the consequences ☠
  • 45. I talked about 3 extremes 2) Feeling the pressure to learn every piece of new technology 💩
  • 46. I talked about 3 extremes 3) Frustrating yourself with the lack of knowledge 😩
  • 47. 1) Running to quick solutions
  • 48. Decide if it’s really necessary ● Do you really need a new dependency for 11 lines of code? ● Is it something that you can easily accomplish yourself? ● Are you being overly lazy?
  • 49. Vet the new dependency ● What’s the size of the dependency? ● How many dependencies you inherit from it? ● How many people are using it?
  • 50. 2) Trying to learn every new technology
  • 51. Tech inflation has a cost ● We need to keep up or be left behind ● Pressure to learn every new and shiny piece of code ● Most of the tech will be abandoned in a few years Most of us can’t devote the time and energy to be that Superstar Developer
  • 55. If you choose the wrong tech, it’s not a big deal ● More knowledge and experience is never a bad thing ● You can always learn something new ● The fact that it’s abandoned, doesn’t mean it doesn’t work The most important thing to learn is methodology. Tech will always be replaced, but your skills are here to stay.
  • 57. Not everyone can be a superstar ● We’re human beings ● We want to come home to relax, not burn myself by working more ● We have our job responsibilities, that sometimes limits our self growth But that doesn’t mean we’re not good.
  • 58. Feeling of inadequacy Our industry is changing rapidly. We want to learn everything. There’s no time to do that. We see the community advancing, talking about tech that we haven’t heard of.
  • 59. Don’t let the industry and the community make you feel inadequate. Vice versa, use it.
  • 60. Use the community ● Read blogs and news about our industry ● Listen to podcasts on your way to and from work ● Follow industry leaders on social media ● Attend conferences ● Go to meetups https://uptodate.frontendrescue.org/
  • 62. Front end development is freaking hard
  • 63. Thank you. ● The environment is complex and breaks easily ● There are tons of technologies to choose from ● There is a pressure to be familiar with everything
  • 64. So...
  • 65. Thank you. ● Be mindful of code you’re using for your projects ● You can’t learn everything, choose something, and enjoy it. ● Use the community to expand your horizons, not to drag you down.