Skip to content

Collection of all of the notes from technical lectures

Notifications You must be signed in to change notification settings

superduperkevin/class-notes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Talent Path Frontend Course 💻 📚 🎓

Week 1

Join Our Discord Server!

  1. Click me
  2. Create an account
  3. Post in #general your current favorite song

Technologies

What's important?

  • Frontend
    • HTML
    • CSS
      • Bulma
      • Vuetify
      • Bootstrap
      • Sass
      • BEM
    • JavaScript
      • ES6
        • arrow functions
        • destructuring
        • async/await
        • promises
    • Ruby on Rails
    • React
      • Redux
    • Vue
      • Vuex
    • Angular
    • php (Wordpress)
  • Backend
    • Node/Express
    • Mongo
    • SQL
    • Postgres
    • APIs (restful)
      • Google maps
      • Yelp
      • Twitter
    • Authentication
      • Oauth
      • cookies/tokens
    • .NET
  • Cloud
    • Azure
    • AWS
    • DigitalOcean
    • Firebase
    • Heroku
  • Other languages
    • C++
    • C#
    • Java
    • Assembly
    • Python
    • Matlab
    • Lisp
    • F#
    • Ruby
    • OCamel
    • Haskell
  • Soft skills
    • UI/UX
      • Sketch
      • InVision
      • XD
      • Photoshop
      • Illustrator
      • Gimp
    • Whiteboarding, storyboards (user stories)
    • Agile, SCRUM vs Waterfall
    • Interviewing
    • Testing, TDD
      • Mocha
      • Jest
      • JUnit
      • Selenium
      • Integration tests
      • Unit tests
  • Developer tools
    • Notepad++
    • Brackets
    • Chrome dev tools
    • VS Code
    • Git
      • GitKraken
      • Github Desktop
    • Sublime
    • Gitlab
    • CI/CD
      • Jenkins
      • Vagrant
      • CircleCI
      • Travis
      • Virtual Box
    • Linux

Core

Exposure

Tangential

Current Events

Pair up (but not with someone at your table!) & discuss. Some questions to consider:

  • What is the importance of URLs in our current version of the web?
  • Do you think they are flawed? How so?
  • What are some of the pitfalls of using URLs? Benefits?
  • What could we use in place of URLs?
  • Consider Google's (and Chrome's) place as the gatekeepers of the web. As the article mentions, they're able to propose radical new standards and then "throw Google's weight around to motivate everyone to adopt the practice." Do you think this is a positive use of their power, or could it lead to potential abuse?
  • Going off of the above question: what is the role of corporations on the web? What should their role be?

How the Web Works

Or: How the Heck Do I Have Access to the Entirety of Human Knowledge at Near Instantaneous Speeds?

Computers connected to the web are either clients or servers (some are both).

client & server

Clients request information; servers, well, serve it up. Servers are also connected directly to the internet, whereas clients are connected via an internet service provider (ISP). That's why you have to pay Time Warner or Verizon or whichever monopoly exists in your area to access the internet.

So how exactly does data flow through the internet?

Trucking

Let's compare the internet to the shipping network used to transport physical goods all across the world. In our physical example, we have trucks used to carry the goods, distribution centers, destinations where we want the goods to go, and roads for the trucks to travel on. The web has a similar set of infastructure that make up the entire system:

  • Wires, WIFI, and Satellite transmissions are the roads that carry all of our data around the world.
  • Assets including code files such as HTML, CSS, and JavaScript, as well as images, video, music, etc. These are the goods of our shipping network. The entire reason the internet exists is to transport these assets to anyone connected to the network.
  • Servers store the assets and serve them up to any who requests them. These are the distribution centers.
  • Clients are the ones who request assets. In our analogy this is your home, the end goal for all of our goods.
  • TCP, otherwise known as Transmission Control Protocol, defines how applications can create channels of communication across a network and manages how a message is assembled into smaller packets. This is similar to the way containers, roads, and trucks are all standardized so that anyone coming onto the network for the first time can immediately interact with it.
  • IP, otherwise known as Internet Protocol, defines how to address and route each packet to make sure it reaches the right destination. This is like the address of the buildings in our network. Every device on the network has a unique IP address.
  • DNS, otherwise known as Domain Name System, is how devices translate human-readable domain names to computer-readable IP addresses. DNS is akin to the yellow pages (or Google maps) where I can look up a building's address via the company name.
  • HTTP, or the HyperText Transfer Protocol, is the application protocol that defines how devices speak to each other and send/request assets. Like TCP, this standardizes a method of communication so any new device can immediately communicate with everyone on the network. In our analogy, HTTP is like the English you would use to verbally order goods.

Example: Serving a Static Site

My stack:

  • Backend:
    • DigitalOcean
    • Ubuntu
    • nginx Nginx server
  • Google domains registar and nameservers
    • run whois talentpathla.com to see my info
  • Filezilla Filezilla for File Transfer Protocol
  • HTML5 Frontend: HTML
  • ssh & nano for file manipulation

Group Research Projects

Topics

  • Browser security, including
    • HTTPS
    • SSL/TSL
    • CORS
    • XSS attacks
    • DNS spoofing
  • Web protocols, including
    • HTTP
    • Websockets
    • FTP
    • IMAP/POP3/SMTP
    • SSL
    • SSH
    • UDP
  • Web servers, including
    • Apache
    • Nginx
    • Node
    • pros/cons, usage
  • Browser wars, including
    • Chromium
    • IE is dead??
    • Opera
    • Firefox
    • Brave

  • DNS
    • associates names to corresponding address
    • TTL
    • cache
    • DNS recursor-> root nameserver -> TLD nameserver -> authoritative nameserver (Google domains, Godaddy)
    • DNS records
  • HTTP (HyperText Transfer Protocol)
  • TCP (Transmission Control Protocol): "defines how applications can create channels of communication across a network" and "manages how a message is assembled into smaller packets"
  • IP (Internet Protocol): "defines how to address and route each packet to make sure it reaches the right destination"
  • Layers
    • Application layer: provides applications with standardized data exchange including: HTTP, FTP, POP3, SMTP. It's what the web browser uses
    • Transport layer: maintains communications across the network (TCP), chops things up into packages
    • Network layer: connects networks
  • ping, ipconfig/ifconfig
  • TLDs
  • SSL/TLS & HTTPS (certs)
  • Security
    • CORS and XORS
    • DNS spoofing
  • Cookies/tokens

Example:

  • Digital Ocean droplet
  • Google domains registar
  • DO DNS
    • whois command
  • Filezilla FTP
  • ssh & nano for file manipulation

Resources

General Resources

About

Collection of all of the notes from technical lectures

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published