SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
The Evolution of Frontend
Christian Schlensker
Joe Lipper
Why you should listen to us
● Christian
○ 10 years of experience, previously: Pinchit, TAG
● Joe
○ Bloc Frontend Course Director, previously: freelance developer, co-
founder of BrandSlip, Bloc Alum
Agenda
● Brief history of web development
● Lay of the Land & Explain Buzz Words
● Compare 4 Advanced Frontend frameworks
● Bloc’s Frontend syllabus & philosophy
Things evolve, they don’t change overnight
Buzz Words Explained
One of the biggest challenges for beginners is understanding how things fit together:
● HTML - the wood frame of the house
● CSS - paint, bricks, carpet
● JavaScript - the electrical system, plumbing, and the electrician and plumber
going around adding and fixing things
● MVC - Model / View / Controller - a way of thinking about complex web apps.
● AJAX - Dynamically update web pages without refreshing
● jQuery - a library of functions that can be used to make JavaScript code simpler.
Now ubiquitous on the web. Ultimately used to make web apps interactive.
What about these:
● HTML vs. HTML5
● CSS vs. CSS3
Commonly confused:
● Java vs. JavaScript
● Sass vs. SaaS
Web 1.0
● Hypertext Markup Language (HTML)
● Static
● Pages
● 1990s and before
● Released, but not widespread:
○ Javascript
○ CSS
● Netscape and IE
Web 2.0
● Cascading Style Sheets (CSS)
○ released in 96, not widespread until later
● Dynamic HTML (DHTML)
○ Use Javascript and CSS to manipulate HTML elements
● Rudimentary interactivity
○ Drag and Drop
○ Slow animations
● Examples
○ Amazon
○ Wikipedia
○ YouTube
Web 2.0
● Browsers evolve + diversify
○ Opera (1994)
○ IE (1995)
○ Safari (2001)
○ Firefox (2002)
○ Chrome (2008)
● All different!
circa 2003:
Why Cross-Browser Tools Emerged
A JavaScript Library: jQuery (2006)
● What is a Library? A package of pre-written code that allows you to do
complex things
● Using this standard library across websites enabled developers to add
cross-browser compatibility quickly
● Helps a LOT, but not 100%
● The basis for many current-generation frameworks
Today
● Javascript a “mature language”
○ Tools
○ Best practices
○ communities
○ open source
● CSS3
● HTML5
● Desktop & Mobile Browsers
● Examples: Modern Gmail, Google
Docs,
Pause for Q&A
What is a framework?
● Problems that frameworks try to solve:
○ Applications were hard to organize
○ Code becomes ludicrously complex & messy
○ Hard to collaborate because no standard way of doing things
○ Messy, complex code is difficult to reason about
Now Let’s Look at all these languages, libraries and
frameworks again, but from the point of view of a
beginner starting today: What do you need to know,
when should you know it?
Beginner Intermediate Advanced
Scenario Finished Codecademy Piece together an MVP Get a Developer Job
Languages HTML, CSS, and JavaScript jQuery, Bootstrap / Foundation, Rails
or some other application framework
Frontend Frameworks:
AngularJS, BackboneJS,
EmberJS, or ReactJS
Concepts Webpage structure, Styling,
Javascript Variables, If Statements,
Loops, Arrays
CRUD, REST, Working with APIs Object Oriented
Programming, MVC, Test
Driven Development,
Single-Page-Applications
What makes a framework good for
beginners
● Conventions over Configuration
● Strong tools for code organization
● Reusable Components
● Large community / lots of tutorials
Today
● Desktop-like applications possible
● Major Frameworks
○ BackboneJS
○ EmberJS
○ ReactJS
○ AngularJS
BackboneJS
● Pros
○ easy to get started quickly
○ very lightweight and minimal
○ lots of tutorials
● Cons
○ declining in popularity
○ not as advanced as other frameworks for
web apps
○ does not give you everything you need
● Verdict
○ Not great for beginners
● Hulu, Airbnb, Pinterest, Pandora
EmberJS
● Pros
○ Convention over Configuration
○ Data binding integration
○ holistic
○ sophisticated data management
● Cons:
○ requires more setup than Angular
○ takes time to learn the conventions
○ “the ember way” doesn’t suit all apps
○ mainly for single page applications
● Verdict for Beginners:
○ Good option to look at
● Companies: Square, Groupon, LivingSocial, Zendesk
ReactJS
● Pros:
○ Gaining popularity quickly
○ Created by FB - open sourced it less than a year ago
○ Primarily used for data binding
○ “The V in MVC”
○ Great for building rich User Interfaces
● Con:
○ Very new means fewer resources and smaller community
○ requires lots of 3rd party code integration (not holistic)
● Verdict:
○ Not recommended for beginners
AngularJS
● Pros
○ Easiest to set up
○ Google-backed project
○ hired the contributors to continue working on Angular
○ Organization with “Components”
■ Small, separated functionality
■ App becomes greater than sum of the parts
■ Reusable
○ Testable
○ Vibrant community
○ Large library of third party code
● Cons
○ difficult vocabulary
○ advanced features can be difficult to learn
● Companies: YouTube, Wired.com
● Verdict: (we’re biased) Good for beginners
Advice for Beginners
We chose AngularJS as the Advanced Framework we wanted to teach
beginners
● AngularJS has one of the more vibrant communities
● Has a more-shallow learning curve than others
● Once you have the depth of understanding in one advanced
framework, it’s much easier to pick up another one
Bloc Frontend Syllabus
Full Syllabus Here
Outline:
● Phase I (1st third of course)
○ Set up your Dev Environment, command line, github, Heroku
○ Set up back end using NodeJS starter-app
○ Intro to HTML, CSS, Javascript
○ Intermediate languages: jQuery, Sass
○ Launch your first web-app: your own version of Spotify
○ Advanced Front End Frameworks: Intro to AngularJS
○ Re-build your Spotify app using AngularJS
● Phase II (two thirds of course)
○ Choose & build 4 web apps from a menu of options
○ Each project builds upon what you’ve learned and introduces new concepts
○ Goal is to build many real apps “notches in your belt”
○ Capstone: Design, Build, Test, and Launch your Capstone App
FAQs
What’s your refund policy?
If Bloc isn't the right fit for you after all, you can un-enroll at any time. Bloc is backed by a Real Results Guarantee that’s real simple: if you aren’t getting
value, we don’t get paid. Un-enroll in the first week for a full refund. Un-enroll later, and get a pro-rated refund based on the number of days you've spent in
the program.
Do you offer flexible payment options?
Yup. You can pay your tuition up-front, or pay in 3 or 6 monthly installments. The tuition is the same no matter which plan you choose.
What if I want to switch mentors?
No problem. Mentors consistently get stellar ratings from their students, and it's very rare that a student asks to switch mentors. That said, say the word and
we'll make it happen.
What is the time commitment?
We designed Bloc to be a structured, immersive program that still fits into your life. No need to relocate or quit your job. For the 12-Week Program, we
expect at least 30 hours a week. For the 24-Week Program, we expect 15 hours a week. We understand learning to become a developer or designer is a
huge commitment, and that this may require some late nights and weekends. Rest assured, we’ll be there to support you the entire way through. Our
flexible online approach means you decide when and where works best for you.
What if I fall sick or can't keep up?
This is a big commitment, and we expect you to put in the necessary hours. That said, we know that life happens. When it does, reach out to Karen and we'll
figure out how to help you together, and make sure you still get the most out of your time at Bloc.
In the case of extreme circumstances, you can freeze your apprenticeship temporarily. You should let Karen know immediately if you need this option. We’ll
save your progress, and when you are ready you’ll pick-up where you left off. We can’t guarantee you’ll be able to continue with the same mentor, but we
want to make this option available to you if need it.
Questions?
hello@bloc.io

