Skip to content

Latest commit

 

History

History
304 lines (238 loc) · 9.95 KB

roadmap.md

File metadata and controls

304 lines (238 loc) · 9.95 KB

Techtonica Roadmap

What is Tech?

Participants will be able to:

  • Identify the skills needed to work in tech
  • Describe the impact they can have on society by building tech products

Welcome, Tips, and Rules

Participants will be able to:

  • Describe what they can expect from the program
  • Describe what the program expects of them

How to Learn

Participants will be able to:

  • Ask for help effectively
  • Get themselves unstuck

Growth Mindset

Participants will be able to:

  • Celebrate their mistakes while learning from them
  • Become aware of fixed mindset pitfalls and shift their mindset

How to Pair Program

Participants will be able to:

  • Pair program as the driver, typing code and figuring out syntax
  • Pair program as the navigator, telling the driver what to type

Developer Tools Setup

Participants will be able to:

  • Edit a file in Sublime Text
  • Customize preferences in Sublime Text

Command Line

Participants will be able to:

  • Use the following shell commands:
    • ls, cd, pwd
    • mkdir, mv, cp- Edit their .bash_profile
  • Update their PATH to add a new location
  • Chain together commands using |

Git

Participants will be able to:

  • Use the following git commands:
    • add, commit, status, log
    • rm, stash [pop], reset [soft/hard]
    • remote [-v/add], push [-f], fetch, clone
    • checkout [-b], merge, push -u
  • Fork a repository, clone it to their computer, and submit a pull request with their commits

HTML and CSS

Participants will be able to:

  • Write semantic markup using <html> <head> <title> <body> <h1-6> <p> <ul>/<ol>/<li> <code>
  • Use <a> and <img> and explain the difference between a tag, tag name, tag attribute, and the content contained by the tag
  • Add structure to a site using <div> <span> <nav> and use CSS selectors to style different sections differently
  • Write CSS selectors that target a specific tag
  • Change the color, background-color, font, font-size, text-align, cursor
  • Select HTML elements using the type, .class and #id CSS selectors
  • Explain the difference between classes and ids
  • Explain what CSS properties and CSS values are, and how they're related
  • Describe the 3 ways that CSS code can be incorporated into a project
  • Sketch the basic file tree for web projects
  • Describe several text properties that can be altered using CSS
  • Describe how borders can be styled using CSS
  • Describe the hierarchy of specificity for CSS selectors
  • Describe the different parts of the "Box" model
  • Effectively use the display property

Giving Presentations

Participants will be able to:

  • Write and deliver a short presentation on a topic of their choice

Bootstrap

Participants will be able to:

  • Incorporate Bootstrap by linking to it from a CDN
  • Incorporate Bootstrap by downloading it to their project directory
  • Create a responsive layout that looks appropriate in both desktop and mobile browsers
  • Design a website using the 12-column Grid system
  • Inspect an HTML's box model using Chrome's developer tools

UI/UX Design

Participants will be able to:

  • Explain the role of user interface design in providing a good user experience
  • Choose fonts, layouts, and colors that support their site's goals

Sass

