Resources
In today’s world, there is no limit to the content that we can access for learning new things. I have often burnt many days simply collecting and vetting these resources, making it quite hard to make tangible progress in actually learning the content. This page is dedicated to compiling any useful resources that I have found, in the hopes that someone else may find it helpful.
Table of contents
- Scientific Programming with Julia
- Game Development
- Visualization
- Quantum Many-Body Physics
- Computer Science and Mathematics
- Random tools
Scientific Programming with Julia
Intro to language features
- Official docs: Pretty good documentation for an overview of what the language offers.
- MIT Computational Thinking: Great gateway into Julia for those already familiar with programming and/or numerical computation.
- Misc. introductory courses: Scientific programming in Julia, Julia for economists
- Modern workflows
Numerical techniques
- Some comprehensive and broad books: Numerical methods in scientific computing, Fundamentals of Numerical Computation
- Parallel Computing and Scientific Machine Learning: An excellent course taught by Chris Rackauckas, a very knowledgeable and prolific contributor to the DifferentialEquations.jl ecosystem.
YouTube Channels
Official Julia Language: A literal treasure trove of information containing lectures from most Julia related events (most notably, the annual JuliaCon). It is certainly worth going through the ~4 hour workshops from previous JuliaCons. These cover a large variety of topics spanning from basic language features, metaprogramming and interactive plotting to developing and publishing your own packages.
Doggo.jl: Regular exploration into various random Julia concepts and packages.
Communities
- Discourse: The primary forum for discussion
- Zulip: A more texting oriented platform
- Discord: Unofficial server for discussion
Package ecosystem
- List of all packages: JuliaHub, JuliaPackages, Julia.jl
- Assorted list of domain-specific packages: Maintained by Weishi Wang
Game Development
Godot
- Official documentation: Fairly good as far as documentation goes. There are also few text tutorials for beginner projects.
- The ultimate introduction to Godot 4: An excellent introduction to what Godot offers if already familiar with programming.
- Godot 4 - Code Architecture: An intermediate course on how to make good design choices to write a scalable and maintainable codebase for your Godot game.
- Godotneers: Assortment of tutorials on general concepts and systems in games.
- KidsCanCode:: A really useful resource for implementation of specific mechanics/systems in games (despite the rather goofy name!).
- GDQuest: Similar to KidsCanCode.
Assets
- Lospec: Color palettes for pixel art: https://lospec.com/
- Kenney’s asset packs: A vaaaast collection of art that is free to use.
- Aseprite:: A paid (but source available) software to make pixel art. Follow this for build instructions.
- Pixelorama:: An open source pixel art software made with Godot.
- jsfxr: 8-bit retro sfx generator.
Procedural Animation
- Physics-based Animation: A book on using physics to generate realistic animations in video games.
- Advanced Character Physics: A paper on the basic elements of physically-based modelling as implemented in Hitman: Codename 47.
- Limbo-style spider
- Worms, snakes and lizards
- Swinging Gibbon
Misc.
- Game Programming Patterns: Design patterns to make code cleaner, easier to understand, and faster.
Visualization
Scientific Visualization
- Python + Matplotlib: Book covering fundamental principles of matplotlib and good practices to design plots.
- Blender for Scientists: YouTube channel introducing 3D Modelling for scientists.
- Penrose: Create diagrams by typing notation in plain text, separating logic from visuals.
- Creating publication-quality plots in Julia
- VisualPDE: Rapid Interactive Simulations of Partial Differential Equation on the web.
Shaders
- An introduction to shader art coding: An introductory video tutorial for creative coding with fragment shaders.
- Fragment foundry: A collection of text-based tutorials for writing fragment shaders on the browser.
- Shader school, a collection of browser-based tutorials to write fragment and vertex shaders in GLSL.
- The Art of Code: An excellent YouTube channel covering a plethora of things that can be made with shaders.
- Painting with Math: Inigo Quilez’ YouTube channel on making shader art.
Graphics Programming
- 3D Computer Graphics Programming for Beginners: A selection of resources to learn and tinker with.
- ScratchAPixel: Computer graphics programming for regular folks.
- Tiny Renderer: Lessons on how OpenGL works.
- LearnWebGPU: A WIP tutorial series on using WebGPU to communicate with the GPU.
- LearnWebGL: A tutorial series on using WebGL to communicate with the GPU.
- Learning Modern 3D Graphics Programming: A tutorial for learning graphics programming concepts using OpenGL.
- Real Time Rendering: A book on techniques to render geometry in real time.
- GPU Puzzles: A series of small, fun, self-contained coding challenges for learning GPU programming.
Creative Coding
- The Coding Train: A wonderful YouTube channel regularly exploring quite interesting coding projects made using p5.js and processing.
- Geometry nodes in Blender: Rabbit Hole Syndrome, CGFigures, Erindale, CrossMind Studios
Quantum Many-Body Physics
Blogs
- A Bit Correlated: A short series of posts on quantum mechanics and solid state physics.
- This Condensed Life: Regular tid-bits on various topics of condensed matter physics.
Notes
- An introduction to spontaneous symmetry breaking
- The Kosterlitz-Thouless phase transition
- Geometry of variational methods: dynamics of closed quantum systems
- Quantum Gases
Lectures
- Symmetries and Quantum Mechanics: A short course by Tobias Osborne.
- Computational Many-Body Physics, by Simon Trebst.
- Topology in condensed matter: Tying quantum knots.
Misc.
- Speaker’s corner: A platform for scientific conferences going fully digital.
Computer Science and Mathematics
Formal verification and Automated theorem proving
- Xena Project: An excellent blog with various articles on dependant type theory and automated theorem proving with Lean 4.
- Automated reasoning: An introduction to how Amazon utilizes formal verification with Lean 4 in their test suite for various software products. There are several links therein containing further details as well as other resources.
- Busy Beavers: An interactive (paid) course introducing computability theory incuding practical demonstrations using Lean 4 and SAT solvers.
Learning a new language
- Learn C++: A series of text based tutorials to learn C++ from scratch.
Software development
- Third bit: A couple of excellent books covering things from writing good python code for scientific research to how open source projects design their architecture.
Random tools
Type-setting
- Typst: A very promising $\LaTeX$ alternative in early development.
- Tex2Typst: A web-app to quickly convert math syntax from TeX to Typst.
- Approach Zero: A website that lets you search all the Stack Exchange forums by $\LaTeX$ equations.
- Tables Generator: A website to generate $\LaTeX$ tables with ease.
- Mathcha: A WYSIWYG editor to create math diagrams for use in $\LaTeX$ documents.
Visualization tools
- Excalidraw: An online whiteboard application w/ live collaboration features.
- REXpaint: A user-friendly ASCII art editor.
- Mermaid: A JavaScript based diagramming and charting tool using markdown-like inputs.
- p5.js: A javascript library for creative coding (check out The Coding Train for fun projects using p5.js)
- Explorables: A collection of various tools for creating explorable/interactive explanations.
- Friends don’t let Friends: A guide on designing good visualizations of data.
General programming stuff
- Git Fix Um: A TiddlyWiki website in a choose-your-own-adventure format to fix all your git troubles.
- Ryan’s tutorials: A series of text tutorials to learn RegEx.
- From Python to Numpy: A short book covering advanced usage of numpy.