Más contenido relacionado

La actualidad más candente

רועי פלד
רועי פלדרועי פלד
רועי פלדNetcraft
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloChristian Heilmann
 
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
 
NodeConfLondon - Making ES6 happen with ChakraCore and Node
NodeConfLondon - Making ES6 happen with ChakraCore and NodeNodeConfLondon - Making ES6 happen with ChakraCore and Node
NodeConfLondon - Making ES6 happen with ChakraCore and NodeChristian Heilmann
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109Thinkful
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way… Christian Heilmann
 
Java script basics for beginners
Java script basics for beginners  Java script basics for beginners
Java script basics for beginners Ketan Raval
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)David Wesst
 
Rapid WordPress Theme Development
Rapid WordPress Theme DevelopmentRapid WordPress Theme Development
Rapid WordPress Theme DevelopmentJosh Williams
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Christian Heilmann
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Michael Bleigh
 
Intro to Web Development from Bloc.io
Intro to Web Development from Bloc.ioIntro to Web Development from Bloc.io
Intro to Web Development from Bloc.ioDouglas Wright
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)Ahmed rebai
 
Intro js-nov-7
Intro js-nov-7Intro js-nov-7
Intro js-nov-7Thinkful
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?jbandi
 
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
 

La actualidad más candente (20)

