Coder Social home page Coder Social logo

techtonica / curriculum Goto Github PK

View Code? Open in Web Editor NEW
589.0 42.0 489.0 27.28 MB

This repo contains the curriculum of Techtonica, a free tech training program for women and non-binary adults with low incomes.

License: Creative Commons Attribution Share Alike 4.0 International

HTML 14.25% JavaScript 66.89% Shell 1.09% Python 11.09% CSS 6.12% EJS 0.56%
open-source non-profit apprenticeship women non-binary curriculum curriculum-development techtonica hacktoberfest javascript

curriculum's Introduction

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

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:

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 & leave a comment for 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 GHC or Hacktoberfest, message Cristina, Ruthie or Sarah and say you'd like to pick up the issue.
  • In the issue, you should find a link for a lesson outline and for our resources about the topic.
  • 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 main 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 [email protected] 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 learner. 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 [email protected].

Completed curriculum:

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

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

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

  1. Welcome, Tips, and Rules
  2. Expectations While at Techtonica
  3. How to Learn
  4. Professionalism
  5. Roles in Tech
  6. Intro to Command Line Interface Tools
  7. Advanced Command Line
  8. Bash Profile
  9. Vim
  10. Homebrew 📝
  11. How to Pair Program
  12. Project 0 - Week 1 Review
  13. Operating Systems
  14. Keyboard Shortcuts
  15. Ergonomics
  16. Growth Mindset
  17. Asking Good Questions
  18. Networking (Career)
  19. Chrome Developer Tools: Setup
  20. One of either: Living in Open Workspaces or Working Remotely depending on program status. 😷
  21. HTML
  22. Intro to CSS
  23. JS HTML DOM Methods
  24. Debugging
  25. Recipe Page Project: HTML

Week 2 - Webpages: HTML & CSS

  1. Git Version Control
  2. .gitignore
  3. Using GitHub for Code Storage
  4. GitHub Collaboration
  5. Operating Systems
  6. Local Development with VS Code
  7. Article: What Exactly is the DOM?
  8. How the Internet Works (The Other Kind of Networking)
  9. Intro to DNS
  10. Recipe Page Project: CSS
  11. Media Queries
  12. UI/UX
  13. Bootstrap
  14. Building Confidence
  15. Recipe Page Project: Bootstrap
  16. Solving Code Challenges
  17. Git Part 2: Study Guide
  18. Portfolio Project: HTML, CSS & Bootstrap
  19. Using GitHub for Project Collaboration
  20. Portfolio Project: Personal Branding
  21. Reading/Writing Documentation
  22. Writing Readable Code
  23. Deploy your Portfolio Project: Deploying Client-Side Apps with Netlify
  24. Portfolio Project: Collaboration and Review

Week 3 - JavaScript Fundamentals

  1. JavaScript 1 - Variables, Strings, Numbers
  2. JavaScript 2 - Arrays, Functions
  3. JavaScript 3 - Conditionals, Comparisons, Booleans
  4. JavaScript 4 - Loops
  5. JavaScript 5 - Switch Statements
  6. JavaScript 6 - Object Literals
  7. Datetime
  8. Basic JavaScript Practice
  9. Testing & TDD
  10. Assigned Reading - Eloquent JavaScript

Week 4 - Intermediate JavaScript and React

  1. JavaScript DOM Manipulation - formerly jQuery
  2. HTML/JS Game Project
  3. a11y: Accessibility
  4. SEO
  5. Portfolio Project: Incorporate SEO & a11y
  6. JavaScript 7 - Object-Oriented Programming
  7. Mini Project: Object Oriented Programming in JS
  8. Functional Programming
  9. All React Lessons

Week 5 - Web APIs

  1. Node
  2. JavaScript 8 - Regular Expressions / RegEx
  3. Runtime Complexity
  4. Intro to HTTP
  5. APIs & JSON
  6. HTTP Requests Practice
  7. Express
  8. REST APIs

Week 6 - Databases

  1. JavaScript 9 - Async, Callbacks, Promises
  2. Intro to JSON (DigitalOcean)
  3. AJAX
  4. .env & config files
  5. TwilioQuest Exercise
  6. import & require
  7. Install Postgres
  8. Intro to Databases
  9. Data Modeling 1 (Single tables)
  10. SQL 1 (Single tables)
  11. Data Modeling 2 (Multiple tables)
  12. SQL 2 (Multiple tables)
  13. Intro to Docker
  14. Install and Run PostgreSQL using Docker

Week 7 - Advanced JS and React

  1. Full-Stack Web App Using React and Express
  2. Recursion
  3. JavaScript Set object

Week 8 - Testing

  1. Adding Tests to your NodeJS project
  2. Testing with Jest
  3. Rithm School- Testing with Jest
  4. API testing with Jest
  5. Testing React Components with Jest and React Testing Library

