fend hbook

123

description

fend hbook

Transcript of fend hbook

Page 1: fend hbook
Page 2: fend hbook

0

1

2

2.1

2.2

2.3

2.4

2.5

2.6

2.7

2.8

2.9

2.10

3

3.1

3.1.1

3.1.2

3.1.3

3.1.4

3.1.5

3.1.6

3.1.7

3.1.8

3.1.9

3.1.10

3.1.11

3.1.12

3.1.13

3.1.14

3.1.15

TableofContentsIntroduction

Whatisafront-enddeveloper?

PartI:Thefront-endpractice

Front-endjobstitles

Commonwebtechemployed

Front-enddevskills

Front-enddevsdevelopfor...

Front-endonateam

Generalistmyth

Front-endinterviewquestions

Front-endjobboards

Front-endsalaries

HowFD'saremade

PartII:Learningfront-enddev

Selfdirectedlearning

Learninternet/web

Learnwebbrowsers

LearnDNS

LearnHTTP/networks

Learnwebhosting

Learngeneralfront-enddev

LearnUI/interactiondesign

LearnHTML&CSS

LearnSEO

LearnJavaScript

Learnwebanimation

LearnDOM,BOM&jQuery

Learnwebfonts

Learnaccessibility

Learnweb/browserAPI's

Front-endHandbook

2

Page 3: fend hbook

3.1.16

3.1.17

3.1.18

3.1.19

3.1.20

3.1.21

3.1.22

3.1.23

3.1.24

3.1.25

3.1.26

3.1.27

3.1.28

3.1.29

3.1.30

3.1.31

3.1.32

3.2

3.2.1

3.3

3.4

4

4.1

4.2

4.3

4.4

4.5

4.6

4.7

4.8

4.9

4.10

4.11

4.12

LearnJSON

Learnstaticsitegenerators

Learnfront-endapparchitecture

LearnInterface/APIdesign

Learnwebdevtools

Learncommandline

Learnnode.js

Learnmoduleloader

Learnpackagemanagers

Learnversioncontrol

Learnbuild&taskautomation

Learnsiteperformanceoptimization

LearnJStesting

Learnheadlessbrowsers

Learnofflinedev

Learnsecurity

Learnmulti-thingdev(e.g.RWD)

Directedlearning

front-endschools,courses,&bootcamps

Front-enddevstolearnfrom

Newsletters,news,&podcasts

PartIII:Front-enddevtools

Generalfront-enddevtools

Doc/APIbrowsingtools

SEOtools

Prototyping&wireframingtools

Diagrammingtools

HTTP/networktools

Codeeditingtools

Browsertools

HTMLtools

CSStools

DOMtools

JavaScripttools

Front-endHandbook

3

Page 4: fend hbook

4.13

4.14

4.15

4.16

4.17

4.18

4.19

4.20

4.21

4.22

4.23

4.24

4.25

4.26

4.27

4.28

4.29

4.30

4.31

4.32

4.33

4.34

4.35

4.36

4.37

Staticsitegeneratorstools

App(desktop,mobile,tabletetc..)tools

Scaffoldingtools

Templatingtools

UIwidgets&componentstools

Datavisualization(e.g.charts)tools

Graphics(e.g.SVG,canvas,webgl)tools

Animationtools

JSONtools

Testingframeworktools

Datastoragetools

Module/packageloadingtools

Module/packagerepo.tools

Web/cloud/statichostingtools

Projectmanagement&codehosting

Collaboration&communicationtools

CMShosted/APItools

BAAS(forfront-enddevs)tools

Offlinetools

Securitytools

Tasking(akabuild)tools

Deploymenttools

Site/appmonitoringtools

JSerrormonitoringtools

Performancetools

Front-endHandbook

4

Page 5: fend hbook

Front-endDeveloperHandbookWrittenbyCodyLindleysponsoredby—FrontendMasters

Thisisaguidethatanyonecouldusetolearnaboutthepracticeoffront-enddevelopment.Itbroadlyoutlinesanddiscussesthepracticeoffront-endengineering:howtolearnitandwhattoolsareusedwhenpracticingit.

Itisspecificallywrittenwiththeintentionofbeingaprofessionalresourceforpotentialandcurrentlypracticingfront-enddeveloperstoequipthemselveswithlearningmaterialsanddevelopmenttools.Secondarily,itcanbeusedbymanagers,CTO's,instructors,andheadhunterstogaininsightsintothepracticeoffront-enddevelopment.

Thecontentofthehandbookfavorswebtechnologies(HTML,CSS,DOM,andJavaScript)andthosesolutionsthataredirectlybuiltontopoftheseopentechnologies.Thematerialsreferencedanddiscussedinthebookareeitherbestinclassorthecurrentofferingtoaproblem.

Thebookshouldnotbeconsideredacomprehensiveoutlineofallresourcesavailabletoafront-enddeveloper.Thevalueofthebookistiedupinaterse,focused,andtimelycurationofjustenoughcategoricalinformationsoasnottooverwhelmanyoneonanyoneparticularsubjectmatter.

Theintentionistoreleaseanupdatetothecontentyearly.

Thehandbookisdividedintothreeparts.

PartI:Thefront-endpracticePartonebroadlydescribesthepracticeoffront-endengineering.

PartII:Learningfront-enddevelopmentParttwoidentifiesself-directedanddirectresourcesforlearningtobecomeafront-enddeveloper.

PartIII:Front-enddevelopmenttoolsPartthreebrieflyexplainsandidentifiestoolsofthetrade.

Front-endHandbook

5Introduction

Page 6: fend hbook

downloada.pdf,.epub,or.mobifilefrom:

https://www.gitbook.com/book/frontendmasters/front-end-handbook/detailscontributecontent,suggestions,andfixesongithub:

https://github.com/FrontendMasters/front-end-handbook

Front-endHandbook

6Introduction

Page 7: fend hbook

Whatisafront-enddeveloper?Afront-enddeveloperarchitectsanddevelopswebsitesandapplicationsusingwebtechnologies(i.e.HTML,CSS,DOM,andJavaScript),whichrunonthewebplatformoractascompilationinputfornon-webplatformenvironments(i.e.NativeScript).

imagesource:https://www.upwork.com/hiring/development/front-end-developer/

Typically,apersonentersintothefieldoffront-enddevelopmentbylearningtodevelopHTML,CSS,andJScode,whichrunsinawebbrowser,headlessbrowser,webview,orascompilationinputforanativeruntimeenvironment.Thefourruntimesscenariosareexplainedbelow.

Awebbrowserissoftwareusedtoretrieve,present,andtraverseinformationontheWWW.Typically,browsersrunonadesktop,laptop,tablet,orphone,butasoflateabrowsercanbefoundonjustaboutanything(i.eonafridge,incars,etc...).

Themostcommonwebbrowsersare:

ChromeInternetExplorerFirefoxSafari

Headlessbrowsersareawebbrowserwithoutagraphicaluserinterfacethatcanbecontrolledfromacommandlineinterfaceforthepurposeofwebpageautomation(e.g.functionaltesting,scraping,unittestingetc..).Thinkofheadlessbrowsersasabrowserthatyoucanrunfromthecommandlinethatcanretrieveandtraversewebpages.

Themostcommonheadlessbrowsersare:

PhantomJSslimerjs

Front-endHandbook

7Whatisafront-enddeveloper?

Page 8: fend hbook

trifleJSWebviewsareusedbyanativeOStorunwebpages.Thinkofawebviewlikeaniframeorasingletabfromawebbrowserthatisembeddedinanativeapplicationrunningonadevice.

Themostcommonsolutionsforwebviewdevelopmentare:

Cordova(typicallyfornativephone/tabletapps)NW.js(typicallyusedfordesktopapps)Electron(typicallyusedfordesktopapps)

Eventually,whatislearnedfromwebbrowserdevelopmentcanbeusedbyfront-enddeveloperstocraftcodeforenvironmentsthatarenotfueledbyabrowserengine.Asoflate,developmentenvironmentsarebeingdreamedupthatusewebtechnologies(e.g.CSSandJavaScript),withoutwebengines,tocreatetrulynativeapplications.

Someexamplesoftheseenvironmentsare:

NativeScriptReactNative

Front-endHandbook

8Whatisafront-enddeveloper?

Page 9: fend hbook

PartI.Thefront-endpracticePartonebroadlydescribesthepracticeoffront-endengineering.

Front-endHandbook

9PartI:Thefront-endpractice

Page 10: fend hbook

Front-endjobstitlesBelowisalistanddescriptionofvariousfront-endjobtitles.Thecommon,ormostused(i.e.generic),titleforafront-enddeveloperis,"front-enddeveloper"or"front-endengineer".Notethatanyjobthatcontainstheword"front-end","client-side","webUI","HTML","CSS",or"JavaScript"typicallyinfersthatapersonhassomedegreeofHTML,CSS,DOM,andJavaScriptprofessionalknowhow.

Front-endDeveloper/Engineer(akaFront-endWebDeveloper/Engineer,Client-sideDeveloper/Engineer,Front-endSoftwareDeveloper/EngineerorUIEngineer)

ThegenericjobtitlethatdescribesadeveloperwhoisskilledtosomedegreeatHTML,CSS,DOM,andJavaScriptandimplementingthesetechnologiesonthewebplatform.

CSS/HTMLDeveloper

Thefront-endjobtitlethatdescribesadeveloperwhoisskilledatHTMLandCSS,excludingJavaScriptandApplicationknowhow.

Front-endJavaScript(optionally...Application)Developer

Whentheword"JavaScriptApplication"isincludedinthejobtitle,thiswilldenotethatthedevelopershouldbeanadvancedJavaScriptdeveloperpossessingadvancedprogramming,softwaredevelopment,andapplicationdevelopmentskills(i.ewillhavesolidexperiencebuildingfront-endapplications).

Front-endWebDesigner

Whentheword"Designer"isincludedinthejobtitle,thiswilldenotethatthedesignerwillpossesfront-endskills(i.e.HTML&CSS)butalsoprofessionaldesign(VisualDesignandInteractionDesign)skills.

Web/Front-endUserInterface(akaUI)Developer/Engineer

Front-endHandbook

10Front-endjobstitles

Page 11: fend hbook

Whentheword"Interface"or"UI"isincludedinthejobtitle,thiswilldenotethatthedevelopershouldpossesinteractiondesignskillsinadditiontofront-endskills.

Mobile/TabletFront-endDeveloper

Whentheword"Mobile"or"Tablet"isincludedinthejobtitle,thiswilldenotethatthedeveloperhasexperiencedevelopingfront-endsthatrunonmobileortabletdevices(eithernativelyoronthewebplatformi.e.inabrowser).

Front-endSEOExpert

Whentheword"SEO"isincludedinthejobtitle,thiswilldenotethatthedeveloperhasextensiveexperiencecraftingfront-endtechnologiestowardsanSEOstrategy.

Front-endAccessibilityExpert

Whentheword"Acessibility"isincludedinthejobtitle,thiswilldenotethatthedeveloperhasextensiveexperiencecraftingfront-endtechnologiesthatsupportaccessibilityrequirementsandstandards.

Front-endDev.Ops

Whentheword"DevOps"isincludedinthejobtitle,thiswilldenotethatthedeveloperhasextensiveexperiencewithsoftwaredevelopmentpracticespertainingtocollaboration,integration,deployment,automation,andmeasurement.

Front-endTesting/QA

Whentheword"Testing"or"QA"isincludedinthejobtitle,thiswilldenotethatthedeveloperhasextensiveexperiencetestingandmanagingsoftwarethatinvolvesunittesting,functionaltesting,usertesting,andA/Btesting.

Notethatifyoucomeacrossthe"FullStack"orthegeneric"WebDeveloper"termsinjobtitlesthesewordsmaybeusedtobyanemployertodescribearolethatisresponsibleforallaspectsofweb/appdevelopmenti.e.bothfront-end(potentiallyincludingdesign)andback-

Front-endHandbook

11Front-endjobstitles

Page 12: fend hbook

end.

Front-endHandbook

12Front-endjobstitles

Page 13: fend hbook

Webtechnologiesemployedbyfront-enddevelopers

imagesource:http://www.2n2media.com/compare-front-end-development-and-back-end-development

Thefollowingwebtechnologiesareemployedbyfront-enddevelopers:

HyperTextMarkupLanguage(akaHTML)CascadingStyleSheets(akaCSS)DocumentObjectModel(akaDOM)JavaScriptProgrammingLanguage(aka:ECMAScript6,ES6,JavaScript2015)WebAPI's(akaHTML5andfriendsorBrowserAPI's)HypertextTransferProtocol(akaHTTP)UniformResourceLocator's(akaURL)JavaScriptObjectNotation(akaJSON)WebContentAccessibilityGuidelines(akaWCAG)&AccessibleRichInternetApplications(akaARIA)

Thesetechnologiesaredefinedbelowwiththerelevantdocumentationandspecifications.Foracomprehensivelistofallwebrelatedspecificationshavealookatplatform.html5.org.

