online course packet nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfover view...

12
Online Course Packet PYTHON | MEAN | .NET

Upload: lyhuong

Post on 29-Mar-2018

221 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

Online

Course PacketPYTHON | MEAN | .NET

Page 2: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 3: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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?

Page 4: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 5: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 6: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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.

Page 7: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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*

Page 8: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 9: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 10: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 11: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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

Page 12: online course packet Nov20 2017d11p8zzranqxa6.cloudfront.net/files/online_course_packet.pdfOVER VIEW 5 ONLINE CURRICUL UM* STRUCTURE Web Fundamentals 2 Full Stacks Python 20 weeks

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.