Show HN: SkillPress – Learn JavaScript via spaced repetition and active recall (app.skillpress.io)
When I was getting into web development I used a combination of Anki and git to help me quickly learn and retain skills. Figuring there might be demand for a product that uses the same strategy (without the requirement that you already know Anki and git), I created SkillPress.
No account is needed to start learning. I would greatly appreciate any feedback or suggestions.
41 comments
[ 3.8 ms ] story [ 76.2 ms ] threadI feel the website needs better structure and depth.
I'd like to see: - Fill in answer - Press Enter - UI shows correct/incorrect - Press Enter again - UI shows the next question - Repeat
Edit: tested in Firefox and Chrome
It should work now if you refresh.
I am sure it will help you remember built-ins and terminology, but using PLs is far more than a human memory game, I know JS pretty thoroughly and cannot recall every Math or Array method, it's just not very important. If you want to get better at any PL, write it, write it, write it.
If you don't know what to write, I'd recommend heading over to somewhere like rossetacode and picking an unimplemented problem you like the look of.
[0] https://www.executeprogram.com/
A ten line jumbled function that the learner needs to order correctly? A small function with missing lines or wrong conditions that the learner can fix, to get the function working correctly? None of these are substitutes for writing code of course, but these can be fun exercises?
Programming practice is what I do after I have (or while I'm putting) these facts at my fingertips.
https://imgur.com/a/AD2YZ0l
For programming, most things is programming are either going to fall into either side: "you'll use it frequently enough that recalling it is easy", or "you'll use it so infrequently, and it's better to just look it up than to try to remember it".
Where I have had some success in programming related domains was using flashcards to capture parts of some system that were at the edge of my understanding. I wasn't interacting with the system enough to understand it; but, interacted with it frequently enough that I wanted to get some understanding of it.
But, almost always, I think flashcards need to be very clear/short.
In terms of product-ising the idea of "SRS as applied to learning programming", I guess the main question is "how is your product going to be better than just using flashcards with anki"?
I've found a few limitations with this approach that I tried to address with SkillPress:
1. When you stop using Anki for any length of time, when you come back you get an avalanche of cards that are due - which can be demoralizing. I solved this by doing away with the 'due cards' UI in favor of the forgetting curve graph. This way you are encouraged to come back weekly to keep your graph green, but you aren't hit in the head with a mountain of cards when you do.
2. When you are first getting started with a technology, you aren't sure what is worth committing to memory, so you'll either add too much or to little detail. With SkillPress the decks are created by someone who is proficient in JavaScript, so the courses are closer to the 80% of the value from 20% of the knowledge sweet spot.
3. In software development you'll often learn a technology and then stop using for a long time because your job or career has moved away from it. With an Anki deck that you haven't studied in months you'll be presented a large pile of cards that you don't know, often showing the more advanced cards first. I solved this by prioritizing cards on both the initial learning and review phases. You can come back to a course any time and SkillPress will try to get you back up to speed starting with the more basic concepts.
I noticed when I hit enter to go to the next card it will automatically submit a blank answer. There's no way for me to use this without taking my hands off the keyboard to click 'next'.
I've also been thinking of this in terms of live lectures, where the lecturer could send a card to their students' lecture deck as the concept is explained.
So study homework and quizzes etc. would be replaced by Anki, and classwork could be split between lectures that introduce new concepts and cards and guided programming assignments.
If people do their Anki, they'll remember the facts against their will if the questions are designed well enough. The instructor could concentrate on guiding them through applying those facts in practice.
edit: it's how I tend to do my decks. For example I have a pretty good Git deck that I'm refining (and want to add more advanced usage to) that just takes on the git book at git-scm.com in order, with a card for each individual fact (and an excerpt from the text), tagged with the chapter where the fact is first mentioned. After you're done with a chapter, you can add it into the rotation with "custom study." Once you're done, you can just play with git, instead of constantly context-switching between your sandbox and the docs, or having complete blind spots about things you've had no reason to try yet.
-----
edit 2: I really like this implementation, and the simplicity of the questions. Are they from your own deck?
Similar to your thoughts, I'd love for this or something similar to eventually replace textbooks. It'd be great to have experts in every field build interactive mastery courses that help you both learn quickly and retain the knowledge long term.
Let the mind and heart decide what to do next, is still best strategy.
It's not a joke though, the result is, people are still using ORM to do data stuff, instead of ...(not sure about this).
I natually learnt something for all i knew.
Forced study is just like a hack, because your mind is still out of control.
Nobody is forcing me to do spaced repetition, I enjoy it. It helps me remember things, and I get a dopamine hit when I remember stuff correctly. So instead of talking about "forced study," let us talk about spaced repetition.
For example, to remember "almohada" in Spanish means pillow, I just think of a pillow shaped like the Alamo, and Tinkerbell, the fairy from Peter Pan, sitting in one of the windows ("hada" means fairy is Spanish.) I only need to remember this until I've talked or read enough about pillows in Spanish that I don't need the memory device. And as an example of that, "hada" is a word I don't need anything to remember, I just know it now. I don't remember why. I may have come up with some mental image, I may have had a flashcard, I may just remember the movie Veneno para las hadas because I like it.
It doesn't matter anymore, because it's now knowledge that I have.
Once you've completed 2-3 study sessions (1 study session = 10 cards answered correctly) you should be seeing a lot more code-focused cards.
[1]: https://jsisweird.com/
[2]: http://clojurescriptkoans.com/
[1] https://i.imgur.com/FvYGqQL.png
It would be cool if there was a "course" focused on ES6/relatively new parts of JS.
Some of the "Explore" examples look to be broken for me, even if I try to go to CodePen directly. For example, the card "a binary operator requires.." does not seem to have anything in the CodePen.
My own workflow is too locked into the Anki app itself but this is a great project, well done!