
Practice typing for Code - arunoda
http://typing.lk/
======
nicpottier
This is quite well done, nice work!

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.

~~~
Cushman
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 :)

------
ybaumes
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 . :-)

------
fredsted
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.

~~~
thameera
We will be adding an Options panel soon, and we'll make it possible to opt for
this. Thanks!

~~~
prateekmi2
Another side effect is that sometimes I accidentally skip sentences that start
with s because i invariably forget to press enter before starting.

~~~
jlewes
I also did this several times initially.

------
SeoxyS
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.

~~~
thameera
We tried to make it like a code editor that only has auto indentation. Thanks
for your suggestions, we'll look into how we could improve this.

~~~
boshea
A vi editor mode would be sweet!

------
UnoriginalGuy
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.

~~~
Egregore
It's great to be able to type quickly all you have in mental cache, until that
cache expires.

~~~
goggles99
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.

------
johncoltrane
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.

------
gokfar
See also <http://typing.io/lessons>

~~~
rahulroy
That's Awesome! thanks for sharing this.

------
wolfhumble
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...](http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-
productivity/)

Anyway: Good job! :-)

------
flexd
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.

------
jlewes
[100% hunt-and-peck typist here]

I thought this was great! I really like it.

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.

------
arunoda
There is also no unique URL for the particular exercise. If the author can
create hashes for that. I will be really helpful and we can share them too.

~~~
thameera
Permalinks for lessons sounds good. Thanks!

------
arikrak
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.

------
ssninja
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.

------
dhammack
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.

~~~
thameera
Yes, we'll be adding lessons for these characters soon. In fact, we're going
to re-structure all the lessons.

------
hardwaresofton
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.

Great idea, great job

------
eflowers
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...

~~~
dkersten
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

------
urlwolf
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%.

------
denniskubes
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.

------
Noxchi
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.

------
MacsHeadroom
In "Drills" mode it is impossible to tell the difference between lowercase L
and capital I.

Doesn't seem like it should be that way.

------
aeosynth
The key to restart is sometimes enter, sometimes r; this should be consistent.

------
mrabe
Great idea, but doesnt work properly with the German NEO 2 keyboard layout.

------
wazari972
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!

~~~
beyti
non-us keyboard layouts missing, since that, no way to use a semicolon after
"l" is that way in my kb.

~~~
bliker
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.

------
runemadsen
I really love this. Just spent 20 minutes on it.

------
BvS
Please add ruby

------
martinced
_(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.

Think outside the box.

