[HN Gopher] Show HN: SkillPress - Learn JavaScript via spaced re...
       ___________________________________________________________________
        
       Show HN: SkillPress - Learn JavaScript via spaced repetition and
       active recall
        
       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.
        
       Author : delabroj
       Score  : 46 points
       Date   : 2022-07-24 14:18 UTC (8 hours ago)
        
 (HTM) web link (app.skillpress.io)
 (TXT) w3m dump (app.skillpress.io)
        
       | mahebub wrote:
       | Vip
        
       | barefootford wrote:
       | Fun idea. I'm a big Anki fan for learning languages. I'd consider
       | turning off case sensitivity and ensure you're stripping spaces
       | and making it as easy as possible to match answers. If you have
       | to manually type in the answer its a pain to remember what case
       | the answer should be in too. Still not sure what the sweet spot
       | is for click vs typing outside of language context.
        
       | tangoalpha wrote:
       | You might want to make the validation case insensitive as well as
       | make the validation ignore any black space around the answer
       | phrase.
       | 
       | https://imgur.com/a/AD2YZ0l
        
       | yoyohello13 wrote:
       | This is a pretty cool idea!
       | 
       | 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'.
        
         | delabroj wrote:
         | Should work now if you refresh.
        
           | yoyohello13 wrote:
           | Perfect! Thank you!
        
       | victor106 wrote:
       | This seems like an amazing idea.
       | 
       | I feel the website needs better structure and depth.
        
         | delabroj wrote:
         | Thanks - it's definitely at the MVP stage. Any particular
         | features you'd like to see?
        
           | NotErnie wrote:
           | Keyboard only navigation! Right now when you press Enter
           | after (incorrectly) answering a question the next question
           | get's answered with an empty value.
           | 
           | 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
        
             | delabroj wrote:
             | Thanks for the heads up - that's what I get for doing most
             | of my testing on mobile.
             | 
             | It should work now if you refresh.
        
       | dvt wrote:
       | Why even mention `informational`[1] here? I was thinking it's a
       | trick question. Either way, it should probably accept both
       | `.info` and `.log`.
       | 
       | [1] https://i.imgur.com/FvYGqQL.png
        
         | delabroj wrote:
         | Good point - updated the question.
        
       | tomxor wrote:
       | Sorry but this will not help you learn JavaScript.
       | 
       | 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.
        
         | akudha wrote:
         | I was looking at some human language learning material. One of
         | the exercises in it was to rearrange jumbled words into a
         | meaningful sentence. That got me thinking, what sort of
         | exercises can we borrow from human language learning to learn
         | programming?
         | 
         | 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?
        
           | pessimizer wrote:
           | For me, those things are too complicated for a card. I want
           | my cards to drill one thing. I might even want five cards to
           | drill one thing five times, but with five different contexts.
           | I want them to help me retain facts, like a syntax, a
           | library, configuration, keywords, and
           | enumerations/flags/switches with arbitrary names.
           | 
           | Programming practice is what I do after I have (or while I'm
           | putting) these facts at my fingertips.
        
         | taccicardia wrote:
         | Yeah, a lot of this just looks like trivia. There are a couple
         | of very rudimentary "coding problems," but I'm unsure how
         | useful this would be. Writing code >>>> answering trivia
         | questions about terminology.
        
           | delabroj wrote:
           | I agree - the best way to learn to write code is to practice
           | writing code. After you learn the basic terminology the
           | course progresses on to more and more advanced coding
           | problems.
        
             | taccicardia wrote:
             | For clarity, are advanced problems something like "write
             | the output of this anonymous function" or does it teach
             | this concept before asking the question? Is this supposed
             | to be adjunct to a more holistic course?
        
               | delabroj wrote:
               | The course leans pretty heavily toward active recall -
               | there are a lot of high quality tutorials out there, so I
               | wanted this one to focus more on maximizing retention
               | instead of serving as a gentle introduction.
        
               | taccicardia wrote:
               | That could make some sense. To be clear I don't think
               | it's a bad idea, just seems like this is for a very
               | specific type of person.
        
               | abeyer wrote:
               | I think what you're asking about is more along the lines
               | of execute program[0]. It combines both the initial
               | presentation of concepts and the follow on spaced
               | repetition.
               | 
               | [0] https://www.executeprogram.com/
        
         | [deleted]
        
         | delabroj wrote:
         | Thanks for checking it out. The course starts with the basics,
         | so if you are already proficient at JS you would get less value
         | from it.
        
       | ecshafer wrote:
       | I don't see how this would be useful for learning JavaScript at
       | all. It is definition trivia, maybe for some kind of CS1 quiz
       | this would be useful. But the way to learn JavaScript is to
       | _write Javascript_.
        
         | delabroj wrote:
         | Thanks for checking it out - it starts out with definitions and
         | then builds into more interactive cards focused around reading
         | and writing code.
         | 
         | 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.
        
       | pessimizer wrote:
       | I've been thinking about a similar thing lately, but as an Anki
       | plugin: while reading the docs/documentation/tutorial, and a fact
       | is mentioned that needs to be memorized, click on it to add a
       | card it to that doc's designated Anki deck, then immediately
       | answer it in Anki (putting it into the rotation.)
       | 
       | 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?
        
         | delabroj wrote:
         | Yeah, I adapted them from my JS Anki deck. Also ended up
         | cutting out a lot of stuff out that turned out being less
         | important than I'd thought as a new learner of JS. I'm hoping
         | the courses are more useful than those a learner would create
         | themselves since as a proficient JS user I have a better idea
         | of what skills are actually needed.
         | 
         | 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.
        
       | amadeuspagel wrote:
       | I like the pitch but I don't like the kind of question, would
       | prefer something along the lines of _JS Is Weird[1]_ or the
       | _ClojureScript Koans[2]_.
       | 
       | [1]: https://jsisweird.com/
       | 
       | [2]: http://clojurescriptkoans.com/
        
       | rgoulter wrote:
       | IME/IMO, Anki is best at aiding recall for domains where there's
       | a long tail of infrequently used items which benefit from quick
       | recall. As in, it's obviously great for language learning; and
       | I've heard it's good for e.g. health science students.
       | 
       | 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"?
        
         | delabroj wrote:
         | Yeah, I found that in my case I'll boot up in a new language or
         | technology using an Anki deck, then as things start to stick
         | and I am using the new skills in my daily work I'll stop
         | studying the deck.
         | 
         | 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.
        
       | revskill wrote:
       | Spaced repetition doesn't work though. Forced study is the worst.
       | 
       | 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).
        
         | codybontecou wrote:
         | Do you feel the same way about learning a non-programming
         | language?
        
           | revskill wrote:
           | Yes. The same.
           | 
           | I natually learnt something for all i knew.
           | 
           | Forced study is just like a hack, because your mind is still
           | out of control.
        
             | pessimizer wrote:
             | You keep using the phrase "forced study" as a substitute
             | for spaced repetition.
             | 
             | 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.
        
               | revskill wrote:
               | Yes, the point is, it forced you to remember things which
               | i should forget instead. It's dangerous though. In real
               | life, we should learn how to forget unnessesary stuffs ?
               | Or, i think a better strategy is, it should remind me of
               | something "new" that i'm not aware of instead.
               | Remembering is two-sword knife.
        
               | pessimizer wrote:
               | I think the point when you're learning programming or
               | another language is to remember things long enough that
               | you can recall them when you need to use them. Once
               | you've got in the habit of using them, the cards don't
               | matter anymore.
               | 
               | 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.
        
       | cantSpellSober wrote:
       | Cool, I love how easy it is to jump right in and start using.
       | 
       | It would be cool if there was a "course" focused on
       | ES6/relatively new parts of JS.
        
       ___________________________________________________________________
       (page generated 2022-07-24 23:01 UTC)