Coding is not about code. Coding is ... * Communication * A cognitive tool * Practical problem solving
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.
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!)
- 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.
- 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!
- 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.
- Collaboration: No developer is an island. Practice the entire collaborative Solution Design process from problem definition & exploration to launch & maintenance.
- 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.
- CLEAN Architecture: "Apps are like onions." - (probably Shrek).
- 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.
- User Accounts: Create a continuous user experiences with sessions, cookies and authentication.
- 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.
- 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: