Many reasons, most of them hypothesis. For one, the book "The programmer's brain" says that spaced repetition is the best way to learn the syntax, idioms, caveats of a programming language, but it's hard to find a product that offers this.
I don't suggest you should learn Python _only_ with python.cards. I assume every python.cards user will be doing some online course, or working with Python, and my decks will just boost their knowledge of the language.
I think a lot of people program in Python but programming in Python is not their main occupation. These people struggle to accumulate knowledge, because they may encounter concepts or APIs only from time to time, and by that time they already forgot.
Also, I want to cover some "unorthodox" topics for which spaced repetition may be specially well suited. For example, I'm building a deck called "A tour of the standard library", where you can learn all the modules that are available, just so you know what is out there, without going deep into it.
Another idea is to have decks to learn all the built-in exceptions by heart, or the nomenclature. I think this helps build a mental model of the width and depth of the language so you can better integrate all the knowledge you find while coding, searching online, or reading code.
> the book "The programmer's brain" says that spaced repetition is the best way to learn the syntax, idioms, caveats of a programming language
Unfortunately, hard disagree. The best way to learn a Lisp is to write Lisp. You can look at code all you want, but you won't get used to the syntax/parens until you start writing it. Same applies to non-Lisps.
> I think a lot of people program in Python but programming in Python is not their main occupation. These people struggle to accumulate knowledge, because they may encounter concepts or APIs only from time to time, and by that time they already forgot.
This is a great point. Static typing is great for API discovery, which Python sadly lacks. However, I wonder how much LLMs are eating this "low-code" market. Also, if Python is non-critical to their jobs, I suspect that they won't feel motivated to explicitly study Python over the long term. Doing spaced repetition is famously hard, and non-motivated people will likely give up and just do "JIT learning".
> Also, I want to cover some "unorthodox" topics for which spaced repetition may be specially well suited. For example, I'm building a deck called "A tour of the standard library", where you can learn all the modules that are available, just so you know what is out there, without going deep into it.
FWIW I'm learning Rust, and to "learn what's out there" I've just been binging random Rust videos on Youtube at 2x over lunch. Granted I'm an experienced dev and I have an intuition as to what "should" be out there, so perhaps this story is of limited use.
Sadly, hard disagree. I programmed Clojure professionally for ~2 years, and its REPL is significantly better than Python's. Despite that, nothing compares to "dot" autocomplete and being certain that a method can take a certain object type. Like, I could type dir/help and then the token in question then parse the output with my eyes, remove the help/dir and type in what I wanted... or I can hit dot and scroll the available methods/properties. It's not even close.
I don't suggest you should learn Python _only_ with python.cards. I assume every python.cards user will be doing some online course, or working with Python, and my decks will just boost their knowledge of the language.
I think a lot of people program in Python but programming in Python is not their main occupation. These people struggle to accumulate knowledge, because they may encounter concepts or APIs only from time to time, and by that time they already forgot.
Also, I want to cover some "unorthodox" topics for which spaced repetition may be specially well suited. For example, I'm building a deck called "A tour of the standard library", where you can learn all the modules that are available, just so you know what is out there, without going deep into it.
Another idea is to have decks to learn all the built-in exceptions by heart, or the nomenclature. I think this helps build a mental model of the width and depth of the language so you can better integrate all the knowledge you find while coding, searching online, or reading code.