Web dev syllabus
Web dev syllabusWeb dev syllabus
Web dev syllabus
 
רועי פלד
רועי פלדרועי פלד
רועי פלד
 
Seven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC OsloSeven ways to be a happier JavaScript developer - NDC Oslo
Seven ways to be a happier JavaScript developer - NDC Oslo
 
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
 
Java script hello world
Java script hello worldJava script hello world
Java script hello world
 
NodeConfLondon - Making ES6 happen with ChakraCore and Node
NodeConfLondon - Making ES6 happen with ChakraCore and NodeNodeConfLondon - Making ES6 happen with ChakraCore and Node
NodeConfLondon - Making ES6 happen with ChakraCore and Node
 
Baawjsajq109
Baawjsajq109Baawjsajq109
Baawjsajq109
 
Progressing JavaScript and Apps the Web way…
 Progressing JavaScript and Apps the Web way…  Progressing JavaScript and Apps the Web way…
Progressing JavaScript and Apps the Web way…
 
Java script basics for beginners
Java script basics for beginners  Java script basics for beginners
Java script basics for beginners
 
Hinting at a better web
Hinting at a better webHinting at a better web
Hinting at a better web
 
Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)Learning to be IDE Free (PrDC 2015)
Learning to be IDE Free (PrDC 2015)
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final Frontier
 
Rapid WordPress Theme Development
Rapid WordPress Theme DevelopmentRapid WordPress Theme Development
Rapid WordPress Theme Development
 
Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017Leveling up your JavaScipt - DrupalJam 2017
Leveling up your JavaScipt - DrupalJam 2017
 
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)Hacking the Mid-End (Great Lakes Ruby Bash Edition)
Hacking the Mid-End (Great Lakes Ruby Bash Edition)
 
Intro to Web Development from Bloc.io
Intro to Web Development from Bloc.ioIntro to Web Development from Bloc.io
Intro to Web Development from Bloc.io
 
Reactjs workshop (1)
Reactjs workshop (1)Reactjs workshop (1)
Reactjs workshop (1)
 
Intro js-nov-7
Intro js-nov-7Intro js-nov-7
Intro js-nov-7
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?
 
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
 

Destacado

Front-End Tools and Workflows
Front-End Tools and WorkflowsFront-End Tools and Workflows
Front-End Tools and WorkflowsSara Vieira
 
Customising civicrm
Customising civicrmCustomising civicrm
Customising civicrmChris Ward
 
Top Java Script Frameworks For Mobile App Development
Top Java Script Frameworks For Mobile App DevelopmentTop Java Script Frameworks For Mobile App Development
Top Java Script Frameworks For Mobile App DevelopmentValueCoders
 
Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016Mãi Mãi Yêu
 
Cim creative innovation management- 3.2014
Cim creative innovation management- 3.2014Cim creative innovation management- 3.2014
Cim creative innovation management- 3.2014Hadas Tadmor
 
Frontend Frameworks and Drupal
Frontend Frameworks and DrupalFrontend Frameworks and Drupal
Frontend Frameworks and DrupalNicolas Borda
 
A Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptA Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptLiang Gong
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentEdward Apostol
 
The State of Front End Web Development 2011
The State of Front End Web Development 2011The State of Front End Web Development 2011
The State of Front End Web Development 2011Pascal Rettig
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Developmentmwrather
 
ReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparisonReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparison500Tech
 
Professional Front End Development
Professional Front End DevelopmentProfessional Front End Development
Professional Front End Developmentnelsonmenezes
 
