Whether it’s a form of note-taking or regular repetition or the like, what are some self-education techniques and tools you’ve developed to help yourself learn on your own?
It’s always interesting imo to read about how some folks teach themselves different stuff.
dig deep hole, jump in.
i like to surround myself in a project with stuff i do not understand and a defined goal, and learn my way out of the hole into a functional state (product).
learn by doin i spose
I am a big fan of the Cornell Note Taking System. It really helped organize my undergrad notes much better than any other system I tried. Also, it is the only system that is Andy Bernard approved!
I read out loud. It helps me remember what I’m reading.
For straight memorising, I used to rewrite by hand the text. I took a long time, but I was stuck in my head since I had to “think” every word as I wrote it. Then usually I didn’t even had to read it again. But that was in high school, so probably it wouldn’t work that well now
For stuff like chess, programming, drawing, etc where there is a skill you can learn…
Just do it. Every day. Do it in manageable steps. So for example if you wanna program, make a goal to create a calculator app. Then work out how to do that. Then do it.
Just keep doing progressively more difficult projects. After calculator app maybe a demo/visualization of sorting algorithms. And then a basic web server. And then a 2d video game. Etc
Learning by doing is the only real way to learn. Even in CS school the classes were great for certain things (I liked data structures & algorithms) but generally speaking the classes are there to facilitate you teaching yourself by doing.
Tldr: do the thing you wanna learn. Do it regularly. Every day if possible. Even if only 5 minutes.
For programming languages, it helps to find a task that actually fits the language well.
I learned Python as a junior sysadmin in the early 2000s specifically because it was the best language for plugging together different Internet services. The senior sysadmin on my team had written a piece of code in Python to migrate users from one email server to another, by connecting with IMAP to each server and transferring their mail. I needed to maintain this code, so I studied up on Python specifically focusing on the email libraries.
I was coming from Perl, which was the best language at the time for certain sysadmin tasks (like logs analysis). But Python’s built-in libraries made it really easy to work with email servers, web servers, and so on. One language feature I really appreciated was the exception system, where many errors that might pass unchecked in C or Perl (and produce unpredictable behavior later) would instead crash the program with a useful diagnostic message.
I learned Haskell several years later because I’d gone to work in Silicon Valley and all the cool CS nerds were into Haskell. I didn’t find a task that actually needed it until I found myself working on a problem that involved both text parsing and combinatorics. You need to express math facts about trees of strings? Haskell is the right tool for the job.
I’d learned elementary C in high school, but I’m not sure I really got C until I had picked up an electronics hobby in my 30s and built myself a blinky bike light controlled by an AVR microcontroller. C on an 8-bit Harvard-architecture machine is way different from C on i386 or x86_64 Linux.
I’ve way less programming experience than you, but I hugely agree. I started out wanting to “learn programming”, and I struggled without a task. Project Euler(maths puzzles to solve with programming) helped me learn the basics of python, but I stagnated for a few years because I didn’t see any way to use what I’d learned, any ideas for projects.
Things really clicked for me once I took a bioinformatics module at uni. The average life scientist is scared of the command line, but I was suddenly faced with so many ways to practice my programming skills by pairing it with biochemistry learning. Now, I’m better at coding than the majority of people in my field, even if I’m still mediocre overall. I know enough to be able to do stuff that I want to do now though