HyperTextMarkupLanguage(akaHTML)

HyperTextMarkupLanguage,commonlyreferredtoasHTML,isthestandardmarkuplanguageusedtocreatewebpages.WebbrowserscanreadHTMLfilesandrenderthemintovisibleoraudiblewebpages.HTMLdescribesthestructureofawebsitesemanticallyalongwithcuesforpresentation,makingitamarkuplanguage,ratherthanaprogramminglanguage.-wikipedia.org

Front-endHandbook

13Commonwebtechemployed

Page 14: fend hbook

Mostrelevantspecifications/documentation:

HTML5fromW3C:5thmajorrevisionofthecorelanguageoftheWorldWideWebTheelementsofHTMLfromtheLivingStandardTheHTMLSyntaxfromtheLivingStandardAllW3CHTMLSpecHTMLelementreferenceHTMLattributereferenceGlobalattributes

CascadingStyleSheets(akaCSS)

CascadingStyleSheets(CSS)isastylesheetlanguageusedfordescribingthelookandformattingofadocumentwritteninamarkuplanguage.AlthoughmostoftenusedtochangethestyleofwebpagesanduserinterfaceswritteninHTMLandXHTML,thelanguagecanbeappliedtoanykindofXMLdocument,includingplainXML,SVGandXUL.AlongwithHTMLandJavaScript,CSSisacornerstonetechnologyusedbymostwebsitestocreatevisuallyengagingwebpages,userinterfacesforwebapplications,anduserinterfacesformanymobileapplications.-wikipedia.org

Mostrelevantspecifications/documentation:

CascadingStyleSheetsLevel2Revision2(CSS2.2)SpecificationSelectorsLevel3AllW3CCSSSpecificationsCSSreference

DocumentObjectModel(akaDOM)

TheDocumentObjectModel(DOM)isacross-platformandlanguage-independentconventionforrepresentingandinteractingwithobjectsinHTML,XHTML,andXMLdocuments.Thenodesofeverydocumentareorganizedinatreestructure,calledtheDOMtree.ObjectsintheDOMtreemaybeaddressedandmanipulatedbyusingmethodsontheobjects.ThepublicinterfaceofaDOMisspecifiedinitsapplicationprogramminginterface(API).-wikipedia.org

Mostrelevantspecifications/documentation:

W3CDOM4DOMLivingStandardDocumentObjectModel(DOM)Level3EventsSpecification

JavaScriptProgrammingLanguage(aka:ECMAScript6,ES6,JavaScript2015)

Front-endHandbook

14Commonwebtechemployed

Page 15: fend hbook

JavaScriptisahighlevel,dynamic,untyped,andinterpretedprogramminglanguage.IthasbeenstandardizedintheECMAScriptlanguagespecification.AlongsideHTMLandCSS,itisoneofthethreeessentialtechnologiesofWorldWideWebcontentproduction;themajorityofwebsitesemployitanditissupportedbyallmodernwebbrowserswithoutplug-ins.JavaScriptisprototype-basedwithfirst-classfunctions,makingitamulti-paradigmlanguage,supportingobject-oriented,imperative,andfunctionalprogrammingstyles.IthasanAPIforworkingwithtext,arrays,datesandregularexpressions,butdoesnotincludeanyI/O,suchasnetworking,storageorgraphicsfacilities,relyingfortheseuponthehostenvironmentinwhichitisembedded.-wikipedia.org

Mostrelevantspecifications/documentation:

ECMAScript®2015LanguageSpecification

WebAPI's(akaHTML5andfriends)

WhenwritingcodefortheWebusingJavaScript,thereareagreatmanyAPIsavailable.Belowisalistofalltheinterfaces(thatis,typesofobjects)thatyoumaybeabletousewhiledevelopingyourWebapporsite.-Mozilla

Mostrelevantdocumentation:

WebAPIInterfaces

HypertextTransferProtocol(akaHTTP)

TheHypertextTransferProtocol(HTTP)isanapplicationprotocolfordistributed,collaborative,hypermediainformationsystems.HTTPisthefoundationofdatacommunicationfortheWorldWideWeb.-wikipedia.org

Mostrelevantspecifications:

HypertextTransferProtocol--HTTP/1.1HypertextTransferProtocolversion2draft-ietf-httpbis-http2-16

UniformResourceLocators(akaURL)

Auniformresourcelocator(URL)(alsocalledawebaddress)isareferencetoaresourcethatspecifiesthelocationoftheresourceonacomputernetworkandamechanismforretrievingit.AURLisaspecifictypeofuniformresourceidentifier(URI),[3]althoughmanypeopleusethetwotermsinterchangeably.AURLimpliesthemeanstoaccessanindicatedresource,whichisnottrueofeveryURI.[4][5]URLsoccurmostcommonlytoreferencewebpages(http),butarealsousedforfiletransfer(ftp),email(mailto),databaseaccess(JDBC),andmanyotherapplications.-wikipedia.org

Front-endHandbook

15Commonwebtechemployed

Page 16: fend hbook

Mostrelevantspecifications:

UniformResourceLocators(URL)URLLivingStandard

JavaScriptObjectNotation(akaJSON)

JSON,sometimesJavaScriptObjectNotation,isanopenstandardformatthatuseshuman-readabletexttotransmitdataobjectsconsistingofattribute–valuepairs.Itistheprimarydataformatusedforasynchronousbrowser/servercommunication(AJAJ),largelyreplacingXML(usedbyAJAX).AlthoughoriginallyderivedfromtheJavaScriptscriptinglanguage,JSONisalanguage-independentdataformat.CodeforparsingandgeneratingJSONdataisreadilyavailableinmanyprogramminglanguages.TheJSONformatwasoriginallyspecifiedbyDouglasCrockford.Itiscurrentlydescribedbytwocompetingstandards,RFC7159andECMA-404.TheECMAstandardisminimal,describingonlytheallowedgrammarsyntax,whereastheRFCalsoprovidessomesemanticandsecurityconsiderations.TheofficialInternetmediatypeforJSONisapplication/json.TheJSONfilenameextensionis.json.-wikipedia.org

Mostrelevantspecifications:

IntroducingJSONTheJSONDataInterchangeFormatJSONAPI

WebContentAccessibilityGuidelines(akaWCAG)&AccessibleRichInternetApplications(akaARIA)

Accessibilityreferstothedesignofproducts,devices,services,orenvironmentsforpeoplewithdisabilities.Theconceptofaccessibledesignensuresboth“directaccess”(i.e.unassisted)and"indirectaccess"meaningcompatibilitywithaperson'sassistivetechnology(forexample,computerscreenreaders).-wikipedia.org

WebAccessibilityInitiative(WAI)WebContentAccessibilityGuidelines(WCAG)CurrentStatusAccessibleRichInternetApplications(WAI-ARIA)CurrentStatus

Front-endHandbook

16Commonwebtechemployed

Page 17: fend hbook

Front-enddevskills

imagesource:http://blog.naustud.io/2015/06/baseline-for-modern-front-end-developers.html

BasictoadvancedHTML,CSS,DOM,JavaScript,HTTP/URL,andbrowserskillsareassumedforanytypeoffront-enddeveloper.

BeyondHTML,CSS,DOM,JavaScript,HTTP/URL,andbrowserdevelopment,afront-enddevelopercouldbeskilledinoneofthefollowing:

Contentmanagementsystems(akaCMS)Node.jsCross-browsertestingCross-platformtestingUnitTestingCross-devicetestingAccessibility/WAI-ARIASearchEngineOptimization(akaSEO)InteractionorUserInterfacedesignUserExperienceUsabilityE-commerceSystemsPortalSystemsWireframingCSSlayout/GridsDOMmanipulation(e.g.jQuery)MobileWebPerformance

Front-endHandbook

17Front-enddevskills

Page 18: fend hbook

LoadTestingPerformanceTestingProgressiveEnhancement/GracefulDegradationVersionControl(e.g.GIT)MVC/MVVM/MV*FunctionalProgrammingDataFormats(e.g.JSON,XML)DataAPI's(e.gRestfulAPI)WebFontEmbeddingScalableVectorGraphics(akaSVG)RegularExpressionsContentStrategyMicrodata/MicroformatsTaskRunners,BuildTools,ProcessAutomationToolsResponsiveWebDesignObjectOrientedProgrammingApplicationArchitectureModulesDependencyManagersPackageManagersJavaScriptAnimationCSSAnimationCharts/GraphsUIwidgetsCodeQualityTestingCodeCoverageTestingCodeComplexityAnalysisIntegrationTestingCommandLine/CLITemplatingStrategiesTemplatingEnginesSinglePageApplicationsXHRRequests(akaAJAX)Web/BrowserSecurityHTMLSemanticsBrowserDeveloperTools

Front-endHandbook

18Front-enddevskills

Page 19: fend hbook