Client Vs. Server Rendering
Client Vs. Server RenderingClient Vs. Server Rendering
Client Vs. Server RenderingDavid Amend
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)Alex Ross
 
Flex Framework Smackdown
Flex Framework SmackdownFlex Framework Smackdown
Flex Framework SmackdownTony Hillerson
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Md Hossen
 
NTBT #1 "Client-Side JavaScript"
NTBT #1 "Client-Side JavaScript"NTBT #1 "Client-Side JavaScript"
NTBT #1 "Client-Side JavaScript"Frédéric Ghilini
 

Destacado (20)

Front-End Tools and Workflows
Front-End Tools and WorkflowsFront-End Tools and Workflows
Front-End Tools and Workflows
 
Customising civicrm
Customising civicrmCustomising civicrm
Customising civicrm
 
Top Java Script Frameworks For Mobile App Development
Top Java Script Frameworks For Mobile App DevelopmentTop Java Script Frameworks For Mobile App Development
Top Java Script Frameworks For Mobile App Development
 
Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016Kế hoạch thi HK2 2015-2016
Kế hoạch thi HK2 2015-2016
 
Cim creative innovation management- 3.2014
Cim creative innovation management- 3.2014Cim creative innovation management- 3.2014
Cim creative innovation management- 3.2014
 
Frontend Frameworks and Drupal
Frontend Frameworks and DrupalFrontend Frameworks and Drupal
Frontend Frameworks and Drupal
 
A Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScriptA Dynamic Analysis Framework for Front-end JavaScript
A Dynamic Analysis Framework for Front-end JavaScript
 
How to choose a framework
How to choose a frameworkHow to choose a framework
How to choose a framework
 
Choosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for DevelopmentChoosing Javascript Libraries to Adopt for Development
Choosing Javascript Libraries to Adopt for Development
 
The State of Front End Web Development 2011
The State of Front End Web Development 2011The State of Front End Web Development 2011
The State of Front End Web Development 2011
 
React vs Angular2
React vs Angular2React vs Angular2
React vs Angular2
 
Modern Front-End Development
Modern Front-End DevelopmentModern Front-End Development
Modern Front-End Development
 
ReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparisonReactJS vs AngularJS - Head to Head comparison
ReactJS vs AngularJS - Head to Head comparison
 
Professional Front End Development
Professional Front End DevelopmentProfessional Front End Development
Professional Front End Development
 
Client Vs. Server Rendering
Client Vs. Server RenderingClient Vs. Server Rendering
Client Vs. Server Rendering
 
AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)AngularJS in Production (CTO Forum)
AngularJS in Production (CTO Forum)
 
Deloitte disruption ahead IBM Watson
Deloitte disruption ahead IBM WatsonDeloitte disruption ahead IBM Watson
Deloitte disruption ahead IBM Watson
 
Flex Framework Smackdown
Flex Framework SmackdownFlex Framework Smackdown
Flex Framework Smackdown
 
Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.Compiler vs Interpreter-Compiler design ppt.
Compiler vs Interpreter-Compiler design ppt.
 
NTBT #1 "Client-Side JavaScript"
NTBT #1 "Client-Side JavaScript"NTBT #1 "Client-Side JavaScript"
NTBT #1 "Client-Side JavaScript"
 

Similar a Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, and Backbone

Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015TryBloc
 
Bloc Online Bootcamp: UX Design Immersive
Bloc Online Bootcamp: UX Design ImmersiveBloc Online Bootcamp: UX Design Immersive
Bloc Online Bootcamp: UX Design ImmersiveTryBloc
 
En Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into IndustryEn Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into IndustryDoreen Hakimi
 
A Day at the Troubleshooting Range: Persistence in Finding Assistance
A Day at the Troubleshooting Range: Persistence in Finding AssistanceA Day at the Troubleshooting Range: Persistence in Finding Assistance
A Day at the Troubleshooting Range: Persistence in Finding AssistanceLambda Solutions
 
What is the price of open source
What is the price of open sourceWhat is the price of open source
What is the price of open sourceJachym Cepicky
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklistDavid Bain
 
