Front End Web Developer
Overview The goal of the Front End Web Developer Nanodegree program is to equip learners with the unique skills they need to build and develop a variety of websites and applications. A graduate of this Nanodegree program will be able to:
• Construct responsive websites using CSS, Flexbox and CSS Grid
• Develop interactive websites and UI (User Interface) applications using JavaScript and HTML
• Connect a web application to backend server data using JavaScript
• Automate application build and deployment using Webpack
• Improve offline performance of websites using Service Worker Prerequisite Knowledge: A well-prepared learner is able to:
• Lay out a simple webpage using HTML
• Style a website element using CSS
• Write and test software with JavaScript
• Inspect websites using Developer Tools on a modern web browser (Chrome, Firefox, or Edge)
• Debug and troubleshoot errors and failures in JavaScript programs
Course 1: CSS & Website Layout
Learn how to effectively create the structure of a website using semantic HTML, and style websites with CSS and responsive layouts. Develop an understanding of different use cases for CSS Grid and Flexbox, and structure the layout of a web page using grid columns and rows.
Course Project Styled Blog Website
For your first project, you’ll create a multi-page blog website, using best practices for content and page styling with HTML and CSS. You’ll practice using responsive layouts, Flexbox, and CSS Grid to create the structure and design for your own blog.
LESSON ONE Introduction to HTML
• Create a programming project with a code editor
• Construct nested websites with HTML tags and elements
• Troubleshoot and debug HTML errors and bugs LESSON TWO Introduction to CSS
• Style website components by ID, class and type
• Connect CSS to a website
• Position and display website elements
• Modify and control website typography
• Troubleshoot and debug issues with stylesheets LESSON THREE Introducing Flexbox
• Control web elements orientation and layout with Flexbox
• Control ordering of web elements with Flexbox
• Align and justify web elements with Flexbox
• Transform and resize web elements with Flexbox LESSON FOUR CSS Grid
• Compare and contrast the use cases for CSS Grid and Flexbox
• Structure the layout of a web page using grid columns and rows LESSON FIVE Creating Responsive Layouts
• Define custom styles for different screen sizes using media queries.
• Observe and create breakpoints in a website to change layout and styling as a page is resized
Course 2: JavaScript and the DOM
Use JavaScript to control a webpage. Learn what the Document Object Model (DOM) is, and use JavaScript and the DOM to dictate page content and interactions. Gain experience working with Browser Events and managing website performance by controlling content creation efficiently
Course Project Dynamic Landing Page for Marketing Content
In this project, you will build a multi-section landing page. Often times, you won’t know how much content will be added to a page through a Content Management System (CSM) or an API. To handle this problem, you will dynamically add content to a web page. You’ll be building a landing page that combines your skills with JavaScript, HTML, and CSS to update and control the page and create a dynamic user experience.
LESSON ONE Syntax
• Declare block-scoped variables using let and const
• Format JavaScript strings using template literals
• Manage arrays and objects using JavaScript destructuring syntax
• Iterate over arrays and objects using JavaScript for...of syntax
LESSON TWO The Document Object Model
• Describe and explain the Document Object Model for web browsers
• Access page elements by ID, class, and type using JavaScript
LESSON THREE Creating Content with JavaScript
• Modify HTML content with JavaScript
• Create HTML content and elements with JavaScript
• Remove HTML content with JavaScript
• Style HTML content with JavaScript and CSS
LESSON FOUR Working with Browser Events
• Describe and explain the phases of browser events
• Create event listeners that handle browser events by writing code that runs when an event is triggered
• Describe and explain the events that are fired as a web page loads
LESSON FIVE Performance
• Manage website performance by controlling content creation efficiently.
• Describe what happens when a webpage has to be redrawn
• Describe and explain the JavaScript call stack
• Describe and explain the JavaScript event loop
• Write efficient code by analyzing the call stack and event loop
• Delay code execution with setTimeout
Course 3:
Web APIs and Asynchronous Applications Set up a Node and Express environment so you can develop web applications on your local machine, and learn to handle HTTP Requests & Routes. Update and modify website elements dynamically using asynchronously retrieved data.
Course Project Weather Journal In this project, you’ll apply your new skills to combine data from the OpenWeatherMap API and client side (browser) HTML forms to create a web app that records a weather journal for users. This project requires you to create an asynchronous web app that uses Web API and user data to dynamically update the UI for a Weather Journal App.
LESSON ONE Node & Express Environment
• Set up a Node and Express environment to develop a web application on your local machine
• Install JavaScript packages using npm (Node Package Manager)
• Setup and run a local development server
• Manage web application file structure and website assets using Express LESSON TWO HTTP Requests & Routes
• Handle requests to an Express with routes
• Describe and explain the differences between GET and POST requests
• Build a web server and use it to serve data and responses to web requests LESSON THREE Asynchronous JavaScript
• Manage asynchronous JavaScript control flow with Promises
• Request data from a server using JavaScript Fetch • Update and modify website elements dynamically using asynchronously retrieved data
Course 4: Build Tools, Webpack, and Service Worker
Develop an understanding of how to use build tools, such as Webpack, for automating build tasks. Create CSS variables with Sass and configure Webpack to use Sass controlled stylesheets. Learn how to cache server data and website functionality using Service Worker.
Course Project Article Analysis Website
In this project, you’ll get a taste of some common production environments and tools that you will likely come across in a front end developer role. You will be building a web tool that allows users to run Natural Language Processing (NLP) on articles or blogs found on other websites. Using an exciting new API called Aylien, you can build a simple web interface to interact with their NLP system. This tool will give back pertinent information about the article: whether the content is subjective (opinion) or objective (fact-based) and whether it is positive, neutral, or negative in tone.
For this project, you will use:
• Node
• Express
• Aylien API
• Webpack
• Service Worker
Course Project : Front End Web Developer Nanodegree Program Capstone
In the final project, you’ll combine all of the skills you’ve developed throughout the Nanodegree program to build an online travel app. You’ll work with data sources from multiple APIs to create a dynamic travel weather planning application that helps people plan trips by generating weather forecasts for the places they’re visiting. You’ll pull together all of the JavaScript, HTML, CSS, and build tool skills and knowledge you’ve gained to create this application. The design is up to you, and you’ll have the flexibility to include and combine other APIs (even your own!) to build this final project.
LESSON ONE Intro to Build Tools
• Describe and explain the problems solved by using automated build tools
• Inspect and analyze the activity that occurs when loading a web page in a browser
• Describe and explain what Webpack is and how it can be used
LESSON TWO Basics of Webpack • Install Webpack to a computer • Configure webpack for automating build tasks • Define an entry point for a webpack bundle • Install and configure middleware for building an application • Extend Webpack functionality by installing plugins
LESSON THREE Sass and Webpack
• Describe and explain the benefits and use cases for Sass
• Create CSS variables with Sass
• Extend and nest CSS sheets and classes with Sass
• Configure Webpack to use Sass controlled stylesheets
LESSON FOUR Final Touches
• Control variable and function scope with JavaScript IIFEs (Immediately Invoked Function Expressions)
• Optimize an application build pipeline with Webpack
• Cache server data and websites functionality using Service Worker
Learn Intermediate JavaScript
Overview The goal of the Intermediate JavaScript Nanodegree program is to prepare students for roles in web development, server-side application development, and desktop development that require a more advanced set of JavaScript skills. This program will also prepare students with the skills required to use JavaScript frameworks like React, Angular, and Vue. A graduate of this program will be able to:
• Use object-oriented JavaScript to build classes to construct objects that encapsulate data and functionality
• Create private state with closures and immediately-invoked function expressions
• Parse, organize and transform data in JavaScript using common methods for collections, arrays, and objects
• Use the functional programming paradigm with immutable objects, pure functions, and common functional methods.
• Design functional programming pipelines using higher order wrapping functions and currying.
• Implement asynchronous programming with JavaScript including using named functions, handler functions, and JavaScript Promises. Prerequisites: A well-prepared student will be able to Explain and utilize JavaScript’s primitive types, write conditions and loops, recognize object syntax and structure, declare functions, and navigate and use Chrome DevTools.
LESSON ONE Objects in Depth
• Create objects and add/remove properties to them
• Write methods to access and mutate an object’s properties
• Learn how variables are properties on window LESSON TWO Functions at Runtime
• Leverage functions as first-class functions
• Identify when a scope is created
• Utilize closures and IIFEs to build private state LESSON THREE Classes and Objects
• Write a constructor function to instantiate objects
• Identify and manually set the value
• Identify and manually set the value of this LESSON FOUR Object Oriented Design Patterns
• Use Mixins to copy properties from one object to another object
• Create objects with private properties using module pattern and revealing module pattern
Course 2: Functional Programming Functional programming is a hot new topic in the world of JavaScript, but in this course you’ll learn that the idea of Functional Programming has been around for a long time! This course will help you gain a better understanding of programming paradigms and why there is a trend towards the Functional paradigm right now. Beyond a high level understanding of Functional programming, you will also discover and practice the modern JavaScript syntax that will allow you to benefit from these concepts in your JavaScript programs. LEARNING OUTCOMES LESSON ONE Course
Introduction - Functional Programming
• Introduction to the course and concepts
• Requirements, pre-requisites, and resources
• Introduction to Functional Programming
• A brief history of Functional Programming LESSON TWO Introduction to Functional Programming
• Introduction to Programming Paradigms
• Benefits of understanding programming paradigms
• Comparing Paradigms
• Benefits of Functional Programming LESSON THREE Functional JS Syntax
• ES6 Array methods • ES6 Variables
• Object Methods LESSON FOUR Functional Programming in JS
• Writing Functional Programs in JavaScript • Higher Order Functions
• Functional data manipulation
• Functional DOM manipulations LESSON FIVE Going Further with Functional JS
• Persistent Data Structures
• Immutable.JS (vanilla JS)
• RxJs (primarily AngularJS)
• Redux (primarily ReactJS) Course Project Create a Mars Rover Dashboard The functional JavaScript course project will be to build a dashboard for the past and current NASA Mars rovers, information about each mission and images from their excursions. You will be tasked with using all the ES6 syntax and functional programming concepts from the course to interact with a real NASA API and build the front end logic to create the dashboard. Need Help? Speak with an Advisor: www.udacity.com/advisor Intermediate JavaScript | 5 Course 3: Asynchronous Programming in JavaScript The focus of this course is to get you comfortable reading, writing, and thinking in asynchronous patterns. Understanding asynchronous programming is not only a vital JavaScript skill to master, but is also an important step in your progress as a web developer. This course will cover the original and modern ways to handle asynchronous events in JavaScript, from callbacks, to Promises, and Async/ await. Alongside these topics will come important conceptual lessons, real life applications, and lots of hands on practice. LEARNING OUTCOMES LESSON ONE Stack vs. Heap
• Introduction to the course and concepts
• Requirements, pre-requisites, and resources
• Introduction to asynchronous thinking
• Benefits of learning asynchronous programming LESSON TWO Pointers and References
• Threads and single threaded programming • Blocking and Non-Blocking code • Helpful terms for single and multi threaded programming • Callbacks for asynchronous functionality
LESSON THREE New, Delete, Memset and Mallo
• Basic syntax and Promise chaining
• How Promises relieved the pain points of callbacks
• Implementations of Promises with Fetch
• Error handling and best practices for Promises
• Advanced Promise methods LESSON FOUR Smart Pointers
• Synchronous Try/catch syntax
• Basic syntax of Async/await
• Async/await with Promise chains
• Error handling with Async/await
• When and When not to use Async/await Course Project Build a UdaciRacer Simulation Game In this project, you will complete a partially built single player racing game. Using the skills and concepts you learned in the course, you will combine callbacks, Promises and Async/await syntax to complete TODOs marked in the code. The TODO’s will range from creating API requests to completing asynchronous logic flows. You will also be able to create a theme for your race, like Nascar, horse racing, or spaceship racing! By the end, you will be able to play through a racing game of your very own creation. Need Help? Speak with an Advisor: www.udacity.com/advisor Intermediate
JavaScript | 6 Our Classroom Experience REAL-WORLD PROJECTS Build your skills through industry-relevant projects. Get personalized feedback from our network of 900+ project reviewers. Our simple interface makes it easy to submit your projects as often as you need and receive unlimited feedback on your work. KNOWLEDGE Find answers to your questions with Knowledge, our proprietary wiki. Search questions asked by other students, connect with technical mentors, and discover in real-time how to solve the challenges that you encounter. STUDENT HUB Leverage the power of community through a simple, yet powerful chat interface built within the classroom. Use Student Hub to connect with your fellow students in your Executive Program. WORKSPACES See your code in action. Check the output and quality of your code by running them on workspaces that are a part of our classroom. QUIZZES Check your understanding of concepts learned in the program by answering simple and auto-graded quizzes. Easily go back to the lessons to brush up on concepts anytime you get an answer wrong. CUSTOM STUDY PLANS Preschedule your study times and save them to your personal calendar to create a custom study plan. Program regular reminders to keep track of your progress toward your goals and completion of your program. PROGRESS TRACKER Stay on track to complete your Nanodegree program with useful milestone reminders.
Need Help? Speak with an Advisor: www.udacity.com/advisor
Intermediate JavaScript | 7 Learn with the Best
Alyssa Hope SOFTWARE DEVELOPER AT SEAMGEN Alyssa is a full stack developer who was previously the lead instructor at a coding bootcamp. With a degree in International Communications, her passion is to express thoughts well, whether in code or writing.
Andrew Wong
DEVELOPER ADVOCATE AT ADYEN Andrew is a Course Developer who enjoys making the world a better place through code. He first discovered his passion for teaching as an instructor at App Academy, and continues to enjoy empowering students to advance their education.
Rachel Manning
FRONT END DEVELOPER AT ACQUIA Rachel is a front end web developer at Acquia and spent 3 years as the curriculum developer for a Silicon Beach bootcamp. An advocate for continued learning, she is passionate about mentoring women and students in technology.
Richard Kalehoff
SOFTWARE ENGINEER AT UDACITY Richard is a Course Developer with a passion for teaching. He has a degree in computer science, and first worked for a nonprofit doing everything from front end web development, to backend programming, to database and server management.
Android Developer
Overview
We built this Nanodegree program in partnership with Google for students with intermediate programming skills who want to become professional Android developers.
By the end of this program, you’ll have a diverse portfolio of projects to show employers, including your own app on Google Play. This program is aimed at developers with 1-2 years of experience programming in Java or another objectoriented programming language like Python or C#. If you don’t have this experience, we recommend you first complete our Android Basics Nanodegree program or its individual classes prior to starting this program. Experience with git and GitHub is highly recommended. If you don’t have this experience, please take our free course on using git and GitHub prior to starting this Nanodegree program. In addition, taking our free course “GitHub & Collaboration” would also be beneficial to you. Prerequisites: Java, Git, GitHub Flexible Learning: Self-paced, so you can learn on the schedule that works best for you. Estimated Time: 6 Months at 10hrs/week Need Help? udacity.com/advisor Discuss this program with an enrollment advisor. IN COLLABORATION WITH Need Help? Speak with an Advisor: www.udacity.com/advisor Android Developer | 3
Course 1: Developing Android Apps
In this project, you will complete an app by building a layout and populating its fields from data received as JSON.
Course Project Sandwich Club
In this project, you will complete an app by building a layout and populating its fields from data received as JSON.
Course Project Popular Movies App, Stage 1
Build a simple movies app that communicates with the Internet and provides a responsive user experience.
In this project, you will:
• Fetch data from the Internet using the Movie Database API. • Use adapters and custom list layouts to populate list views.
• Incorporate libraries to simplify the amount of code you need to write Course Project Popular Movies App, Stage 2 Build off of your existing movies app to create a fully featured application that looks and feels natural on the latest stable Android operating system (Android version Oreo, as of August 2017). In this project, you will: • Allow users to view and play trailers (either in the YouTube app or a web browser). • Allow users to read reviews of a selected movie. • Allow users to mark a movie as a favorite in the details view by tapping a button(star). • Create a database and content provider to store the names and IDs of the user’s favorite movies (and optionally, the rest of the information needed to display their favorites collection while offline). • Modify the existing sorting criteria for the main view to include an additional pivot to show their favorites collection. Need Help? Speak with an Advisor: www.udacity.com/advisor Android Developer |
LESSON ONE
Create Project Sunshine
• Create and configure a new project in Android Studio using mock data
LESSON TWO
Connect to the Internet
• Connect your project to the cloud and replace mock data with data from a weather service, using Android permissions and network I/O
LESSON THREE
Recyclerview
• Display and interact with scrolling information using a RecyclerView, and update your app to display information in individual views
LESSON FOUR
Intents
• Create structure of your app and navigate between screen, using activities from other apps within your own app
LESSON FIVE
Lifecycle
• Leverage the Android framework to handle the Android lifecycle
LESSON SIX Preferences
• Enable users to set their preferences for customized views, and save those preferences in app settings and configurations
LESSON SEVEN
Storing Data in Sqlite
• Build an SQLite database for your app
LESSON EIGHT
Content Providers
• Use a pre-existing content provider in your app to grab user data from your user’s phone
Need Help? Speak with an Advisor: www.udacity.com/advisor Android Developer | 5
LESSON NINE Android Architecture Components • Learn how Android Architecture components classes can help manage your application’s lifecycle and its data persistence needs
LESSON TEN Background Tasks • Learn how to effectively run jobs in the background, create notifications, and periodically schedule long running background processes
LESSON ELEVEN Completing the UI • Try different views, viewgroups and alternative layouts, perform data binding, make your app accessible
LESSON TWELVE
Polishing the UI
• Add visual polish and styling to your app, including custom colors, fonts and styles, accounting for multiple devices
Course 2: Advanced Android App Development
Make your apps more responsive, and create a total user experience with home screen widgets, thirdparty libraries, and more. Also, learn to deeply integrate rich media, test user interfaces, and publish to Google Play.
LEARNING OUTCOMES
LESSON ONE Fragments • Make reusable components in your app to support different form factors
LESSON TWO Libraries • Use external libraries to personalize your app
LESSON THREE Firebase Cloud Messaging • Add messaging functionality and push notifications to your app using Firebase Cloud Messaging
LESSON FOUR Places
• Use the Places API to add location to your app. Course Project Baking App In this project, you will create an app to view cooking recipes. You will handle media loading, verify your user interfaces with UI tests, integrate third party libraries and provide a complete UX with home screen widget. In this project, you will: • Use MediaPlayer/ExoPlayer to display videos.
• Handle error cases in Android. • Add a widget to your app experience.
• Leverage a third-party library in your app.
• Use Fragments to create a responsive design that works on phones and tablets.
LESSON SIX Widgets
• Give users easy access to your app with a homescreen widget
LESSON SEVEN Espresso
• Use User Interface testing to test and verify workflows in your app
LESSON EIGHT
Publishing Your App
• Publish your app on the Google Play Store
LESSON TWO Gradle For Java • Use Gradle to build Java projects.
LESSON THREE Gradle For Android • Use Gradle with Android Studio, and create free and paid versions of an app.
LESSON FOUR Advanced Android Builds • Use Gradle to automate tasks, including dependency management and unit testing.
LESSON FIVE Special Topics • Update old projects and libraries, learn more about custom tasks Course Project Build It Bigger In this project, you will use Gradle to build a joke-telling app, factoring functionality into libraries and flavors to keep the build simple. You will configure a library to connect to a web service for jokes.
The finished app will consist of four modules:
• A Java library that provides jokes
• A Google Cloud Endpoints (GCE) project that serves those jokes
• An Android Library containing an activity for displaying jokes
• An Android app that fetches jokes from a web service and passes them to the Android Library for display Need
LESSON TWO Surfaces • Implement paper surfaces in your design
LESSON THREE Bold Graphic Design • Use design elements of space, color, type and imagery to make your app more beautiful and impactful
LESSON FOUR Meaningful Motion • Apply real world principles of motion to make your interface more understandable and continuous
LESSON FIVE Adaptive Design • Implement Material Design for new form factors
LESSON SIX Constraint Layout • Learn and apply the new features of ConstraintLayout that will help you create performant user interfaces Course Project Make Your App Material In this project, you’ll update the look and feel of an app to meet Material Design specifications using design elements, surfaces, and transitions across multiple form factors.
Course 5: Capstone Project Integrate all you’ve learned in this program to bring your own app idea to life, and publish your app to Google Play. Course Project Capstone, Stage 1 - Design In this project, you will demonstrate the ability to communicate an app idea formally, using:
• An app description
• UI flow mocks, similar to what you have seen in other Nanodegree projects, like the Popular Movie overview
• A list of required tasks that you will complete to build the app The Capstone project will give you the experience you need to own the full development of an app.
This first stage replicates the design and planning experience that proficient Android Developers are expected to demonstrate.
Course Project
Capstone, Stage 2 - Build In this project, you will demonstrate the skills you have learned in your Nanodegree program journey and apply them to creating a unique app experience of your own. By the end of this project, you will have an app that you can submit to the Google Play Store for distribution.
The Capstone project will give you the experience you need to own the full development cycle of an app.
'요런저런' 카테고리의 다른 글
JavaScript 그리드 (0) | 2020.09.17 |
---|---|
조준기, 구독자 180만 여행에 미치다 병원 입원 8일만에 숨져 (0) | 2020.09.09 |
디지털 포렌식 뜻 (0) | 2020.07.15 |
노영희 "우리민족 북한에 총 쏜 백선엽, 현충원 안돼" 충격 진중권도 황당! (0) | 2020.07.14 |
홍준표, 채홍사(採紅使) 의미 (0) | 2020.07.14 |