Skip to content
The curriculum of Techtonica, a free tech training and job placement program for women and non-binary adults with low incomes.
Branch: master
Clone or download
Latest commit 15b79da Apr 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
_templates new title Feb 7, 2019
ajax replaced w3school links with updated links (#592) Mar 2, 2019
algorithms separate supplement resources from requires materials in ( Apr 17, 2019
api Made the outline for Rest api (#687) Apr 5, 2019
assessment-objectives add assessment link & func programming objectives Mar 10, 2019
bootstrap Change references to Atom to VS Code. Jan 16, 2019
chrome-developer-tools fix video link Jan 14, 2019
conflict-resolution edit intro info & md Jan 10, 2019
css Topic outlines (#710) Apr 4, 2019
data-structures Binary Search Trees, B Trees (#782) Apr 24, 2019
data-visualization Change bold text to headings. Feb 13, 2019
databases Shorten ind. practice Apr 5, 2019
deploying Update instructions for serving static files Mar 21, 2019
diversity-inclusion-bias just a typo Nov 2, 2018
ethics add time for ind. practice Jan 24, 2019
express-js #288 updated motivated section of html (#615) Mar 3, 2019
financial-literacy remove outdated link Jan 17, 2019
git-version-control Pull request for Git and Bash Profile (#613) Mar 3, 2019
github-code-storage add 'pushing to cloned repo' to common mistakes Jan 25, 2019
github-collaboration Clarify new remote section Mar 18, 2019
giving-presentations fixing markdown formatting errors Aug 22, 2018
html Topic outlines (#710) Apr 4, 2019
interviewing Modify Slide Show 'Intro to Git' (#781) Apr 21, 2019
javascript Issue #730 (#743) Apr 12, 2019
jquery replaced w3school links with updated links (#592) Mar 2, 2019
learning-to-learn Completed "Ethics in SE" slideshow (#738) Apr 13, 2019
navigating-new-codebases Add link to article about navigating codebases Nov 2, 2018
networking Fix Meetup URL. Jan 11, 2019
node-js Explaination for npm-init-y (#624) Mar 5, 2019
oauth Authorizing user in Nodejs with Auth0 (#602) Apr 7, 2019
open-source Small typo in Common Mistakes sectio (#707) Mar 27, 2019
operating-systems adjust bullet spacing; add specific CFU Dec 14, 2018
optimization add time, add detail to materials Mar 13, 2019
pair-programming Empty file Apr 15, 2019
personal-brand make blog on medium instead Jan 26, 2019
practice Merge branch 'master' into middle-name Jan 24, 2019
professionalism Linked all Onboarding Prerequisites and included them in README (#742) Apr 12, 2019
projects FIx capitalization of "GitHub." Apr 3, 2019
python Make spacing, plurals, and wording consistent. Aug 16, 2018
react-js add es6 link Feb 20, 2019
reading-and-writing-documentation Update Jan 15, 2019
redux initial commit Oct 2, 2018
refactoring Make spacing, plurals, and wording consistent. Aug 16, 2018
requests-and-responses bring role play directions to top of section Jan 10, 2019
resume-writing Fix capitalization of H in GitHub. Mar 28, 2019
runtime-complexity Added more lesson content of Dynamic Programming (#704) Apr 9, 2019
sass Change references to Atom to VS Code. Jan 16, 2019
security update extensions links Mar 9, 2019
seo fix search console link Jan 14, 2019
socioeconomic-differences completed the outline of (#663) Mar 18, 2019
testing-and-tdd Update (#619) Mar 5, 2019
ui-ux-design add video link Jan 14, 2019
web-patterns add video link Jan 14, 2019
women-in-tech-resources Issue #560 added in scholarship section (#777) Apr 24, 2019
writing-readable-code replace walkthru video link Jan 14, 2019
.gitignore Remove non-essential topics. Clean up duplicate folders. Jan 8, 2018 update to match readme Feb 21, 2019
LICENSE.MD Add CC BY-SA 4.0 license. Jul 17, 2016
package-lock.json add career week lessons to roles-in-tech/, finish README Oct 24, 2018 Make spacing, plurals, and wording consistent. Aug 16, 2018

Welcome to the Techtonica curriculum!

Techtonica is a non-profit project of SocialGood that does free tech training and job placement for unemployed or underemployed folks. For more information, please see our website:

Apprentices will learn to do full-stack web development using JavaScript. What bootcamps and apprenticeships like Techtonica have in common is the fact that they are intensive training. However, bootcamps can be pretty passive classroom learning with students and they cost between $15,000 and $30,000.

An apprenticeship aims to be more like the workplace to make the transition into the industry better—instead of having an instructor constantly guiding you, a facilitator gives you assignments and you're expected to figure out what to do with volunteers, mentors, tech groups, and other apprentices. In the best-case scenarios, there are regular check-ins with managers and mentors provide support. 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.


If you would like to contribute to the curriculum, please sign up here, then choose an issue in the to-do list.

Get started:

  • Choose an issue from the TO-DO column that seems right for you & message Techtonica staff. If you know someone connected to Techtonica, they may be able to add you to our slack channel. If you are here for GSSoC19, message Alina L. (M) and say you'd like to pick up the issue.
  • In the issue, you should find a link for a lesson outline and for corresponding slides.
  • If it is in the "TO-DO" column, that means it is available, even if there's an "assignee".
  • To create an outline, fork the repo or commit directly onto the master branch. Here is a topic outline template that explains what we need for each section.
  • To edit a slideshow, you'll need to request edit permission by clicking View Only > Request Edit Access, or message Alina. If you are logged into an account ending in, you can simply make a copy, edit, and transfer ownership to when you finish. Either way, save on top of the sample template used in the slide, and cut any slides you find unnecessary.
  • To make a video, one effective solution has been to record your screen as you explain the lesson slides to the apprentices. An alternative can be a video found online that covers all the objectives of the lesson in a way suited to beginners.
  • Here is an example of a great lesson trio: MongoDB Slides, MongoDB Lesson Outline, MongoDB Video.

While working:

  • Comment in the issue if you have a question, or send a slack message.
  • People are welcome to team up on an issue. If you see someone is already assigned but you want to help, leave the other assignee a message on the issue about collaborating.
  • Please note the due date! Any amount of help is appreciated, but if the deadline approaches and you won't be able to complete it, please leave a comment about your progress and unassign yourself from the issue so someone else can pick it up. If you forked the repo, go ahead and make a pull request with what you have, and transfer ownership of a copied slideshow to

Completed curriculum:

  • Place a "completed" label on the issue once you've completed it, make a pull request to Techtonica/curriculum master, and leave comments about your work if you like. Grazie Mille!!

Table of Contents


  1. Welcome, Tips, and Rules
  2. Expectations While at Techtonica
  3. How to Learn
  4. Interpersonal Conflict Resolution
  5. Diversity, Inclusion & Implicit Bias
  6. Professionalism
  7. Ergonomics
  8. Roles in Tech
  9. Tech Tips and Rules
  10. Growth Mindset

Programmer Tools

  1. Intro to Command Line Interface Tools
  2. Advanced Command Line
  3. Bash Profile
  4. Vim
  5. Operating Systems
  6. Keyboard Shortcuts
  7. Asking Good Questions
  8. Local Development with VS Code
  9. Networking
  10. Interpersonal Conflict Resolution
  11. How the Internet Works: Requests and Responses
  12. Intro to DNS
  13. Project 0 - Week 1 Assessment
  14. How to Pair Program

Client-side Development && Confident Programming

  1. HTML
  2. Git Version Control
  3. Recipe Page Project: HTML
  4. .gitignore
  5. Using GitHub for Code Storage
  6. CSS
  7. Chrome Developer Tools: Setup
  8. Recipe Page Project: CSS
  9. Media Queries
  10. UI/UX
  11. Web patterns
  12. Bootstrap
  13. Building Confidence
  14. Recipe Page Project: Bootstrap
  15. Giving Presentations
  16. Git Part 2: Study Guide
  17. Portfolio Project: HTML, CSS & Bootstrap
  18. Diversity, Inclusion, and Bias
  19. a11y: Accessibility
  20. SEO: Search Engine Optimization
  21. Portfolio Project: Incorporating SEO & a11y
  22. Using GitHub for Project Collaboration
  23. Portfolio Project: Personal Branding
  24. Reading/Writing Documentation
  25. Writing Readable Code
  26. Deploy your Portfolio Project: Deploying Client-Side Apps with Netlify
  27. Portfolio Project: Collaboration and Review
  28. JavaScript 1
  29. JavaScript 2
  30. Whiteboarding
  31. Datetime
  32. Whiteboarding Interview Challenges
  33. JavaScript 3
  34. JavaScript 4
  35. JavaScript 5
  36. JavaScript 6 - Object Literals
  37. Runtime Complexity
  38. Basic JavaScript Practice
  39. Week 4 Assessment: Loops, Conditionals, Runtime Complexity
  40. Javascript 7 - Object-Oriented Programming
  41. Restaurant Recommender System with Javascript
  42. Restaurant Recommender System with Javascript - Part 2
  43. Testing & TDD
  44. Adding Jasmine Chai/Mocha Tests to your project
  45. Javascript 8 - Regular Expressions / RegEx
  46. Debugging
  47. Javascript 9 - Callbacks and Promises
  48. APIs & JSON
  49. AJAX
  50. Twilio Quest Exercise Outline
  51. Data Visualization
  52. Assessment 7.9: Data Visualization

Server-side Development && Agile Programming

  1. NodeJS
  2. ExpressJS
  3. Data Models
  4. .env & config
  5. Data Models
  6. SQL
  7. Relational Databases
  8. Adding Tests to your NodeJS project
  9. Week 7, Assessment #8 - Build a Minimal API Project
  10. Database Migrations
  11. Intro to Scrum
  12. Eventonica Project
  13. MongoDB
  14. React Part 1
  15. React Part 2
  16. Enzyme Testing
  17. Intro to Security in Web Development
  18. Auth0
  19. Assessment #9.0: Add a field to your Eventonica User
  20. Assessment #9.5: Auth0
  21. Deploying to Heroku with React and Node
  22. Recursion
  23. Memoization
  24. Optimization
  25. Refactoring
  26. Optimizing your React/NodeJS Project
  27. Agile Project Management
  28. Functional Programming
  29. Assessment #10: Advanced Methods

Data Structures & Algorithms

  1. Intro to Data Structures
  2. Sprint Plan for Data Structures & Algorithms Week
  3. Data Structures: Stacks
  4. Data Structures: Queues
  5. Data Structures: Deque
  6. Data Structures: Linked Lists
  7. Data Structures: Hash Tables
  8. Data Structures: Trees
  9. Intro to Algorithms
  10. Algorithms: Searching
  11. Algorithms: Sorting

Career Development && Final Project

  1. Technical Interviewing
  2. Assessment 11: Data Structures and Algorithms
  3. Navigating New Codebases
  4. Open-source Projects
  5. Interviewing
  6. Resume Writing
  7. Front End Take-home Challenge
  8. Backend take home exercise
  9. Technical Writing
  10. Career Week: Machine Learning Engineer
  11. Career Week: Entrepreneurship
  12. Career Week: Data Science
  13. Career Week: Security
  14. Career Week: QA Engineer
  15. Career Week: Developer Advocate
  16. Career Week: Sales Engineering
  17. Career Week: Technical Program Manager
  18. Final Project: Selecting Your Final Project
  19. Final Project: 5 weeks
  20. Mobile Development
  21. Resources: Women in Tech
  22. Difficult Workplace Situations
  23. Financial Literacy
  24. Negotiating
  25. Ethics in Software Engineering

Optional Resources:

Creative Commons Open-Source License

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0

You can’t perform that action at this time.