Why Drupal Is Not a Word Processor
Why Drupal Is Not a Word ProcessorWhy Drupal Is Not a Word Processor
Why Drupal Is Not a Word ProcessorCaroline Roberts
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering PrimerGeorg Buske
 
Collaborativet Tools
Collaborativet ToolsCollaborativet Tools
Collaborativet Toolststephens
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanDrew Malone
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMProduct School
 
We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeDocker, Inc.
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceAll Things Open
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
How Do You Know if Your Project Is Any Good?
How Do You Know if Your Project Is Any Good?How Do You Know if Your Project Is Any Good?
How Do You Know if Your Project Is Any Good?All Things Open
 

Similar a Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, and Backbone (20)

Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015Bloc's Full Stack Web Development Info Session, April 2015
Bloc's Full Stack Web Development Info Session, April 2015
 
Bloc Online Bootcamp: UX Design Immersive
Bloc Online Bootcamp: UX Design ImmersiveBloc Online Bootcamp: UX Design Immersive
Bloc Online Bootcamp: UX Design Immersive
 
En Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into IndustryEn Route To Industry: Tips on Transferring from College into Industry
En Route To Industry: Tips on Transferring from College into Industry
 
A Day at the Troubleshooting Range: Persistence in Finding Assistance
A Day at the Troubleshooting Range: Persistence in Finding AssistanceA Day at the Troubleshooting Range: Persistence in Finding Assistance
A Day at the Troubleshooting Range: Persistence in Finding Assistance
 
What is the price of open source
What is the price of open sourceWhat is the price of open source
What is the price of open source
 
Gsoc2012 checklist
Gsoc2012 checklistGsoc2012 checklist
Gsoc2012 checklist
 
Why Drupal Is Not a Word Processor
Why Drupal Is Not a Word ProcessorWhy Drupal Is Not a Word Processor
Why Drupal Is Not a Word Processor
 
Software Engineering Primer
Software Engineering PrimerSoftware Engineering Primer
Software Engineering Primer
 
Collaborativet Tools
Collaborativet ToolsCollaborativet Tools
Collaborativet Tools
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
 
Let's talk FOSS!
Let's talk FOSS!Let's talk FOSS!
Let's talk FOSS!
 
How to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PMHow to Manage Open Source Product by Github Sr. PM
How to Manage Open Source Product by Github Sr. PM
 
We Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps CodeWe Need to Talk: How Communication Helps Code
We Need to Talk: How Communication Helps Code
 
Tf bawa
Tf bawaTf bawa
Tf bawa
 
Tf bawa
Tf bawaTf bawa
Tf bawa
 
LET'S TALK ANDROID Dev
LET'S TALK ANDROID DevLET'S TALK ANDROID Dev
LET'S TALK ANDROID Dev
 
Overcoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open SourceOvercoming the Fear of Contributing to Open Source
Overcoming the Fear of Contributing to Open Source
 
Open Source in Real Life
Open Source in Real LifeOpen Source in Real Life
Open Source in Real Life
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
How Do You Know if Your Project Is Any Good?
How Do You Know if Your Project Is Any Good?How Do You Know if Your Project Is Any Good?
How Do You Know if Your Project Is Any Good?
 

Último

Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxKartikeyaDwivedi3
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the weldingMuhammadUzairLiaqat
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AIabhishek36461
 
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
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleAlluxio, Inc.
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionDr.Costas Sachpazis
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx959SahilShah
 
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
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girlsssuser7cb4ff
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)Dr SOUNDIRARAJ N
 
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
 
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
 
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
 
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
 

Último (20)

Concrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptxConcrete Mix Design - IS 10262-2019 - .pptx
Concrete Mix Design - IS 10262-2019 - .pptx
 
welding defects observed during the welding
welding defects observed during the weldingwelding defects observed during the welding
welding defects observed during the welding
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
Past, Present and Future of Generative AI
Past, Present and Future of Generative AIPast, Present and Future of Generative AI
Past, Present and Future of Generative AI
 
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
 
Correctly Loading Incremental Data at Scale
Correctly Loading Incremental Data at ScaleCorrectly Loading Incremental Data at Scale
Correctly Loading Incremental Data at Scale
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective IntroductionSachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
Sachpazis Costas: Geotechnical Engineering: A student's Perspective Introduction
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
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
 
