Folks ask me once in a while what resources I like for learning various aspects of tech, so I've compiled them into a list. These are certainly not the only ways to learn! There are oodles of resources available for each topic, and the ones below are the ones that resonated most with me. If they don't hit the spot for you, keep looking for ones that do! There isn't one right way to learn. I'll update this list every so often!
General bits and pieces
Obsidian is my brain's external hard drive
- Nicole van der Hoeven makes great Obsidian tutorials
I make Anki decks whenever I'm learning new things and reviewing old ones
- I've learned loads from The AnKing's Anki tutorials
iTerm2 is my favorite terminal interface
- Check out Anne Bonner's Trick Out Your Terminal in 10 Minutes or Less for the full fabulous terminal experience!
How to Read an Academic Paper lays out a process for reading an academic/research paper
Coding tools
Git
I'm still learning the nuances of Git, and these have been super helpful:
- Git Branching Tutorial is great for learning Git concepts in a visual way
- GitKraken is great for using Git in a visual way. I mostly use Git commands in my terminal, but I always fire up GitKraken when I need to anything like a rebase
IDEs (Integrated Development Environments)
I mostly use VS Code these days. I have lots of plugins installed, but the ones that apply to all purposes are:
- indent-rainbow makes it easier to see which level of indentation a line of code belongs to
- Rainbow Brackets does the same for brackets
- GitLens is made by GitKraken and brings a lot of GitKraken's features right into VS Code
- My current fav theme is Omni Owl Minimal Italics
- When I worked exclusively in Python I loved PyCharm
Vim
I use Vim in my terminal for little things and Vim plugins in my IDE and in Obsidian for everything else. It's completely possible to use Vim as a standalone editor, but I like having both options—Vim and modern IDE—available. As I'm learning Vim I'm liking:
- Learn VIM while playing a game - VIM Adventures is a fun way to practice Vim commands
- Learn Vim For the Last Time: A Tutorial and Primer helped me understand how to "think in Vim"
Languages
If you're learning your first programming language, freeCodeCamp is an outstanding resource, with full curricula and a friendly, helpful community.
Python
- A Whirlwind Tour of Python I learned basic C++ in a uni course years before I started learning Python, and I found this quick guide helpful in learning how my mental model needed to change
- freeCodeCamp's Scientific Computing with Python is perfect for learning Python syntax and building projects with a bit of scaffolding
Go
I'm currently learning Go, and liking:
- Codecademy for learning the basics
- 100 Go Mistakes and How to Avoid Them for nuanced understanding of how Go likes to work
- The Zen of Go is a truly lovely encapsulation of the philosophy behind writing "good" Go code (what even is "good" Go?)
SQL
- Mode's SQL Tutorial is interactive!
Technical writing
- Google's Technical Writing courses are a perfect way to learn the essentials of technical writing
- The Write the Docs community is incredibly helpful with general tech writing stuff and networking
Ben Meyers is an expert on web accessibility (and and all-around awesome human). Accessibility is a vital consideration in tech writing; not a bonus!
- I use the axe Accessibility Linter plugin for VS Code and the complementary browser plugin to make sure my writing is accessible
Markdown Tutorial is a great place to learn Markdown basics
- The markdownlint plugin makes sure my Markdown files adhere to general standards
- And Prettier takes care of keeping them tidy
- Docs for Developers is only a year old but instantly canonical
- How to Make Sense of Any Mess a lovely text on how to think about information itself
- The Grand Unified Theory of Docs is an essential read (and re-read)
CLI design
I can't wait to implement these!
- Contextual Information for a Better Developer Experience shows what a difference it can make to have contextual information in the CLI itself, instead of only in the docs
- Charm builds tools to make your CLI truly delightful
I hope this was helpful! Thanks for reading. 😊