This repo contains small projects and code snippets I've used to learn programming languages or libraries I'm interested in.
[!IMPORTANT] Disclaimer (for others and myself) If you see incorrect information in any of the README's, keep in mind they will not be touched ever again. They were written when I was learning about a certain topic, and I think there is some kind of beauty in leaving that "naiveness" of learning something for the first time :)
I follow the same workflow throughout the lifetime of a branch.
To speed things up, I use the following aliases:
alias commit="git commit -m "$1""
alias add="git add ."
alias push="git push"
alias branch="git branch --show-current"
alias toplevel="git rev-parse --show-toplevel"
alias prev="git rev-parse --symbolic-full-name --abbrev-ref=loose @{-1}"
alias master="git checkout master"To work a new branch:
git checkout -b <branch>
mkdir -p $(branch)
code $(branch)To make a new commit:
add
commit "[$(branch)] commit message"To rebase master after completing work on a branch:
push
code $(toplevel)
master
git rebase $(prev)After that, I do repeat the process for the next branch.
- functools: standard library.
- itertools: standard library.
- struct: standard library.
- asyncio: async I/O.
- C API: C level access to the Python compiler.
- C extensions: a way to create Python modules with C.
- pandas: data analysis library.
- numpy: scientific computing library.
- hypothesis: testing library that could compliment my pytest knowledge.
- tokio: really popular on the Rust community. Would be helpful to reinforce my concurrency knowledge.
- rocket: framework for creating web apps.
- reqwest: HTTP client.
- bevy: game engine.
- diesel: ORM and query builder.
- Clay: modern layout library. Can render with raylib, WebGL, etc.
- pthreads: POSIX threads.
- libcurl: CURL API in C.
- libuv: modern async I/O.
- zlib: lossless data compression.
- GTK: toolkit for creating GUIs targeted at GNOME.
- SQLite: self-contained, serverless database.
- ImGui: GUI library.
- lang: I've always been curious about it.
- Why not?
- I'd like to learn the NASM (Intel) before GAS (AT&T).
- Docs (syscalls x86_64): https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/
-
General-purpose
- Carbon: experimental successor of C++ (https://amber-lang.com)
- Odin: Data-Oriented language (https://odin-lang.org)
- V: general purpose language (https://vlang.io)
-
Functional
- Flix: combines logic programming and effect tracking (https://flix.dev/)
- Gleam: a small set of features, for building scalable systems (https://gleam.run)
- Koka: explicit type system (https://koka-lang.github.io)
- OCaml: strong typing and multi-paradigm support (https://ocaml.org)
- Scala: mixes object-oriented and functional (https://scala-lang.org)
- Unison: identifies code by content (https://unison-lang.org)
-
Scripting
- Amber: compiles to Bash (https://amber-lang.com)
- Raku: expressive, multi-paradigm, metaprogramming... (https://raku.org)
-
My Ideas star list on GitHub.
-
Cybersecurity:
-
Shaders:
- book: docs
-
lang: docs
-
opengl: docs
-
learnopengl: home
- 00_window
- 01_triangle
- 02_shaders
- 03_textures
- second part (lessons use C++ libraries, so I moved to C++ to save time)
-
raylib: docs
- 2d-camera
- wasm:
- learnopengl: home
- first part (lessons use C++ libraries, so I moved to C++ to save time)
- 04_transformations
- 05_coordinate_systems
- 06_camera
- 10_colors
- 11_basic_lighting
- 12_materials
- 13_lighting_maps
- 14_light_casters
- 15_multiple_lights
- 20_model_loading
- std: docs
- collections
- pickle: docs