Links to what I'm learning. Languages. Libraries. Frameworks. Etc.
You might find my Projects and Templates helpful for kickstarting your own learning.
Chances are, you can guess the URL of each repo: https://github.com/hchiam/learning-...
Or you can browse this README file.
Or bookmark this search link: https://github.com/hchiam?tab=repositories&q=learning+
Click to expand:
Projects
Projects: things that I've built or maintain
- Besides the rest of this list, I contribute to other people's projects, like: GoogleChromeLabs/ProjectVisBug
- how-draggable: make any element draggable, or draggable and editable
- A minimal slides editor and presenter in your browser.
- A minimal notepad in your browser (automatically restores, and works offline after your first visit).
- Firefox add-ons like Check All Scripts with URLVoid (now works in mobile!) and Console Log Element (now works in mobile too!) and togglavatar
- Chrome extensions like a linter, quick menu search, quick selection search, and experimental test automator
- _2DNote to make visuals with 2D coordinates more accessible to people who are blind.
- Google Voice Assistant apps: Code Tutor and Mental Temperature Converter
html-template-generator
and demo site: https://html-template-generator.surge.sh
stylable-select
- random code tips
- deps, a CLI tool that generates a dependency graph (as an interactive SVG). Just give it a file/folder as a starting point.
- Code Inspiration to-do list web app that works offline (after your first visit).
- No fancy touchpad pen? Draw by moving the mouse and hitting spacebar to toggle.
- Electron-powered desktop app
anonymous-input
for personal teaching/educational use. Used Electron.js, Travis CI, mocha, spectron, npm, yarn, ... - although I'd now recommend Tauri
- Code Explorer
- Voice User Interface named LUI
- Experimental programming language to make it easier to write code with speech recognition
- Convenience code I use in my CodePen.io Front-End demos, such as:
- Machine Learning examples and other ML repos and notes, like a genetic algorithm to generate a conlang, or text-similarity-test built using TensorFlow.js or PyTorch demos. Or like experimenting with comment analysis using tfjs, USE, and UMAP (as opposed to t-SNE or PCA.
- Atom plugin tutorial and a server based on it to seek code snippets for you
- HTML template generator
- API examples:
- grid - 2D array helper class in JS
- Glitch.com Backend/server demos like this Node.js server and this URL shortener microservice
- Example HTML5 web apps/games (NOTE: old): https://github.com/hchiam/embeddedWebApps
- trysterollup game controller wrapper around Trystero
- canvas-converse - to more easily "converse" with the canvas API.
Templates
Templates: repos and snippets to get started faster
- Azure DevOps
- Bash Scripts and PowerShell and Zsh
- Chrome Extension or Firefox add-on
- Content Security Policy (CSP)
- convenience template repo for getting started faster on creating your own convenience scripts or packages (this template repo comes with issue template, PR template, contributor reminder, codeowner, etc. files already set up for better collaboration on GitHub). Like my learning-template or my project-template.
- Custom VS Code (Visual Studio Code) linter
- Cypress
- Electron for building desktop apps using web technologies (JS/HTML/CSS)
- esbuild
- Flask
- flying focus ring and keyboard focus trap and morphing_button
- GitHub Actions
- Godot (game engine)
- Google Apps Scripts for things like Google Docs
- Google Assistant App templates: Code Tutor or Mental Temperature Converter
- Google Map Widget
- gpt4all
- JavaScript practice (and bookmarklets and TotT)
- Jasonette
- Java practice
- Jazzer (and Jazzer.js) for fuzzing / fuzz testing
- Jest
- jQuery
- Keras
- Lighthouse CI
- linter stuff like
lint-staged
to automatically include code style fixes in your commits
- localGPT
- Okta sign-in widget (also serves as a minimal node/express app with its server.js)
- open-props
- Phaser
- prompt engineering - for ML/LLMs
- Protractor
- Python practice
- Node.js plus Python talking to each other
- Record automated tests with Selenium IDE chrome extension, or the slightly-better Katalon Recorder chrome extension (which can also export code and other formats).
- serverless API functions with CloudFlare workers
- Subresource Integrity (SRI)
- surge
- Tape
- Tauri
- Teachable Machine to quickly prototype an ML model (gather, train, export)
- TinyLlama - another small open-sourced GPT/LLM
- token counters for LLMs, like for prompt engineering
- Travis CI
- Travis CI setup for Selenium IDE
- Travis CI setup example for desktop app (Electron.js) test with mocha
- trustedTypes
- TypeScript
- UglifyJS
- VB (Visual Basic)
- Vue
- vue-test-utils with Jest and with Tape
- vue-resource
- Vuetify templates
- Web Components
- WebRTC - P2P (peer-to-peer) communication (tried PeerJS, NetplayJS, Trystero)
- Example Yeoman generator
generator-hchiam-learning
which creates another of my learning repos.
Tutorials
Tutorials: things I tried to learn by closely following tutorial instructions
A bunch of Udacity courses like Front End Frameworks, Web Tooling & Automation, Offline Web Applications, and JavaScript Design Patterns.
I'm also learning on sites like freeCodeCamp and Udemy and LeetCode and more.
- action-dependabot-auto-merge
- Alexa
- ally.js
- Alpine.js
- AngularJS, Angular 8, and Angular
- ANNOY for ML nearest neighbours of vectors
- AOS ("Animate On Scroll" library)
- AutoML with AutoML Edge model exported from Vertex AI API of Google Cloud Platform.
- AVIF compressed image format
- axios
- Bazel
- Bootstrap 4 + SCSS
- canvas
- CKEditor 5
- CODEOWNERS files
- All Contributors GitHub App
- compromise.js for NLP
- contributing.md files
- CORS
- CSS/CSS3
- cucumber
- D3.js
- dependency-cruiser
- Django
- Docker
- docsify
- DSPy
- ECMAScript browser modules (using
import
in the browser)
- Feathers
- Figma for interactive design prototypes and components (also has an Electron-powered desktop app), and Bravo to turn them into native apps(!). (Here's a quick summary of different design tools.) For creating images like SVGs, I'd use Photopea.
- Firestore and Firebase Local Emulator Suite and Firebase Hosting
- My solutions for FreeCodeCamp (UPDATE: no longer publicly available)
- Gatsby.js
- GitHub CLI
gh
- GitHub Copilot (uses OpenAI Codex)
- GitHub issue template
- Golang
- Google Closure Library maybe for things like
goog.structs.Heap()
for use in practice problems that I practice with eslint and jest. It does so many helpful things, but it’s also a FE UI library like Backbone.js.
- GSAP (GreenSock Animation Package)
- gzip
- HTML/HTML5
- HTTP status codes
- HTTPS server
- Hugging Face - for trying out ML models quickly
- jExcel
- jquery-i18next
- Kotlin
- LangChain
- lazy load
- Less
- Lit.js
- localForage
- localtunnel
- Lodash and Underscore.js
- Lottie files for animations
- Material Design Components for the Web (CDN and NPM/Webpack setup)
- MEAN
- MERN Stack = MongoDB, Express, React, and Node.js (but I'm also using Mongoose, MongoDB Atlas, cors, dotenv, nodemon, eslint, eslint-config-google, bootstrap, react-router-dom, react-datepicker, axios, etc.).
- Mitosis
- mocha chai
- MongoDB
- Neumorphism
- Node
- Ollama to run LLMs locally/privately on your computer.
- Publishing your own NPM package and GitHub package
- nx
- Parcel.js web app bundler
- Polka
- Polymer
- PostCSS
- pug
- Python ML web app using Streamlit
- PWA + Bluetooth
- Qwik
- React and Redux
- Small example of adding data to Redux state container: https://github.com/hchiam/react-jexcel-redux
- Bigger example with Redux and more: https://github.com/hchiam/chat-app-fcc-react-redux
- React Router
- React Native
- Minimal React Frontend + Express Backend test
- Auth0
- React + Apollo + GraphQL with a working example
- React + Firestore
- React Hook Form
- react-testing-library
- React Error Boundaries
- React Portals
- Next.js
- mantine.dev React component library
- reCAPTCHA
- service workers and WebWorkers
- snowpack and create-snowpack-app
- Solid.js
- Svelte and Sapper
- SASS/SCSS
- SQL and Sequelize ORM for Node.js
- TensorFlow
- three.js
- universal-tilt.js
- Vue with Firebase database and Glitch.com hosting
- Web Accessibility (a11y) (from Google's Udacity course) and
axe-cli
(and even more a11y notes)
- Web Dev Bootcamp
- web video, image manipulation, and connecting video to CSS animations
- Webpack
- WebSocket
- yargs
- yarn
- Zdog - pseudo-3D for canvas and SVG
To learn later
To learn later: thought about learning but didn't go too deep yet
- Aceternity
- amplication nocode to generate website FE+BE
- Apache ECharts
- assembly
- Astro
- AWS (Amazon Web Services) terms in plain English
- Bayes
- Blitz
- Browsersync
- bun
- C#
- Chrome DevTools
- Cirq for quantum computer circuits
- Combinations vs Permutations
- CSS BEM
- Data structures and algorithms like the splay tree, B-tree, skip list, Bloom filter, union-find data structure (for sets), suffix tree/trie/array, LZW compression, combinations vs permutations with/without repeats
- Deno
- Elm
- Flutter
- Framer
- Google Charts
- GraphQL
- gulp.js
- connecting JS to hardware
- Helmet
- Heroku
- Immer to change immutable state more easily.
- general software interview problem solving skills
- Karma
- Kubernetes
- Nuxt.js
- octave
- the OSI model
- P vs NP
- Pattern Lab
- Plotly.js
- privateGPT
- Puppeteer
- PyCharm
- react-spring for fluid, interactive animations.
- Rome
- RPC (Remote Procedure Calls)
- Ruby on Rails
- Rust
- semaphores
- shadow DOM
- SuperTokens
- technical writing
- Vite
- VS Code productivity tips
- Web Assembly (WASM)
- WebGL
- WebGPU
You can expand all by running this in dev tools:
javascript: (function () {
Array.from(document.querySelectorAll(".markdown-body details")).map((d) =>
d.setAttribute("open", true)
);
})();
I use bash scripts to generate new learning repos and sometimes new project repos.
I'm also on CodePen.io and Glitch.com and CodeSandbox.io and LeetCode.com and Bitbucket.org and Repl.it
Auto-generated GitHub résumé: https://resume.github.io/?hchiam