Application of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptxApplication of Residue Theorem to evaluate real integrations.pptx
Application of Residue Theorem to evaluate real integrations.pptx
 
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
 
Call Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call GirlsCall Girls Narol 7397865700 Independent Call Girls
Call Girls Narol 7397865700 Independent Call Girls
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
UNIT III ANALOG ELECTRONICS (BASIC ELECTRONICS)
 
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
 
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
 
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
 
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)
 

Beginner's Guide to Frontend Development: Comparing Angular, React, Ember, and Backbone

  • 1. The Evolution of Frontend Christian Schlensker Joe Lipper
  • 2. Why you should listen to us ● Christian ○ 10 years of experience, previously: Pinchit, TAG ● Joe ○ Bloc Frontend Course Director, previously: freelance developer, co- founder of BrandSlip, Bloc Alum
  • 3. Agenda ● Brief history of web development ● Lay of the Land & Explain Buzz Words ● Compare 4 Advanced Frontend frameworks ● Bloc’s Frontend syllabus & philosophy
  • 4. Things evolve, they don’t change overnight
  • 5. Buzz Words Explained One of the biggest challenges for beginners is understanding how things fit together: ● HTML - the wood frame of the house ● CSS - paint, bricks, carpet ● JavaScript - the electrical system, plumbing, and the electrician and plumber going around adding and fixing things ● MVC - Model / View / Controller - a way of thinking about complex web apps. ● AJAX - Dynamically update web pages without refreshing ● jQuery - a library of functions that can be used to make JavaScript code simpler. Now ubiquitous on the web. Ultimately used to make web apps interactive. What about these: ● HTML vs. HTML5 ● CSS vs. CSS3 Commonly confused: ● Java vs. JavaScript ● Sass vs. SaaS
  • 6. Web 1.0 ● Hypertext Markup Language (HTML) ● Static ● Pages ● 1990s and before ● Released, but not widespread: ○ Javascript ○ CSS ● Netscape and IE
  • 7. Web 2.0 ● Cascading Style Sheets (CSS) ○ released in 96, not widespread until later ● Dynamic HTML (DHTML) ○ Use Javascript and CSS to manipulate HTML elements ● Rudimentary interactivity ○ Drag and Drop ○ Slow animations ● Examples ○ Amazon ○ Wikipedia ○ YouTube
  • 8. Web 2.0 ● Browsers evolve + diversify ○ Opera (1994) ○ IE (1995) ○ Safari (2001) ○ Firefox (2002) ○ Chrome (2008) ● All different!
  • 10. A JavaScript Library: jQuery (2006) ● What is a Library? A package of pre-written code that allows you to do complex things ● Using this standard library across websites enabled developers to add cross-browser compatibility quickly ● Helps a LOT, but not 100% ● The basis for many current-generation frameworks
  • 11. Today ● Javascript a “mature language” ○ Tools ○ Best practices ○ communities ○ open source ● CSS3 ● HTML5 ● Desktop & Mobile Browsers ● Examples: Modern Gmail, Google Docs,
  • 13. What is a framework? ● Problems that frameworks try to solve: ○ Applications were hard to organize ○ Code becomes ludicrously complex & messy ○ Hard to collaborate because no standard way of doing things ○ Messy, complex code is difficult to reason about
  • 14. Now Let’s Look at all these languages, libraries and frameworks again, but from the point of view of a beginner starting today: What do you need to know, when should you know it? Beginner Intermediate Advanced Scenario Finished Codecademy Piece together an MVP Get a Developer Job Languages HTML, CSS, and JavaScript jQuery, Bootstrap / Foundation, Rails or some other application framework Frontend Frameworks: AngularJS, BackboneJS, EmberJS, or ReactJS Concepts Webpage structure, Styling, Javascript Variables, If Statements, Loops, Arrays CRUD, REST, Working with APIs Object Oriented Programming, MVC, Test Driven Development, Single-Page-Applications
  • 15. What makes a framework good for beginners ● Conventions over Configuration ● Strong tools for code organization ● Reusable Components ● Large community / lots of tutorials
  • 16. Today ● Desktop-like applications possible ● Major Frameworks ○ BackboneJS ○ EmberJS ○ ReactJS ○ AngularJS
  • 17.
  • 18. BackboneJS ● Pros ○ easy to get started quickly ○ very lightweight and minimal ○ lots of tutorials ● Cons ○ declining in popularity ○ not as advanced as other frameworks for web apps ○ does not give you everything you need ● Verdict ○ Not great for beginners ● Hulu, Airbnb, Pinterest, Pandora
  • 19. EmberJS ● Pros ○ Convention over Configuration ○ Data binding integration ○ holistic ○ sophisticated data management ● Cons: ○ requires more setup than Angular ○ takes time to learn the conventions ○ “the ember way” doesn’t suit all apps ○ mainly for single page applications ● Verdict for Beginners: ○ Good option to look at ● Companies: Square, Groupon, LivingSocial, Zendesk
  • 20. ReactJS ● Pros: ○ Gaining popularity quickly ○ Created by FB - open sourced it less than a year ago ○ Primarily used for data binding ○ “The V in MVC” ○ Great for building rich User Interfaces ● Con: ○ Very new means fewer resources and smaller community ○ requires lots of 3rd party code integration (not holistic) ● Verdict: ○ Not recommended for beginners
  • 21. AngularJS ● Pros ○ Easiest to set up ○ Google-backed project ○ hired the contributors to continue working on Angular ○ Organization with “Components” ■ Small, separated functionality ■ App becomes greater than sum of the parts ■ Reusable ○ Testable ○ Vibrant community ○ Large library of third party code ● Cons ○ difficult vocabulary ○ advanced features can be difficult to learn ● Companies: YouTube, Wired.com ● Verdict: (we’re biased) Good for beginners
  • 22. Advice for Beginners We chose AngularJS as the Advanced Framework we wanted to teach beginners ● AngularJS has one of the more vibrant communities ● Has a more-shallow learning curve than others ● Once you have the depth of understanding in one advanced framework, it’s much easier to pick up another one
  • 23. Bloc Frontend Syllabus Full Syllabus Here Outline: ● Phase I (1st third of course) ○ Set up your Dev Environment, command line, github, Heroku ○ Set up back end using NodeJS starter-app ○ Intro to HTML, CSS, Javascript ○ Intermediate languages: jQuery, Sass ○ Launch your first web-app: your own version of Spotify ○ Advanced Front End Frameworks: Intro to AngularJS ○ Re-build your Spotify app using AngularJS ● Phase II (two thirds of course) ○ Choose & build 4 web apps from a menu of options ○ Each project builds upon what you’ve learned and introduces new concepts ○ Goal is to build many real apps “notches in your belt” ○ Capstone: Design, Build, Test, and Launch your Capstone App
  • 24. FAQs What’s your refund policy? If Bloc isn't the right fit for you after all, you can un-enroll at any time. Bloc is backed by a Real Results Guarantee that’s real simple: if you aren’t getting value, we don’t get paid. Un-enroll in the first week for a full refund. Un-enroll later, and get a pro-rated refund based on the number of days you've spent in the program. Do you offer flexible payment options? Yup. You can pay your tuition up-front, or pay in 3 or 6 monthly installments. The tuition is the same no matter which plan you choose. What if I want to switch mentors? No problem. Mentors consistently get stellar ratings from their students, and it's very rare that a student asks to switch mentors. That said, say the word and we'll make it happen. What is the time commitment? We designed Bloc to be a structured, immersive program that still fits into your life. No need to relocate or quit your job. For the 12-Week Program, we expect at least 30 hours a week. For the 24-Week Program, we expect 15 hours a week. We understand learning to become a developer or designer is a huge commitment, and that this may require some late nights and weekends. Rest assured, we’ll be there to support you the entire way through. Our flexible online approach means you decide when and where works best for you. What if I fall sick or can't keep up? This is a big commitment, and we expect you to put in the necessary hours. That said, we know that life happens. When it does, reach out to Karen and we'll figure out how to help you together, and make sure you still get the most out of your time at Bloc. In the case of extreme circumstances, you can freeze your apprenticeship temporarily. You should let Karen know immediately if you need this option. We’ll save your progress, and when you are ready you’ll pick-up where you left off. We can’t guarantee you’ll be able to continue with the same mentor, but we want to make this option available to you if need it.