nanodegree program syllabus java developer · 2020. 12. 30. · the ultimate goal of the java...

14
Java Web Developer NANODEGREE PROGRAM SYLLABUS

Upload: others

Post on 30-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • Need Help? Speak with an Advisor: www.udacity.com/advisor

    Java Web DeveloperN A N O D E G R E E P R O G R A M S Y L L A B U S

    http://www.udacity.com/advisor

  • Java Web Developer | 2Need Help? Speak with an Advisor: www.udacity.com/advisor

    OverviewThe ultimate goal of the Java Web Developer Nanodegree program is to equip students with the unique skills they need to build enterprise-scale applications with Java. A graduate of this program will be able to:

    • Understand the fundamentals of the Spring Boot framework and associated integrations and plugins.

    • Describethedifferencesbetweenwebservices,APIsandmicroservices;developRESTandGraphQLAPIs;andlearnhowtosecure,consume,documentandtestthoseAPIsandwebservices.

    • BuildapplicationsthatreadandwritetorelationaldatabasesusingboththeJavaPersistenceAPI( JPA)andSQL.UsestandarddesignpatternstomakeyourpersistencelayereasytotestandintegratewithaSpring Boot application.

    • LearnaboutGit,versioncontrolandbestpracticesforauthorizationandauthentication.UseJenkinstobuildCI/CDpipelinetodeploycodetoproduction.

    Thisprogramiscomprisedof4coursesand4projects.Eachprojectyoubuildwillbeanopportunitytodemonstratewhatyou’velearnedinthelesson,andwillshowpotentialemployersthatyouhaveskillsinthese areas.

    Prerequisite Knowledge:IntermediateknowledgeofJava.Somewebdevelopmentexperiencedesirable,butnotrequired.Studentsshouldalsobeableto:initializeanduseprimitiveJavadatatypes(i.e.float,int,etc),selectanduseCollectionsfromjava.util.Collections,designandcreateclassesandclassmethodsinJava,createinterfacesandsubclassesinJava,launchJavaapplicationsfromanIDE,andwritebasicqueriesinSQL.

    Prerequisites:IntermediateJavaProgramming

    Flexible Learning: Self-paced,soyou can learn on the schedule that works best for you.

    Estimated Time: 4 Months at 5-10hrs/week

    Need Help? udacity.com/advisor Discuss this program with an enrollment advisor.

    http://www.udacity.com/advisorhttp://udacity.com/advisor

  • Java Web Developer | 3Need Help? Speak with an Advisor: www.udacity.com/advisor

    Course 1: Spring Boots BasicsLearnthefundamentalsofJavawhilebeingintroducedtoaSpringBootframeworkandassociatedintegrations and plugins.

    Course Project : Build a Web-based PersonalStorage Application

    Inthisproject,studentswillusetheskillsacquiredinthefirstcourseto build a web-based personal storage application: SuperDuperDrive!Studentswillimplementuser-facingfeatureslikefile,noteandsecurecredentialstoragewithindustry-standard,full-stackdevelopmenttools.BuildingonSpringBootasabase,studentswilluseSpringMVC and Thymeleaf to build a Java-backed web app. Using H2 as an inmemorydatabase,studentswillstoreuserdatawithMyBatis,adeadsimpleORMlibraryandsecurethatdatafromunauthorizedaccesswithSpringSecurity.Finally,toroundoutthedevelopmentcycleandverifythattheappisfeature-complete,studentswillimplement a series of automated user tests with JUnit and Selenium.

    LEARNING OUTCOMES

    LESSON ONE Web Development in Java

    • Describe how the Java Application Server facilitates web development

    • IdentifytheroleofaServletwithinaJavaApplicationServer

    • IdentifytheroleofSpringasaServletapplicationtool

    • Add and update project dependencies within a Maven POMfile

    • Choose appropriate starter packs for Spring depending on the application’s requirements

    LESSON TWOSpring Boot Basics for Web Development

    • SetupandconfigureaworkingSpringBootEnvironmentforweb development

    • Configure a Spring Boot application within Java using annotations and factory methods

    • IdentifySpringregisteredcomponentsinJavaapplicationsbased on Spring annotations

    • Annotate code to register custom components with a Spring App

    • Identifyandcustomizeessentialpropertiesforthe Spring Server

    http://www.udacity.com/advisor

  • Java Web Developer | 4Need Help? Speak with an Advisor: www.udacity.com/advisor

    LEARNING OUTCOMES

    LESSON THREE Spring MVC and Thymeleaf

    • DesignHTMLtemplateswithThymeleafandpopulateHTMLtemplates with Spring’s MVC data model

    • Explainhowacontrollerpopulatesthedatamodelfora given view

    • Identifytherelationshipbetweencontrollerendpointreturnvalues and the templates that are displayed

    • Identifytheroleofthemodelobjectpassedtocontrollerendpoint methods

    • WritevariableresolutionexpressionswithinaThymeLeaftemplate to access model data

    LESSON FOUR Data Persistence and Security

    • IdentifymappingsbetweenJavaobjectsandSQLtablesandleverage those mappings to connect an application with a data store

    • ExplainhowORMleveragessimilaritiesbetweenJavadatatypesandSQLdatatypestoreducedevelopmenttimeandprogrammer error

    • WriteMYBatisSQLtemplatequeriesusinganapplication’sdata model

    • Explainhowthe@MapperannotationfunctionsintheSpringAppcontextasacomponentannotation

    • Securely store user credentials in a database

    • Queryuserinformationandidentifyaccessiblepagesbasedon that information

    • Use Spring security to automatically filter web traffic based on that information

    LESSON FIVE Testing

    • UseSelenium/Webdrivertoautomaticallyperformuseractions in order to test the functionality of web pages

    • DefineJUnittestclasseswiththe@Testannotation

    • Use the JUnit assertion class to test specific success or failure points

    • DRunasuiteofJUnittestsfromtheirIDEandinterpret the results

    • NavigatetospecificURLswiththeSeleniumwebdriver

    • InteractwithqueriedelementsfromSeleniuminthemannerofausertotestthatfunctionalityexistsasintended

    • Write JUnit tests using these techniques to test individual features of a web app

    • OrganizetestsintoPageobjectssothattheapplicationstructure is mirrored by the test structure

    http://www.udacity.com/advisor

  • Java Web Developer | 5Need Help? Speak with an Advisor: www.udacity.com/advisor

    Course 2: Web Services and APIsExplorethedifferencesbetweenwebservices,APIsandmicroservices.DevelopRESTandGraphQLAPIs,andlearnhowtosecure,consume,documentandtestthoseAPIsandwebservices.

    Course Project: Build the Backend System for a Car Website

    Inthiscourse,thestudentwillbuildabackendsystemforawebsiteofcars.Thisbackendwillbecomposedofvehicleslistservices,pricingservices,andlocationservicesasmentionedbelow:VehiclesAPI—aRESTAPItomaintainvehiclesdata(CRUD),PricingService—aRESTAPItoretrievethepriceofavehicle,andLocationAPI—aHTTPclienttoretrievethelocationofthevehicle.Intheproject,studentswilluseJavaAPIsandframeworkstointegratedifferentservices using different communication styles. Students will write the CRUDoperationstostoreandretrievevehicledataandimplementanHTTPclienttoretrievetheaddressofthevehiclegiventhelatitudeandlongitude.Studentswillalsointegratetheclients(VehicleAPI)withpricingservicestoretrievetheprice.Lastly,studentswilllearntouseSwaggertoefficientlycreatedocumentationfortheirAPIs.Duringthedevelopmentofthesesteps,thestudentwillbeguidedtowriteunittests,errorhandling,loggingandotherbestpractices.

    LEARNING OUTCOMES

    LESSON ONE Web Services & APIs Overview

    • Describe web services and their advantages

    • Describe how web services communicate

    • Explorethedifferencesbetweenwebservices,APIs and microservices

    LESSON TWODevelope REST APIs with Spring Boot

    • DescribetheRESTarchitecturalstyleandtheimportanceofdataformats)

    • DevelopaRESTAPIusingSpringBootandincorporateexceptionhandling.

    • UseproperHTTPresponsecodes

    LESSON THREEDevelop GraphQL APIs with Spring Boot

    • DescribeGraphQLanditsadvantagesoverREST

    • CreateaGraphQLschema

    • DevelopaGraphQLserverandAPIusingSpringBoot

    • UseGraphQLtoexecutequeriesandoperationsondata

    http://www.udacity.com/advisor

  • Java Web Developer | 6Need Help? Speak with an Advisor: www.udacity.com/advisor

    LEARNING OUTCOMES

    LESSON FOURDevelop Microservices with Spring Boot

    • DescribetheMicroservicesArchitecture(MSA)

    • ExposeamicroserviceusingSpringBoot

    • Registeramicroservice

    LESSON FIVESecure API Endpoints with Spring Security

    • Describe Spring Security

    • Explainthedifferencesbetweenauthenticationvsauthorization

    • IncorporateBasicAuthenticationpracticestosecureanAPI

    LESSON SIX Consume Web Services and APIs

    • ConsumeaRESTAPI

    • ConsumeaSOAP-basedwebservicer

    • FetchandprocessXMLandJSON

    LESSON SEVEN Document REST APIs

    • DescribeSwagger,anopen-sourcesoftwareframeworktodesign,build,document,andconsumeRESTfulwebservices

    • Add Swagger annotations to model

    • GenerateAPIdocumentation

    LESSON EIGHT Test REST APIs• Describeandexplainunitandintegrationtesting

    • IncorporateunitandintegrationtestingintoaRESTAPI

    http://www.udacity.com/advisor

  • Java Web Developer | 7Need Help? Speak with an Advisor: www.udacity.com/advisor

    Course 3: Data Stores & PersistenceBuildapplicationsthatreadandwritetorelationaldatabasesusingboththeJavaPersistenceAPI( JPA)andSQL.UsestandarddesignpatternstomakeyourpersistencelayereasytotestandintegratewithaSpring Boot application.

    Course Project: Design the Data Model for a SaaS Application

    Students will design and implement the data model for CritterChronologer,aSoftwareasaServiceapplicationthatprovidesascheduling interface for small businesses that take care of animals.This enterprise project will allow users to create schedules thatassociatepets,ownersandemployeeswithcalendarevents.Studentswillconfiguretheirapplicationtoconnecttoanexternaldatabase and use both JDBC and Hibernate to persist changes to it.BasicCRUDoperationswillbeexposedviaaRESTcontrollerlayersothatstudentscantesttheirapplicationusingPostman.

    LEARNING OUTCOMES

    LESSON ONE Data in Multitier Architecture

    • DesignEntitiesthatmapJavadatatypestodatabasestructures

    • RepresentcomplexassociationsbetweenEntitiesinpersistence

    • Identifyandselectinheritancestrategies

    • IsolateEntityscopethroughtheuseofannotationsandDTOs

    LESSON TWO Java Persistence API

    • UnderstandandutilizekeyconceptsinObjectRelationalMapping(ORM)suchasPersistenceContextandEntityManager,andlearnabouttheRepositorydesignpattern

    • PropagateretrievalsandpersistswiththehelpofLazyLoadingandCascading

    • WriteandexecuteobjectqueriesinJavausingJPQL

    • BuildimplementationsforyourRepositorymethodsautomaticallywithSpringDataJPA

    • ControltheexecutionofqueriesthroughTransactions

    http://www.udacity.com/advisor

  • Java Web Developer | 8Need Help? Speak with an Advisor: www.udacity.com/advisor

    LEARNING OUTCOMES

    LESSON THREE Connecting to Data Sources

    • ConnectSpringBoottobothinternalandexternal data sources

    • CustomizeSpringDataSourceconstructionandinjection

    • UseSpringandHibernatetoautomaticallyinitializeyour data sources

    • Configure unit tests to use different data sources

    LESSON FOUR Persistence Without JPA

    • LearnaboutthedifferencesinDataObjectdesignwhenretrievingdatawithSQL

    • InitializeDataSourceswithSQLscripts

    • Use the Data Access Object design pattern

    • ExecuteSQLquerieswithJdbcTemplateandautomaticallymap the results to your Data Objects

    • DecidewhentouseSQLandwhentouseHibernate,andlearn how to combine them both in the same project

    http://www.udacity.com/advisor

  • Java Web Developer | 9Need Help? Speak with an Advisor: www.udacity.com/advisor

    Course 4: Security and DevOpsLearnaboutGit,versioncontrolandbestpracticesforauthorizationandauthentication.UseJenkinstobuildaCI/CDpipelinetodeploycodetoproduction.

    Course Project: ImplementAuthorizationforan eCommerce Application

    Inthisproject,studentswilladdauthorizationusingSpringSecuritywithOAuthandusername/passwordcombinationstoaneCommercewebapplicationcreatedinSpringBoot.Propersecurityandhashingwill need to be implemented to store this data as well. Students willidentify the right metrics for an effective analytics environment anduseeitherSplunkorELKtoanalyzethemetrics.Studentswillalsoautomate the configuration and deployment of these systems and the application. Students will use Jenkins to integrate with their version control and deploy their application to AWS.

    LEARNING OUTCOMES

    LESSON ONE Git• Learnthebasicsofgitsuchasbranching,pullrequests

    and merging

    • Describe what version control is and means

    LESSON TWO Authorization andAuthentication

    • Identifytheneedforsecurityinmoderndaywebapplications

    • Describebestpracticesforauthorizationandauthentication

    • Implementmodernauthorizationandauthenticationtechnologies such as password hashing and JWT

    LESSON THREE Testing• Learnandusetestingframeworkssuchasjunit

    • Describe the concept of code coverage and its importance

    • Implementnegativetestingaswellashappypathtesting

    LESSON FOUR Loggin and Analytics

    • Identifyimportantapplicationmetricsandlogthem

    • Send logs to Splunk

    • CreatevisualizationsanddashboardsinSplunktodisplaythose metrics

    LESSON FIVE Jenkins and CI/CD

    • DescribeandexplainCI/CD

    • Create a build pipeline using Jenkins

    • BuildaDockerImage

    • CreateaCIpipelineforaDockerImage

    • Deploy Docker container in production

    http://www.udacity.com/advisor

  • Java Web Developer | 10Need Help? Speak with an Advisor: www.udacity.com/advisor

    Our Classroom ExperienceREAL-WORLD PROJECTSBuildyourskillsthroughindustry-relevantprojects.Getpersonalizedfeedbackfromournetworkof900+projectreviewers. Our simple interface makes it easy to submit your projects as often as you need and receive unlimited feedback on your work.

    KNOWLEDGEFindanswerstoyourquestionswithKnowledge,ourproprietary wiki. Search questions asked by other students and discover in real-time how to solve the challenges that you encounter.

    STUDENT HUBLeveragethepowerofcommunitythroughasimple,yetpowerful chat interface built within the classroom. Use Student Hub to connect with your technical mentor and fellow students in your Nanodegree program.

    WORKSPACESSee your code in action. Check the output and quality of your code by running them on workspaces that are a part of our classroom.

    QUIZZESCheck your understanding of concepts learned in the programbyansweringsimpleandauto-gradedquizzes.Easilygobacktothelessonstobrushuponconceptsanytime you get an answer wrong.

    CUSTOM STUDY PLANSWork with a mentor to create a custom study plan to suit your personal needs. Use this plan to keep track of your progress toward your goal.

    PROGRESS TRACKERStay on track to complete your Nanodegree program with useful milestone reminders.

    http://www.udacity.com/advisor

  • Java Web Developer | 11Need Help? Speak with an Advisor: www.udacity.com/advisor

    Learn with the Best

    AlexPritchardINSTRUCTOR

    AlexisaSeniorSoftwareEngineerforCPAGlobal.Heisexcitedtocombinehis

    background as a music educator with more than a decade of enterprise Java

    experiencetohelpcreatethispracticalcourseonDataStoresandPersistence.

    SareetaPandaINSTRUCTOR

    Sareeta is a Java enthusiast and Senior Developer at Walmart e-Commerce. She specializesinEnterpriseApplication

    developmentwithJavaandKafka,NoSQL,SpringsecurityandCI/CD.Sareetahasoveradecadeofexperience,spanningrecent-ly acquired startups to top Fortune 500

    companies.

    KeshaWilliamsINSTRUCTOR

    Keshahasover20yearsexperienceinsoftware development and is a software

    engineeringmanageratChick-fil-A, routinely leading innovation teams in

    proving out the use of cloud services to solvecomplexbusinessproblems.ShewasrecentlynamedanAlexaChampion

    byAmazon.

    PeterZastoupilINSTRUCTOR

    PeterZastoupilisanenterprisedeveloperand technical administrator. He has sevenyearsofon-the-jobexperiencebuilding

    features for massive enterprise Javaservers,andoverfouryearsofteaching

    those skills to new developers. He enjoysmusic production and long walks with his

    dog,Honeydew,inhisfreetime.

    http://www.udacity.com/advisor

  • Java Web Developer | 12Need Help? Speak with an Advisor: www.udacity.com/advisor

    All Our Nanodegree Programs Include:

    EXPERIENCED PROJECT REVIEWERS

    RE VIE WER SERVICES

    •Personalizedfeedback&linebylinecodereviews •1600+Reviewerswitha4.85/5averagerating • 3 hour average project review turnaround time • Unlimited submissions and feedback loops •Practicaltipsandindustrybestpractices • Additional suggested resources to improve

    TECHNICAL MENTOR SUPPORT

    MENTOR SHIP SERVICES

    •Questionsansweredquicklybyourteamof technical mentors • 1000+Mentorswitha4.7/5averagerating • Support for all your technical questions

    PERSONAL CAREER SERVICES

    C AREER SUPPORT

    •Resumesupport •Githubportfolioreview •LinkedInprofileoptimization

    http://www.udacity.com/advisor

  • Java Web Developer | 13Need Help? Speak with an Advisor: www.udacity.com/advisor

    Frequently Asked QuestionsPROGR AM OVERVIE W

    WHY SHOULD I ENROLL? Javaisoneofthemostpopularprogramminglanguagesintheworld,anda majority of large enterprises rely on Java for their back-end architecture.InthisNanodegreeprogram,you’lllearntobuildanddeployback-endinfrastructure(s)usingJava,andgraduateswillhavereal-worldprojectstoshare with current or prospective employers to demonstrate mastery ofthese high-demand skills.

    WHAT JOBS WILL THIS PROGRAM PREPARE ME FOR? TheadditionofJavaskillstoyourdevelopertoolkitisanexcellentmoveforanydeveloperseekingacriticalcareeradvantage.Thisprogramemphasizespracticalcodingskillsthatdemonstrateyourabilitytobuild,testanddeployback-endinfrastructureusingJava,andwillprepareyouforavarietyofengineering roles that leverage the Java language.

    Itisdesignedforpeoplewithanexistingbackgroundinprogrammingwhoare looking to build a strong foundation in Java to either advance withintheircurrentfieldorpositionthemselvestolearnmoreadvancedskillsforacareer transition.

    HOW DO I KNOW IF THIS PROGRAM IS RIGHT FOR ME? Ifyouareinterestedinbuildingouttheinfrastructurethatpowersandsupportsthemanyweb,desktop,mobileandintegratedapplicationsinthebusinessworld,thisprogramisagreatfitforyou.

    Additionally,ifyouareadeveloperwhodoesn’thaveanyback-endexperience,oraback-enddeveloperwhodoesn’tknowJava,thisisagreatplacetobuilduponyourexistingskillset.

    ENROLLMENT AND ADMISSION

    DO I NEED TO APPLY? WHAT ARE THE ADMISSION CRITERIA? No.ThisNanodegreeprogramacceptsallapplicantsregardlessofexperienceandspecificbackground.

    WHAT ARE THE PREREQUISITES FOR ENROLLMENT? Toenroll,youshouldhaveintermediateknowledgeofJava.Somewebdevelopmentexperienceisdesirable,butnotrequired:-InitializeanduseprimitiveJavadatatypes(i.e.float,int,etc)- Select and use Collections from java.util.Collections- Design and create classes and class methods in Java- Create interfaces and subclasses in Java-LaunchJavaapplicationsfromanIDE-WritebasicqueriesinSQL

    http://www.udacity.com/advisor

  • Java Web Developer | 14Need Help? Speak with an Advisor: www.udacity.com/advisor

    FAQs ContinuedIF I DO NOT MEET THE REQUIREMENTS TO ENROLL, WHAT SHOULD I DO? Ifyoubelieveyouneedmorepreparation,herearesomeadditionalresources you can use:- Introduction to Programming Nanodegree program- Full Stack Web Developer Nanodegree program

    TUITION AND TERM OF PROGR AM

    HOW IS THIS NANODEGREE PROGRAM STRUCTURED? The Java Web Developer Nanodegree program is comprised of contentandcurriculumtosupport4(four)projects.Weestimatethatstudentscancompletetheprograminfour4months,working5-10hoursperweek.

    EachprojectwillbereviewedbytheUdacityreviewernetwork.Feedbackwillbeprovidedandifyoudonotpasstheproject,youwillbeaskedtoresubmit the project until it passes.

    HOW LONG IS THIS NANODEGREE PROGRAM? AccesstothisNanodegreeprogramrunsforthelengthoftimespecifiedabove.Ifyoudonotgraduatewithinthattimeperiod,youwillcontinuelearningwithmonth to month payments. See the Terms of Use and FAQs for other policies regarding the terms of access to our Nanodegree programs.

    SOF T WARE AND HARDWARE

    WHAT SOFTWARE AND VERSIONS WILL I NEED IN THIS PROGRAM? There are no software and version requirements to complete this Nanodegree program. All coursework and projects can be completed via Student Workspaces in the Udacity online classroom.

    http://www.udacity.com/advisorhttps://www.udacity.com/course/intro-to-programming-nanodegree--nd000https://www.udacity.com/course/full-stack-web-developer-nanodegree--nd0044https://www.udacity.com/legal/en-us/terms-of-usehttps://udacity.zendesk.com/hc/en-us