Curriculum
This repo contains the curriculum of Techtonica, a tech training program for women and non-binary adults with low incomes.
Install / Use
/learn @Techtonica/CurriculumREADME
Welcome to the Techtonica curriculum!
Techtonica is a non-profit project of SocialGood that offers a software engineering training with a need-based, sliding-scale, subsidized tuition and stipend scholarships for intensive tech training and job placement for unemployed or underemployed folks. For more information, please see our website: Techtonica.org
Program participants will learn to do full-stack web development using JavaScript. What bootcamps and Techtonica have in common is the fact that they are intensive training. However, bootcamps can be pretty passive classroom learning and they cost $15,000+ for the students.
Techtonica aims to be more like the workplace to make the transition into the industry better—instead of having an instructor constantly guiding you (which you won't have in any software engineering job), you are given a general schedule of topics and assignments (see our curriculum repo for an idea of the resources provided) and you're expected to figure out what to do on your own or in collaboration with volunteers, mentors, tech groups, and other participants. We’re making Techtonica’s program as hands-on and project-based as possible to best prepare you for work in tech.
Jump to Curriculum Table of Contents.
Volunteering & Contributing:
We'd love your help in improving this curriculum. See CONTRIBUTING for details.
Table of Contents
The following is the approximate sequence of the topics during the program but is always being tuned and optimized so if you have questions, please open an issue.
- Week 0 - Pre-Work
- Week 1 - Onboarding & Developer Tools
- Week 2 - Webpages: HTML & CSS
- Week 3 - JavaScript Fundamentals
- Week 4 - Intermediate JavaScript and React
- Week 5 - Web APIs
- Week 6 - Databases
- Week 7 - Advanced JS and React
- Week 8 - Testing
- Week 9 - Eventonica Project
- Week 10 - More PERN & Review
- Week 11 - Data Structures & Algorithms
- Week 12 - Final Assessments
- Week 13 - Career Week!
- Week 14 - Project Prep Week & Electives
- Weeks 15+ - Final Project
- Core Soft Skills for Tech Professionals
- Independent Topics
- Optional / Elective Lessons
Week 0 - Pre-Work
Before beginning the program, participants meet weekly for 4 weeks to learn JavaScript fundamentals. Participants should memorize common JavaScript built-in functions within the first month.
Week 1 - Onboarding & Developer Tools
- Welcome, Tips, and Rules
- Participant Weekly Expectations Checklist
- How to Learn
- Professionalism
- Roles in Tech
- Intro to Command Line Interface Tools
- Advanced Command Line
- Bash Profile
- Vim
- Homebrew 📝
- How to Pair Program
- Project 0 - Week 1 Review
- Operating Systems
- Keyboard Shortcuts
- Ergonomics
- Growth Mindset (YCLA Lesson Plan
- Asking Good Questions
- Networking (Career)
- Chrome Developer Tools: Setup
- One of either: Living in Open Workspaces or Working Remotely depending on program status. 😷
- HTML
- Intro to CSS
- JS HTML DOM Methods
- Debugging
- Recipe Page Project (Phase 1: HTML | Phase 2: CSS)
Week 2 - Webpages: HTML & CSS
- Git Version Control
- .gitignore
- Using GitHub for Code Storage
- GitHub Collaboration
- Operating Systems
- Local Development with VS Code
- Article: What Exactly is the DOM?
- How the Internet Works (The Other Kind of Networking)
- Intro to DNS
- Recipe Page Project (Phase 3: Bootstrap | Phase 4: DOM Manipulation))
- Media Queries
- UI/UX
- Bootstrap
- Building Confidence
- Solving Code Challenges
- Git Part 2: Study Guide
- Portfolio Project: HTML, CSS, & Bootstrap
- Using GitHub for Project Collaboration
- Personal Branding in the Portfolio Project
- Reading & Writing Documentation
- Writing Readable Code
- Deploy your Client Side Portfolio Project to Netlify
- Portfolio Project: Collaboration and Review
Week 3 - JavaScript Fundamentals
- JavaScript 1 - Variables, Strings, Numbers
- JavaScript 2 - Arrays, Functions
- JavaScript 3 - Conditionals, Comparisons, Booleans
- JavaScript 4 - Loops
- JavaScript 5 - Switch Statements
- JavaScript 6 - Object Literals
- Date Objects | Date Time
- Basic JavaScript Practice
- intro to Testing & TDD
- Assigned Reading - Eloquent JavaScript
Week 4 - Intermediate JavaScript and React
- JavaScript DOM Manipulation - formerly jQuery
- Game Project (HTML & JavaScript)
- a11y: Accessibility
- SEO
- Portfolio Project: Incorporate SEO & a11y
- JavaScript 7 - Object-Oriented Programming
- Mini Project: Object Oriented Programming in JS
- Functional Programming
- All React Lessons
Week 5 - Web APIs
- Node.js
- JavaScript 8 - Regular Expressions / RegEx
- Runtime Complexity
- Intro to HTTP
- APIs & JSON
- HTTP Request Practice
- Express.js
- Game Project (React)
Week 6 - Databases
- JavaScript 9 - Async, Callbacks, Promises
- Intro to JSON (DigitalOcean)
- AJAX
- .env & config files
- TwilioQuest Exercise
- Require and Import Mini Lesson
- Install PostgreSQL
- Intro to Databases
- Data Modeling 1 (Single tables)
- SQL 1 (Single tables)
- Data Modeling 2 (Multiple tables)
- SQL 2 (Multiple tables)
- Intro to Docker
- Install and Run PostgreSQL using Docker
- REST APIs
Week 7 - Advanced JS and React
- Full-Stack Web App Using React and Express
- Recursion
- JavaScript Set Object with JavaScript Tutorial
- JavaScript Performance Optimization
- [React Performance Optimization](/electives/optimization/performance-optim
