Wie schnell muss ein SW Entwickler tippen können?



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



  • Wieso entfernst du eine Zeile komplett, nur weil am Anfang von ihr irgendein Tippfehler ist?



  • Dobi schrieb:

    Wieso entfernst du eine Zeile komplett, nur weil am Anfang von ihr irgendein Tippfehler ist?

    Das ist doch nicht der Punkt. Die Zeit die du durch das korrigieren eines Tippfehlers verlierst, bedeutet dass jemand der weniger Fehler macht und langsamer tippt trotzdem schneller ist.

    Ich betone nochmal: Jemand der die ganze Zeit viel tippt, ist automatisch schnell.

    Das ist ein Punkt der hier gerne ignoriert wird. Aber wenn Jemand etwas die ganze Zeit tut, ist auch gut darin. Wir reden deshalb nicht von unendlich viel Geschwindigkeitsunterschied, sondern nur von kleinen Nuancen.



  • Shade Of Mine schrieb:

    Ich betone nochmal: Jemand der die ganze Zeit viel tippt, ist automatisch schnell.

    Kann ich persoenlich nicht bestaetigen. Ich selbst komme gerade so ueber 90 wpm, aber nur, wenn ich mich anstrenge. Ich habe aber Bekannte, die auf 150 wpm kommen. Ich schreibe eigentlich jeden Tag, und nicht zu wenig.
    Also entweder bin ich einfach dumm, oder deine Theorie ist falsch. Ich hoffe mal, dass es letzteres ist 😉



  • Shade Of Mine schrieb:

    Dobi schrieb:

    Wieso entfernst du eine Zeile komplett, nur weil am Anfang von ihr irgendein Tippfehler ist?

    Das ist doch nicht der Punkt. Die Zeit die du durch das korrigieren eines Tippfehlers verlierst, bedeutet dass jemand der weniger Fehler macht und langsamer tippt trotzdem schneller ist.

    Genau das wollte ich damit sagen.
    Mit 130WPM bin ich vllt schnell als mit 150WPM wenn ich jedes 5te berichtigen muss. Je nach dem ist Kellerautomat sogar mit 90wpm schneller je nach dem wie lange der andere braucht um jedes 5te zu berichtigen. Dazu kommt, dass vermutlich auch noch weniger Fehler unendeckt bleiben.



  • Shade Of Mine schrieb:

    Dobi schrieb:

    Wieso entfernst du eine Zeile komplett, nur weil am Anfang von ihr irgendein Tippfehler ist?

    Das ist doch nicht der Punkt. Die Zeit die du durch das korrigieren eines Tippfehlers verlierst, bedeutet dass jemand der weniger Fehler macht und langsamer tippt trotzdem schneller ist.

    Klar, weniger Fehler sind besser. Der letztendliche Output hängt dann halt vom Unterschied in Geschwindigkeit, Fehlerquote und Zeit fürs Ausbessern (Schreib ich jedes mal die ganze Zeile neu? :D) ab. Man kann also auch mit ein paar Fehlern mehr schneller sein, aber das brauch ich dir ja nicht vorrechnen. 😉

    Shade Of Mine schrieb:

    Ich betone nochmal: Jemand der die ganze Zeit viel tippt, ist automatisch schnell.

    Das bezweifel ich allerdings schon, zumindest in dieser Absolutheit. Klar sind die Leute, die viel Tippen im Schnitt viel schneller als die, die wenig tippen, aber ich kenn auch einige, die ähnlich viel Tippen wie ich und deutlich langsamer sind, auch welche, die wesentlich schneller sind.

    Shade Of Mine schrieb:

    Das ist ein Punkt der hier gerne ignoriert wird. Aber wenn Jemand etwas die ganze Zeit tut, ist auch gut darin.

    Tendentiell schon, aber es gibt schon dolle Leistungsunterschiede abhängig von Talent, Art des "Trainings" usw.
    Egal ob beim Programmieren, Sport oder Musikinstrumentspielen.
    Sein Talent kann man nicht ändern, aber die Leistung schon. Spiel ich einfach nur jeden Tag Basketball, oder analysiere ich meine Schwächen und arbeite an ihnen?
    Programmiere ich einfach immer nur auf Ergebnis, oder versuch ich ständig, mich und meine Methoden zu verbessern?
    Versuche ich mir Beim Tippen das Auf-die-Tastatur-Gucken abzugewöhnen und mehr als nur 4 Finger zu benutzen oder Tipp ich mit meiner alten Technik einfach immer einfach weiter?
    Für manche Leute versteht sich dieses Verbessern von selbst, ohne dass da viel bewusst getan wird. Dabei sollte man aber nicht vergessen, dass es auch welche gibt, bei denen das nicht so ist.



  • Leute es geht doch nicht um den Unterschied zwischen 90 WPM und 150.
    Nichtmal um den Unterschied zwischen 60 WPM und 90.
    Sondern um den zwischen 10~20 WPM und 60.

    Shade Of Mine schrieb:

    Das ist ein Punkt der hier gerne ignoriert wird. Aber wenn Jemand etwas die ganze Zeit tut, ist auch gut darin. Wir reden deshalb nicht von unendlich viel Geschwindigkeitsunterschied, sondern nur von kleinen Nuancen.

    Das schreibst du dauernd hier.
    Was du aber die ganze Zeit hartnäckig ignorierst, ist die Tatsache, dass jemand der auf Teufel-komm-raus vermeidet viel zu tippen 💡 💡 💡 eben nicht viel tippt. Und daher auch nicht schneller wird.



  • hustbaer schrieb:

    Das schreibst du dauernd hier.
    Was du aber die ganze Zeit hartnäckig ignorierst, ist die Tatsache, dass jemand der auf Teufel-komm-raus vermeidet viel zu tippen 💡 💡 💡 eben nicht viel tippt. Und daher auch nicht schneller wird.

    Dann musst du aber einen Schritt weiter denken: Wenn er naemlich nicht viel tippt, dann hat tippen kein relevanter Zeitanteil an seiner Arbeit. Ergo bringt ihm schnell Tippen keinen relevanten Zeitvorteil.

    Denn wenn er viel Zeit mit tippen verbringen wuerde, dann wuerde er ja viel tippen und waere somit auch schneller.

    Natuerlich ist schneller Tippen immer besser als langsamer Tippen. Aber wenn man sich mal anschaut wieviel Zeit seiner Arbeit man mit welchem Teil verbringt, dann faellt bei einem Programmierer das Tippen auf weit unter 1% der Arbeitszeit.

    Wenn es mehr waere, dann wuerde ich schauen dass man das mit Tools optimieren kann. Weil wenn man soviel Code tippt, dann ist da ja auch wieder die Gefahr von Fehlern gross. Was effektiv wieder die Debug-Zeit erhoeht...

    Wir arbeiten zB in der Firma mit sehr engen Zeitvorgaben. Da muss es bei uns schnell gehen - aber die Tippgeschwindigkeit war noch nie ein Grund ob sich ein Projekt ausgegangen ist oder ueberzogen wurde 😉


Anmelden zum Antworten