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.

  • @kava@lemmy.world
    link
    fedilink
    17
    edit-2
    2 years ago

    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.

    • @fubo@lemmy.world
      link
      fedilink
      5
      edit-2
      2 years ago

      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.