Wie schnell muss ein SW Entwickler tippen können?



  • Meine Fehlerquote ist ein wenig hoch:
    http://10fastfingers.com/speedtests/generate_screenshot_result/96_512_0_0_86_5_95.09_455_9259
    Aber Tippgeschwindigkeit ist wirklich nicht das Kriterium, finde ich.
    Man programmiert dann nicht unbedingt schneller, es geht viel mehr Zeit damit drauf sich zu überlegen, wie man etwas schreibt. Das Runtertippen davon nimmt dann kaum Zeit im Verhältnis in Anspruch.



  • GPC schrieb:

    Daraus direkt auf die Tippgeschwindigkeit von Code zu schließen, halte ich doch für weit hergeholt.

    Wieso nicht?
    Wer schnell tippt findet die Tasten die er drücken will schnell. D.h. normalerweise wird der auch schnell sein beim Navigieren mittels Cursortasten, Fn Tasten Drücken bzw. ganz allgemein dem was Programmieren von Text-Abtippen unterscheidet.

    Klar, nur weil jmd. schnell Text-Abtippen kann, heisst das noch lange nicht dass er schnell Programmieren kann. Nur wenn mehrere Programmierer den Test machen, dann denke ich schon dass man die Ergebnisse sinnvoll vergleichen kann.



  • hustbaer schrieb:

    GPC schrieb:

    Daraus direkt auf die Tippgeschwindigkeit von Code zu schließen, halte ich doch für weit hergeholt.

    Wieso nicht?
    Wer schnell tippt findet die Tasten die er drücken will schnell. D.h. normalerweise wird der auch schnell sein beim Navigieren mittels Cursortasten, Fn Tasten Drücken bzw. ganz allgemein dem was Programmieren von Text-Abtippen unterscheidet.

    Klar, nur weil jmd. schnell Text-Abtippen kann, heisst das noch lange nicht dass er schnell Programmieren kann. Nur wenn mehrere Programmierer den Test machen, dann denke ich schon dass man die Ergebnisse sinnvoll vergleichen kann.

    Ja, man findet die Tasten schneller, das ist schon richtig. Aber du sagst es selbst, diese unzusammenhängenden Wörter stumpf abzutippen ist halt was ganz anderes, wie Code zu schreiben. Mal abgesehen von den ganzen Sonderzeichen, die das Tippen je nach Tastaturlayout z.T. deutlich verlangsamen, denkt man beim Coden ja auch darüber nach, was man grade macht und das beschleunigt den Vorgang jetzt auch nicht unbedingt.



  • OK, beim Schreiben von neuem Code tippt man meist nicht SO viel/schnell.

    Wo ich auf jeden Fall froh' bin, dass ich wenigstens "ganz passabel" tippen kann, ist beim Refactoring. Also bei Dingen wo ich keine Tools verwenden kann.
    z.B. hunderte Vorkommnisse von

    CString msg;
    msg.Format("HardCodedFunctionName: blah %d %d %d", val1, val2, val3);
    OLD_LOG_MACRO(msg);
    

    in

    SHINY_NEW_LOG_MACRO("blah %d %d %d", val1, val2, val3);
    

    verwandeln.

    Oder auch z.B. Fehlerbehandlung ist oft mit viel blöder Tipperei verbunden. Oder Doku-Kommentare Schreiben genau so. Und das ist ja auch alles irgendwo "Programmieren".

    D.h. vielleicht leiden vor der Benamsung noch andere ebenso wichtige Dinge.



  • Klar, ich denke schon auch, dass schnelles Tippen generell von Vorteil ist. Ich wäre sicher nicht Informatiker, wenn ich hier mit 2-Fingern auf der Tastatur rumhacken würde ^^ Viel zu aufwändig und zeitintensiv. Aber ich kenne genug Leute in der IT-Industrie, die das so machen. Ist wie ein Musiker, der keine Noten lesen kann. Geht schon iwie, aber ist doch nicht so das Wahre.



  • GPC schrieb:

    Ich wäre sicher nicht Informatiker, wenn ich hier mit 2-Fingern auf der Tastatur rumhacken würde ^^

    Dieser Satz läßt mich allerdings daran zweifeln, daß Du Informatiker bist.



  • volkard schrieb:

    GPC schrieb:

    Ich wäre sicher nicht Informatiker, wenn ich hier mit 2-Fingern auf der Tastatur rumhacken würde ^^

    Dieser Satz läßt mich allerdings daran zweifeln, daß Du Informatiker bist.

    Stimmt, ich hab ja ursprünglich auch Wirtschaftsinformatik studiert.

    Abgesehen davon würde mir der Job aber keinen Spaß machen, wenn ich elendig langsam auf der Tastatur rumtippen würde.



  • Ihr wisst aber schon, dass wenn man den ganzen Tag auf einer Tastatur rumtippt man automatisch sehr schnell tippen kann, oder?

    Unabhängig von gelernten 10 Fingersystem oder sonstwas. Wenn man etwas täglich mehrere Stunden macht, dann ist man gut darin.

    Und wenn man nicht täglich Stunden auf einer Tastatur tippt, dann ist die Tippgeschwindigkeit für die Arbeit eh irrelevant, weil sie ein viel zu kleiner Teil der Arbeitszeit ist.

    PS:
    Und alleine dass Leute Denken dass schnell Programmieren etwas mit Tippgeschwindigkeit zu tun haben könnte ist erschreckend. Bitte daran denken, dass man an einem guten Tag nämlich eine Handvoll Zeilen Code entfernt!



  • Shade Of Mine schrieb:

    PS:
    Und alleine dass Leute Denken dass schnell Programmieren etwas mit Tippgeschwindigkeit zu tun haben könnte ist erschreckend. Bitte daran denken, dass man an einem guten Tag nämlich eine Handvoll Zeilen Code entfernt!

    Diese Aussage ist im Zusammenhang mit Tippgeschwindigkeit relativ sinnlos.



  • Vor drei Tagen schrieb ich hier, dass ich schnelles Tippen für Unwichtig beim Programmieren halte. Nun habe ich meine Meinung geändert. 😉 Vorallem weil ich jetzt mal bewusst drauf geachtet hab, wie andere Leute ihre PCs bedienen.

    Wir treffen ständig unbewusst irgendwelche Mikroentscheidungen, wie:
    - Suchen wir nach vorkommen von FizzBuzzOutputStrategyFactory durch rumscrollen oder mit strg+f?
    - Wollen wir den Code-Kommentar, der uns gerade im Kopf rumschwebt, hinschreiben, oder ist es ohne auch OK?
    - Schreiben wir uns irgendwas eben auf Papier oder in eine Text-Datei?
    Das sind alles Entscheidungen, bei denen der zeitliche Aufwand der beiden Möglichkeiten mit reinspielt. Und wir wollen ja, dass es schnell geht, weil es anstrengend ist, einen Gedanken lange festzuhalten usw.

    Zusätzlich find ich es noch wichtig, viele Shortcuts flüssig raushauen zu können, denn auch ob wir die kennen oder nicht spielt mit in diese Mikroentscheidungen rein.
    - Wollen wir eben in die andere offene Datei gucken, oder ist uns der Aufwand mit Maus-Anfassen zu hoch? Drücken wir einfach STRG+Tab (oder sowas, je nach IDE)?
    - Laden wir eben das eine Log-File oder mutmaßen wir, was wohl drin steht? Können wir z.B. unter Windows eben flott folgendes tippen oder wird es eine elende Klick-Orgie? logo-key+R, d:<enter>, [erster_ordnerbuchstabe], [erster_dateibuchstabe], enter)

    Klar, das sind alles Sachen, über die wir kaum nachdenken, und ich kann meine Behauptung über die Existenz von irgendwelchen unbewussten Vorgängen natürlich schlecht nachweisen. Das Ganze ist also mit Vorsicht zu genießen.

    Also, ich behaupte jetzt trotzdem einfach mal, dass die Schnelligkeit/Virtuosität beim bedienen der Eingabegeräte nicht nur Auswirkungen auf die Zeit, die man für eine Sache braucht, sondern auch auf die Qualität hat.

    Ich empfehle daher folgende zwei Sachen zu üben:
    - Tippen ohne hinschauen
    - Computer eine Zeit lang komplett ohne Maus bedienen.

    Nun, sollte man als CEO seinen Entwicklern einfach die Tastaturen schwarz ansprayen und die Mäuse wegnehmen, um mittelfristig ihre Produktivität zu steigern? Was meint ihr? 😃



  • Dobi schrieb:

    Nun, sollte man als CEO seinen Entwicklern einfach die Tastaturen schwarz ansprayen und die Mäuse wegnehmen, um mittelfristig ihre Produktivität zu steigern? Was meint ihr? 😃

    Es gibt auch Sachen die mit der Maus schneller gehen. Zeitweises schwäzen wäre sicher nicht schlecht.



  • @Dobi:
    Danke!

    @Shade Of Mine:
    Ich finde es erschreckend dass du es für irrelevant hältst, und noch erschreckender dass du dir dabei (wie so oft) auch noch so sicher bist.

    Zum Programmieren gehören viele Aufgaben, und bei vielen davon kann ich schneller denken als schreiben.

    Manuelle Refactorings, Doku schreiben, Kommentare schreiben, kleine dumme Beispiele schreiben, dumme Unit-Tests schreiben etc.
    Und wie Dobi mMn. ganz richtig erkannt hat: bei all' diesen Dingen ist die Hemmschwelle es "ordentlich" und "ausreichend" zu machen viel höher, wenn man nicht schnell tippen kann.

    Shade Of Mine schrieb:

    Bitte daran denken, dass man an einem guten Tag nämlich eine Handvoll Zeilen Code entfernt!

    Wenn ich 10 Zeilen entferne, dann hab ich dazu oft 100 oder mehr angepasst. Dazu muss ich auch tippen. Denk mal darüber nach.

    Vielleicht arbeitest du auch mit Programmen wo man über jede Zeile sowieso 5 Minuten nachdenken muss, bevor man sie schreiben, anpassen oder entfernen kann. Solche Domänen gibt es natürlich. Speziell wenn viel Mathematik oder komplizierte Algorithmen im Spiel sind.
    Aber nicht alle von uns arbeiten in solchen Bereichen.

    Und selbst wenn ich 10 Minuten nachdenke bevor ich anfange Code zu schreiben... Wenn es "anspruchsvolles Nachdenken" ist, dann kann ich das nicht während ich schreibe. Und dann kommt beim Code-Schreiben wieder all das dazu was Dobi erwähnt hat. Selbst wenn der Code in 2 Minuten runtergeschrieben ist -- wenn die Hemmschwelle weitere Zeit für das Schreiben von z.B. Kommentaren zu hoch ist, dann leidet die Qualität.



  • hustbaer schrieb:

    Und selbst wenn ich 10 Minuten nachdenke bevor ich anfange Code zu schreiben... Wenn es "anspruchsvolles Nachdenken" ist, dann kann ich das nicht während ich schreibe. Und dann kommt beim Code-Schreiben wieder all das dazu was Dobi erwähnt hat.

    Ich stimme dir und Dobi grundsätzlich zu, aber es gibt auch negative Effekte von der Fähigkeit, schnell Sachen runterzutippen:

    - Plane ich das Design erst einmal durch oder schreibe ich einfach mal einen Prototyp hin? Je schneller ich schreibe, desto mehr geht wird zum Prototyp tendiert.

    - Und auch während dem Codeschreiben, je länger ich darüber nachdenke, wie ich eine Codestelle organisiere, desto besser wird sie. Wenn ich langsamer tippe, denke verbringe ich mehr Zeit mit der Codestelle, also wird sie besser.

    - Tippfaule Programmierer sind auf Autovervollständigung angewiesen. D.h., sie schreiben nur die ersten zwei Buchstaben und wählen dann mit den Pfeiltasten den richtigen Identifier aus. Folglich stört sie nicht, wenn sie mit langen Namen zu tun haben, im Gegenteil, das macht es einfacher, durch die Liste zu scrollen.



  • highperformancetipper schrieb:

    - Plane ich das Design erst einmal durch oder schreibe ich einfach mal einen Prototyp hin? Je schneller ich schreibe, desto mehr geht wird zum Prototyp tendiert.

    Ich hab' kein Problem mit Prototypen. Dann weiss man wengistens wo wirklich der Schuh drückt. Funktioniert nach meiner Erfahrung 10x besser als vorher lange planen und dann macht man es im Endeffekt eh anders, weil der Plan einfach nicht umsetzbar ist.

    highperformancetipper schrieb:

    - Und auch während dem Codeschreiben, je länger ich darüber nachdenke, wie ich eine Codestelle organisiere, desto besser wird sie. Wenn ich langsamer tippe, denke verbringe ich mehr Zeit mit der Codestelle, also wird sie besser.

    Kann ich nicht nachvollziehen.

    highperformancetipper schrieb:

    - Tippfaule Programmierer sind auf Autovervollständigung angewiesen. D.h., sie schreiben nur die ersten zwei Buchstaben und wählen dann mit den Pfeiltasten den richtigen Identifier aus. Folglich stört sie nicht, wenn sie mit langen Namen zu tun haben, im Gegenteil, das macht es einfacher, durch die Liste zu scrollen.

    Faul bin ich auch. Nur kann ich halbwegs schnell tippen, und wo es Sinn macht, tu ich das auch. Jmd. der mit 60~120 Anschlägen/Minute tippt, ist dagegen meist auch zu faul die schönen, aussagekräftigen, langen Bezeichner bei der Deklaration hinzuschreiben. Und verwendet dann trotzdem unv.Akzg.

    highperformancetipper schrieb:

    Grundsätzlich richtig, aber: Wer langsam schreibt schortcuttet auch langsam 😉
    Und mit den Snippets kann man auch übertreiben. Nen for-Kopf schreib' ich auch mit Hand.



  • hustbaer schrieb:

    Zum Programmieren gehören viele Aufgaben, und bei vielen davon kann ich schneller denken als schreiben.

    Wir verwenden Boilerplate-Vorlagen für das meiste, da geht die Zeit beim Suchen der passenden Code stellen drauf und nicht beim Tippen.

    Texte werden per Copy&Paste übernommen.
    Klassen Skelette werden generiert.

    Wer ein WinMain tippt, der macht was falsch. Tippen ist zu fehleranfällig und kostet sinnlos Zeit.

    In C++ sind die Tools natürlich nicht so weit, das weiß ich. Aber auch wenn hier gegen die modernen Sprachen gewettert wird - moderne Toolsets reduzieren dieses Boilerplate Tippen einfach enorm.

    Ein Funktionsname wie GetSecurityContextHandleForUser ist ein gsc<TAB>

    Da ist es irrelevant wie schnell jemand tippt.

    PS:
    also bei uns ist ein schneller Tipper nicht relevant schneller als ein langsamer.

    Und bitte auch wieder bedenken: wenn man sehr viel tippt wird man AUTOMATISCH sehr schnell. Es gibt keine Leute die viel tippen und langsam sind.



  • hustbaer schrieb:

    Jmd. der mit 60~120 Anschlägen/Minute tippt, ist dagegen meist auch zu faul die schönen, aussagekräftigen, langen Bezeichner bei der Deklaration hinzuschreiben. Und verwendet dann trotzdem unv.Akzg.

    Kann ich nicht nachvollziehen.



  • highperformancetipper schrieb:

    - Tippfaule Programmierer sind auf Autovervollständigung angewiesen. D.h., sie schreiben nur die ersten zwei Buchstaben und wählen dann mit den Pfeiltasten den richtigen Identifier aus. Folglich stört sie nicht, wenn sie mit langen Namen zu tun haben, im Gegenteil, das macht es einfacher, durch die Liste zu scrollen.

    Lustigerweise nutze ich solche Features wesentlich mehr als die von mir beobachteten Mitmenschen, die nicht so schnell tippen können. Einige bemerken die Vorschläge nichtmal, weil sie auf ihre Finger gucken bis sie den Bezeichner fertiggetippt haben. Und dann müssen sie wieder mit dem Cursor zurück, um die Tippfehler, die sie zwischendurch (dank nicht-auf-den-Bildschirm-gucken) verpasst haben. 😃



  • Habe die letzte Woche mal bei mir drauf geachtet.
    Das problem ist, dass die Fehler steigen je man schneller schreibt.
    Wenn ich jede zweite Zeile wieder entferne um einen Fehler am Anfang zu korrigieren, habe ich natürlich nichts gewonnen.
    Auch wenn ich nicht so schnell schreibe nutze ich 10 finger. Wenn ich mit 10 Fingern eher gemütliche schnell schreibe bin ich schneller als wenn ich es drauf anlege möglichst schnell zu sein.

    Auch gucke ich natürlich auf den Bildschirm was ich schreibe. Aber auch da gibt es 2 Situationen. Tippe ich freien Text, oder tippe ich etwas ab. Habe ich z.B. einen Vertrag aus dem ich Sachen ins System eingebe, dann gucke ich die ganze Zeit auf das Blatt und tippe einfach. Da enstehen zwar mehr Fehler als alles wenn ich alles direkt kontrolliere, aber am Ende bin ich doch schneller.

    Bin in meiner Firma aber auch kein Entwickler. Da sieht es sicher noch mal anders aus.



  • Sqwan schrieb:

    Wenn ich jede zweite Zeile wieder entferne um einen Fehler am Anfang zu korrigieren, habe ich natürlich nichts gewonnen.

    Na gut, wofür so Sachen wie die Taste pos1 oder strg+Pfeiltaste gut sind, sollte man schon wissen, bzw. nicht nur wissen, sondern unbewusst und flüssig benutzen. 😉



  • Das stimmt. Ich meine aber sowas:

    Wenn ich jede zweite Zeile wieder efentrne um einen Fehler am Anfang zu korrigieren, habe ich natürlich nichts gewonnen.

    Das ist immer mist.


Anmelden zum Antworten