Front-enddevelopersdevelopfor...Afront-enddevelopercraftsHTML,CSS,andJSthatrunsonthewebplatform(e.g.awebbrowser)ononeofthefollowingoperatingsystems(akaOS's):

WindowsWindowsPhoneOSXiOSAndroidUbuntu(orsomeflavorofLinux)Chromium

Theseoperatingsystemstypicallyrunononeormoreofthefollowingdevices:

DesktopcomputerLaptop/NetbookcomputerMobilephoneTabletTVWatchThings(i.e.anythingyoucanimagine,car,refrigerator,lights,thermostatetc..)

Front-endHandbook

19Front-enddevsdevelopfor...

Page 20: fend hbook

imagesource:https://ams-ix.net/newsitems/87

Generallyspeaking,front-endtechnologiescanrunontheaforementionedoperatingsystemsanddevicesusingthefollowingruntimescenarios:

Awebbrowser(examples:Chrome,IE,Safari,Firefox)runningonanOS.Aheadlessbrowser(examplesphantomJS)drivenfromaCLIrunningonanOS.AWebView/browsertab(thinkiframe)embeddedwithinanativeapplicationasaruntimewithbridgetonativeAPI's.WebViewapplicationstypicallycontainaUIconstructedfromwebtechnologies.(i.e.HTML,CSS,andJS).(examples:ApacheCordova,NW.js,Electron)AnativeapplicationbuiltfromwebtechthatisinterpretedatruntimewithabridgetonativeAPI's.TheUIwillmakeuseofnativeUIparts(e.g.iOSnativecontrols)notwebtechnologies.(examples:NativeScript,ReactNative)

Front-endHandbook

20Front-enddevsdevelopfor...

Page 21: fend hbook

Front-endonateamAfront-enddeveloperistypicallyonlyoneplayeronateamthatdesignsanddevelopswebsites,webapplications,ornativeapplicationsrunningonwebtechnologies.(Note:Adeveloperwhobuildseverythingwasoncecalleda"webmaster"butasoflatetheserareandmythicaldevelopersarecalled"full-stackdevelopers").

Abarebonesteamforbuildingprofessionalsitesorsoftwareonthewebwillminimallycontainthefollowingroles.

VisualDesigner(i.e.fonts,colors,spacing,emotion,visualsconcepts&themes)UI/InteractionDesigner/InformationArchitect(i.e.wireframes,specifyingalluserinteractionsandUIfunctionality,structuringinformation)Front-endDeveloper(i.e.writescodethatrunsinclient/ondevice)Back-endDeveloper(i.e.writescodethatrunsonserver)

Therolesareorderedaccordingtooverlappingskills.Afront-enddeveloperwilltypicallyhaveagoodhandleonUI/Interactiondesignaswellasback-enddevelopment.Itisnotuncommonforteammemberstofillmorethanonerolebytakingontheresponsibilitiesofanover-lappingrole.

Itisassumedthattheteamisbeingdirectedbyaprojectleadofsomekindofproductowner(i.e.stakeholder,projectmanager,projectleadetc...)

Alargerwebteammightincludethefollowingrolesnotshownabove:

VisualDesignersInterfaceDesign/InteractionDesigner/InformationDesignSEOstrategistFront-endDeveloperDevOpsEngineersBack-endDeveloperAPIDeveloperDatabaseAdministratorQAEngineer/Testers

Front-endHandbook

21Front-endonateam

Page 22: fend hbook

Generalistmyth

imagesource:http://andyshora.com/full-stack-developers.html

Therolesrequiredtodesignanddevelopawebsolutionrequireadeepskillsetandvastexperienceintheareaofvisualdesign,UI/interactiondesign,front-enddevelopment,andback-enddevelopment.Anyperson(akageneralistorfull-stackdeveloper/designer)whocanfilloneormoreofthese4rolesataprofessionallevelisarareexceptiontotherule.

Pragmatically,youshouldseektobe,orseektohire,anexpertinoneoftheseroles.Thosewhoclaimtooperateatanexpertlevelatoneormoreoftheserolesareexceptionallyrareandmorethanlikelymythical,givenmodernstacks.

Front-endHandbook

22Generalistmyth

Page 23: fend hbook

imagesource:http://andyshora.com/full-stack-developers.html

Front-endHandbook

23Generalistmyth

Page 24: fend hbook

Front-endinterviewsQuestionsyoumaygetasked:

Front-endJobInterviewQuestionsInterviewQuestionsforfront-end-Developer10InterviewQuestionsEveryJavaScriptDeveloperShouldKnowFrontEndQuizJavascriptQuiz

Questionsyouask:

Anopensourcelistofdeveloperquestionstoaskprospectiveemployers

Front-endHandbook

24Front-endinterviewquestions

Page 25: fend hbook

Front-endjobboardsAplethoraoftechnicaljoblistingoutletsexist.Thenarrowedlistbelowarecurrentlythemostrelevantresourcesforfindingaspecificfront-endposition/career.

frontenddeveloperjob.comauthenticjobs.comweworkremotely.comjobs.github.comcareers.stackoverflow.comangularjobs.comjobs.emberjs.comjobs.jsninja.comcss-tricks.com/jobsglassdoor.com

Front-endHandbook

25Front-endjobboards

Page 26: fend hbook

Front-endsalariesThenationalaverageintheU.Sforafront-enddeveloperis$75k.

Anexperiencedfront-enddeveloperpotentiallycanlivewherevertheywant(i.e.workremotely)andmakeover$150kayear(visitangel.co,sign-up,reviewfront-endjobsover$150k).

imagesource:http://intersog.com/blog/chicago-tech-salary-guide-2015/

Front-endHandbook

26Front-endsalaries

Page 27: fend hbook

Howfront-enddevelopersaremade

imagesource:http://cdn.skilledup.com/wp-content/uploads/2014/11/life-of-front-end-developer-infographic-Secondary.jpg

Howexactlydoesonebecomeafront-enddeveloper?Well,it'scomplicated.Stilltodayyoucan'tgotocollegeandexpecttograduatewithadegreeinfront-endengineering.And,Irarelyhearoformeetfront-enddeveloperswhosufferedthroughwhatislikelyadeprecatedcomputersciencedegreeorgraphicdesigndegreetoendupwritingHTML,CSS,andJavaScriptprofessionally.Infact,mostofthepeopleworkingonthefront-end,eventoday,generallyseemtobeselftaughtandnottraditionallytrainedasaprogrammer.Whyisthisthecase?

Afront-enddeveloperisnotafocusedvisualdesigneroraninteractiondesigner.Designschoolisnotexactlytheplacetohonefront-endskills.Afront-enddeveloperisnotexactlyatraditionallytrainedcomputersciencegraduateeither.Focusingoneitherdoesn'tprepareapersonforfront-enddevelopment.And,infact,followingthetraditionalpathsforeitherinthehighereducationsystemsofAmerica(i.e.College)canderailapersonfrompotentiallyfindingadoorwayintoapracticewhereactualexperienceisking.Today,ifyouwanttobeafront-enddeveloper,youteachyourselforyoutakewhatislikelyanonaccreditedprogram,course,bootcamp,orclass.

Front-endHandbook

27HowFD'saremade

Page 28: fend hbook

Afront-endengineercraftstheskeletonthattheuserinterfacerestsupon.Theymust,attimes,careasmuchabouttheinteractiondesignastheydoabouttheunderlyingcodethatcreatestheUIinteractions.Therefore,manyinpracticetodaydonotcometofront-endengineeringwithprogrammingskills,but,instead,fromtheotherdirection.Thatis,front-enddevelopmentseemstobefilledwithmoredesignertypesturneddeveloperthanprogrammertypesturnedfront-enddeveloper.Ofcourse,asJavaScripthasgrownup,sohasthedesirebymoretraditionallytrainedprogrammerstobringtheirknowledgetothefront-endpractice.Ifyouarenotaware,front-enddevelopershavenotalwaysbeenconsideredby"real"programmersas,well,programmers.Buttimesareachanging.

Withallofthatsaid,Ibelievethatthepathtoacareerasafront-enddeveloperisverymuchanunknownprocess.WhatIcansayisthattobecomeafront-endengineeronemustknowanduseHTML,CSS,DOM,andJavaScriptatahighlevelwithoutignoringinteractiondesignortraditionalprogrammingknowhow.Infact,frommyexperience,thebestfront-enddevelopersoftenhaveamasteryunderstandingofinteractiondesignandprogramming,butfromthecontextofthewebplatform(i.e.browsers,HTML,CSS,DOM,andJavaScript).Andforwhateverreason,thisknowledgeisoftenfoundnotgiven.Thatistosay,front-endengineeringstillseemsverymuchtobeapracticemadeupofselftaughtpeople,asopposedtoafieldthatcorrespondsdirectlytoaneducationalfocusfromanorganizedandaccreditedhigherlearningsituation.

Ifyouweretosetouttodaytobecomeafront-enddeveloperIwouldlooselystrivetofollowtheprocessoutlinedbelow.Theprocessassumesyouareyourownbestteacher.

1. Learn,roughly,howthewebworks.Makesureyouknowthe"what"and"where"ofDomains,DNS,URL's,HTTP,networks,browsers,servers/hosting,databases,JSON,dataAPI's,HTML,CSS,DOM,andJavaScript.Thegoalistomakesureyoulooselyknowhowitallworkstogetherandexactlywhateachpartisdoing.Focusonthehighleveloutlinesforfront-endarchitectures.Startwithsimplewebpagesandbrieflystudynativewebapplications(akaSPA's).

2. LearnHTML,CSS,Accessibility,andSEO.3. LearnthefundamentalsofUIdesignpatterns,interactiondesign,userexperience

design,andusability.4. Learnthefundamentalsofprogramming5. LearnJavaScript6. LearnJSONanddataAPI's7. LearnCLI/commandline8. Learnthepracticeofsoftwareengineering(i.e.Applicationdesign/architecture,

templates,Git,testing,monitoring,automating,codequality,developmentmethodologies).

9. Getopinionatedandcustomizeyourtoolboxwithwhatevermakessensetoyourbrain.10. LearnNode.js

Front-endHandbook

28HowFD'saremade

Page 29: fend hbook

Whereyouactuallystopintheprocessiswhatwillseparateafront-endHTML/CSSdeveloperfromanexpertlevelfront-endapplication/JavaScriptdeveloper.

Ashortwordofadviceonlearning.Learntheactualunderlyingtechnologies,beforelearningabstractions.Don'tlearnjQuery,learntheDOM.Don'tlearnSASS,learnCSS.Don'tlearnHAML,learnHTML.Don'tlearncoffeeScript,learnJavaScript.Don'tlearnHandlebars,learnJavaScriptES6templates.Don'tjustuseBootstrap,learnUIpatterns.Whengettingyourstart,youshouldfearmostthingsthatconcealcomplexity.Abstractsinthewronghandscangivetheappearanceofadvancedskills,whileallthetimehidingthefactthatadeveloperhasaninferiorunderstandingofthebasicsorunderlyingconcepts.

Therestofthisbookcontainspointareadertotheresourcesandtoolstofollowthesuggestedprocess.Itisassumedthatyouarenotonlylearning,butalsodoingasyoulearnandinvestigatetools.Somesuggestonlydoing.Whileotherssuggestonlylearningaboutdoing.Isuggestyoufindamixofboththatmatcheshowyourbrainworksanddothat.But,forsure,itisamix!So,don'tjustreadaboutit,doit.Learn,do.Learn,do.Repeatindefinitelybecausethingschangefast.Thisiswhylearningthefundamentals,andnotabstractions,aresoimportant.

Ishouldmentionthatlatelyalotofnon-accreditedfront-endcodeschools/bootcampshaveemerged.Theseavenuesofbecomingafront-enddeveloperareteacherdirectedinclassroom(virtualandphysical)courses,whichfollowamoretraditionalstyleoflearningfromanofficialinstructor(i.e.syllabus,test,quizzes,projects,teamprojects,gradesetc..).Ihavemoretosayabouttheseinstitutionsinthedirectlearningsectionofthishandbook.Inbrief,thisistheweb,everythingyouneedtolearnisonthewebforthetaking(costinglittletonothing).However,ifyouneedsomeonetotellyouhowtotakewhatisactuallyfree,andholdyouaccountableforlearningit,youmightconsideranorganizedcourse.Otherwise,Iamnotawareofanyotherprofessionthatispracticallyfreeforthetakingwithaninternetconnectionandaburningdesireforknowledge.

IfyouwanttogetstartedimmediatelyI'dsuggestthefollowinggeneraloverviewsofthepracticeoffront-enddevelopment:

FrontendGuidelines[read]Beingawebdeveloper[read]IsobarFront-endCodeStandards[read]WebFundamentals[read]Front-endCurriculum[read]freeCodeCamp[interact]PlanningaFront-endJSApplication[watch]So,YouWanttobeaFront-EndEngineer[watch]FrontEndWebDevelopmentCareerKickstart[watch][$]FrontEndWebDevelopment:GetStarted[watch][$]

Front-endHandbook

29HowFD'saremade

Page 30: fend hbook

Front-EndWebDevelopmentQuickStartWithHTML5,CSS,andJavaScript[watch][$]IntroductiontoWebDevelopment[watch][$]FoundationsofFront-EndWebDevelopment[watch][$]LeanFront-EndEngineering[watch][$]ABaselineforFront-End[JS]Developers:2015[read]LearnFrontEndWebDevelopment[watch][$]Front-EndDevMastery[watch][$]Front-EndWebDeveloperNanodegree[watch][$]

Front-endHandbook

30HowFD'saremade

Page 31: fend hbook

PartII:LearningParttwoidentifiesself-directed(i.e.atyourownpacewhenyouwant)anddirected(i.e.formalclassroomspecifictimesanddates)resourcesforlearningtobecomeafront-enddeveloper.

Notethatjustbecausealearningresourceislisted,oracategoryoflearningisdocumented,Iamnotsuggestingthatafront-enddeveloperlearneverything.Thatwouldbeabsurd.Chooseyourownsliceofexpertisewithintheprofession.I'mprovidingthepossibilitiesofwhatcouldbemasteredinthefield.

Front-endHandbook

31PartII:Learningfront-enddev

Page 32: fend hbook

SelfdirectedlearningThissectionfocusesonfreeandpaidresources(videotraining,booksetc..)thatanindividualcanusetodirecttheirownlearningprocessandcareerasafront-enddeveloper.

Theresourcesincludefreematerialandpaidmaterial.Paidmaterialwillbeindicatedwith[$].

Theauthorbelievesthatanyonewiththerightdeterminationanddedicationcanteachthemselveshowtobeafront-enddeveloper.Allthatisrequiredisacomputerconnectedtothewebandsomecashforbooksandvideotraining.

Belowareafewvideolearningoutlets(techfocused)Igenerallyrecommendpullingcontentfrom:

FrontendMasterspluralsight.com[careful,qualityvaries]tutsplus.comlynda.com[careful,qualityvaries]treehousemijingocodeschool.comlaracastseventedmind.comegghead.iocodecademy.comKhanAcademyTagtreeUdacity

Front-endHandbook

32Selfdirectedlearning

Page 33: fend hbook

Learninternet/webTheInternetisaglobalsystemofinterconnectedcomputernetworksthatusetheInternetprotocolsuite(TCP/IP)tolinkseveralbilliondevicesworldwide.Itisanetworkofnetworksthatconsistsofmillionsofprivate,public,academic,business,andgovernmentnetworksoflocaltoglobalscope,linkedbyabroadarrayofelectronic,wireless,andopticalnetworkingtechnologies.TheInternetcarriesanextensiverangeofinformationresourcesandservices,suchastheinter-linkedhypertextdocumentsandapplicationsoftheWorldWideWeb(WWW),electronicmail,telephony,andpeer-to-peernetworksforfilesharing.-wikipedia

HowtheInternetWorks[watch]WHATISTHEINTERNET?or,"YouSayTomato,ISayTCP/IP"[read]HowdoestheInternetwork[read]HowdoestheInternetWork?[read]HowtheInternetWorksin5Minutes[watch]HowTheWebWorks[watch][$]

Front-endHandbook

33Learninternet/web

Page 34: fend hbook

LearnwebbrowsersAwebbrowser(commonlyreferredtoasabrowser)isasoftwareapplicationforretrieving,presenting,andtraversinginformationresourcesontheWorldWideWeb.AninformationresourceisidentifiedbyaUniformResourceIdentifier(URI/URL)andmaybeawebpage,image,videoorotherpieceofcontent.Hyperlinkspresentinresourcesenableuserseasilytonavigatetheirbrowserstorelatedresources.AlthoughbrowsersareprimarilyintendedtousetheWorldWideWeb,theycanalsobeusedtoaccessinformationprovidedbywebserversinprivatenetworksorfilesinfilesystems.-Wikipedia

Themostcommonlyusedbrowsers(onanydevice)are:

1. Chrome(engine:Blink+V8)2. Firefox(engine:Gecko+SpiderMonkey)3. InternetExplorer(engine:Trident+Chakra)4. Safari(engine:Webkit+SquirrelFish)

imagesource:http://gs.statcounter.com/#all-browser_version_partially_combined-ww-monthly-201408-201508-bar

Evolutionofbrowsers&webtechnologies(i.e.API's)

www.evolutionoftheweb.com[read]

Front-endHandbook

34Learnwebbrowsers

Page 35: fend hbook

Timelineofwebbrowsers[read]

Themostcommonlyusedheadlessbrowserare:

PhantomJS(engine:Webkit+SquirrelFish)slimerjs(engine:Gecko+SpiderMonkey)TrifleJS(engine:Trident+Chakra)

Howbrowserswork

20ThingsILearnedAboutBrowsersandtheWeb[read]HowBrowsersWork:Behindthescenesofmodernwebbrowsers[read]FastCSS:HowBrowsersLayOutWebPages[read]

imagesource:http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/

Optimizingforbrowsers:

WebsitePerformanceOptimization[watch]BrowserRenderingOptimization[watch]

Browsersecurity

BrowserSecurityHandbook[read]HTML5SecurityCheatsheet[read]FrontendSecurity[watch]SecurityforWebDevelopers:UsingJavaScript,HTML,andCSS[read][$]TheTangledWeb:AGuidetoSecuringModernWebApplicationsread

Comparingbrowsers

Front-endHandbook

35Learnwebbrowsers

Page 36: fend hbook

Comparisonofwebbrowsers[read]

Developingforbrowsers

Inthepast,afront-enddeveloperspentalotoftimemakingcodeworkinseveraldifferentbrowsers.Thiswasonceabiggerissuethanitistoday,unlessyouhavetowritecodeforolderbrowsers(i.e.<IE8).Thisstillremainsanissuetoday,justnotonethatdemandssomuchofthefront-enddeveloperstimeandbraincycles.Thefactofthematterismodernabstractions(e.g.jQuery,pre-processors,transpilers)havedoneawaywithalotofbrowserinconsistencyissues.

Evergreenbrowsers

Thelatestversionsofbrowsersareconsideredevergreenbrowsers.Thatis,intheorytheyaresupposetoautomaticallyupdatethemselvessilentlywithoutpromptingtheuser.Thismovetowardsselfupdatingbrowsershasbeeninreactiontotheslowprocessofeliminatingolderbrowsers.Olderbrowsersarecomplicatedtodevelopforgiventheirdeviationsfromthecommonalitiesbetweenmodernbrowsers(i.e.newspecificationsandthisrateofchange).

Pickingabrowser

Asoftoday,mostfront-enddevelopersuseChromeandthetoolsavailabletoadeveloper,"ChromeDevTools".However,allofthebrowsersofferaflavorofdevelopertools.Pickingonetousefordevelopmentisasubjectivematter.Themoreimportantissueisknowingwhichbrowsersyouhavetosupportandtestingineachasyoudevelop.Selectwhicheverbrowsermakessensetoyourbrainandgetsthejobdone.IsuggestusingChromesimplybecausethedevelopertoolsareconsistentlyimprovingandatthistimecontainthemostrobustfeatures.

Browserhacks

browserhacks.com[read]

Front-endHandbook

36Learnwebbrowsers

Page 37: fend hbook

LearnDomainNameSystem(akaDNS)TheDomainNameSystem(DNS)isahierarchicaldistributednamingsystemforcomputers,services,oranyresourceconnectedtotheInternetoraprivatenetwork.Itassociatesvariousinformationwithdomainnamesassignedtoeachoftheparticipatingentities.Mostprominently,ittranslatesdomainnames,whichcanbeeasilymemorizedbyhumans,tothenumericalIPaddressesneededforthepurposeofcomputerservicesanddevicesworldwide.TheDomainNameSystemisanessentialcomponentofthefunctionalityofmostInternetservicesbecauseitistheInternet'sprimarydirectoryservice.-wikipedia

imagesource:http://www.digital-digest.com/blog/DVDGuy/wp-content/uploads/2011/11/how_dns_works.jpg

DNSExplained[watch]HowDNSworks[read]

Front-endHandbook

37LearnDNS

Page 38: fend hbook

LearnHTTP/networks(includingCORS&WebSockets)

HTTPTheHypertextTransferProtocol(HTTP)isanapplicationprotocolfordistributed,collaborative,hypermediainformationsystems.HTTPisthefoundationofdatacommunicationfortheWorldWideWeb.-Wikipedia

CORSCross-originresourcesharing(CORS)isamechanismthatallowsrestrictedresources(e.g.fonts)onawebpagetoberequestedfromanotherdomainoutsidethedomainfromwhichtheresourceoriginated.-Wikipedia

WebSocketsWebSocketisaprotocolprovidingfull-duplexcommunicationchannelsoverasingleTCPconnection.TheWebSocketprotocolwasstandardizedbytheIETFasRFC6455in2011,andtheWebSocketAPIinWebIDLisbeingstandardizedbytheW3C.-Wikipedia

HTTP

HTTP:TheProtocolEveryWebDeveloperMustKnow-Part1[read]HTTP:TheProtocolEveryWebDeveloperMustKnow-Part2[read]HTTPFundamentals[watch][$]HTTPSuccinctly[read]HighPerformanceBrowserNetworking:Whateverywebdevelopershouldknowaboutnetworkingandwebperformance[read]

CORS

HTTPStatusCodesin60Seconds[watch]HTTPaccesscontrol(CORS)[read]CORSinAction[read][$]

WebSockets

WebSocket:LightweightClient-ServerCommunications[read][$]TheWebSocketProtocol[read]ConnecttheWebWithWebSockets[watch]

Front-endHandbook

38LearnHTTP/networks

Page 39: fend hbook

LearnwebhostingAwebhostingserviceisatypeofInternethostingservicethatallowsindividualsandorganizationstomaketheirwebsiteaccessibleviatheWorldWideWeb.Webhostsarecompaniesthatprovidespaceonaserverownedorleasedforusebyclients,aswellasprovidingInternetconnectivity,typicallyinadatacenter.WebhostscanalsoprovidedatacenterspaceandconnectivitytotheInternetforotherserverslocatedintheirdatacenter,calledcolocation,alsoknownasHousinginLatinAmericaorFrance.-wikipedia

imagesource:http://www.alphaelite.com.sg/sitev2/images/stories/webhostdemo.jpg

Generallearning:

WebHostingBeginnerGuide[read]WebHostingForDummies[read][$]UltimateGuidetoWebHosting[read]

Front-endHandbook

39Learnwebhosting

Page 40: fend hbook

Learngeneralfront-enddevelopmentGenerallearning:

FrontendGuidelines[read]Beingawebdeveloper[read]IsobarFront-endCodeStandards[read]WebFundamentals[read]Front-endCurriculum[read]freeCodeCamp[interact]PlanningaFront-endJSApplication[watch]So,YouWanttobeaFront-EndEngineer[watch]FrontEndWebDevelopmentCareerKickstart[watch][$]FrontEndWebDevelopment:GetStarted[watch][$]Front-EndWebDevelopmentQuickStartWithHTML5,CSS,andJavaScript[watch][$]IntroductiontoWebDevelopment[watch][$]FoundationsofFront-EndWebDevelopment[watch][$]LeanFront-EndEngineering[watch][$]ABaselineforFront-End[JS]Developers:2015[read]LearnFrontEndWebDevelopment[watch][$]Front-EndDevMastery[watch][$]Front-EndWebDeveloperNanodegree[watch][$]

Generalfront-endnewsletters,newsoutlets,&podcasts:

shoptalkshow.comfrontendfront.comwebtoolsweekly.comO'ReillyWebPlatformRadarTheWdbPlatformPodcastTheWebAheadTheBigWebShowFreshBrewedFrontendMobileWebWeeklyOpenWebPlatformDailyDigestFRONT-ENDDEVweekly

Front-endHandbook

40Learngeneralfront-enddev

Page 41: fend hbook

Learnuserinterface/interactiondesignUserinterfacedesignUserinterfacedesign(UI)oruserinterfaceengineeringisthedesignofuserinterfacesformachinesandsoftware,suchascomputers,homeappliances,mobiledevices,andotherelectronicdevices,withthefocusonmaximizingtheuserexperience.Thegoalofuserinterfacedesignistomaketheuser'sinteractionassimpleandefficientaspossible,intermsofaccomplishingusergoals(user-centereddesign).-wikipedia

InteractiondesignpatternAdesignpatternisaformalwayofdocumentingasolutiontoacommondesignproblem.TheideawasintroducedbythearchitectChristopherAlexanderforuseinurbanplanningandbuildingarchitecture,andhasbeenadaptedforvariousotherdisciplines,includingteachingandpedagogy,developmentorganizationandprocess,andsoftwarearchitectureanddesign.-wikipedia

Userexperiencedesign-UserExperienceDesign(UXDorUEDorXD)istheprocessofenhancingusersatisfactionbyimprovingtheusability,accessibility,andpleasureprovidedintheinteractionbetweentheuserandtheproduct.Userexperiencedesignencompassestraditionalhuman–computerinteraction(HCI)design,andextendsitbyaddressingallaspectsofaproductorserviceasperceivedbyusers.-wikipedia

Human–computerinteractionHuman–computerinteraction(HCI)researchesthedesignanduseofcomputertechnology,focusingparticularlyontheinterfacesbetweenpeople(users)andcomputers.ResearchersinthefieldofHCIbothobservethewaysinwhichhumansinteractwithcomputersanddesigntechnologiesthatletshumansinteractwithcomputersinnovelways.-wikipedia

MinimallyI'dsuggestreadingthefollowingcanonicaltextsonthemattersoonecanbuildproperuserinterfaces.

DesigningInterfaces[read][$]AboutFace:TheEssentialsofInteractionDesign[read][$]Don'tMakeMeThink,Revisited:ACommonSenseApproachtoWebUsability[read][$]

Front-endHandbook

41LearnUI/interactiondesign

Page 42: fend hbook

LearnHTML&CSSHTML-HyperTextMarkupLanguage,commonlyreferredtoasHTML,isthestandardmarkuplanguageusedtocreatewebpages.[1]WebbrowserscanreadHTMLfilesandrenderthemintovisibleoraudiblewebpages.HTMLdescribesthestructureofawebsitesemanticallyalongwithcuesforpresentation,makingitamarkuplanguage,ratherthanaprogramminglanguage.-wikipedia.org

CSS-CascadingStyleSheets(CSS)isastylesheetlanguageusedfordescribingthelookandformattingofadocumentwritteninamarkuplanguage.AlthoughmostoftenusedtochangethestyleofwebpagesanduserinterfaceswritteninHTMLandXHTML,thelanguagecanbeappliedtoanykindofXMLdocument,includingplainXML,SVGandXUL.AlongwithHTMLandJavaScript,CSSisacornerstonetechnologyusedbymostwebsitestocreatevisuallyengagingwebpages,userinterfacesforwebapplications,anduserinterfacesformanymobileapplications.-wikipedia.org

Likentoconstructingahouse,onemightconsiderHTMLtheframingandCSStobethepainting&decorating.

Generallearning:

codecademy.comHTML&CSS[interact]IntrotoHTML/CSS:Makingwebpages[watch]LearntoCodeHTML&CSS[read]LearnCSSLayout[read]FrontEndWebDevelopment:GetStarted[watch][$]HTMLandCSS:DesignandBuildWebsites[read][$]Front-EndWebDevelopmentQuickStartWithHTML5,CSS,andJavaScript[watch][$]HTMLMastery:Semantics,Standards,andStyling[read][$]CSSPositioning[watch][$]HTMLDocumentFlow[watch][$]IntroductiontoHTML5andCSS3[watch][$]AbsoluteCenteringinCSS[read]UnderstandingtheCSSBoxModel[watch]SolidHTMLFormStructure[watch]SemanticHTML:HowtoStructureWebPages[watch]

Mastering:

Front-endHandbook

42LearnHTML&CSS

Page 43: fend hbook

CSSSelectorsfromCSS4tillCSS1[read]CSSDiner[interact]CSS3In-Depth[watch][$]atozcss.com/[watch]ACompleteGuidetoFlexbox[read]

References/docs:

htmlelement.infoMDNCSSreferenceMDNHTMLelementreferencecssvalues.com/CSSTRIGGERS...AGAMEOFLAYOUT,PAINT,ANDCOMPOSITEHTMLattributereference

Glossary:

HTMLGlossaryProgrammingreferenceforHTMLelementsCSSGlossary-ProgrammingreferenceforCSScoveringComments,Properties,andSelectors

Standards/specifications:

HTML5fromW3C:5thmajorrevisionofthecorelanguageoftheWorldWideWebTheelementsofHTMLfromtheLivingStandardTheHTMLSyntaxfromtheLivingStandardAllW3CHTMLSpecGlobalattributesCascadingStyleSheetsLevel2Revision2(CSS2.2)SpecificationSelectorsLevel3AllW3CCSSSpecifications

ArchitectingCSS:

oocss[read]SMACSS[read][$]SMACSS[watch][$]AtomicDesign[read]

Authoringconventions:

idiomatic-css[read]Standardsfordevelopingflexible,durable,andsustainableHTMLandCSS[read]cssguidelin.es[read]

Front-endHandbook

43LearnHTML&CSS

Page 44: fend hbook

GoogleHTML/CSSStyleGuide

HTML/CSSnewsletters:

HTML5WeeklyCSSWeekly

Front-endHandbook

44LearnHTML&CSS

Page 45: fend hbook

LearnSearchEngineOptimizationSearchengineoptimization(SEO)istheprocessofaffectingthevisibilityofawebsiteorawebpageinasearchengine'sunpaidresults-oftenreferredtoas"natural,""organic,"or"earned"results.Ingeneral,theearlier(orhigherrankedonthesearchresultspage),andmorefrequentlyasiteappearsinthesearchresultslist,themorevisitorsitwillreceivefromthesearchengine'susers.SEOmaytargetdifferentkindsofsearch,includingimagesearch,localsearch,videosearch,academicsearch,newssearchandindustry-specificverticalsearchengines.-wikipedia

Generallearning:

SEOFundamentalsfromDavidBooth[watch][$]SEOFundamentalsfromPaulWilson[watch][$]SEOforWebDesigners[watch][$]GoogleSearchEngineOptimizationStarterGuide[read]SEOTutorialForBeginners2015[read]

Front-endHandbook

45LearnSEO

Page 46: fend hbook

LearnJavaScriptJavaScriptisahighlevel,dynamic,untyped,andinterpretedprogramminglanguage.IthasbeenstandardizedintheECMAScriptlanguagespecification.AlongsideHTMLandCSS,itisoneofthethreeessentialtechnologiesofWorldWideWebcontentproduction;themajorityofwebsitesemployitanditissupportedbyallmodernwebbrowserswithoutplug-ins.JavaScriptisprototype-basedwithfirst-classfunctions,makingitamulti-paradigmlanguage,supportingobject-oriented,imperative,andfunctionalprogrammingstyles.IthasanAPIforworkingwithtext,arrays,datesandregularexpressions,butdoesnotincludeanyI/O,suchasnetworking,storageorgraphicsfacilities,relyingfortheseuponthehostenvironmentinwhichitisembedded.-wikipedia.org

Generallearning:

codecademy.comJavaScript[interact]ProfessionalJavaScriptforWebDevelopers[read][$]JavaScriptEnlightenment[read]ThePrinciplesofObject-OrientedJavaScript[read][$]SpeakingJavaScript[read]YouDon'tKnowJS:Up&Going[read]UnderstandingECMAScript6[read]JavaScriptPatterns[read][$]JS.Next:ES6[watch][$]CrockfordonJavaScript-Volume1:TheEarlyYears[watch]CrockfordonJavaScript-Chapter2:AndThenThereWasJavaScript[watch]CrockfordonJavaScript-ActIII:FunctiontheUltimate[watch]CrockfordonJavaScript-EpisodeIV:TheMetamorphosisofAjax[watch]CrockfordonJavaScript-Part5:TheEndofAllThings[watch]CrockfordonJavaScript-Scene6:Loopage[watch]JavaScriptModules[read]

Mastering:

FunctionalJavaScript:IntroducingFunctionalProgrammingwithUnderscore.js[read][$]ECMA-262byDmitrySoshnikov[read]AdvancedJavaScript[watch][$]JavaScripttheGoodParts[watch][$]YouDon'tKnowJS:Scope&Closures[read]

Front-endHandbook

46LearnJavaScript

Page 47: fend hbook

YouDon'tKnowJS:this&ObjectPrototypes[read]YouDon'tKnowJS:Types&Grammar[read]YouDon'tKnowJS:Async&Performance[read]YouDon'tKnowJS:ES6&Beyond[read]EloquentJavaScript[read]Test-DrivenJavaScriptDevelopment[read][$]JavaScriptAllongé[read][$]JavaScriptwithPromises[read][$]HighPerformanceJavaScript(BuildFasterWebApplicationInterfaces)[read][$]JavaScriptRegularExpressionEnlightenment[read]UsingRegularExpressions[watch][$]

References/docs:

MDNJavaScriptreference

Glossary/encyclopedia:

JavaScriptGlossaryTheJavaScriptEncyclopedia

Standards/specifications:

ECMAScript®2015LanguageSpecificationStatus,process,anddocumentsforECMA262

Style:

Node.jsStyleGuidePrinciplesofWritingConsistent,IdiomaticJavaScriptAirbnbJavaScriptStyleGuide

JavaScriptnewsletters,news,&podcasts:

JavascriptJabberJavaScriptWeeklyEchoJSJavaScriptKicksjavascript.comFiveJSJavaScriptLive

Front-endHandbook

47LearnJavaScript

Page 48: fend hbook

LearnwebanimationGenerallearning:

AdventuresinWebAnimations[$][watch]AnimatingWithSnap.svg[$][watch]AnimationinCSS3andHTML5[$][watch]CSSAnimationintheRealWorld[$][watch]FoundationHTML5AnimationwithJavaScript[$][read]WebAnimationusingJavaScript:Develop&Design(DevelopandDesign)[$][read]TheStateOfAnimation2014

Standards/specifications:

WebAnimations

Front-endHandbook

48Learnwebanimation

Page 49: fend hbook

LearnDOM,BOM,&jQueryDOM-TheDocumentObjectModel(DOM)isacross-platformandlanguage-independentconventionforrepresentingandinteractingwithobjectsinHTML,XHTML,andXMLdocuments.Thenodesofeverydocumentareorganizedinatreestructure,calledtheDOMtree.ObjectsintheDOMtreemaybeaddressedandmanipulatedbyusingmethodsontheobjects.ThepublicinterfaceofaDOMisspecifiedinitsapplicationprogramminginterface(API).-wikipedia.org

BOM-TheBrowserObjectModel(BOM)isabrowser-specificconventionreferringtoalltheobjectsexposedbythewebbrowser.UnliketheDocumentObjectModel,thereisnostandardforimplementationandnostrictdefinition,sobrowservendorsarefreetoimplementtheBOMinanywaytheywish.-wikipedia.org

jQuery-jQueryisacross-platformJavaScriptlibrarydesignedtosimplifytheclient-sidescriptingofHTML.jQueryisthemostpopularJavaScriptlibraryinusetoday,withinstallationon65%ofthetop10millionhighest-traffickedsitesontheWeb.jQueryisfree,open-sourcesoftwarelicensedundertheMITLicense.-wikipedia.org

Theidealpath,butcertainlythemostdifficult,wouldbetofirstlearnJavaScript,thentheDOM,thenjQuery.However,dowhatmakessensetoyourbrain.Mostfront-enddeveloperslearnaboutJavaScriptandthenDOMbywayoffirstlearningjQuery.Whateverpathyoutake,justmakesureJavaScript,thenDOM,orjQuerydon'tbecomeablackbox.

Generallearning:

TheDocumentObjectModel[read]codecademy.comjQuery[watch]jQueryEnlightenment[read]HTML/JS:Makingwebpagesinteractive[watch]HTML/JS:MakingwebpagesinteractivewithjQuery[watch]

Mastering:

DOMEnlightenment[read][$]orreadonlineforfreeAdvancedJSFundamentalstojQuery&PureDOMScripting[watch][$]AdvancEDDOMScripting:DynamicWebDesignTechniques[read][$]FixingCommonjQueryBugs[watch][$]jQueryTipsandTricks[watch][$]jQuery-freeJavaScript[watch][$]DouglasCrockford:AnInconvenientAPI-TheTheoryoftheDOM[watch]

Front-endHandbook

49LearnDOM,BOM&jQuery

Page 50: fend hbook

References/docs:

MDNDocumentObjectModelMDNEventreferencejQueryDocsMDNBrowserObjectModelmsdnDocumentObjectModel(DOM)

Standards/specifications:

W3CDOM4DOMLivingStandardDocumentObjectModel(DOM)Level3EventsSpecificationDocumentObjectModel(DOM)TechnicalReports

Front-endHandbook

50LearnDOM,BOM&jQuery

Page 51: fend hbook

Learnwebfonts&iconsWebtypographyreferstotheuseoffontsontheWorldWideWeb.WhenHTMLwasfirstcreated,fontfacesandstyleswerecontrolledexclusivelybythesettingsofeachWebbrowser.TherewasnomechanismforindividualWebpagestocontrolfontdisplayuntilNetscapeintroducedthe<font>tagin1995,whichwasthenstandardizedintheHTML3.2specification.However,thefontspecifiedbythetaghadtobeinstalledontheuser'scomputerorafallbackfont,suchasabrowser'sdefaultsans-seriformonospacefont,wouldbeused.ThefirstCascadingStyleSheetsspecificationwaspublishedin1996andprovidedthesamecapabilities.

TheCSS2specificationwasreleasedin1998andattemptedtoimprovethefontselectionprocessbyaddingfontmatching,synthesisanddownload.Thesetechniquesdidnotgainmuchuse,andwereremovedintheCSS2.1specification.However,InternetExploreraddedsupportforthefontdownloadingfeatureinversion4.0,releasedin1997.[1]FontdownloadingwaslaterincludedintheCSS3fontsmodule,andhassincebeenimplementedinSafari3.1,Opera10andMozillaFirefox3.5.ThishassubsequentlyincreasedinterestinWebtypography,aswellastheusageoffontdownloading.-wikipedia

Generallearning:

TypographyfortheWeb[watch][$]Learn-web-fonts[read]Quickguidetowebfontsvia@font-face[read]ResponsiveTypography[watch][$]BeautifulWebTypeAshowcaseofthebesttypefacesfromtheGooglewebfontsdirectory.[read]

Front-endHandbook

51Learnwebfonts

Page 52: fend hbook

LearnaccessibilityAccessibilityreferstothedesignofproducts,devices,services,orenvironmentsforpeoplewithdisabilities.Theconceptofaccessibledesignensuresboth“directaccess”(i.e.unassisted)and"indirectaccess"meaningcompatibilitywithaperson'sassistivetechnology(forexample,computerscreenreaders).

Accessibilitycanbeviewedasthe"abilitytoaccess"andbenefitfromsomesystemorentity.Theconceptfocusesonenablingaccessforpeoplewithdisabilities,orspecialneeds,orenablingaccessthroughtheuseofassistivetechnology;however,researchanddevelopmentinaccessibilitybringsbenefitstoeveryone.

Accessibilityisnottobeconfusedwithusability,whichistheextenttowhichaproduct(suchasadevice,service,orenvironment)canbeusedbyspecifieduserstoachievespecifiedgoalswitheffectiveness,efficiencyandsatisfactioninaspecifiedcontextofuse.

Accessibilityisstronglyrelatedtouniversaldesignwhichistheprocessofcreatingproductsthatareusablebypeoplewiththewidestpossiblerangeofabilities,operatingwithinthewidestpossiblerangeofsituations.Thisisaboutmakingthingsaccessibletoallpeople(whethertheyhaveadisabilityornot).-wikipedia

Generallearning:

UniversalDesignforWebApplications:WebApplicationsThatReachEveryone[read][$]WebAccessibility:GettingStarted[watch][$]IntroductiontoWebAccessibility[read]AWebforEveryone[read][$]FoundationsofUX:Accessibility[watch][$]IntroductiontoWebAccessibility[watch]

Standards/specifications:

WebAccessibilityInitiative(WAI)WebContentAccessibilityGuidelines(WCAG)CurrentStatusAccessibleRichInternetApplications(WAI-ARIA)CurrentStatus

Front-endHandbook

52Learnaccessibility

Page 53: fend hbook

Learnweb/browserAPI'sTheBOMandtheDOMarenottheonlybrowserAPI'sthataremadeavailableonthewebplatforminsideofbrowsers.EverythingthatisnotspecificallytheDOMorBOM,butaninterfaceforprogrammingthebrowsercouldbeconsideredaweborbrowserAPI(tragicallyinthepastsomeoftheseAPI'shavebeencalledHTML5api'swhichconfusestheirownspecifics/standardizewiththeactualHTML5specificationspecifytheHTML5markuplanguage).NotethatweborbrowserAPI'sdoincludedeviceAPI's(e.g.Navigator.getBattery())thatareavailablethroughthebrowserontabletandphonesdevices.

imagesource:http://www.evolutionoftheweb.com/

Youshouldbeawareofandlearn,whereappropriate,web/browserAPI's.AgoodtooltousetofamiliarizeoneselfwithalloftheseAPI'swouldbetoinvestigatetheHTML5test.comresultsforthe5mostcurrentbrowsers.

Learn:

Front-endHandbook

53Learnweb/browserAPI's

Page 54: fend hbook

DIVEINTOHTML5[read]ProHTML5Programming[read]

Learnaudio:

HTML5Canvas[read]FunWithWebAudio[watch]AddSoundtoYourSiteWithWebAudio[watch]

Learncanvas:

WebAudioAPI[read]Additionally,MDNhasagreatdealofinformationaboutweb/browserAPIs.

MDNWebAPIreferenceMDNWebAPI-listsdeviceaccessAPIsandotherAPIsusefulforapplications.MDNWebAPIsinterfacereference-allinterfaces,arrangedalphabetically.

KeepinmindthatnoteveryAPIisspecifiedbytheW3CorWHATWG.

InadditiontoMDN,youmightfindthefollowingresourceshelpful:

HTML5-overviewplatform.html5.orgTheHTML5JavaScriptAPIIndex

Front-endHandbook

54Learnweb/browserAPI's

Page 55: fend hbook

LearnJSON(JavaScriptObjectNotation)JSON,(canonicallypronouncedsometimesJavaScriptObjectNotation),isanopenstandardformatthatuseshuman-readabletexttotransmitdataobjectsconsistingofattribute–valuepairs.Itistheprimarydataformatusedforasynchronousbrowser/servercommunication(AJAJ),largelyreplacingXML(usedbyAJAX).

AlthoughoriginallyderivedfromtheJavaScriptscriptinglanguage,JSONisalanguage-independentdataformat.CodeforparsingandgeneratingJSONdataisreadilyavailableinmanyprogramminglanguages.

TheJSONformatwasoriginallyspecifiedbyDouglasCrockford.Itiscurrentlydescribedbytwocompetingstandards,RFC7159andECMA-404.TheECMAstandardisminimal,describingonlytheallowedgrammarsyntax,whereastheRFCalsoprovidessomesemanticandsecurityconsiderations.TheofficialInternetmediatypeforJSONisapplication/json.TheJSONfilenameextensionis.json.-wikipedia

Generallearning:

json.com[read]WhatisJSON[watch]IntroductiontoJavaScriptObjectNotation:ATo-the-PointGuidetoJSON[read][$]

References/docs:

json.org/[read]

Standards/specifications:

ECMA-404TheJSONDataInterchangeFormatRFC7159TheJavaScriptObjectNotation(JSON)DataInterchangeFormat

Architecting:

JSONAPI

Front-endHandbook

55LearnJSON

Page 56: fend hbook

LearnstaticsitegeneratorsStaticsitegenerators,typicallywrittenusingserversidecode(i.e.ruby,php,python,nodeJSetc...),producesstaticHTMLfilesfromstatictext/data+templatesthatisindentingtobesentfromaservertotheclientstaticallywithoutadynamicnature.

Generallearning:

StaticSiteGenerators[read]

Front-endHandbook

56Learnstaticsitegenerators

Page 57: fend hbook

Learnfront-endapplicationarchitectureJavaScriptApplicationDesign[read][$]BuildanAppwithReactandAmpersand[watch][$]HumanJavaScript[read]ProgrammingJavaScriptApplications[read]BuildingModernSingle-PageWebApplications[watch][$]OrganizingJavaScriptFunctionality[watch][$]EloquentJavaScript:modules[read]WebUIArchitecture[watch][$]FieldGuidetoWebApplications[read]UIArchitecture[watch][$]Terrific[read]NicholasZakas:ScalableJavaScriptApplicationArchitecture[watch]PatternsForLarge-ScaleJavaScriptApplicationArchitecture[read]Afieldguidetostaticapps[read]

Front-endHandbook

57Learnfront-endapparchitecture

Page 58: fend hbook

LearnInterface/APIdesignData(mostliklyJSON)API's

BuildAPIsYouWon'tHate[$][read]JSONAPI[read]

JavaScriptAPI's

WritingJavaScriptAPIs[read]DesigningBetterJavaScriptAPIs[read]

Front-endHandbook

58LearnInterface/APIdesign

Page 59: fend hbook

LearnwebdevelopertoolsWebdevelopmenttoolsallowwebdeveloperstotestanddebugtheircode.TheyaredifferentfromwebsitebuildersandIDEsinthattheydonotassistinthedirectcreationofawebpage,rathertheyaretoolsusedfortestingtheuserfacinginterfaceofawebsiteorwebapplication.

Webdevelopmenttoolscomeasbrowseradd-onsorbuiltinfeaturesinwebbrowsers.Themostpopularwebbrowserstodaylike,GoogleChrome,Firefox,Opera,InternetExplorer,andSafarihavebuiltintoolstohelpwebdevelopers,andmanyadditionaladd-onscanbefoundintheirrespectiveplugindownloadcenters.

Webdevelopmenttoolsallowdeveloperstoworkwithavarietyofwebtechnologies,includingHTML,CSS,theDOM,JavaScript,andothercomponentsthatarehandledbythewebbrowser.Duetotheincreasingdemandfromwebbrowserstodomorepopularwebbrowsershaveincludedmorefeaturesgearedfordevelopers.-wikipedia

Whilemostbrowserscomeequippedwithwebdevelopertools,theChromedevelopertoolsarecurrentlythemosttalkedaboutandwidelyusedtoolsavailable.

I'dsuggestlearningandusingtheChromewebdevelopertools,simplybecausethebestresourcesforlearningwebdevelopertoolsrevolvesaroundChromeDevTools.

LearnChromewebdevelopertools

ExploreandMasterChromeDevToolsChromeDeveloperTools[watch][$]UsingTheChromeDeveloperTools[watch][$]

Chromewebdevelopertoolsdocs:

Per-PanelDocumentationCommandLineAPIReferenceKeyboard&UIShortcutsReferenceSettings

News/newsletters/podcasts/tips:

DevTips

Front-endHandbook

59Learnwebdevtools

Page 60: fend hbook

LearncommandlineAcommand-lineinterfaceorcommandlanguageinterpreter(CLI),alsoknownascommand-lineuserinterface,consoleuserinterface,andcharacteruserinterface(CUI),isameansofinteractingwithacomputerprogramwheretheuser(orclient)issuescommandstotheprogramintheformofsuccessivelinesoftext(commandlines).-wikipedia

Generallearning:

codecademy:LearntheCommandLine[watch]TheCommandLineCrashCourse[read]MeettheCommandLine[watch][$]LearnEnoughCommandLinetoBeDangerous[read][freeto$]

Mastering:

AdvancedCommandLineTechniques[watch][$]

Front-endHandbook

60Learncommandline

Page 61: fend hbook

Learnnode.jsNode.jsisanopen-source,cross-platformruntimeenvironmentfordevelopingserver-sidewebapplications.Node.jsapplicationsarewritteninJavaScriptandcanberunwithintheNode.jsruntimeonOSX,MicrosoftWindows,Linux,FreeBSD,NonStop,[3]IBMAIX,IBMSystemzandIBMi.ItsworkishostedandsupportedbytheNode.jsFoundation,[4]acollaborativeprojectatLinuxFoundation.[5]

Node.jsprovidesanevent-drivenarchitectureandanon-blockingI/OAPIdesignedtooptimizeanapplication'sthroughputandscalabilityforreal-timewebapplications.ItusesGoogleV8JavaScriptenginetoexecutecode,andalargepercentageofthebasicmodulesarewritteninJavaScript.Node.jscontainsabuilt-inlibrarytoallowapplicationstoactasawebserverwithoutsoftwaresuchasApacheHTTPServer,NginxorIIS.-wikipedia

Generallearning:

IntroductiontoNode.jsfromEventedMind[watch][$]TheArtofNode[read]Node.jsBasics[watch][$]io.jsandNode.jsNext:GettingStarted[watch][$]Learnallthenodes[watch]TheNodeBeginnerBook[read][$]IntroductiontoNode.js[watch][$]Node.jsinPractice[read][$]Nodeschool.io[code]

Front-endHandbook

61Learnnode.js

Page 62: fend hbook

LearnmoduleloadinganddependencymanagementGenerallearning:

CreatingJavaScriptModuleswithBrowserify[watch][$]WebpackFundamentals[watch][$]browserify-handbook[read]ChooseES6modulesToday![read]

References/docs:

browserifysystem.jswebpack

Front-endHandbook

62Learnmoduleloader

Page 63: fend hbook

LearnpackagemanagerApackagemanagerorpackagemanagementsystemisacollectionofsoftwaretoolsthatautomatestheprocessofinstalling,upgrading,configuring,andremovingsoftwarepackagesforacomputer'soperatingsysteminaconsistentmanner.Ittypicallymaintainsadatabaseofsoftwaredependenciesandversioninformationtopreventsoftwaremismatchesandmissingprerequisites.-wikipedia

Generallearning:

BowerFundamentals[watch][$]PackageManagers:AnIntroductoryGuideForTheUninitiatedFront-EndDeveloper[read]UpandRunningwithNPM,theNodePackageManager[watch][$]npmBasics[watch][$]ThenpmBook[read]TheMystical&MagicalSemVerRangesUsedBynpm&Bower[read]

References/docs:

bowerjspm.ionpm

Front-endHandbook

63Learnpackagemanagers

Page 64: fend hbook

LearnversioncontrolAcomponentofsoftwareconfigurationmanagement,versioncontrol,alsoknownasrevisioncontrolorsourcecontrol,isthemanagementofchangestodocuments,computerprograms,largewebsites,andothercollectionsofinformation.Changesareusuallyidentifiedbyanumberorlettercode,termedthe"revisionnumber,""revisionlevel,"orsimply"revision."Forexample,aninitialsetoffilesis"revision1."Whenthefirstchangeismade,theresultingsetis"revision2,"andsoon.Eachrevisionisassociatedwithatimestampandthepersonmakingthechange.Revisionscanbecompared,restored,andwithsometypesoffiles,merged.-wikipedia

ThecurrentmodernsolutionforversioncontrolisGit.Learnit!

Generallearning:

codeschool.com[interact]GitFundamentals[watch][$]GettingGitRight[read]Ry’sGitTutorial[read]ProGit[read]

Mastering:

AdvancedGitTutorials[read]ProGit[read]

References/docs:

https://git-scm.com/doc

Front-endHandbook

64Learnversioncontrol

Page 65: fend hbook

LearnbuildandtaskautomationBuildautomationistheprocessofautomatingthecreationofasoftwarebuildandtheassociatedprocessesincluding:compilingcomputersourcecodeintobinarycode,packagingbinarycode,andrunningautomatedtests.-wikipedia

Generallearning:

JavaScriptBuildAutomationWithGulp.js[watch][$]GettingStartedwithGulp[read][$]RapidGulp[watch][$]LearningGulp-Gettingstartedwiththefontendfactory[read]GulpBasics[watch][$]UsingnpmasaTaskRunner[watch][$]

References/docs:

gulpGulpisgreat.However,youmightonlyneednpmrun.Beforeturningtoadditionalcomplexityinyourapplicationstackaskyourselfifnpmruncandothejob.Ifyouneedmore,useboth.

Read:

GiveGrunttheBoot!AGuidetoUsingnpmasaBuildToolTaskautomationwithnpmrunBuildToolsvsnpmScripts:WhyNotBoth?UsingnpmasabuildsystemforyournextprojectHowtoUsenpmasaBuildTool

Front-endHandbook

65Learnbuild&taskautomation

Page 66: fend hbook

LearnsiteperformanceoptimizationWebperformanceoptimization,WPO,orwebsiteoptimizationisthefieldofknowledgeaboutincreasingthespeedinwhichwebpagesaredownloadedanddisplayedontheuser'swebbrowser.Withtheaverageinternetspeedincreasingglobally,itisfittingforwebsiteadministratorsandwebmasterstoconsiderthetimeittakesforwebsitestorenderforthevisitor.-wikipedia

Generallearning:

WebsitePerformance[watch][$]HighPerformanceWebSites:EssentialKnowledgeforFront-EndEngineers[read][$]EvenFasterWebSites:PerformanceBestPracticesforWebDevelopers[read][$]WebPerformanceDaybookVolume2[read][$]JavaScriptPerformanceRocks[read]PerformanceCalendar[read]PageSpeedInsightsRules[read]WebsitePerformanceOptimization[watch]BrowserRenderingOptimization[watch]UsingWebPageTest[read][$]WebPerformance:TheDefinitiveGuide[read]perf.rocks

Front-endHandbook

66Learnsiteperformanceoptimization

Page 67: fend hbook

LearnJStestingunittesting-Incomputerprogramming,unittestingisasoftwaretestingmethodbywhichindividualunitsofsourcecode,setsofoneormorecomputerprogrammodulestogetherwithassociatedcontroldata,usageprocedures,andoperatingprocedures,aretestedtodeterminewhethertheyarefitforuse.Intuitively,onecanviewaunitasthesmallesttestablepartofanapplication.-Wikipedia

functionaltesting-Functionaltestingisaqualityassurance(QA)processandatypeofblackboxtestingthatbasesitstestcasesonthespecificationsofthesoftwarecomponentundertest.Functionsaretestedbyfeedingtheminputandexaminingtheoutput,andinternalprogramstructureisrarelyconsidered(notlikeinwhite-boxtesting).Functionaltestingusuallydescribeswhatthesystemdoes.-Wikipedia

integrationtesting-Integrationtesting(sometimescalledintegrationandtesting,abbreviatedI&T)isthephaseinsoftwaretestinginwhichindividualsoftwaremodulesarecombinedandtestedasagroup.Itoccursafterunittestingandbeforevalidationtesting.Integrationtestingtakesasitsinputmodulesthathavebeenunittested,groupstheminlargeraggregates,appliestestsdefinedinanintegrationtestplantothoseaggregates,anddeliversasitsoutputtheintegratedsystemreadyforsystemtesting.-wikipedia

Generallearning:

Test-DrivenJavaScriptDevelopment[read][$]TestableJavaScript[read][$]JavaScriptTestingRecipes[read][$]Front-EndFirst:TestingandPrototypingJavaScriptApps[watch][$]Let’sCode:Test-DrivenJavaScript[watch][$]

Front-endHandbook

67LearnJStesting

Page 68: fend hbook

LearnheadlessbrowsersAheadlessbrowserisawebbrowserwithoutagraphicaluserinterface.

Headlessbrowsersprovideautomatedcontrolofawebpageinanenvironmentsimilartopopularwebbrowsers,butareexecutedviaacommandlineinterfaceorusingnetworkcommunication.TheyareparticularlyusefulfortestingwebpagesastheyareabletorenderandunderstandHTMLthesamewayabrowserwould,includingstylingelementssuchaspagelayout,color,fontselectionandexecutionofJavaScriptandAJAXwhichareusuallynotavailablewhenusingothertestingmethods.Googlestatedin2009thatusingaheadlessbrowsercouldhelptheirsearchengineindexcontentfromwebsitesthatuseAJAX.-wikipedia

PhantomJSCookbook[read][$]GettingStartedwithPhantomJS[read][$]RapidPhantomJS[watch][$]PhantomJSforWebAutomation[watch]

Front-endHandbook

68Learnheadlessbrowsers

Page 69: fend hbook

LearnofflinedevelopmentOfflinedevelopment(akaofflinefirst)isanareaofknowledgeanddiscussionarounddevelopmentpracticesfordevicesthatarenotalwaysconnectedtotheInternetorapowersource.

Generallearning:

offlinefirst.org[read]CreatingHTML5OfflineWebApplications[read]OfflineFirst[read]Everythingyouneedtoknowtocreateoffline-firstwebapps.[read]

Front-endHandbook

69Learnofflinedev

Page 70: fend hbook

LearnsecurityBrowserSecurityHandbook[read]HTML5SecurityCheatsheet[read]FrontendSecurity[watch]SecurityforWebDevelopers:UsingJavaScript,HTML,andCSS[read][$]TheTangledWeb:AGuidetoSecuringModernWebApplications[read][$]WebSecurityBasics[read]

Front-endHandbook

70Learnsecurity

Page 71: fend hbook

Learnmulti-thingdevelopment

imagesource:http://bradfrost.com/blog/post/this-is-the-web/

Asiteorapplicationcanrunonawiderangeofcomputers,laptops,tabletsandphones,aswellasahandfulofotherthings(watches,thermostats,fridgesetc...).Howyoudeterminewhatthingsyou'llsupportandhowyouwilldeveloptosupportthosethingsiscalledamulti-thingdevelopmentstrategy.Below,Ilistthemostcommonmulti-thingdevelopmentstrategies.

Front-endHandbook

71Learnmulti-thingdev(e.g.RWD)

Page 72: fend hbook

Buildaresponsive(RWD)website/appforallthings.BuildaRESS(responsivewebdesignwithserver-sidecomponents)website/appforallthings.Buildanadaptive/progressivelyenhancedwebsite/appforallthings.Buildawebsite,webapp,nativeapp,orhybrid-nativeappforeachindividualthingoragroupingofthings.Attempttoretrofitsomethingyouhavealreadybuiltusingbitsandpartsfromstrategies1,2or3.Thiscouldbeassimpleassprinklinginsomescreen-sizeagnosticUIpartsorattemptingtofullysupportotherthingswiththeentireUI.

Generallearning:

AdaptiveWebDesign[read][$]Designingwithprogressiveenhancement[read][$]ResponsiveTypography[watch][$]ResponsiveWebDesign[watch][$]ResponsiveHTMLEmailDesign[watch][$]DesigningMulti-DeviceExperiences:AnEcosystemApproachtoUserExperiencesacrossDevices[read][$]ResponsiveWebDesignFundamentals[watch]ResponsiveImages[watch]MobileWebDevelopment[watch]

Front-endHandbook

72Learnmulti-thingdev(e.g.RWD)

Page 73: fend hbook

DirectedlearningThissectionfocusesondirectedlearningviaschools,courses,programsandbootcamps.

Front-endHandbook

73Directedlearning

Page 74: fend hbook

DirectedlearningThetablebelowcontainsinstructorled,paid,front-endcourses,programs,schools,andbootcamps.

Ifyoucan'taffordadirectededucation,aselfdirectededucationusingscreencasts,books,andarticlesisaviablealternativetolearnfront-enddevelopmentfortheself-drivenindividual.

Front-endHandbook

74front-endschools,courses,&bootcamps

Page 75: fend hbook

company course price onsite remote

IronYard FrontEndEngineering 12,000 multiplelocations

Udacity Front-EndWebDeveloperNanodegree

200monthly

multiplelocations yes

TheNewYorkCode+DesignAcademy FrontEnd101 2,000 NewYork,

NY

PortlandCodeSchool AdvancedFront-endDeveloperTools 2,000 Portland,

OR

BLOC BecomeaFrontendDeveloper 4,999 yes

Thinkful FrontendWebDevelopment

300permonth yes

GeneralAssembly FrontendWebDevelopment 3,500 multiple

locations

HackbrightAcademy Front-EndWebDevelopment 3,000

SanFrancisco,CA

HackerYouFront-endWebDevelopmentImmersive

7,000-7,910

Toronto,Canada

TheFlatironSchool IntroductiontoFront-EndWebDevelopment 3,500 NewYork,

NY

AustinCodingAcademy TheFrontEndTrack

1,490perclass

Austin,TX

Codeup NightFront-EndBootcamp 8,500

SanAntonio,Texas

Betamore Front-endWebDevelopment 8,500 Baltimore,

MD

CodifyAcademy Front-endWebDevelopment 4,000 multiple

locations

DecodeMTL LearnFront-endWebDevelopment 2,500 Montreal,

QC

gr8code Front-EndBootcamp 10,000 Tampa,FL

LearningFuze Part-TimeFront-EndDevelopmentCourse 2,500 Irvine,CA

Front-endHandbook

75front-endschools,courses,&bootcamps

Page 76: fend hbook

Front-enddeveloperstolearnfromThenotionthatyoushouldfollowanindividualtolearnaboutfront-enddevelopmentisslowlybecomingpointless.Theadvancedpractitionersoffront-enddevelopmentgenerateenoughcontentthatyoucansimplyfollowthecommunity/leadersbypayingattentiontothefront-end"news"outlets(viaNewsletters,Newsoutlet,&Podcasts).

Front-endHandbook

76Front-enddevstolearnfrom

Page 77: fend hbook

Front-endnewsletters,newssites,&podcastsGeneralfront-endnewsletters,news,&podcasts:

shoptalkshow.comfrontendfront.comwebtoolsweekly.comO'ReillyWebPlatformRadarTheWdbPlatformPodcastTheWebAheadTheBigWebShowFreshBrewedFrontendMobileWebWeeklyOpenWebPlatformDailyDigestFRONT-ENDDEVweeklyWebDesignWeeklyFront-endNewsin5MinutesTTLViewsourcesWebComponentsWeekly

HTML/CSSnewsletters:

HTML5WeeklyCSSWeekly

JavaScriptnewsletters,news,&podcasts:

JavascriptJabberJavaScriptWeeklyEchoJSJavaScriptKicksjavascript.comFiveJSJavaScriptLive

Front-endHandbook

77Newsletters,news,&podcasts

Page 78: fend hbook

PartIII:ToolsPartthreebrieflyexplainsandidentifiestoolsofthetrade.

Makesureyouunderstandingthecategorythatasetoftoolsfallswithin,beforestudyingthetoolsthemselves.

Notethatjustbecauseatoolislisted,oracategoryoftoolsisdocumented,thisdoesnotequatetoanassertiononmypartthatafront-enddevelopershouldlearnitanduseit.Chooseyourowntoolbox.I'mjustprovidingthecommontoolboxoptions.

Front-endHandbook

78PartIII:Front-enddevtools

Page 79: fend hbook

Generalfront-enddevelopmenttoolsDevelopmenttools:

screensiz.esplacehold.itcodeKitpreprosBrowsersyncish.2.0.Wraith

Onlinecodeeditors:

jsbin.comjsfiddle.netliveweave.comes6fiddle.netcodepen.ioPlunker

Toolsforfindingtools:

stackshare.iojavascripting.combuiltwithmicrojs.comTheToolBoxunheap.comstylesheets.co

Front-endHandbook

79Generalfront-enddevtools

Page 80: fend hbook

Doc/APIbrowsingtoolsToolstobrowsercommondeveloperdocumentsanddeveloperAPIreferences.

devdocs.ioDash[OSX,iOS][$]Velocity[Windows][$]Zeal[Windows,Linux]

Front-endHandbook

80Doc/APIbrowsingtools

Page 81: fend hbook

SEOToolsGoogleWebmastersSearchConsoleVarvySEOtoolKeywordTool

Front-endHandbook

81SEOtools

Page 82: fend hbook

Prototyping&wireframingtoolsCreating:

BalsamiqMockups[$]Justinmind[$]UXPin[freeto$]

Collaboration/presenting:

InVision[freeto$]myBalsamiq[$]conceptboard[freeto$]

Front-endHandbook

82Prototyping&wireframingtools

Page 83: fend hbook

DiagrammingtoolsCacoo[freeto$]gliffy[freeto$]draw.io[freeto$]

Front-endHandbook

83Diagrammingtools

Page 85: fend hbook

LearnCodeEditorsAsourcecodeeditorisatexteditorprogramdesignedspecificallyforeditingsourcecodeofcomputerprogramsbyprogrammers.Itmaybeastandaloneapplicationoritmaybebuiltintoanintegrateddevelopmentenvironment(IDE)orwebbrowser.Sourcecodeeditorsarethemostfundamentalprogrammingtool,asthefundamentaljobofprogrammersistowriteandeditsourcecode.-Wikipedia

Front-endcodecanminimallybeeditedwithasimpletexteditingapplicationlikeNotepadorTextEdit.But,mostfront-endpractitionersuseacodeeditorspecificallydesignforeditingaprogramminglanguage.

Codeeditorscomeinallsortsoftypesandsize,sotospeak.Selectingoneisarathersubjectiveengagement.Chooseone,learnitinsideandout,thengetontolearningHTML,CSS,DOM,andJavasCript.

However,Idostronglybelieve,minimally,acodeeditorshouldhavethefollowingfeatures:

1. Gooddocumentationonhowtousetheeditor2. Report(i.e.hinting/linting/errors)onthecodequalityofHTML,CSS,andJavaScript.3. OffersyntaxhighlightingforHTML,CSS,andJavaScript.4. OffercodecompletionforHTML,CSS,andJavaScript.5. Becustomizablebywayofaplug-inarchitecture6. Haveavailablealargerepositoryofthird-party/communityplug-insthatcanbeusedto

customizetheeditortoyourliking7. Besmall,simple,andnotcoupledtothecode(i.e.notrequiredtoeditedthecode)IpersonallyuseandrecommendSublimeTextwiththefollowingplug-ins.

PackageControlAutoFileNameSublimeLinter

SublimeLinter-jsonSublimeLinter-jshintSublimeLinter-html-tidy

SideBar EnhancementsTerminalBracketHighlighterColorHighlighterCSS3HTMLAttributes

Front-endHandbook

85Codeeditingtools

Page 86: fend hbook

StringEncodeHTML-CSS-JSPrettify

HerearesomeresourcesforlearningSublime:

SublimeProductivity[read][$]SublimeTextPowerUserBook[read][$]SublimeText3FromScratch[watch][$]PerfectWorkflowinSublimeText2[watch][requireslogin,butfree]

IfyouneedafreealternativetoSublime(cost$70)youmightconsideratomorbrackets.

Collaborativeonlinecodeeditorstosharelivecode:

jsbin.com[freeto$]jsfiddle.netliveweave.comes6fiddle.netcodepen.io[freeto$]Plunker

Onlinecodeeditors:

codeanywhere[freeto$]Koding[freeto$]Cloud9[freeto$]

Front-endHandbook

86Codeeditingtools

Page 87: fend hbook

BrowserToolsJSbrowserutilities:

URI.jsplatform.jshistory.jshtml2canvas

GeneralreferencetoolstodetermineifXbrowsersupportsX:

caniuse.comHTML5PleaseHTML5testBrowserscopewebbrowsercompatibility.comiwanttouse.com/PlatformstatusBrowsersupportforbroken/missingimagesBigJS-Compatibility-Tablejscc.info

Browserdevelopment/debugtools:

OperaDragonflySafariWebInspectorFirefoxDeveloperToolsChromeDeveloperTools(akaDevTools)

Per-PanelDocumentationCommandLineAPIReferenceKeyboard&UIShortcutsReferenceSettings

IEDevelopertools(akaF12tools)vorlon.js

Synchronizedbrowsertools:

Browsersync

BrowsercodingtoolstodetermineifXbrowsersupportsX:

Front-endHandbook

87Browsertools

Page 88: fend hbook

ModernizrESFeatureTests

Broadbrowserpolyfills/shims:

webcomponents.jswebshimHTML5CrossBrowserPolyfillsconsole-polyfillsocket.iosockjs

Browserhostedtesting/automation:

browserstack[$]browserling[$]Saucelabs[$]SeleniumCrossBrowserTesting.com[$]

Headlessbrowsers:

PhantomJSslimerjsTrifleJS

Headlessbrowserautomation:

nightwatchjscasperJSNightmare

Browserhacks:

browserhacks.com

Front-endHandbook

88Browsertools

Page 89: fend hbook

HTMLToolsHTMLtemplates/boilerplates/starterkits:

HTML5BoilerplateMobileboilerplateWebStarterKitBoilerplate&ToolingforMulti-DeviceDevelopmentdCodesHTML5BonesEmail-BoilerplatePears

HTMLpolyfill:

html5shiv

Transpiling:

jadeHAMLMarkdown

References:

HTMLInterfacesBrowserSupportHTMLEntityLookupHTMLelement.infoElementsElementattributesHTMLArrows

Linting/hinting:

html5-lintHTMLHinthtml-inspector

Optimizer:

HTMLMinifier

Onlinecreation/generation/experimentationtools:

Front-endHandbook

89HTMLtools

Page 90: fend hbook

tablesgenerator.com

Authoringconventions:

Principlesofwritingconsistent,idiomaticHTMLHTMLcodeguide

Workflow:

Emmet

TrendingHTMLrepositoriesonGithubthismonth:

https://github.com/trending?l=html&since=monthly

Front-endHandbook

90HTMLtools

Page 91: fend hbook

CSSToolsDesktop&mobileCSSframeworks:

SemanticUIFoundationBootstrapMetroUIPure.cssConciseMaterializeMaterialDesignLite(MDL)Base

MobileonlyCSSframeworks:

Ratchet

CSSreset:

ACSSReset(or“ResetCSS”)isashort,oftencompressed(minified)setofCSSrulesthatresetsthestylingofallHTMLelementstoaconsistentbaseline.-http://cssreset.com/

EricMeyer’s“ResetCSS”2.0Normalize

Transpiling:

SASS/SCSSstylusPostCSS&cssnextrework&mythpleeease.io

References:

css3test.comcss4-selectors.comcss3clickchart.comcssvalues.comCSSTRIGGERS...AGAMEOFLAYOUT,PAINT,ANDCOMPOSITE

Front-endHandbook

91CSStools

Page 92: fend hbook

MDNCSSreferenceoverapi.comCSScheatsheet

Linting/hinting:

CSSLintstylelint

Codeformatter/beautifier:

CSScombcssfmt

Optimizer:

cssoclear-csscssnano

Onlinecreation/generation/experimentationtools:

UltimateCSSGradientGeneratorEnjoyCSSCSSmaticpatternify.compatternizer.comCSSarrowpleaseflexplorerFlexboxPlayground

ArchitectingCSS:

oocss[read]SMACSS[read][$]AtomicDesign[read]

Authoringconventions:

idiomatic-css[read]CSScodeguide[read]cssguidelin.es[read]GoogleHTML/CSSStyleGuide

TrendingCSSrepositoriesonGithubthismonth:

Front-endHandbook

92CSStools

Page 93: fend hbook

https://github.com/trending?l=css&since=monthly

Front-endHandbook

93CSStools

Page 95: fend hbook

JavaScriptToolsJSutilities:

lodashunderscore.jsMoment.jsstring.jsNumeral.jsaccounting.jsxregexp.comMath.jswaitasyncformat.js

Transpiling(ESXtoESX):

Babel

JavaScriptcompatibilitychecker:

http://jscc.info/

Linting/hinting:

jshinteshintJSLint

jslinterrors.com

Unittesting:

MochaQUnitJasmine

Jest

Testingassertionsforunittesting:

should.jsChai

Front-endHandbook

95JavaScripttools

Page 96: fend hbook

expect.js

Testspies,stubs,andmocksforunittesting:

sinon.js

Codestylelinter:

JSCS

Codeformater/beautifier:

jsfmtesformatterjs-beautify

Performancetesting:

jsperfbenchmark.js

Visualization,staticanalysis,complexity,coveragetools:

jscomplexity.orgistanbulBlanket.jsCoveralls[$]PlatoescomplexEsprima

Optimizer:

UglifyJS2

Obfuscate:

JavascriptObfuscator[freeto$]JScrambler[$]

Onlinejscodeeditors:

jsbin.com[freeto$]jsfiddle.netes6fiddle.net

Front-endHandbook

96JavaScripttools

Page 97: fend hbook

OnlineRegularexpressioneditors/visualtools:

regex101regexperdebuggexRegExr

Authoringconventions:

KhanJavaScriptStyleGuidePrinciplesofWritingConsistent,IdiomaticJavaScriptAirbnbJavaScriptStyleGuide

TrendingJSrepositoriesonGithubthismonth:

https://github.com/trending?l=javascript&since=monthly

MostdependeduponpackagesonNPM:

https://www.npmjs.com/browse/depended

Front-endHandbook

97JavaScripttools

Page 98: fend hbook

StaticsitegeneratorstoolsJSsitegenerators:

Metalsmithharp

JSblogsitegenerators:

hubpress.ioHexo.io

Sitegeneratorlistings:

staticsitegenerators.netwww.staticgen.com

Front-endHandbook

98Staticsitegeneratorstools

Page 99: fend hbook

App(desktop,mobile,tabletetc..)toolsFront-endappframeworks:

AngularJS&BatarangBackbone&MarionetteReact&Flux&ReactDeveloperToolsVue.js&vue-loader&vue-routerEmber&EmberInspectorAmpersand.jsKnockoutAureliaPolymer&IronElements&PaperElements

Full-stackJSappplatforms:

MeteorHood.ieMEAN

Mobilewebui/site/appframeworks

Thesesolutionscanbeusedanywhereincludinginawebview(i.e.webplatformandbrowserengine)app:

RatchetKendoUIMobileMobileAngularUIFramework7

NativeHybridmobilewebview(i.e.browserenginedriven)frameworks:

ThesesolutiontypicallyuseCordova,crosswalk,oracustomwebviewasbridgetonativeapi's.

ioniconsen.io

NativeHybridmobiledevelopmentwebview(i.e.browserenginedriven)environments/platforms/tools:

Front-endHandbook

99App(desktop,mobile,tabletetc..)tools

Page 100: fend hbook

ThesesolutiontypicallyuseCordova,crosswalk,oracustomwebviewasbridgetonativeapi's.

AppBuilder[$]Monaca[$]AdobePhoneGap[$]kony[$]ionichub[freeto$]TacomanifoldJScocoon.io[freeto$]

Nativedesktopwebview(i.e.browserenginedriven)appframeworks:

NW.jsElectron

Nativemobileappframeworks(akaJavaScriptNativeapps)

ThesesolutionsuseaJSengineatruntimetoinerputJSandbridgetthattonativeapi's.Nobrowserengineorwebviewisused.TheuiisconstructedfromnativeUIcomponents.

NativeScriptReactNativetabris.js[freeto$]trigger.io[$]

References:

todomvc.com

Appseeds/starters/boilerplates:

ReactStarterKitEmberstarter-kitNG6-starterAngular2WebpackStarterhjs-webpack

Front-endHandbook

100App(desktop,mobile,tabletetc..)tools

Page 101: fend hbook

ScaffoldingtoolsClientsideScaffoldingisconcernedwithgeneratingastartertemplatefortheapplicationasawhole,ratherthangeneratingcodetoaccessadatabase.

YeomanSlush

Front-endHandbook

101Scaffoldingtools

Page 103: fend hbook

UIwidgets&componentstoolsDesktop&Mobile:

KendoUI[freeto$]Webix[$]SemanticUIMetroUIBootstrapMaterializeMaterialuiPolymerPaperElements

Desktop(NW.jsandElectron):

photonkitReactUIComponentsforOSXElCapitanandWindows10

Mobilefocused:

RatchetKendoUIMobileMobileAngularUIFramework7

Front-endHandbook

103UIwidgets&componentstools

Page 104: fend hbook

Datavisualization(e.g.charts)toolsJSlibraries:

d3sigmajs

Widgets&Components:

Chart.jsC3.jsGoogleChartschartist-jsjamCharts[$]Highcharts[Non-commercialfreeto$]FusionCharts[$]ZingChart[freeto$]Epoch

Services:

Datawrapperinfogr.am[freeto$]plotly[freeto$]ChartBlocks[freeto$]

Front-endHandbook

104Datavisualization(e.g.charts)tools

Page 105: fend hbook

Graphics(e.g.SVG,canvas,webgl)toolsGeneral:

Two.jsFabric.js

Canvas:

Paper.jsEaselJS

SVG:

svg.jsSnap.svgRaphaëld3

Webgl:

three.jspixi.js

Front-endHandbook

105Graphics(e.g.SVG,canvas,webgl)tools

Page 107: fend hbook

JSONtoolsOnlineeditors:

JSONmate

Querytools:

DefiantJSObjectPathJSONMask

GeneratingmockJSONtools:

JSONGeneratorMockaroo

OnlineJSONmockingAPItools:

MockyFillText.comJSONPlaceholdermockable.io

LocalJSONmockingAPItools:

json-server

JSONspecifications/schemas:

json-schema.org&jsonschema.net{json:api}

Front-endHandbook

107JSONtools

Page 108: fend hbook

TestingframeworktoolsKarmaIntern

Front-endHandbook

108Testingframeworktools

Page 109: fend hbook

Front-enddatastoragetoolsYDN-DBforerunnerAlaSQLLokiJSlovefieldDexie.jslocalForagepouchdb

Front-endHandbook

109Datastoragetools

Page 110: fend hbook

Module/packageloadingtoolsSystemJSwebpackBrowserifyrollup.js

Front-endHandbook

110Module/packageloadingtools

Page 111: fend hbook

Module/packagerepositorytoolsNPMBowerjspm.iospmjs

Front-endHandbook

111Module/packagerepo.tools

Page 112: fend hbook

Web/cloud/statichostingtoolsAWS[$]Heroku[freeto$]DigitalOcean[$]Modulus[$]DIVSHOT[freeto$]netlify[freeto$]surge[freeto$]

Front-endHandbook

112Web/cloud/statichostingtools

Page 113: fend hbook

Projectmanagement&codehostingtoolsGithub[freeto$]Codebase[$]Bitbucket[freeto$]Unfuddle[$]Assembla[freeto$]

Front-endHandbook

113Projectmanagement&codehosting

Page 114: fend hbook

Collaboration&communicationtoolsSlack&screenhero[freeto$]Skype[freeto$]GoogleHangouts

Code/Githubcollaboration&communication:

Gitter[freeto$]

Front-endHandbook

114Collaboration&communicationtools

Page 115: fend hbook

ContentManagementHosted/APItoolsAPICMS(i.e.contentdeliveryCMS)tools:

prismic.io[freeto$]contentful[$]CosmicJS[freeto$]

HostedCMStools:

LightCMS[$]SurrealCMS[$]PageLime[$]CushyCMS[freeto$]

StaticCMStools:

webhook.com

Front-endHandbook

115CMShosted/APItools

Page 116: fend hbook

Back-endasaservice(akaBAAS)toolsforfront-enddevelopersData/back-endmanagementasaservice:

Firebase[freeto$]Parse[freeto$]kinvey[free'ishto$]Back&[freeto$]Pusher[freeto$]

Usermanagementasaservice:

UserApp[freeto$]hull[$]auth0[$]

Front-endHandbook

116BAAS(forfront-enddevs)tools

Page 117: fend hbook

Offlinetoolsupupoffline.jspouchdbhood.ie

Front-endHandbook

117Offlinetools

Page 118: fend hbook

SecurityToolsCodingtool:

DOMPurifyXSS

References:

HTML5SecurityCheatsheet

Front-endHandbook

118Securitytools

Page 119: fend hbook

Tasking(akabuild)toolsTasking/buildtools:

GulpGrunt

Tasking/buildandmoretools:

BrunchMimosa

Front-endHandbook

119Tasking(akabuild)tools

Page 120: fend hbook

DeploymenttoolsFTPLOY[freeto$]TravisCI[freeto$]codeship[freeto$]Bamboo[$]Springloops[freeto$]surgesyncninja

Front-endHandbook

120Deploymenttools

Page 121: fend hbook

Site/appmonitoringtoolsUptime:

pingdom[freeto$]UptimeRobotUptrends[$]

General:

NewRelic

Front-endHandbook

121Site/appmonitoringtools

Page 122: fend hbook

JavaScripterrorreporting/monitoringRaygun[$]errorception[$]sentry[freeto$]{track:js}[$]

Front-endHandbook

122JSerrormonitoringtools