List of Skills Learned at V School
This list may change from time to time, but the majority of it should remain the same.
Programming Principles
- Variables,
- Operators
- Understanding Different Data
- Types
- Code style/convention
- Navigating/working in terminal
- Functions/Methods
- Loops
- Conditionals/Ternary
- Objects/Associative Arrays
Problem Solving
- Able to apply learned method/algorithm to new scenario
- Able to combine methods/algorithms to solve problems
- Ability to solve problems by using known methods and learning finding new methods through breaking down a problem into smaller pieces
- Ability to recognize their involvement in the problem solving process
- Ability to solve complex contrived problems
- Ability to solve complex real-world problems
Static Websites
- Bare-bones HTML
- Document
- Open HTML pages in a browser
- CSS Selectors, colors, fonts
- Linking external JavaScript files in HTML
- Inline/Block elements
- Semantic HTML
- CSS Box model
- Multiple linked HTML pages
- Understand how a browser works
- CSS Layout, Positioning, Sizing, Flexbox
- Responsive Design, media queries
- HTML Events, JavaScript EventListeners
- JS DOM Manipulation
- CSS
- Transitions/Animations
- AJAX
Web Applications
- Difference between web app and web site
- Build very basic web apps (site is functional and based on use rinteraction)
- Forms
- Making HTTP calls
- Accessing External
- APIs
- Single-page Applications (SPA)
- Reusable web components and services
- Understand JSON
- Writing a server (Node.js/Express)
- Modular JavaScript
- Database CRUD
- User authentication/restricting routes
- JWTs/token authentication
- Saving multiple users' data (with db, with auth)
- Password Hashing and security measures
Version Control
- Understand need for Version Control
- Create new local and remote repositories
- Stage files for commitCreate a new commit/practicing good commit messages
- Push changes to a remote repo
- Pull from remote repo
- Clone repo
- Changing remote url
- Unstaging files
- Reverting back to a past commit
- Creating, reviewing, accepting PRs
- Using Git within a team
Database
- Understand what a database is and why it’s useful
- Set up databases for the first time on their own computer and learn how to run the database server
- Understand relational vs. non-relational databases
- Working in the shell (CRUD)
- Connect to a database in code
- Perform CRUD operations in code
- Models (Mongoose Schemas, Postgres Models/tables)
HTTP/API
- What HTTP stands for, basics about protocols
- What an API is
- Understand the basics of the Request/Response cycle
- Access data from an API (Postman)
- GET, PUT, POST, DELETE, and how they map to CRUD
- Access an external API in code
- URL Params and Query Strings
- Understand RESTful architecture
- Create own full-fledged RESTful API
- Troubleshooting/Debugging
- Understanding what debugging is
- Elements tab
- Altering CSS in dev tools
- Using Google
- Debug syntax errors
- Gaining insight from errors
- Write code in dev console
- Watch expressions
- Semantic comments in code
- Reading documentation
- Debug semantic errors
- Looking up answers to errors
- Gaining insights from stack overflow
- Network calls
- Using breakpoints
- Self-documenting code w/ semantic comments
Project Management
- Knowledge of available tools (task management, communication, documentation)
- Knowledge of common team roles
- Requirements gathering
- Agile Scrum methodology
- Efficient standups
Deployment
- Opening static HTML files in the browser
- Running local server
- Understanding IP Addresses