How touch typing and keyboard shortcuts can improve the quality of the software you create



  • In Anlehnung an den Thread "Wie schnell muss ein SW Entwickler tippen können?" habe ich einen kleinen Artikel mit meinen Gedanken zu dem Thema geschrieben: How touch typing and keyboard shortcuts can improve the quality of the software you create.
    Über feedback würde ich mich freuen. Ihr dürft mir natürlich auch gerne sagen, dass ich einen an der Waffel habe. 😉



  • Du vermischt den Vorteil von effektiv Arbeiten mit "Eine Tastatur bedienen können".

    Blind tippen zu können muss man einfach wenn man einen Computer benutzt. Aber ich sehe keine weiteren Argumente - jeder halbwegs vernünftige Computernutzer kann blind tippen, das hängt schon alleine damit zusammen dass man ja so viele Stunden vor dem PC verbringt.

    Wenn wir also davon ausgehen dass Jeder blind tippen kann - welche weiteren Punkte führst du denn auf die interessant wären?

    Was auch immer gerne vergessen wird, Tippe ist beim Programmieren der geringste Zeitaufwand. Klar ist es toll wenn man schnell tippt, aber schnell denken spart zB viel mehr Zeit als nur schnell tippen 😉



  • Dobi schrieb:

    improves the quality of the software one produces

    => Waffel.

    Die Gewichtung ist ein wenig zu hoch. Ich halte das eher für irrelevant. Wenns jemand nicht blind hinkriegt oder ganze Wörter nur per Doppelklick markieren kann, dann ist das halt so und er muss sich nicht schämen. Die Annahme, daß jemand, der lahm tippt (mit 2 Fingern nur 150 statt 300 blinden Anschlägen), auf einmal alle Bezeichner einbuchstabig macht, ist schlicht falsch. Und ich spare Kommentare im Code, weil zu 99.9% wo ich das Bedürfnis habe, zu kommentieren, es äquivalenten selbsterklärenden Code gibt, der außerdem als Bonuspreis oft kürzer und schneller ist und mehr Griffe anbietet, falls nötig später eine Optimierung anzubringen. Und Kommentare haben die Tendenz, zu lügen.

    Wärend des Rumeditierens ist die rechte Hand eh bei den Cursortasten, da schlage ich vor zu nehmen Ctrl+Ins und Shift+Ins statt Strg+c und Strg+v. Alt+Backspace statt Strg+z. Falls man eine Standard-Tastatur hat, wo die Tasten auch gut liegen.

    Am besten oft auf
    http://msdn.microsoft.com/de-de/library/da5kh0wa.aspx#bkmk_texteditor
    schauen und versuchen, täglich eine geile Tastenkombination sich anzugewöhnen oder umzugewöhnen zu schneller erreichbaren Tasten. Viele dieser Kombos gehen bei allen quasi allen Programmen. Aufschreibzettel hilft.
    (*notizmach* Bessere Seite für Standard-Tastenkombos finden. edit: http://www.editgym.com/?page=help )

    Keine Breakpoints nehmen um nur "Run to Cursor" zu machen.

    edit:

    Nicht zu vergessen: Je besser der Handwerker, desto schlechter darf zur Not mal das Werkzeug sein. Ginge mir die grafische Oberfläche kaputt, würde ich nur viel Performance verlieren, würde aber nicht gleich sterben dran.

    Soll nicht heißen, daß man bewußt schlechtes Werkzeug nehmen sollte. Sachen wie "Anfänger-Computer", "Hobby-Kettensäge" und "Einsteiger-Smartphone" sind Bauernfängerei.

    Der Tenor unten im Artikel gefällt mir viel besser: Jeder sollte mal bewußt rangehen und versuchen, seine Werkzeuge zu schärfen, weils Arbeiten mit ordentlichem Werkzeug einfach viel viel mehr Spaß macht. Wie mein Rechner, der mir immernoch jeden Tag ein Lächeln ins Gesicht zaubert oder mein Computerschraubenzieher für 70DM.

    edit2: Ähm, der schnellsten Tipper, den ich kenne, der nimmt nur einbuchstabige Variablennamen, um gerade das Schnelle noch weiter Voranzutreiben. Klar sieht das cool aus, wenn er doppelt so viele Zeilen pro Minute packt wie ich. Hab aber den Eindruck, daß ich am Ende vom Tag mehr Funktionalität gebaut habe mit einem Drittel der Zeilen von ihm. Was nutz die schärfste Axt der Welt, wenn man damit Schrauben in die Wand hämmert?

    Die Maus ein paar Tage lang immer auf dem Rücken liegend zu parken hilft ungemein.



  • volkard schrieb:

    Wärend des Rumeditierens ist die rechte Hand eh bei den Cursortasten, da schlage ich vor zu nehmen Ctrl+Ins und Shift+Ins statt Strg+c und Strg+v. Alt+Backspace statt Strg+z. Falls man eine Standard-Tastatur hat, wo die Tasten auch gut liegen.

    Während des Rumeditierens ist die rechte Hand eh bei hjkl. Markiert wird mit v, kopiert und ausgeschnitten mit v bzw. d. Eingefügt mit p. "Rumeditieren" (anstatt Schreiben?) soll kein Handverschieben bedingen, sondern nur ein Moduswechsel (also einmal schnell auf Caps-Lock tippen). In der Mitte der Tastatur gibt es viel mehr Eingabemöglichkeiten, man muss keine überflüssigen Meta-Tasten drücken und alles ist besser.

    Titelvorschlag:
    How using Vim will improve the quality of the software you create



  • @Shade Of Mine: Schön wärs. Ich kenne leider einige Programmierer, die sogar schon mehr Jahre im Job sind als ich und trotzdem noch die ganze Zeit auf ihre Finger schauen. Der Autor des Artikels, auf den ich mich beziehe, gehört ja scheinbar auch dazu.
    Wenn man davon ausgeht, dass jeder blind tippen kann, ist mein Artikel natürlich hochgradig sinnlos, ja. 😉
    Dass Tippen nur sehr wenig Zeit ausmacht, hab ich auch geschrieben. Aber meine Hauptaussage ist ja, dass es gar nicht um die Zeit geht. Hast du mehr als nur die Überschrift gelesen? 😛

    @volkard: Die rechte Hand an den Cursortasten? Bei Linkshändern oder was meinst du? Wenn man eh beide Hände an der Tastatur hat, find ich es ziemlich egal, ob man links oder rechts copy-paste-Sachen macht.
    Achja, zum Üben von Standard-shortcuts, die in den meisten Editoren funktionieren, empfehle ich meine brandneue Seite EditGym. 😃
    Nur so interessehalber: Kannst du blind tippen?
    zum Edit2: Jo, klar. Auch wenn man die 100m in 7 Sekunden laufen kann, kann man ein grottenschlechter Fußballspieler sein. 😉
    Maus ne Zeit lang weg ist super. Das hat bei mir auch viel gebracht.

    @vimme: Ich warte immernoch darauf, mal irgendwen zu sehen, der mit vi(m) oder emacs text deutlich schneller rearrangieren kann als ich mit einem normalen Editor. Wenn ich irgendwann (meinetwegen auch nur in einem Video/Screencast) so jemanden finden sollte, würde ich ernsthaft in Erwägung ziehen, sowas zu lernen. Bis dahin: meh



  • Dobi schrieb:

    Die rechte Hand an den Cursortasten? Bei Linkshändern oder was meinst du?

    Nee. Wenn ich (und nicht mein Editor) im Editiermodus bin, hab ich die rechte Hand an den Cursortasten und Eing, Entf, Pos1, End, PgUp und PgDown, die ich auch alle verwende. Die linke Hand bedient Shift (Markieren), Strg (für Kopieren und Einfügen, wortweise Springen, Dokumentanfang), manchmal Alt und gelegentlich 'a'.

    Dobi schrieb:

    Wenn man eh beide Hände an der Tastatur hat, find ich es ziemlich egal, ob man links oder rechts copy-paste-Sachen macht.

    Aber ich muss doch mit Shift+Cursortasten den Text auswählen.

    Dobi schrieb:

    Achja, zum Üben von Standard-shortcuts, die in den meisten Editoren funktionieren, empfehle ich meine brandneue Seite EditGym. 😃

    Hab ich angeschaut, aber Strg+c Strg+v wie dort empfohlen lehne ich ab. Muss ich mal durcharbeiten, tu den Link in Deine Sig, würde ich vorschlagen; denke, der sollte so immer verfügbar sein.

    Dobi schrieb:

    Nur so interessehalber: Kannst du blind tippen?

    Nur im Editiermodus. Die Maus fasse ich eigentlich nur fürs Anwendungstarten und Internetbrausen an.

    Deswegen muss meine Tastatur ungefähr so http://www.keyboardco.com/keyboard_images/cherry_G80_3000_keyboard_black_small.jpg aussehen. Wenn sie so http://www4.pcmag.com/media/images/238718-dell-inspiron-one-2305-blu-ray-keyboard.jpg aussieht, versteht der Admin nie, warum ich unzufrieden bin und was für eine Kacke er da eingekauft hat, und daß das genauso schlimm ist, als wären die Buchstabentasten vertauscht.



  • Zu EditGym:
    - "Warm up - swap lines" finde ich unrealistisch, weil die letzte Zeile kein \n hat. Ebenso "Endurance - numbers".
    - Nach dem Lösen will ich angezeigt bekommen, wieviele Tastendrücke minimal sind, um wenn ich die nicht erreicht habe, was dazuzulernen.

    -Bei "tree like structures" rücke ich die Zeilen "be" und "intended" ein durch Beide-Markieren und TabTabTab. Dein Editor kennt das nicht und überschreibt die beiden Markieren Zeikeb durch ein Tab-Zeichen. Denke, alle Code-Editoren kennen das. Weiß nicht, wie üblich es bei Office-Produkten ist. Sollte aber rein evtl mit Einschränkender Anmerkung.



  • Dobi schrieb:

    Über feedback würde ich mich freuen.

    ja, dem kann man im Großen und Ganzen zustimmen. Bin aber leicht biased, als eingeschworener Emacs-bash-sed-grep-find-awk'ler

    Ich glaube schon, daß - freie Werkzeugwahl vorausgesetzt - das verwendete Werkzeug Rückschluß auf den Benutzers erlaubt. Zumindest in Grenzen, denn auch Gewohnheit spielt hier eine Rolle. Andererseits wird sich ein geistig flexibler Programmierer (hoffentlich) nicht von Faulheit zum Umdenken daran hinden lassen, effizientere Werkzeuge zu wählen als gewohnt.

    Ich habe bestimmt mehrere hundert Tastaturkürzel, aliases und selbstdefinierte Bash-Befehle im Kopf, die mir erheblich zügigeres Arbeiten erlauben, als ich mit "mouse-only" könnte.

    Aber auch auch das ist nur ein Scherz, verglichen mit dem Spielen von, sagen wir mal, Chopins Wasserfall-Etüde auf dem Klavier mit Metronom 176.



  • Ist es nicht dieselbe Diskussion, wie in dem von dir verlinkten Thread?
    Mich regen Kollegen fast schon auf, die nicht effizient mit der Tastatur arbeiten können. Haben mehrere von der Sorte. Einer greift immer zur Maus und klickt auf Datei -> Speichern, statt schnell Strg+S zu drücken, wo seine Hände eh schon auf der Tastatur sind. Ansonsten kann er aber sogar schneller tippen als ich.
    Finds noch nerviger, zwei Kollegen zuzuschauen, die ständig zur Maus greifen und auch noch total lahm tippen. Dann heißt es "Moment, ich schau mal gleich" und dann geht eine Orgie von überflüssigen Bewegungen los, mit zig mal zur Maus greifen, um ein Wort zu markieren, dann zurück zur Tastatur, dann irgendwo reinklicken zum Suchen, dann wieder einfügen, dann irgendwas umstellen, was eh schon richtig eingestellt ist, weil die Einstellungen gespeichert werden, wieder zur Maus, zur Tastatur, hin und zurück.. Wo das bei den meisten anderen 3-4 schnelle Anschläge wären. Und die sind alle schon seit Jahren dabei.

    Nur so nebenbei, ich weiß nicht, was ihr so programmiert, aber ich tippe recht viel jeden Tag. Keine hochkomplexen mathematischen Gleichungen natürlich, dann schreib ich auch nur wenige Zeilen pro Tag/Monat, aber was den Alltagscode angeht tippe ich sehr viel und es würde mich schon rausbringen, wenn ich das auch noch langsam machen würde. Tippen und gleichzeitig denken geht eh schlecht, also muss man sein Zeug schnell eingetippt haben, damit man schnell weiterdenken kann.



  • @volkard:
    Jo, meine Hände sind an den gleichen Positionen, nur dass ich mit der linken Hand strg+c/x/v mache, und das linke shift und die cursortasten rechts zum Markieren benutze. Aber wahrscheinlich ist der Unterschied nicht so gravierend.

    swap_lines: Ja, über das trailing \n hab ich auch nachgedacht, aber hab befürchtet, dass das zu viele übersehen und dann hinterher nicht verstehen, was anders ist. Deshalb hab ich alle Level konsistent ohne \n am Ende gemacht.

    numbers: Die Absolute Mindestzahl kenn ich nicht. Ich hab immer nur meine persönlichen Rekorde, die ich als Referenz für die 5 zu erreichenden Sterne benutze. Da das ganze bisher gar kein Backend hat, habe ich noch keine Möglichkeit, irgendwie highscores und replays einzusammeln.

    Ja, das Einrücken von mehreren Zeilen würde ich normalerweise auch mit Markieren und Tab machen. Momentan ist das, was man bei EditGym übt, halt auch auf Notepad.exe übertragbar. 😉

    @Mechanics: Danke, ich bin also nicht der einzige, der solche Leute kennt. 😃



  • Ich bin durch das unendlich schlechte UI von Visual Studio geschädigt.
    - Übersicht über Shortcuts? Gibts nicht.
    - Shortcut anhand von Schlüsselwörtern oder so finden? Gibt es nicht, man braucht den exakten Namen.
    - Shortcut anhand der Tastenkombination finden? Gibt es nicht (!).
    - Shortcut ausprobieren ohne das Optionsfenster schließen zu müssen? Na, ratet mal!

    Deswegen kenne ich fast keine und vergebene nie eigene.

    Ich habe eben herausgefunden, dass Strg+W ein Wort markiert. Wenn ich mir das mit Strg+W angewöhne, werde ich ständig versehentlich Browser-Tabs schließen.



  • Dobi schrieb:

    Achja, zum Üben von Standard-shortcuts, die in den meisten Editoren funktionieren, empfehle ich meine brandneue Seite EditGym. 😃

    Da komme ich mir richtig archaisch vor.

    What What a a mess mess.
    All All the the words words
    are are there there twice twice.
    Cleaning Cleaning this this up up
    probably probably is is not not
    the the nicest nicest
    job job in in the the world world,
    but but somebody somebody has has
    to to do do it it.

    Was für einen Sinn hat es, das von Hand zu reparieren?
    Das ist der Job für Regex.



  • Richtig.
    Soll halt nur Übung zur Fingerfertigkeit sein.
    Im normalen Fitnessstudio macht man ja auch Sachen, die man im Job eher von Elektromotoren erledigen lassen würde. 😉



  • Dobi schrieb:

    @Shade Of Mine: Schön wärs. Ich kenne leider einige Programmierer, die sogar schon mehr Jahre im Job sind als ich und trotzdem noch die ganze Zeit auf ihre Finger schauen.

    Also bei uns in der Firma kann jeder Blind Tippen (und wir sind eine Werbeagentur, kein IT unternehmen mit Computer affinen menschen) - die alten Chefs mal außen vor gelassen. uU geht es ja um die 50+ Generation?



  • Ne, davon ist noch keiner über 50. Keine Ahnung, was da los ist. 😉



  • Von meinen Kollegen auch nicht. Einer ist jünger als ich, und noch keiner ist 50. Ich rede natürlich von den Entwicklern, wie andere Kollegen ihre Tastatur benutzen, ist mir ziemlich egal.


Log in to reply