Week 9 - Eventonica

  1. Eventonica Project

Week 10 - Full Stack Practice

  1. Deploying to Heroku with React and Node
  2. Optimizing your React/NodeJS Project
  3. Enzyme Testing

Week 11 - Data Structures & Algorithms

Data Structures

  1. Intro to Data Structures
  2. Sprint Plan for Data Structures & Algorithms Week
  3. Data Structures: Stacks
  4. Data Structures: Queues
  5. Data Structures: Linked Lists
  6. Data Structures: Hash Tables
  7. JavaScript Map
  8. Data Structures: Trees

Algorithms

  1. Intro to Algorithms
  2. Algorithms: Searching
  3. Algorithms: Sorting

Week 12 - Final Assessments

  1. Navigating New Codebases
  2. Open-source Projects

Week 13 - Career Week!

  1. Technical Interviewing
  2. Take-home Problems
  3. Non-Tech Interviews
  4. Article by Techtonica Alum: Working in the field as a New Software Engineer out of Bootcamp
  5. Career Week: Machine Learning Engineer
  6. Career Week: Entrepreneurship
  7. Career Week: Data Science
  8. Career Week: Security
  9. Career Week: QA Engineer
  10. Career Week: Developer Advocate
  11. Career Week: Sales Engineering
  12. Career Week: Technical Program Manager

Week 14 - Project Prep Week & Electives

  1. Intro to Security in Web Development
  2. Refactoring
  3. Interviewing
  4. Resume Writing
  5. Front End Take-home Challenge
  6. Back End Take-home Challenge
  7. Technical Writing
  8. Final Project: Selecting Your Final Project
  9. Final Project: 5 weeks
  10. Resources: Underrepresented in Tech
  11. Difficult Workplace Situations
  12. Financial Literacy
  13. Negotiating
  14. Ethics in Software Engineering

Weeks 15+ Final Project

After Week 14, Participants build a full-stack web application in the course of one month, from inception to production. This includes:

  • Creating project planning docs with wireframes
  • Planning out must-have features for their MVP
  • Updating status on their Trello board to meet weekly milestones/sprints
  • Gathering user feedback and adapting their remaining MVP plan
  • Deploying their application to Heroku
  • Recording a compelling demo for the finished product

For more details, see Final Project.

Independent Topics

These are not blockers for any of the core sequence and so they are worked into the schedule as time permits.

  1. Interpersonal Conflict Resolution
  2. Diversity, Inclusion & Implicit Bias
  3. Tech Tips and Rules
  4. Giving Presentations
  5. Whiteboarding
  6. Whiteboarding Interview Challenges
  7. Agile Project Management
  8. Intro to Scrum

Optional / Elective Lessons

Creative Commons Open-Source License

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

CC BY-SA 4.0

curriculum's People

Contributors

aedward8 avatar allardbrain avatar alodahl avatar amychan331 avatar chulinguy avatar daaimah123 avatar dependabot[bot] avatar iamdhruvsharma avatar imskr avatar ishaan2908 avatar jmorris270 avatar judytuna avatar julie-norris avatar karla-isabel-sandoval avatar kristalane avatar lalpert avatar michelleglauser avatar mx-ruthie avatar naomiquinones avatar priyaraj7 avatar rachelgreenwood avatar raibove avatar rcoh avatar sarahcawley avatar spyapali avatar taleamonet avatar vegetabill avatar vsharma20v avatar yati1998 avatar yosolita1978 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

curriculum's Issues

Write "AJAX" lesson plan

The lesson plan should live at ajax/ajax.md.

It should discuss

  • async,
  • threads of execution,
  • APIs (Google Maps), and
  • promises.

Acceptance Criteria:

  • The lesson can be covered in 30-45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write HTML and CSS "IDs and Classes" topic outline.

The lesson plan should live at html-and-css/ids-and-classes.md and have a similar workflow to the intro to HTML.

Students should understand

  • floating and positioning,
  • the box model,
  • how to style text, and
  • how to quickly build a simple layout.

One idea for an "assessment" would be to have the students participate in a build-the-ugliest-website competition.

The following may be used as references:

Acceptance Criteria:

  • The lesson has a defined time scope (45 minutes? 2 hours? etc.)
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write Request/Response "Intro to TCP/IP" lesson plan

The lesson plan should live at intro-to-request-response/intro-to-tcp-tls.md. You may want to use https://medium.freecodecamp.com/how-the-web-works-part-ii-client-server-model-the-structure-of-a-web-application-735b4b6d76e3#.1u4cd7gy6 as a reference.

