Curriculum

Curriculum is constantly changing here based on real-time observations of the industry, job market, needs, and most empowering technologies.

  1. Setup Developer Work Environment
    1. Setup and Use Computer Workstation
      1. Install Windows
      2. Install Linux Mint Cinnamon as Dual Boot
      3. Setup Linux Mint Cinnamon
        1. Manage System Updates
        2. Install Basic Applications
          1. Brave
          2. Chrome
          3. Discord
          4. Spotify
          5. Lynx
          6. Git
          7. Vim
        3. Configure for SkilStak
      4. Use the Linux Mint Cinnamon Desktop
        1. Startup
        2. Be Search-centric
        3. Take Screenshots
        4. Cut and Paste the UNIX Way
        5. Create and Delete Files and Directories
        6. Check for Updates
        7. Logout
        8. Shutdown
      5. Use Bash Shell Terminal
        1. Manage Sessions and Screens with TMUX
        2. Use Navigation Commands
        3. Use File and Directory Commands
        4. Use Standard Input and Output Pipelines
        5. Customize Bash Terminal Environment
        6. Edit Files
          1. ed
          2. vi
          3. vim
          4. Editors to Avoid
            1. Just Say No to nano
            2. Yes Johnny, emacs Sucks!
            3. Why Not Visual Studio Code?
            4. Problem with REPL.it
        7. Store and Manage Source Files with Git
        8. Search and Browse the Web with Lynx
        9. Access Remote Systems with SSH
        10. Transfer Files Between Systems
          1. scp
          2. sftp
          3. curl
          4. wget
    2. Setup Basic Services
      1. SkilStak
      2. ProtonMail
      3. Google
      4. GitLab
      5. GitHub
      6. Discord
      7. Slack
      8. IRC
      9. Twitter
      10. LinkedIn
      11. YouTube
      12. DuckDuckGo
  2. Understand Web Foundations
    1. What is the Web?
    2. DevTools: The Most Important Tool for Web Development
    3. Previewing Web Development
      1. Browsersync (preview)
    4. WHATWG Living Standard, the Web Developer Bible
    5. Can I use …?
  3. Develop Web Documents
    1. HTML
    2. CSS
    3. Media
      1. Understand Compression
      2. Images
        1. Raster
          1. Raw
          2. TIFF
          3. PNG
          4. GIF
          5. JPEG
        2. Vector
          1. SVG
          2. AI
        3. Pixel Art
      3. Video
        1. MOV
        2. MP4
        3. OGG
      4. Sound
        1. WAV
        2. MP3
        3. OGG
    4. JAMstack
      1. Content Delivery Networks
      2. GitLab to Netlify Automatic Deployment
      3. Netlify Form Handling
      4. Netlify Authentication
      5. Custom Domains with Namecheap and Netlify
    5. Markdown
      1. The Web Writers’ Language
      2. Basic
      3. CommonMark
      4. Pandoc
    6. Static Site Generation
      1. Pandoc + Shell
      2. KnowledgeNet
      3. Go Hugo
      4. SSGs to Avoid and Why:
        1. The Problem with “Hydrated” Sites
        2. GatsbyJS
        3. VuePress
    7. Create a KnowledgeNet Site
  4. Develop JavaScript Front-End Web Applications
    1. Document Object Model
      1. Window
      2. Document
        1. Node
          1. Elements
          2. Other
      3. Events
      4. Navigator
    2. JavaScript for the DOM
    3. Progressive Web Applications
    4. Essential Node.js and NPM/Yarn
      1. Node is Necessary Evil
      2. Problems and Dangers of NPM
    5. Develop Progressive Web Applications with Vue.js Library/Framework
    6. Develop Games, Graphics, and Simulations with Phaser.js
    7. Converting Web Apps to Native
      1. NativeScript
    8. Stuff to Avoid
      1. jQuery
      2. React
      3. Ember
      4. Angular
      5. Pug (Jade)
      6. CoffeeScript
      7. TypeScript
      8. Compilation
      9. Minification
      10. Cache Busting
  5. Develop Back-End Web APIs and Applications with Go
    1. Understand HTTP
      1. curl
    2. Domain Modeling and Structured Data
      1. Structure Before Algorithms
      2. Structured Data Formats
        1. JSON
        2. YAML
        3. TOML
    3. Hosting with Nginx Web Server on Ubuntu Linux
    4. Develop Basic Go Applications
    5. Setup Relational Databases
      1. SQLite
      2. PostgreSQL
    6. Basic Standard Query Language (SQL)
    7. Develop Go Middleware
      1. Go Net/HTTP Package
      2. Gin Gonic
      3. Gorilla
    8. Develop GraphQL Web APIs
    9. Real-Time Front to Back-End Communication with Websockets
    10. Stuff to Avoid
      1. ORMs
      2. MongoDB
      3. REST
      4. Rails
      5. Excessive Migrations
      6. Node.js
      7. PHP
      8. Python (Flask, etc.)
      9. Server-Centric Architecture
      10. Unnecessary Dynamic Server Rendered Web Content
  6. Deploy Web Applications to Cloud Service Providers
    1. PAAS v.s. IAAS
    2. Gitlab/GitHub to Netlify
    3. Heroku
    4. Amazon Web Services (AWS)
    5. Google Cloud Platform
    6. Performance Considerations