Viking Code School
Full Stack Web Development
Course Syllabus
Foreword
The Viking Code School has everything you need to go from complete beginner to professional
web developer. Our content covers everything from what a developer is to negotiating the
starting salary for your new job as a software engineer.
Though this curriculum covers the full breadth and depth of materials that you will need in order
to call yourself a “Full Stack Web Developer”, it is not designed to be a one-size- ts-all approach.
Unlike other programs which hold your hand or trim away the hard stu , we dive head rst into
the inner workings of software engineering. That means you will have to build more than 80
projects completely from scratch and wrestle with tricky concepts. That takes dedication and grit
but the reward is well worth it.
Luckily, you aren’t alone in this journey. The curriculum is really just the path -- your teammates,
instructors and mentors provide the support you need to nd your way over (or around) obstacles
and to get you back on track when you get lost. We’ve designed our two programs -- the
Immersive Program and the Flex Program -- to allow you to dial in exactly the level of support you
need to t this material into your life and your budget.
This curriculum has been forged by the experiences of thousands of students like yourself and
the only thing that is certain is that it will continue to change in order to keep pace with the skills
that will land you the rst job of your new career.
The following sections detail what is covered in our curriculum. Information on joining our
programs is available at the very end so you can take the plunge as soon as you’re ready.
Knowledge Path
Your journey begins with the most comprehensive Prep Work available from any school in the
world. In our Basic Prep, you will learn everything you need in order to begin your journey as an
engineer. Our Advanced Prep dives deeply into the fundamentals of Markup (HTML, CSS, SASS
and Bootstrap), Coding with JavaScript and how to lay groundwork for getting-hired. Best of all,
it's completely free!
Our Core Curriculum covers everything you need to complete your journey to a job. Regardless
of whether you take our Flex Program or Immersive Program, you will have access to the same
high-quality path and support. The Core Curriculum covers the fundamentals of Data, Back End
Engineering, Front End Engineering, and Getting Hired.
Contents subject to change P
age 2 of 11
Full Curriculum Map
A full curriculum map is provided below. Subsequent pages describe each section in detail.
Contents subject to change P
age 3 of 11
Prep Courses
The Prep Work is available completely free to anyone who would like to try it. Viking has the
most comprehensive prep work in the world so it is NOT trivial! This work is required before you
begin our core curriculum (regardless of whether you’re doing so via the Immersive Program or
the Flex Program), so it’s an invaluable resource both for getting your feet wet as a new
developer and for preparing to enter one of the rigorous Viking programs.
Basic Prep Work
Our Basic Prep starts with the very basics and covers a number of topics which are important for
you to be a well-rounded engineer.
Web Development Basics
● Web Fundamentals
● The Command Line
● Using Git to Collaborate
Web Design Basics
● The Design Process
● Introduction to Product Design
● Introduction to User Experience (UX)
● Elements of Visual Design
● Building and Using Mockups
Software Engineering Basics
● Principles of Software Engineering
● Agile Web Development
● Pseudocoding
● SOLID Design Principles
Contents subject to change P
age 4 of 11
Advanced Prep Work
Our Advanced Prep gives you a comprehensive understanding of Markup (with HTML, CSS,
SASS and Bootstrap), JavaScript and what you must do immediately to support your job search.
This advanced work operates just like our core curriculum -- you will build real projects from
scratch and solve real problems with code.
Markup and Styling
● HTML5
● CSS3
● Developer Tools
● Debugging Markup
● SASS preprocessing
● Twitter Bootstrap
JavaScript Programming Fundamentals
● The Fundamentals of Code
● Data Types, Flow Control, Looping
● Intermediate JavaScript
● Object-Oriented Programming
● Functional Programming
● `This`, Scope and Closures
● Objects and Prototypes
● jQuery Events and E ects
● The Module Pattern
● Error Handling
● Refactoring and Debugging
● Namespacing
Getting Hired I: Knowledge is Power
● The Viking Method for Getting Hired
● What Companies Want
● Planning Your Strategy
● Creating Your Vapor Trail
● Building a Personal Website
● Reaching Out to Developers
Contents subject to change P
age 5 of 11
Core Curriculum
Our core curriculum is designed to take you from “advanced beginner” to employable full-stack
engineer. That means we have a LOT of ground to cover (roughly 1200 hours of it!).
The course is broken into the 4 key sections shown below: Databases, Back End, Front End and
Hiring. To be truly full-stack, we expect that you will be employable as either a front-end
developer or a back-end developer and we prepare you accordingly. This why our program
covers more ground than any other.
Databases
Data is the core of every major web application and you have to be uent in its modeling, storage
and retrieval in order to be an e ective engineer. During the Databases portion of the course,
you will learn everything you need in order to break down a website into its core data model and
then implement that model yourself.
Data Modeling
● Data Relationships
● Designing a Data Model
● Relational Databases
● Alternative Databases
● Data Normalization
● Entity Relationship Modeling (ERM)
SQL
● Working with Database Schemas
● Create-Read-Update-Destroy (CRUD)
● Joins
● Aggregate Functions and Groups
● Sub Queries
NoSQL
● Serialization
● Modeling NoSQL data
Contents subject to change P
age 6 of 11
● Document Databases (MongoDB)
● NoSQL Best Practices
Back End Engineering with JavaScript/Node
The Back End Engineering portion of our curriculum uses JavaScript as your window into the
underlying structure of programming and the systems of the web. You learn how to interact with
everything from les to web requests while also developing an appreciation for the strategy of
developing robust web frameworks.
NodeJS
● Server-Side JavaScript
● NPM
● JavaScript Build Processes
● Event Loop and Emitters
● File System Interaction
● Modules
Express + APIs
● HTTP in Depth
● Calling APIs
● Reading API documentation
● Basic API Authentication
● OAuth 2.0
● API-Based Sign-In with SDKs
● API-Based Sign-In with Omniauth
● Uploading to Amazon S3
● ExpressJS
● Cookie and Session Persistence
● Deploying JavaScript Applications
Authentication and Security
● Intro to Security and Authentication
● Basic and Digest Authentication
● Session-Based Authentication
Contents subject to change P
age 7 of 11
● Cookie-Based Authentication
● JSON Web Tokens
● Hacking Attack Vectors
Testing
● Overview of Software Testing
● Unit Testing
● Integration Testing
● Factories
● JavaScript Testing Frameworks
Front End Engineering
The Front End Engineering portion of the course uses the JavaScript language to carry you
through designing modern dynamic web applications. You will learn everything from how to
retrieve data using lightweight AJAX requests to constructing production-scale single-page apps
using the ReactJS framework.
The JavaScript Programming Fundamentals prep course is a prerequisite for this section.
React + Redux
● AJAX
● Overview of Frontend Frameworks
● Frontend Data Modeling
● Templating Frameworks
● JSX
● The React Environment
● Components and State
● Props
● Routing
● Redux
● Webpack
Frontend Design
Contents subject to change P
age 8 of 11
● Frontend Data Modeling
● Best Practices
● Build Tools and Work ows
Frontend Testing
● Jest
● Snapshot Testing
● DOM Testing
Getting Hired
Getting yourself job-ready begins long before you’ve covered the full curriculum and that's why
you began the journey in the Prep Work phase. Our core Hiring materials pick up where the prep
work left o , preparing you for the active portion of the job search process. That means turning
your vapor trail into real human connections, breaking through the phone screen, nailing the
technical interview, and negotiating your job o ers.
Part of your preparation to be a strong engineer and a strong technical interviewer is an in-depth
coverage of data structures and algorithms. In this section, you will gain an in-depth
understanding of these crucial topics as well as get access to our library of take-home
challenges, interview scripts, and actual challenge questions received by Viking alumni.
The most important part of your portfolio is your Final Project. This is a full end-to-end
engineering project that you will build from idea to mockup to deployed app with a team of other
students (regardless of which program you enroll with). This gives you a chance to practice a full
engineering work ow with our expert support along the way.
Data Structures and Algorithms
● Basic Data structures
● Hash Tables
● Graphs and Trees
● Algorithmic Problem Solving
● Recursion
● Sorting Algorithms
● Search Algorithms (BFS, DFS)
Contents subject to change P
age 9 of 11
Final Projects
● Applied Agile Development
● Working on a Real Engineering Team
● Choosing a Great Final Project
● Planning an Agile Sprint
● Live Demo to the Viking Community
Getting Hired: Application to O er
● Locating the Best Jobs
● Networking the Non-Annoying Way
● Getting on the Radar of Companies
● Interviewing Preparation
● Technical Interviewing Practice
● Whiteboarding
● Mock Interviews
● Fielding Job O ers
● Salary Negotiation
● Continuous Learning and Career Advancements
● Open Source Contribution
Continued on the next page...
Contents subject to change P
age 10 of 11
Getting Started with Viking
Viking is a challenging program and real commitment but it’s also a gateway to a career doing
what you love. To learn more about our programs, check out our website at
https://www.vikingcodeschool.com.
The best place to start your journey is our free Prep Work, which covers an exceptional amount
of breadth and depth. While it’s not identical to our core curriculum, it should give you a good
sense of how we tend to present materials and whether the course “feels” right for you.
Once you’re ready to get started with the core course, you’ll need to choose a program. In our
Immersive Program, you join a small cohort of other students (beginning at regular intervals
through the year) for several intense months after passing a rigorous application process. Our
go-at-your-own-pace Flex Program allows you to begin as soon as you’re ready and with the
1-on-1 support of professional mentors along the way.
If you have questions about anything, you can nd most answers on the respective program FAQ
pages or you can feel free to reach out to
[email protected]. You can stay up to date
by joining our mailing list, which allows you to receive our weekly Code Review (a compilation of
the week's best development articles, music and random geekery).
We hope you’ll join us for your upcoming journey but, either way, we wish you the very best of
luck!
Contents subject to change P
age 11 of 11