-
Books:
- Git and Github
- Ruby
- OOP
- Command Line
- Core Ruby Tools
- HTTP
- Regex
- SQL
- Web APIs
- Agile planning
- Demystifying Rails
- Javascript
-
Back-end
-
Front end:
- LS202
- Fundamentals of JavaScript for Programmers
- LS215 Computational Thinking and Problem Solving
- LS220 Introduction to Data Structures and Algorithms
- JS225 Object Oriented JavaScript
- JS230 DOM and Asynchronous Programming with JavaScript
- TS240 Introduction to TypeScript
- kernel#format
- DSL : Domain Specific Language.
- Squiggly HEREDOC
- binding ?
- dev tools
- A guide to Git and Github
- Remote Repositories
- I read it, but took physical notes in a notebook
- I read it, but took physical notes in a notebook
- Introduction
- Preparations
- The CLI
- Files, Directories and the Command Line
- The environment
- Permissions
- REPLs
- Editors
- Conclusion
- My CLI vocab
- Background
- HTTP
- Conclusions and next steps
- Other resources
- Basic Matching
- Character classes
- Range of characters
- Character Class Shortcut
- Anchors
- Quantifiers
- GETTING STARTED
- YOUR FIRST DATABASE: SCHEMA
- YOUR FIRST DATABASE: DATA
- WORKING WITH MULTIPLE TABLES
L 1 (3 pages of quite unhelpful notes)
L 4 (no notes)
L 6 (no notes)
- L 1: Blocks
- Closures
- Calling methods with blocks
- Writing methods that take blocks
- Yielding
- Yiedling with an argument
- Arity
- Return value of yielding to a block
- When to use blocks in your own methods
- Flags
- Methods with an explicit block parameter
- Using Closures
- Writing methods which take blocks - Summary
- Walk-through: Build a 'times' method
- Walk-through: Build an each method
- Assignment: Build a 'select' method
- Assignment build a reduce method
- Assignment: TodoList
- Blocks and Variable Scope
- Symbol to proc
- L 1 Summary
- Quiz
- L 2: Introduction to testing
- Introduction
- Setting up Minitest
- Lecture: Minitest
- How to make a test
- Expectation syntax
- Minitest summary
- Assertions
- Refutations
- SEAT
- Testing Equality
- Equality with custom class
- Assignment: write a test suite for Todo List
- Code coverage
- Exercises More topics
- proc to block operator
- capturing input/output
- blocks, procs and lambdas
- Quiz
- L 3: packaging code into a project
- Enumerable class creation
- Optional blocks
- Find missing numbers
- Divisors
- Encrypted Pioneers
- Iterators: true for any?
- Iterators: true for all?
- Iterators: true for none?
- Iterators: true for one?
- Count Items
- From-To-Step Sequence Generator
- Zipper
- map
- count
- drop_while
- each_with_index
- each_with_object
- max_by
- each_cons (Part 1)
- each_cons (Part 2)
- Boolean Assertions
- Equality Assertions
- Nil Assertions
- Empty Object Assertions
- Included Object Assertions
- Exception Assertions
- Type Assertions
- Kind Assertions
- Same Object Assertions
- Refutations
- Listening Device
- Text Analyzer - Sandwich Code
- Passing Parameters Part 1
- Passing Parameters Part 2
- Passing Parameters Part 3
- Method to Proc
- Bubble Sort with Blocks
- Cash register test draft
- Test accept money method
- Test change method
- Test give receipt
- Test prompt for payment
- Alter prompt for payment method
- Text swap method
- test word count
- Ruby Methods with Regex
- Introduction
- What to focus on
- AWS Cloud9
- What is the internet?
- Protocols
- A layered system
- The physical network
- The data/link layer
- The internet/network layer
- Summary
- Quiz
- Communication between processes
- Network reliability
- Transmission Control Protocol(TCP)
- TCP segments
- TCP Connections - AKA the three way handshake
- Flow Control
- Congestion Avoidance
- Disadvantages of TCP
- User datagram protocol (UDP)
- Summary
L3: Intro to HTTP
- What to focus on
- The Application Layer
- HTTP and the web
- Some background diagrams
- Client - server
- URLs
- Schemes and protocols
- URLs and Filepaths
- Practice problems: URL components
- The Request Response Cycle
- Summary
- Quiz
- Background
- HTTP
- What to Focus on
- Using Telnet to explore HTTP
- Speaking the same language
- Implementing your own HTTP server: Project overview
- Bash Basics
- Working with Netcat
- Implementing our own HTTP server: Basic Program Structure
- Implementing our own HTTP server: Sending a simple response
- Implementing our own HTTP server: Processing the request
- Implementing our own HTTP server: Serving HTML
- Implementing our own HTTP server: Working with the browser
- Implementing our own HTTP server: adding Hyperlinks
- Summary
- Overview:
- Introduction
- What to focus on
- The Transport Layer Security Protocol
- TLS Encryption
- TLS Authentication
- TLS Integrity
- Summary
- Quiz
- Overview
- Introduction
- What to focus on
- HTTP: Past, Present, and Future
- Web Performance and HTTP Optimizations
- Browser Networking APIs
- Peer to Peer Networking
- Optional: Blog Post
- Summary
- Overview:
- Introduction
- Coding Along with This Course
- A Simple Echo Server
- Parsing Path and Parameters
- Sending a Complete Response
- Persisting State in the URL
- Dealing with Empty Requests
- Summary
- Overview
- Part 1: What is Rack and what does it do
- What is Rack?
- What does it mean for an app to be Rack-based?
- Where it fits in server-side development.
- What does Rack do for developers?
- What are the benefits of using Rack?
- The #call Method
- What else does Rack need?
- Examples of Rack
- env variable
- A look at the Rack source code
- Part 1: Summary
- Other notes
- Part 2: Middleware: what it is and what it can do for your app
- Sinatra Documentation
- Preparations
- How Routes Work
- Rendering Templates
- Table of Contents
- Adding a Chapter Page
- Code Challenge: Dynamic Directory Index
- Using Layouts
- Route Parameters
- Before Filters
- View Helpers
- Redirecting
- Adding a Search Form
- Improving Search
- Code Challenge: Users and Interests
- Server-side vs. Client-side Code
- Optional: A Quick Analysis of How Sinatra Works
- Summary
- Quiz
- Introduction
- A JavaScript Primer
- Including JavaScript Files
- Confirming Destructive Actions
- Making HTTP Requests From JavaScript
- Adding Identifiers to Todo Items
- Adding Identifiers to Lists
- Quiz
- bcrypt
- favicon
- adding a salt to passwords ("salting")
- allow-listing
| Once | Twice | Thrice | Comprehension | Retention | |
|---|---|---|---|---|---|
| 1. Introduction and Prerequisites | 14.6.23 | ||||
| 2 Handling Requests Manually | 17.6.23 | ||||
| 3 Working with Sinatra | 26.9.23 | ||||
| 4 Deploying Sinatra Applications | 4.10.23 | ||||
| 5 Project: Todos | 5.10.23 | 7.10.23 | |||
| 6 Securing Applications | 10.10.23 | ||||
| 7 Adding JavaScript | 14.10.23 | ||||
| 8 Project: File-based CMS | |||||
| 9 Optional Projects |
- Welcome
- A few words about mastery and this course.
- Where to find more Information
- introduction
- Install Software
- Getting Started
- Creating a HTML skeleton
- Classes, IDs and Names
- Practice Problems: Semantics
- Walkthrough Project: A Simple Web Page
- Walkthrough : Adding style to your web-page
- Guided project: A Personal Profile
- Practice Problems: Text Formatting
- On your own: creating a simple page
- Practice Problems: CSS Selectors
- CSS Diner
- Flexbox froggy game
- Using the Chrome Inspector
- Google Inspector tutorials:
- HTML and CSS Style Guide
- Summary
- Quiz 1
- Overview
- What are HTML and CSS?
- Understanding Common HTML terms
- Setting up the HTML document structure
- In Practice
- Understanding Common CSS terms
- Working with Selectors
- Referencing CSS
- Using CSS Resets
- In Practice 2
- Summary
- Semantics overview
- Identifying divisions and spans
- Block v. inline elements
- Text-based elements
- Building Structure
- In practice
- Creating hyperlinks
- In practice
- Summary
- The Cascade
- Cascading properties
- Calculating Specificity
- Combining Selectors
- Layering Styles with Multiple Classes
- Common CSS property Values
- Summary
- HTML Coding Practices
- Write standards-compliant Mark-up
- Make use of Semantic Elements
- Use proper documentation structure
- Keep the syntax Organised
- Use practical ID & Class values
- Use the alternative text Attribute on Images
- Seperate content from Style
- Avoid a case of "Divitis"
- Continually refactor code
- CSS coding Practices
- Organise code with comments
- Write CSS Using multiple lines & spaces
- Use proper class names
- Build proficient selectors
- Use specific classes when necessary
- Use shorthand properties and values
- Use shorthand Hexadecimal Color values
- Drop Units from zero values
- Group and align vendor prefixes
- Modularize styles for reuse
- Additional resources and links
- Summary
- Introduction to the Course
- Welcome
- What this Course Covers
- Setting Up Cloud Development Environments
- Read the Launch School SQL Book
- Reading PostgreSQL Documentation
- The PostgreSQL Command Line Interface
- Assignment: SQL Fundamentals - Easy 1
- Quiz L 1
- Schema, data and SQL
- What to Focus On
- The SQL Language
- PostgreSQL Data Types
- More Single Table Queries
- NOT NULL and Default Values
- Using Keys
- GROUP BY and Aggregate Functions
- How PostgreSQL Executes Queries
- Table and Column Aliases
- Summary
- Quiz L 2
- Relational Data and Joins
- What to Focus On
- What is Relational Data?
- Database Diagrams: Levels of Schema
- Database Diagrams: Cardinality and Modality
- A Review of JOINs
- Working with Multiple Tables
- Using Foreign Keys
- One-to-Many Relationships
- Extracting a 1:M Relationship From Existing Data
- Assignment: SQL Fundamentals - DDL (Data Definition Language)
- Assignment: SQL Fundamentals - DML (Data Manipulation Language)
- Many-to-Many Relationships
- Converting a 1:M Relationship to a M:M Relationship
- Assignment: SQL Fundamentals - Many to Many
- Summary
- Quiz L 3
- Optimizing SQL Queries
- What to Focus On
- Indexes
- Comparing SQL Statements
- Subqueries
- Assignment: SQL Fundamentals - Subqueries and More
- Summary
- Quiz L 4
- Course LS180 Feedback
- 1 What this Course Covers
- 2 Getting Started
- 3 What to Focus On
- 4 Executing SQL Statements from Ruby
- 5 Project Demo
- 6 Project Setup
- 7 Database Design
- 8 Listing Expenses
- 9 Displaying Help
- 10 Adding Expenses
- 11 Handling Parameters Safely
- 12 Code Structure
- 13 Searching Expenses
- 14 Deleting Expenses
- 15 Clearing Expenses
- 16 Counting and Totaling Expenses
- 17 Creating the Schema Automatically
- 18 Summary
- 1 Getting Started
- 2 What to Focus On
- 3 Project Overview
- 4 Extracting Session Manipulation Code
- 5 Designing a Schema
- 6 Setting up a Database Connection
- 7 Executing and Logging Database Queries
- 8 Loading Records From the Database
- 9 Solving the Reloading Problem
- 10 Development Configuration
- 11 Working with Lists
- 12 Working with Todos
- 13 Deploying PG Applications to Heroku
- 14 Summary
- 1 What to focus on
- 2 Identifying Optimizations
- 3 Optimising N + 1 queries
- 4 Pushing Down Operations to the Database
- 5 Summary
- 6 Quiz
- 1. About This Course
- 2. JavaScript Versions
- 3. Resources
- 4. Running your Code
- 5. Code Style
- 6. Data Types
- 7. More on Strings
- 8. Primitive Values are Immutable
- 9. Variables
- 10. Operators
- 12. Input and Output
- 13. Practice Problems - Variables and Numbers
- 14. Explicit Primitive Type Coercions
- 15. Implicit Primitive Type Coercions
- 16. Practice Problems: Primitive Types and Type Coercion
- 17. Conditionals
- 18. Practice Problems: Operators and Conditionals
- 19. Looping and Iteration
- 20. Exercises
- Quiz
- 1 Defining Functions
- 2 Function Invocations and Arguments
- 3 Practice Problems: Functions
- 4 Nested Functions
- 5 Functional Scopes and Lexical Scoping
- 6 Function Declarations and Function Expressions
- 7 Hoisting
- What to focus on
- The var statement
- How do var and let differ?
- Declared Scope vs Visibility Scope
- My comic idea
- What is Hoisting?
- The temporal dead zone
- Hoisting for Function Declarations
- Hoisting for Function Expressions
- Hoisting Variable and Function Declarations
- Best Practice to avoid confusion
- Hoisting isn't real
- More hoisting examples
- 8 Practice Problems: Variable Scopes in JavaScript (1)
- 9 Practice Problems: Variable Scopes in JavaScript (2)
- 10 Variables, Functions, and Blocks
- 11 Review: Objects vs Primitive Values
- 12 Variables as Pointers
- 13 Pass by Reference vs Pass by Value
- 14 Variables, Functions, and Blocks: Revisited
- 15 Exercises: Variables, Functions, and Blocks
- 16 Closures
- 17 More Exercises
- Quiz
- 1 Chrome Developer Tools
- 2 JavaScript Coding Styles
- 3 Odd Numbers
- 4 Multiples of 3 and 5
- 5 Print Multiples
- 6 FizzBuzz
- 7 Prime Check
- 8 XOR
- 9 Guessing the Password
- 10 Student Grade
- 11 Greatest Common Divisor
- 12 Goldbach Numbers
- 13 Pattern Generation
- 14 Index of Substring
- 15 Trimming Spaces
- 16 Splitting a String
- 17 Repeating Strings
- 18 String StartsWith
- 19 Converting Strings to Lower Case
- 20 Substring (1)
- 21 Substring (2)
- 22 Code Review: Rot13 Cipher
- 23 Reference Solution: Rot13 Cipher
- 24 More Exercises
- 1 Arrays
- 2 Practice Problems: Arrays
- 3 Array Operations: push, pop, shift, and unshift
- 4 Array Operations: indexOf and lastIndexOf
- 5 Array Operations: slice, splice, concat, and join
- 6 Array Methods
- 7 Arrays and Operators
- 8 Practice Problem: Comparing Arrays
- 9 Practice Problems: Basic Array Uses
- 10 Practice Problems: Intermediate Array Uses
- 11 Practice Problems: Find Missing Numbers
- 12 More Exercises
- 13 Quiz
- 1 Introduction to Objects
- 2 Object Properties
- 3 Stepping through Object Properties
- 4 Practice Problems: Working with Object Properties
- 5 Arrays and Objects
- 6 Arrays: What is an Element?
- 7 Mutability of Values and Objects
- 8 Pure Functions and Side Effects
- 9 Working with the Math Object
- 10 Working with Dates
- 11 Working with Function Arguments
- 12 Practice Problem: Welcome Stranger
- 13 Practice Problem: Repeated Characters
- [14 More Exercises](https://github.com/SandyRodger
- 1 Douglas Crockford Lecture: The JavaScript Programming Language
- 2 Douglas Crockford Lecture: JavaScript the Good Parts
- 3 JavaScript Style Guide
- 4 Strict Mode
- 5 Syntactic Sugar
- 6 Practice Problems: Syntactic Sugar
- 7 Errors
- 8 Preventing Errors
- 9 Catching Errors
- 10 Exercises: JavaScript Language Fundamentals
- 11 Course Feedback
| 1st: John the Baptist | 2nd: deep-dive | 3rd: find/fill gaps | |
|---|---|---|---|
| L1 | 25.4.24 | 29.4.24 | |
| L2 | 29.4.24 | 1.5.24 | |
| L3 | 1.5.24 | 4.5.24 | |
| L4 | 4.5.24 | ||
| L5 | 21.5.24 | ||
| L6 | 21.5.24 |