Acceptance Criteria:

  • The doc is linked to from the main table of contents
  • The lesson can be covered in 45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write "How to Learn" topic outline.

Write React "Redux" topic outline.

  • The lesson plan should be saved into this file. The template is a copy of the React lesson that will be learned the day before.

  • Save the accompanying slideshow in this file.

  • Find or make an intro to redux video and paste the link in the issue comments.

Write "What is Version Control?" lesson plan

The lesson plan should live at git-version-control/git-version-control.md.

By the end of the lesson, students should understand

  • add, commit, status, log
  • rm, stash [pop], reset [soft/hard]
  • remote [-v/add]
  • push [-f], fetch, clone
  • checkout [-b], merge, push -u

The following may be used as resources:

Acceptance Criteria:

  • The lesson can be covered in 30-45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write Python "Package Management" lesson plan

The lesson plan should live at python/package-management.md.

It should cover

  • bundler vs. virtualenv
  • NPM
  • organizing Python projects

Acceptance Criteria:

  • The lesson is linked to from the Python table of contents
  • The lesson can be covered in 30-45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write "Command Line Interface" topic outline.

The lesson plan should live at command-line/command-line-interface.md and teach students how to

  • make directories,
  • move around,
  • copy files,
  • rename files, and
  • use man.

Acceptance Criteria:

  • The lesson can be covered in 2 hours
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Update location of "Request/Response" related docs

It appears the location of the curriculum materials related to requests and responses has changed between what was originally in the repo and where contributors actually put things.

Acceptance Criteria:

  • Location of Request/Response lesson plans has been consolidated into one directory
  • That directory is properly linked to by the main table of contents

Write "Inclusion" lesson plan

The lesson plan should live at inclusion/inclusion.md.

It should discuss

  • unconscious bias,
  • privilege,
  • allyship,
  • common issues,
  • microaggressions,
  • empathy, and
  • strategies to combat issues in tech.

Acceptance Criteria:

  • The lesson can be covered in 30-45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write Request/Response "Intro to DNS" lesson plan

The lesson plan should live at intro-to-request-response/intro-to-dns-ip.md and discuss what happens when you type a URL in a browser and hit enter.

You may want to draw on https://medium.freecodecamp.com/how-the-web-works-a-primer-for-newcomers-to-web-development-or-anyone-really-b4584e63585c#.azg1qed4h as a reference.

Acceptance Criteria:

  • The doc is linked to from the main table of contents
  • The lesson can be covered in 45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Complete "Bootstrap" topic outline.

The lesson plan should live at bootstrap/bootstrap.md. By the end of the lesson, students should understand what responsive design is and how Bootstrap enables it.

Acceptance Criteria:

  • The lesson can be covered in 30-45 minutes
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Scope out JavaScript curriculum needs

Currently, as of April 11, 2017, there's an initial template for what the JavaScript curriculum should look like, but that template should be updated to include an accurate time scope. It should also be broken up into four more manageable pieces, with assessments for each.

Initial ideas for what this should include:

  • conditions
  • variables
  • math
  • functions
  • loops
  • lists/arrays
  • dictionaries

Students should also understand how to e.g. loop using Array.prototype.map rather than a for loop

Acceptance Criteria:

  • There are four docs in the javascript folder with progressive lesson plans on using JavaScript
  • Each of the docs are explicitly time-scoped (45 minutes? 2 hours? etc.)
  • Each of the docs has a defined set of topics students should have learned
  • There is a new issue to track work related to this new lesson plan

Write HTML and CSS "Basic Attributes" topic outline.

The lesson plan should live at html-and-css/basic-attributes.md.

Students should look at a sample page to figure out what different tags do, tinker, and eventually try their own (C9 or CodePen or W3Schools, JSLint to avoid needing setup. The lesson should cover block vs. inline, specific tags, and things not to use. By the end of the lesson, students should be able to view source on a web page and understand it.

For example, students should be able to

  • Use <h1-6>, <p>, <a>, <img>, <ul>/<ol>/<li>, <div>, <span>, <dl>/<dt>/<dd><form>/<fieldset>/<input> semantically.
  • Name classes and ids semantically.
  • Use Web Inspector quickly (hint: keyboard shortcuts)."

See

as reference sources.

Acceptance Criteria:

  • The lesson should have a defined time scope (45 minutes? 2 hours? etc.)
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Write "Django" lesson plan

The lesson plan should live at django/django.md.

As references, you may want to consider

Acceptance Criteria:

  • There is an explicit time scope for the lesson (30 minutes? 2 hours? etc.)
  • There are clear objectives
  • The activity helps different kinds of learners (e.g. spatial, auditory, verbal, kinesthetic)
  • There is a cheatsheet or other handout
  • There is an assessment

Note that self and peer assessments are preferable to grades.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.