One thing is I was constantly expecting that I could start typing the phrases instead of typing 'enter' first to begin. I think it seems more obvious to just let people hit the first key in the sequence to start the timer.
I don't think I'm unique in this but I'm actually a horrible typist 'by the book'.. that is I use my index fingers for probably 75% of my typing. It was interesting going through the 'learning' section and being so jarringly reminded that I don't touch type properly.
The weird thing is that on most typing tests I score over 100 WPM's, usually somewhere around 110 actually if it is mixed english. I also type code far faster than I can think. And though I've been coding as a profession for 15 years, I've never really succumbed to RSI in any way either. So I'm not sure what my incentive to relearn how to type properly is. I do wish I did in a way, I imagine it would be quicker, but part of me wonders whether my mutated typing is mutated in a way that just works for me physically, so why mess with something that works.
Anybody else the same? I've even toyed with learning Dvorak to force myself to learn from scratch again, this time the 'right way', but again it doesn't seem like I would necessarily get real gains over where I'm at now.
I've done exactly that: I was at ~100wpm with "advanced hunt and peck", and decided to learn touch-typing in Dvorak to "do it properly".
I type a little slower now, and my hands feel pretty much the same, but it makes my computer that much harder for other people to use so I'm calling it a win.
It's actually pretty fascinating, though— I can still type blind with speed in either layout, but the process is completely different. I know the location of an arbitrary key in QWERTY, but I'm not sure I could actually give you the Dvorak layout without putting my hands together. I don't use Dvorak keycaps, which might have something to do with it— on one of my laptops I actually rearranged the keys to be accurate to neither. I don't like it when other people use my computers, and I like that experience to be mutual :)
Most of I time I run into the "Press Enter" mandatory "resume" option. I am starting to type in, but since I didn't hit enter first, the banner becomes red, and then a new exercise is selected. That's ok but a little bit annoying. It is just a feedback for the website author . :-)
I found it hugely annoying that I couldn't just start, that I had to press "Enter" first. I don't know why that is necessary and I wish the author didn't force us to do this. Otherwise, very nice job.
Still very much the wrong approach. I can see why you had the demo-mode on the landing page, although I think it isn't necessary, but there's really no reason to have it all once you're interacting with the site.
You can have a big start-typing button at the home page (initially).
But when we select a lesson from the select box or retrying a lesson, it would be great if we could able to start typing immediately.
The code typing sections is cool, but unfortunately not representative of the way anybody codes. I could probably code up any of these examples much faster in vim than having them dictated to me. Plus, code is not written linearly, it is modled / shaped into form.
I never understood the obsession with coding speed. There seems to be a lot of people who claim a modest change in input speed is a massive productivity change to them (and how they justify their dedication to their preferred editor/UI/keyboard/language/et al).
I might be an edge case, but when I "code" the minority of the work is actually writing source code. The majority is research/thinking/copy+pasta/et al.
When I do write source code I guess it doesn't hurt if it is fast, but considering how little time I spend actually doing it it doesn't seem as important as other things.
If I had to pick for example between choosing to improve my code entry speed or better understanding of design patterns I'd choose the latter in a heartbeat.
It's a dubious metric anyway considering that most editors support some form of tab completion.
That being said, it's useful for a new practitioner to be able to experience a language's flow or cadence without having to come up with syntactically correct code themselves -- like just getting your feet wet.
In fact, I wish they'd put this up on GitHub, I'd like to add modes for Ruby, for koans, and for augmented documentation.
Mostly I agree with you; on the editor issue, though, part of why I like vim, and probably why different people like emacs, is how much they're optimized for all kinds of variants of copypasta (yank the arguments from inside a set of parens, stick them somewhere else, jump to the 2nd comma-separated param, mess with it a little, etc.)
Which, by the way, this kind of typing practice doesn't help you with at all.
That seems strange to me. If we are talking about complex high level architectural concepts, that should be documented before the coding. If you are talking about local function implementation, putting a comment above it as a summary. That is all I have ever needed. What types of things would you forget? I don't consider my memory to be particularly sharp, but I have never faced an expired mental cache while coding.
Well, beside this tool not supporting AZERTY or DVORAK or BEPO or whatever other layout than QWERTY, I find the focus on typing speed quite myopic. As a programer, I spend most of my time thinking, moving around, substituting names, changing this or that, reading documentation… Nowadays, with completion, snippet expantion and tools like Sparkup/Zen Coding/Emmet, typing speed is not that relevant anymore.
Switching to Vim from TextMate has been enough to make me save a good 50% of my time. At this point, shaving off another, asy, 10% doesn't sound that compelling to me.
I have been looking for apps that teaches keyboard training geared towards computer programming, and this looks like a good start. Congratulations!
Would be cool to have a few tests where you can train typical bash and vim commands and see the ideal finger placement. Extra credits for emulating things in e.g. bash like: ctrl+a and alt+u etc. For command shortcut inspiration see for example: http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-pro...
This is great, but I am horrible! I do not touch type at all but I am a fairly fast writer. My left hand uses a few more fingers but I mainly use my index finger, and my left hand is kind of permanently kept on wasd... which is a dead giveaway I suppose. Looking forward to using this to actually learn how to touch type.
It's kind of ridiculous I haven't already to be honest, even if I've never had any troubles with sore wrists or anything like that.
I think the asdf fdsa and jkl lkj ... lessons should mix the order up. I actually failed to learn jkl with the lessons provided (!) and had to switch to emacs and give myself a hand-created lesson with them mixed up.
Can we have a P for previous shortcut in addition to skip?
I got used to the enter-to-start thing eventually but I messed it up several times initially, accidentally skipping lessons.
Many people learn peck-typing and then find it difficult to switch to touch typing since its initially slower. It would be cool if someone could create a program that tries to get people to learn typing as them type real things they would be typing anyways. It could also analyze their real typing and provide drills for weak keys and combos.
This is really good as they let u move step by step through touch typing, initially the speed apparently looks to have reduced but once it becomes a habit to type with those fingers on the specific keys it will definitely have paid! Working on using this frequently and making it a habit.
Looks great! One suggestion (maybe you're working on this now) would be to have lessons for some of the characters which coding requires frequently (angle brackets, parenthesis, curly braces, brackets, etc.) For me at least, that's what slows me down when coding the most.
Great app, what I liked most that it was very easy to use, practical (a great learning tool -- I think you could take this really far if you add some more lessons and stuff), and it was super-easy to start. I was typing away as soon as I went to the site.
I just learned that I am such a sloppy coder since I hit semicolon with my index finger apparanlty, and my right hand only uses my thumb, index, and middle finger.
No wonder I can never hit the semicolon or parens/braces/brackets. I use my index finger...
I noticed I did something similar for parentheses - I move my entire hand right so that my pinky rests on right-shift and then I press 9 or 0 with my middle finger. I should of course instead by pressing shift with my left hand's little finger, but I often find that pressing shift with one hand for one half of the keyboard and with the other hand for the other half is a little bit awkward for me... Maybe I'll get a kinesis contoured with foot pedal for shift some day :D
I just got a Maltron keyboard that has symbols in non-standard places. Was thinking on using clavaro with code fragments when I saw this. Great job! I'll probably use it till I get 40 wpm at 100% accuracy on colemak. I'm at 20 wpm 100%.
This is great. As a programmer it lets you quickly understand what key sequences you are having problems with and then lets you practice them. The code feature is great too.
The enter to start and s to skip is very poorly thought out. I find myself forgetting enter literally every time and I've been though 20 or so lessons, and when the lesson starts with s, I press it (forgetting the enter) and skip the lesson. I don't know how to go back to the last example (undo the skip), and now I have to fucking pick a different lesson in the drop down, then reselect the one I was doing, then skip over every example I did, then fucking press S again because I forgot enter, and have to do that shit again.
If you're going to design something, free or not, do it fucking right.
Your product made me mad enough to actually post this.
looks quite interesting, but it appears that there is no way to switch the keyboard layout, that not easy to 'see' the key they highlight, and press it somewhere else!
I was coding in no-US keyboard for a while. But switching to US was very helpful for me. I think special characters in most languages are arranged to be efficient on US keyboards.
So take your time to switch and relearn. It will help in long run.
(I'm a self-taught touch-typist typing at 100 WPM+... Not anywhere near a world record but not too slow either)
Not bad but I do prefer typeracer. Now this one seems to be better done than typeracer: I like the fact that you can see the keys (that said it should take into account ANSI / ISO physical layouts and at least QWERTY / AZERTY and maybe DVORAK logical layouts).
Note that touch-typing is probably going to be faster than non touch-typing, so I'm advocating learning to touch-type (even if you're an old fart who never did and thinks he cannot switch anymore -- not true, I've done it after more than ten years and I don't regret it).
For a start lessons where you endlessly input "asdf" aren't that great. It's still an open discussion if this type of training as any value (included for musicians / pianists, even the ones who think it has value because they've brainwashed by doing it endlessly repeatedly -- Jimi Hendrix didn't ; )
Basically: what is the point in writing "asdf fdas sdaf fads" etc.? Are you going to write that in the Real-World [TM]? No. So why even spend time training doing it instead of doing the real thing?
It's like when Agassi changed and got a new trainer and told him that his old trainer would have him run for miles and miles and miles and his new trainer told him something like: "That's over. What you do during a match is start to run very fast then stop immediately, then run in the other direction. That's what you're going to be training to do now.".
These are two different conceptions of training. To me the first one doesn't make much sense but YMMV.
Then the other issue is that, as has been pointed out, nobody is coding like that anymore: editors do close matching parenthesis, brackets, etc. and you enter "fi" and then hit <TAB> and the skeleton of a "for (int i = 0; i < ...; i++) {" appears, you start to type the first three letters of any method, function, variable and use some expand functionality to get the auto-completion, etc.
The way I did taught myself to touch-type is simple: read about the very basics of touch-typing (or ask any secretary to teach you: it basically takes two minutes -- that's what I did), buy an "otaku" keyboard or set of keycaps (a keyboard on which the keys are "blank"), put your index fingers respectively on 'f' and 'j' and start... working!
To me doing what you're actually going to do, just like Agassi's trainer would advice, is the best way to learn.
Not some "technique" or "method" that people still don't know if it makes any sense or not.
One thing is I was constantly expecting that I could start typing the phrases instead of typing 'enter' first to begin. I think it seems more obvious to just let people hit the first key in the sequence to start the timer.
I don't think I'm unique in this but I'm actually a horrible typist 'by the book'.. that is I use my index fingers for probably 75% of my typing. It was interesting going through the 'learning' section and being so jarringly reminded that I don't touch type properly.
The weird thing is that on most typing tests I score over 100 WPM's, usually somewhere around 110 actually if it is mixed english. I also type code far faster than I can think. And though I've been coding as a profession for 15 years, I've never really succumbed to RSI in any way either. So I'm not sure what my incentive to relearn how to type properly is. I do wish I did in a way, I imagine it would be quicker, but part of me wonders whether my mutated typing is mutated in a way that just works for me physically, so why mess with something that works.
Anybody else the same? I've even toyed with learning Dvorak to force myself to learn from scratch again, this time the 'right way', but again it doesn't seem like I would necessarily get real gains over where I'm at now.