Participants will be able to:

  • Use Sass to preprocess the CSS on a web page.
  • Add dynamic programming functionality to CSS.
  • Implement the DRY (don't repeat yourself) rule.
  • Build modular and scalable CSS.

JavaScript

Participants will be able to:

  • Use variables and math operators
  • Use conditionals, loops, and functions
  • Use arrays and dictionaries
  • Use the <script> tag to add JavaScript to a web page
  • Select a DOM element
  • Use the Developer Console to debug their JavaScript

JavaScript I

Participants will be able to:

  • Create descriptive variable names
  • St ore numbers and strings in variables
  • Perform math operations on numbers
  • Increment and decrement variables
  • Obtain a random number
  • Find the length of a string
  • Index into a string

Javascript II (Arrays and Functions):

Participants will be able to:

  • Create arrays using the proper syntax
  • Create nested arrays
  • Index into arrays
  • Change data inside an array using index reassignment
  • Change data inside an array using .push(), .pop(), .shift() and .unshift()
  • Define a function using proper syntax
  • Pass arguments into a function
  • Understand the difference between global scope and local scope

Javascript 3: (Control Flow):

Participants will be able to:

  • Make comparisons of equality and value
  • Determine the Boolean value of a given comparison
  • Write a conditional control flow using if, else if and else statements
  • Implement logical operators &&, || and !

Javascript 4 (Loops):

Participants will be able to:

  • Write proper JavaScript for loop syntax
  • Iterate through an array using a for loop
  • Write proper JavaScript while loop syntax
  • Increment a counter variable properly inside a while loop

Javascript 5 (Switch Statements):

Participants will be able to:

  • Know when to use a switch statement instead of an if/else statement
  • Write a switch statement using proper syntax

Javascript 6 (Object Literals):

Participants will be able to:

  • Create Object Literals in Javascript
  • Understand property-value pairs
  • Assign values to properties with both dot-notation and bracket-notation
  • Change the value associated with a property
  • Delete property-value pairs

Javascript 7(Regular Expressions/RegExp):

Participants will be able to:

  • Read and write RegExps in Javascript
  • Use RegExps to test and replace strings
  • Understand basic regular expression special characters, .*+?\w\dript (Date Objects | Date Time): use Date() and its methods

jQuery

Participants will be able to:

  • Select a DOM element (much more easily now!)
  • Modify existing elements and insert new ones
  • Link to jQuery in their HTML pages in the correct place
  • Incorporate jQuery code in the correct place in their HTML files
  • Select HTML elements by their element type, class and ID with jQuery
  • Implement the .on("click") and .on("hover") jQuery methods
  • Implement the .append() jQuery method
  • Implement the .remove() and .empty() jQuery methods

Inclusion

Participants will be able to:

  • Recognize systemic problems and contribute to an inclusive community culture.
  • Discuss unconscious bias, privilege, allyship, common issues, microaggressions, empathy, and strategies to improve environments.

APIs

Participants will be able to:

  • Create request URLs
  • Send requests to APIs
  • Read and utilize JSON response data

AJAX

Participants will be able to:

  • Explain the difference between synchronous and asynchronous calls
  • Read the documentation for an API (e.g., Twilio API)
  • Make asynchronous calls to an API
  • Use threads and promises to update the UI when an API call returns
  • Execute tasks on specific threads (e.g., modifying UI on the main thread)

React

Participants will be able to:

  • Explain the Pros and Cons of using React instead of other tools, like jQuery.
  • Create a simple React Component.
  • Hook up user actions to state changes in the UI.

Express

Participants will be able to:

  • Explain the MVC framework
  • Create a basic web app using Node.js for the server and Express.js as the MVC framework

Node

Participants will be able to:

  • Download and install Node.js
  • Run commands in the Node.js REPL
  • Explain non-blocking I/O
  • Explain (a)synchronous calls
  • Explain event-driven programming

Web Patterns

  • Come up with a list of web design patterns they encounter frequently during their own Internet and mobile app usage
  • Select 3 web design patterns they want to implement on their personal portfolio page

Relational Databases

Participants will be able to:

  • Explain the purpose of a database
  • Explain the concept of a relational database and the use of schemas to enforce structure
  • Execute basic SQL commands for CRUD with a database
  • Perform basic selects and joins to find the requested information
  • Create tables using DDL
  • Understand the existence of different SQL dialects
  • Understand the existence of other database types

Mongo

Participants will be able to:

  • Set up a MongoDB database on their laptops
  • Create databases and collections in MongoDB
  • Add, query, and remove documents
  • Remove databases and collections

Agile Development

Participants will be able to:

  • Explain the difference between agile and waterfall methodologies
  • Break down a business case into user stories and tasks
  • Estimate the relative sizes of user stories and assign it to an agile board
  • Participate in a team retrospective

Documentation

Participants will be able to:

  • Add inline documentation in their HTML, CSS, and JavaScript files
  • Add a README.md file to their project with correct Markdown formatting

Testing

Participants will be able to:

  • Practice Test-Driven Development by writing failing unit tests and making them pass
  • Write integration tests using a UI testing framework

Deployment

Participants will be able to:

  • Deploy their web site to Heroku

Object-Oriented Programming

Participants will be able to:

  • Create objects in JavaScript

Data Structures

Participants will be able to:

  • Implement a linked list
  • Implement a stack
  • Implement a queue
  • Implement a tree
  • Implement a hash table

Interviewing

Participants will be able to:

  • Solve problems using common data structures
  • Describe their thought process while solving a problem
  • Analyze their solution for performance improvements

Refactoring

Participants will be able to:

  • Understand the intent of refactoring
  • Know when to refactor and when not to
  • Know the potential impacts of refactoring

Other

Participants will have a quick introduction to:

  • Data visualization
    • Import and clean data
    • Embed D3 graphs in web apps
  • Data science
  • Mobile development
    • How Objectives- C and Swift are used to develop apps for iOS and how Java is used to develop apps for Android