SlideShare une entreprise Scribd logo
1  sur  65
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à רועי פלד

"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
 

Similaire à רועי פלד (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
 

Plus de 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
 

Plus de 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
 
יהונתן שיפר
יהונתן שיפריהונתן שיפר
יהונתן שיפר
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרול
 
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמןכשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
כשהלקוח מבקש שהמוצר יהיה "חדשני, טרנדי וואו!" / עופר הולצמן
 
ינון פרק
ינון פרקינון פרק
ינון פרק
 
זוהר ארד
זוהר ארדזוהר ארד
זוהר ארד
 
סרג' קרול
סרג' קרולסרג' קרול
סרג' קרול
 
אודי סלנט
אודי סלנטאודי סלנט
אודי סלנט
 
שלומי זיגארט
שלומי זיגארטשלומי זיגארט
שלומי זיגארט
 
יוני אושין
יוני אושיןיוני אושין
יוני אושין
 
קרן נוימן ונטע תבל
קרן נוימן ונטע תבלקרן נוימן ונטע תבל
קרן נוימן ונטע תבל
 

Dernier

Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Christo Ananth
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)simmis5
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfKamal Acharya
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 

Dernier (20)

Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 

רועי פלד

  • 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.