online course packet nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfover view...
TRANSCRIPT
Online
Course PacketPYTHON | MEAN | .NET
2
ONLINE BOOTCAMP
Program Overview & Prerequisites
3
Schedule
4
Curriculum Overview
5
Chapters & Topics: Web Fundamentals
6
Chapters & Topics: Python
7
8
Chapters & Topics: MEAN
9
Chapters & Topics: C#/.NET
10
11
Admissions Process 12
What is a Full Stack?
Why Become a Full Stack Developer?
TABLE OF CONTENTS
3
A full stack, also known as a software stack or bundle, is a set of software components needed to create a complete web application. A web application can be divided into two areas: front-end and back-end. The front-end contains client-side languages and frameworks. The back-end consists of web servers, back-end languages/frameworks, and databases.
*Popular languages and technologies.
FRONT END
BACK END
CLIENT SIDE LANGUAGES/FRAMEWORKSHTML* CSSJAVASCRIPTANGULAR JQUERY
APACHE*NGINXAZURE
AWSNODE.JS
PHP/CODEIGNITER*RUBY/RAILS PYTHON/DJANGO
MYSQL*MONGODBREDIS
DATABASES
BACK END LANGUAGES/FRAMEWORKS
WEB SERVERS
WHAT IS A FULL STACK?
4
FULL STACK DEVELOPER
Full Stack Developers are well-rounded software engineers who have the know-how to independently build fully functional platforms, from the front-end to the back-end. Conventionally, web development requires several variations of engineers: front-end developers, web server administrators, back-end engineers, and database engineers. However a full stack developer is all of the above, and whether in a large or small engineering team, s/he can add value and insight to all layers of the project.
FRONT END DEVELOPER
WEB SERVER ADMIN
BACK END ENGINEER
DATABASE ENGINEER
WHY BECOME A FULL STACK DEVELOPER
5OVERVIEW
ONLINE
CURRICULUM* STRUCTURE
Web Fundamentals 2 Full Stacks
Python 20 weeks
MEAN or C#/.NET 20-30 hours/week
PREREQUISITES Personal laptop or desktop computer to work on during the program
Willing to dedicate at least 20 hours per week to the program
Successful completion of Coding Dojo's Algorithm Challenges algorithm.codingdojo.com
The Online Bootcamp is an ideal alternative for students who are looking to kick-start a career in web development but are unable to attend our on-campus programs. Within the first 12 weeks, you’ll start with the fundamentals of front-end development, and afterwards transition to mastering the Python software stack. Next, you’ll have an additional eight weeks of access to our online learning platform to learn the stack of your choice: MEAN or C#/.NET.
As a student, you’ll receive direct support from our instruction team and utilize our industry-leading online platform to complete hands-on projects and master the curriculum. Instructional support will be delivered through live learning sessions, weekly instructor check-ins, real-time TA support through the Slack communication tool.
Furthermore, students and alumni will have access to our Career Services program, where you’ll work closely with our team to pursue short and long-term career goals. You’ll be able to schedule one-on-one sessions with our Career Advisor team, access our online collection of job-hunting workshops and more.
2 Full Stacks20 weeks
30-35 hours/week
2 Full Stack
20 weeks
30-35 hours/week
• Personal laptop or desktop computer to work on during the program
• Willing to dedicate at least 30-35 hours per week to the program
• Successful completion of Coding Dojo's Algorithm Challenges algorithm.codingdojo.com
6SCHEDULE: 20 WEEKS
Week 1-4
WEB FUNDAMENTALS
Start the program by learning the fundamentals of front-end development.
Week 5-12
FULL STACK 1
Pick up Python as your first stack and enter the world of back-end development.
Week 13-20
FULL STACK 2
LIVE LEARNING SESSIONS
Pick between MEAN or C#/.NET as your second stack. Our instructors will help you choose the stack best fit for you.
PYTHON
OR
MEAN C#/.NET
Live learning sessions are held twice a week, on Monday/Wednesday or Tuesday/Thursday depending on your current stack. Sessions are o�ered at both 5 and 7pm PST. These live sessions are recorded and available to be watched at any time after they are recorded.
Weekly recaps are sent out every Friday. These provide a look back at the work you and your classmates accomplished that week, and highlight some of the topics that will be covered in the upcoming week.
Live learning sessions are held twice a week, the schedule will be determined by your instructor upon the first day. These live sessions are recorded and available to be watched at any time after they are recorded.
Weekly recaps are sent out every Friday. These provide a look back at the work you and yourclassmates accomplished that week, and highlight some of the topics that will be covered in theupcoming week.
7CURRICULUM OVERVIEW
TECHNOLOGIES TOPICS COVERED
WEB FUND.
HTML/HTML5CSS/CSS3Basic JavascriptAdvanced jQueryGit/Github & TerminalResponsive Web Design*Balsamiq*Bootstrap*LESS & SASS*
Front-end DevelopmentFrameworks & LibrariesWireframes & MockupsCode Version ControlHTTP RequestDynamic Content
PYTHON
PythonMySQLFlaskAjaxAPIsjQuery DjangoPostgreSQL*
OOP in PythonSQL Queries & ERD DiagramsWeb Security Basics CRUD OperationsMTV Framework & Design PatternsApplication DeploymentObject Relational Mapper*Web Crawler*Scaling Web Apps*
TECHNOLOGIES TOPICS COVERED
MEAN
MongoDBExpressAngularJSNode.jsAdvanced JavaScriptNode Package ManagerSocket.IOBower*
OOP in JavascriptAjax RequestsBuilding an MVC FrameworkCreating Custom JS LibrariesBuilding Real-time AppsNoSQL Database DesignRESTful RoutingAgile Development*
C#/.NET
C#ASP.NET CoreDapperEntity FrameworkPostgreSQLMySQLAjaxMicrosoft Cognitive Services*
C# OOPAsyncLINQSQL QueriesMVC FrameworkAzure DeploymentSemi-Restful routesAccessing an external API Building an APITest Driven DevelopmentWeb Security Basics
Razor View EngineTag HelpersCRUD OperationsObject Relational MapperYeoman GeneratorDependency InjectionStripe API*Microsoft Identity*Caching*Amazon Deployment*
8CHAPTERS & TOPICS: WEB FUNDAMENTALS
HTML/HTML5Intro to HTML Basic Nesting Practices The Header & Body Common Body Tags (lists, tables, etc.) Building Forms & Declaring Input Values Containers, Elements, Attributes, & Classes HTML Best Practices Intro to HTML5
CSSIntro to CSS CSS Selectors & Declarations Inspecting Element Inline, Block, Float, and Positioning Div Layout & Formatting Styling Text & How Fonts Work Using Properties & Backgrounds Replicating Complete User Interfaces Optimizing & Cleaning Your Code
Intro to CSS3 & More Styling Properties How to Build Your Own Shapes* Constructing Complex Tables* Intro to Bootstrap* CSS Preprocessors, LESS, & SASS* Optional Frameworks, UI Assets, & Tools*
JQUERYIntro to jQuery jQuery Functions & Debugging How to Use Parameters & Getters/Setters Essentials of the jQuery Library Troubleshooting jQuery
Intro Advanced jQuery Implementing Dynamic Content Callbacks in jQuery Transversing DOM Elements Using Forms in jQuery Using jQuery UI Library* Extra jQuery Libraries*
GIT/GITHUBIntro to Git & Version Control Using Terminal Commands How to Create & Utilize a Repository Making, Tracking, & Reverting Changes Git Workflow Overview & States Advanced Git Commands & Concepts Branching, Merging, & Conflicts Intro to Github How to Use a Github Repository Forking, Cloning, & Pulling Github Collaboration & Workflow
RWDIntro to Responsive Web Design (RWD) Breakpoints, Units, & Media Queries Basics to Typesetting & Scaling Cross-device RWD Grid System, Fluid Grids, & Adaptive Layouts
Intro to CSS Frameworks Responsive Typography Using CSS Reset & Boilerpoint
WIREFRAMES*Intro to Wireframes Importance of Wireframes Intro to Balsamiq & How to Use It
WEB FUND.
*Optional topics available
9
MYSQLIntro to MySQL Database Design & Relationships Entity Relationship Diagrams (ERD) Database Normalization Intro to MySQL Workbench & Querying Conventions & Common Data Types How to Use ERDs Using a Database with Your UI Recreating ERDs*
PYTHONIntro to Python Creating Variables in Python Common Data Types & Best Practices Using Strings & Built-in String Functions List Creation & Manipulation Using Tuples & Built-in Tuple Functions How to Use Dictionaries in Python Conditionals, Operators, & Nested Loops Constructing Functions in Python
PYTHON OOPPython Object Oriented Programming (OOP) Creating Objects & Classes Adding Properties/Attributes to Classes Constructing & Adding Methods to Classes Chaining Methods & Using Magic Methods How to Use Modules & Packages in Python Creating Multiple Objects Updating Methods with ‘Super’
Intro to Python Advanced Topics How to Use Multiple Arguments Ternary Operators in Python Using Lambda Overriding Inheritance & Polymorphism Using Composition Over Inheritance
Python Test Driven Deployment (TDD) Unit Testing in Python & Outcomes How to Use Assertions Using TDD Methods: setUp & tearDown
FLASKIntro to Flask Routing in Flask Applications Building & Using Forms Rendering Templates & Views Delivering Static Content The Di erent HTTP Methods Implementing Cookies & Sessions Hidden Inputs Form Validation
Intro to Flask with MySQL Import, Export, & Connect Your Database Connecting & Running Python Across Files Database Communication with Python Data Validation with Python Encryption & Data Security Basics Using BCrypt for Encryption
DEPLOYMENTIntro to Python Application Deployment
Tools You’ll Use:
Amazon Web Services (EC2)
Linux (Ubuntu)
Gunicorn & Nginx
PostgreSQL
Virtualenv
Git
Custom Domains
PYTHON
CHAPTERS & TOPICS: PYTHON
*Optional topics available
10
MEAN
JAVASCRIPTIntro to JavaScript Fundamentals (ES5 & ES6) Declaring & Referencing Variables Variable Hoisting in JavaScript Conditionals, Operators, & Nested Loops Using Arrays & Loops in JavaScript Objects, Functions, & Function Scoping Variable Hoisting with Scoping Return Statements in JavaScript Function Hoisting
JavaScript Object Oriented Programming (OOP) How to Use Object Constructors Common Constructors: ‘This’ & ‘New’ Private Methods & Variables Creating Prototype Objects in JavaScript Best Practices for JavaScript OOP
Intro to JavaScript Advanced Topics How to Use Callbacks Delegating Functionality & Event Handling
NODE.JSIntro to Node.JS How to Use Package Managers (NPM/Bower) File System Module & HTTP Making a Full Web Sever How to Work with Node Modules Common & Useful Node Modules
Modularization Using Require & Module.exports How to Modularize Existing Projects
EXPRESS.JSIntro to Express.JS Render Templates With Express View Engines HTTP Methods: Forms, Data Tranfers, & Routing Intro to Socket.io Applications with Real-time Communication
MONGO DBIntro MongoDB CRUD Operations for MongoDB
Intro to Mongoose Dependencies in Mongoose Mongoose Communication with MongoDB Mongoose Methods Data Validation with Mongoose Create Associations Between Mongo Objects RESTful Routing with Mongoose & Express
ANGULAR.JSIntro to Angular.JS Dependencies for Angular Directives, Data Binding, & Compiling Using Modules in Angular Controllers, $scope, & ‘this’ How to Create Factories Using Data Filters in Angular Ajax Requests Using Angular
MEANBuilding MEAN Applications Connecting Angular to Node Making API Requests in MEAN Tracing Data in the MEAN Stack
DEPLOYMENTIntro to MEAN Application Deployment Tools You’ll Use: Heroku Amazon Web Services (EC2) Linux Servers
*Optional topics available
CHAPTERS & TOPICS: MEAN
11
C#/.NET
*Optional topics available
CHAPTERS & TOPICS: C#/.NET
TECHNOLOGIES C# .NET Core MySQL ASP.NET Core ASP.NET Core MVC Microsoft Identity Microsoft Azure Entity Framework Dapper ORM
SKILLS Console based .NET Core apps LINQ Query API Service with ASP.NET Core OOP & MVC Web Security Object Relational Mapper
OOP Design Principles
COURSE OBJECTIVES Basic C# Object-oriented programming concepts. LINQ queries with C# Creation of a JSON API Service with ASP.NET Core Creating web application using Razor View Engine Adding AJAX requests to existing ASP.NET Core Service Creation of multi-view web applications for create/read/up-
date/delete scenarios such as eCommerce sites. Deployment to Azure Web Host MVVM structure with ASP.NET Core Understanding tradeo�s of various database interfaces including
both large and smaller scale ORMs * Daily morning algorithms.
COURSE SCHEDULE
Week 1: Intro to C# with .NET Core including all concepts of OOP Week 2: Building API services and simple CRUD apps with
ASP.NET Core Week 3: MVVM structure, Dapper, and Entity Framework Core Week 4: Project Week, Belt exam preparation and Belt Exam
13ADMISSIONS PROCESS
1. APPLICATION Prospective students must first submit an admissions application. This is a brief application form where you’ll share your background, answer several questions about your goals for the program, submit your resume, and provide contact information. Based o your written answers, our admissions team will decide if you’re a good fit for the program, and don’t worry, we aren’t specifically looking for coding experience. Culture fit is an important piece of our admissions process. An admissions decision will be made within 3-5 business days.
2. ACCEPTANCE LETTER
If selected to attend, you will receive an acceptance letter through email and a link to submit your payment, which will reserve your seat in the Coding Dojo program. You will also receive instructions concerning the required preparation for your upcoming program.
3. SAFETY DEPOSIT
Due to limited seats and high demand, you must first submit your safety deposit to reserve your seat and access the pre-course materials.
Optional Advisory Session
If you’d llike to speak to an admissions member before reserving your seat, you may attend an optional Advisory Session where we’ll answer any questions that you have about the program.
1. APPLICATION Prospective
2. SKILLS CHECK The goal of this Skills Check is to gauge your experience level anddetermine the type of prep work you must complete before class starts.This is not a pass or fail exam and is not factored into our acceptancedecision.
4. SAFETY DEPOSIT Due to limited seats and high demand, you must first submit your safetydeposit to reserve your seat and access the pre-course materials.
Have questions about the program?
You can schedule a callonline info session where we'll answer any questions that you
have about the program.
with our Program Success Manager. You can also
attend an
3. ACCEPTANCE LETTER
If selected to attend, you will receive an acceptance letter through emailand a link to submit your payment, which will reserve your seat in the
students must first submit anThis is a brief application form where you’ll share your background,answer several questions about your goals for the program, submityour resume, and provide contact information. Based o your writtenanswers,
admissions application.
our admissions team will decide if you’re a good fit for theprogram, and don’t worry, we aren’t specifically looking for codingexperience. Culture fit is an important piece of our admissions process.An admissions decision will be made within 3-5 business days.
program. You will also receive instructions concerning therequired preparation for yourCoding Dojo
upcoming program.