/curriculum

The curriculum of Techtonica, a free tech training and job placement program for women and non-binary adults with low incomes.

Primary LanguagePythonCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

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: Techtonica.org

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.

Volunteering:

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 @gmail.com, you can simply make a copy, edit, and transfer ownership to techtonicaorg@gmail.com 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 techtonicaorg@gmail.com.

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

Onboarding

  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. Article: What Exactly is the DOM?
  8. Chrome Developer Tools: Setup
  9. Recipe Page Project: CSS
  10. Media Queries
  11. UI/UX
  12. Web patterns
  13. Bootstrap
  14. Building Confidence
  15. Recipe Page Project: Bootstrap
  16. Giving Presentations
  17. Git Part 2: Study Guide
  18. Portfolio Project: HTML, CSS & Bootstrap
  19. Diversity, Inclusion, and Bias
  20. a11y: Accessibility
  21. SEO: Search Engine Optimization
  22. Portfolio Project: Incorporating SEO & a11y
  23. Using GitHub for Project Collaboration
  24. Portfolio Project: Personal Branding
  25. Reading/Writing Documentation
  26. Writing Readable Code
  27. Deploy your Portfolio Project: Deploying Client-Side Apps with Netlify
  28. Portfolio Project: Collaboration and Review
  29. JavaScript 1
  30. JavaScript 2
  31. Whiteboarding
  32. Datetime
  33. Whiteboarding Interview Challenges
  34. JavaScript 3
  35. JavaScript 4
  36. JavaScript 5
  37. JavaScript 6 - Object Literals
  38. Runtime Complexity
  39. Basic JavaScript Practice
  40. Week 4 Assessment: Loops, Conditionals, Runtime Complexity
  41. Javascript 7 - Object-Oriented Programming
  42. Mini Project: Object Oriented Programming in JS
  43. Event Search System with Javascript
  44. Event Search System with Javascript - Part 2
  45. Testing & TDD
  46. Adding Jasmine Chai/Mocha Tests to your project
  47. Javascript 8 - Regular Expressions / RegEx
  48. Debugging
  49. Javascript 9 - Callbacks and Promises
  50. APIs & JSON
  51. AJAX
  52. Twilio Quest Exercise Outline
  53. Data Visualization
  54. 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. Install PostgreSQL
  8. Relational Databases
  9. Table Relationships and Join Queries by Treehouse
  10. Adding Tests to your NodeJS project
  11. CRUD workshop: connect Node and sqlite3 with Sequelize by Treehouse
  12. Week 7, Assessment #8 - Build a Minimal API Project
  13. Database Migrations
  14. Work through this tutorial: Setting up a RESTful API with Node.js and PostgreSQL by Tania Rascia
  15. Treehouse: Introduction to REST APIs (do the whole course)
  16. Do the first two sections of: REST APIs with Express (1.Getting to Know REST APIs & 2.Managing Data and Asynchronous Code)
  17. Intro to Scrum
  18. Eventonica Project
  19. MongoDB
  20. React Part 1
  21. React Part 2
  22. Enzyme Testing
  23. Intro to Security in Web Development
  24. Auth0
  25. Assessment #9.0: Add a field to your Eventonica User
  26. Assessment #9.5: Auth0
  27. Deploying to Heroku with React and Node
  28. Recursion
  29. Memoization
  30. Optimization
  31. JS Hash Maps
  32. Refactoring
  33. Optimizing your React/NodeJS Project
  34. Agile Project Management
  35. Functional Programming
  36. 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. Read this article on job hunting
  4. Navigating New Codebases
  5. Open-source Projects
  6. Interviewing
  7. Resume Writing
  8. Read this article on Take-home Challenges by janephilipps
  9. Front End Take-home Challenge
  10. Back End Take-home Challenge
  11. Technical Writing
  12. Career Week: Machine Learning Engineer
  13. Career Week: Entrepreneurship
  14. Career Week: Data Science
  15. Career Week: Security
  16. Career Week: QA Engineer
  17. Career Week: Developer Advocate
  18. Career Week: Sales Engineering
  19. Career Week: Technical Program Manager
  20. Final Project: Selecting Your Final Project
  21. Final Project: 5 weeks
  22. Mobile Development
  23. Resources: Women in Tech
  24. Difficult Workplace Situations
  25. Financial Literacy
  26. Negotiating
  27. 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