No description, website, or topics provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md

README.md

The Curriculum

Coding is not about code.  Coding is ...
    * Communication
    * A cognitive tool
    * Practical problem solving

These carefully designed projects form the core of our Software Development curriculum. If you study them as recommended you will learn the fundamentals of programming & software development. Skills that transfer between any language or development environment. You won't learn any particular framework in depth. Instead, you will explore the fundamental design principles behind popular frameworks while building your own full-stack application fron scratch using Vanilla JavaScript.

Each project is meant to be just a starting point. After you've finished the requirements and you've understood the main learning objectives, take the simple base provided and make it something awesome.

Our projects do not cover the basics of JavaScript, DOM, HTML/CSS, or any other popular framework or library. There are already thousands of great places to learn those things. We link to our favorites in General Resources, and directly from the projects where you'll need them.

To study the projects we recommend you fork+clone the project repos. This will allow you to take notes, run/study sourcecode, and modify samples directly from your computer. (And a little extra practice with Git never hurt anyone!)


  1. Precourse: Learn what it's like to be a developer, establish effective study skills, and take your first steps into JavaScript, HTML & CSS. Finally introduce yourself to the open-source world with a basic Bootstrap portfolio hosted on GitHub Pages.
  2. JS Fundamentals: Take a deeper dive into JS by learning to draw and predict what JavaScript does with each step as it executes your code.
  3. Development Workflow: Continue to practice JavaScript by creating coding challenges for your peers to fork and complete, all the while familiarizing yourself with the professional development environment: Visual Studio Code, Chrome/ChromeDev, Terminal, Git & GitHub.
  4. Code Whispering: Explore advanced code tracing & debugging techniques like chunking, tracing, asserting, and the different roles variables can play in code. By the end of this segment you will be one with your code and the ChromeDev Console.
  5. Using JavaScript: Reduced to the most simplistic explanation, algorithms just transform data from an initial state to a final state. In Using JavaScript you'll take your first steps into developerhood by learning a strategy-first methdology for mapping real-world challenges into code-based solutions and back again.
  6. Dev 101: Algorithms make lousy applications, they don't listen to you. Embed your algorithms into interactive event-driven applications and lay the groundworks for the beginning of your FullStack adventure!
  7. Modular Design: Take Separation of Concerns to the extreme with the Model-View-Controller-Logic-Handler architecture. Explore testing, progressive development, dependency injection, data modeling, and multi-environment development.
  8. Collaboration: No developer is an island. Practice the entire collaborative Solution Design process from problem definition & exploration to launch & maintenance.
  9. FullStack: Make the jump to true FullStack applications by building Restful & Logic-Based services behind HTTP endpoints using Express & Axios. Start your journey to FrontEnd apps by exploring the relationship between local and global state.
  10. Design Patterns: Combine your knowledge of JavaScript & application design to create your own configurable modules. This will stretch your understanding of both app development and pure JS to the limits.
  11. CLEAN Architecture: "Apps are like onions." - (probably Shrek).
  12. Frontend Apps: Keeping Local State (data stored in the browser) synced with Global State (data stored in the BackEnd) is no simple task. This introduction to common design patterns for single page applications will set you off in the right direction.
  13. User Accounts: Create a continuous user experiences with sessions, cookies and authentication.
  14. Frameworks: So far you've had to build almost everything from scratch. Hopefully you've noticed how many times you wrote the same code, over and over again. Frameworks exist to automate these repetitive parts of building your application. Pro: simplicity. Con: rigidity. In this project you'll put together everything you've learned in this course by building your own FullStack framework.
  15. Final Project: Specialize! Plan, design, implement and deploy a project of your choosing. This is your chance to explore popular tools, libraries and frameworks. Take this opportunity to strengthen your strengths and showcase your skillzz.

Visit the General Resources wiki for more info on how to follow this course independently.


Useful & fun things: