Softwareentwickler haben viel zu tun und stehen häufig unter Zeitdruck. Um die verfügbare Zeit optimal nutzen zu können, gebe ich in der einundfünfzigsten Episode des Anwendungsentwickler-Podcasts einige Tipps zum Thema Produktivität.
TL;DR
Mit meinen Tipps kannst du als IT-Azubi bei der täglichen Arbeit Zeit sparen und deinen Code leichter weiterentwickeln. Zehnfingersystem und Tastenkürzel helfen dir dabei, deinen Computer zügig zu bedienen, während passende Programme wiederkehrende Eingaben übernehmen. Beim Programmieren wählst du die Sprache passend zur Aufgabe und hältst deinen Code mit einfachen, wiederverwendbaren Lösungen übersichtlich. Für langfristig produktives Arbeiten gehören außerdem Git und gründliches Lernen dazu; automatisierte Tests sowie Build-Werkzeuge erleichtern dir wiederkehrende Abläufe.
Kapitelmarken
[00:00:20] Produktiver arbeiten im Alltag als Softwareentwickler:in
[00:01:54] Das Zehnfingersystem lernen
[00:05:26] Tipptraining mit TIPP10
[00:06:26] Den Computer mit der Tastatur bedienen
[00:08:11] Tastenkürzel lernen mit MouseFeed
[00:10:14] Eigene Tastenkürzel und MoreUnit
[00:11:47] Weniger eingeben mit CLCL
[00:13:13] Zugangsdaten mit KeePass eintragen
[00:14:34] Textbausteine und Makros mit AutoHotkey
[00:15:51] Texte mit Vi und Vim bearbeiten
[00:18:08] Vim Adventures und Practical Vim
[00:18:58] Texte in Markdown schreiben und mit Git versionieren
[00:20:47] Dateien mit Everything finden
[00:23:30] Die passende Programmiersprache wählen
[00:26:41] Statische und dynamische Typisierung
[00:27:20] Code mit Git versionieren
[00:28:02] In geeignete Werkzeuge und Lernangebote investieren
[00:31:39] Neue Technologien und Framework-Versionen kennenlernen
[00:33:12] Reguläre Ausdrücke für Textmuster
[00:34:07] Excel und Calc im Entwicklungsalltag
[00:35:12] Zeit zum gründlichen Lernen einplanen
[00:36:12] Mit anderen Softwareentwickler:innen austauschen
[00:37:44] DRY: Funktionen zentral ablegen
[00:38:29] KISS: Einfache Lösungen wählen
[00:39:29] YAGNI: Aktuelle Anforderungen umsetzen
[00:40:55] Automatisierte Tests und Regressionen
[00:42:31] Build-Abläufe automatisieren und Continuous Integration
[00:44:53] Rückblick auf die Tipps zum Programmieren
[00:46:03] Links und Buchempfehlungen
[00:47:16] Weitere Tipps und Blogartikel
[00:48:21] Newsletter und Buchclub zum Handbuch für Fachinformatiker:innen
Inhalt
Zeit sparen
Lerne das 10-Finger-System, z.B. mit Tipp10.
Nutze deine Tastatur* und nicht die Maus*.
Lerne die wichtigsten Shortcuts deiner Tools. In Eclipse hilft dir z.B. MouseFeed dabei.
Definiere dir eigene Shortcuts für häufig benötigte Funktionen, z.B. für ReRun Tests. Ggfs. brauchst du Tools wie MoreUnit dafür.
Vermeide zu tippen, wo immer es geht. Ich nutze dafür z.B. CLCL, KeePass und AutoHotkey (siehe auch Tools für Softwareentwickler).
Nutze Vim als Editor. Hiermit kannst du ihn spielerisch lernen: VIM Adventures.
Lerne ein einfaches Textformat, wie z.B. Markdown (siehe auch Warum ich Markdown liebe).
Verschwende keine Zeit mit der Suche nach Dateien. Everything ist die Antwort auf alle Fragen.
Produktiv programmieren
Verwende die beste Sprache für die Lösung deines Problems (statisch vs. dynamisch, Java vs. C#).
Verwende eine Versionsverwaltungssoftware wie Git.
Verwende die besten Tools, auch wenn sie Geld kosten, z.B. eine gute IDE.
Lerne neue Technologien.
Erfinde das Rad nicht ständig neu.
Neue Frameworks wie Java EE 7 erfordern (vielleicht) weniger Code.
Reguläre Ausdrücke lösen viele Probleme.
Excel* ist ein mächtiges Werkzeug für allerlei Aufgaben.
Nimm dir Zeit zum Lernen und lies auch gerne mal ein Buch, anstatt Dinge nur halb zu verstehen.
Tausche dich mit anderen Entwicklern aus, z.B. in Foren oder bei Offline-Treffen.
Befolge die zentralen Prinzipien der Softwareentwicklung.
DRY
KISS
YAGNI
Schreibe automatisierte Tests (siehe auch Test everything).
Automatisiere alles.
Literaturempfehlungen
Wenn du den Umgang mit dem besten Editor der Welt perfektionieren willst, lernst du am besten vom "Meister". Practical Vim* ist voll von direkt anwendbaren Tipps zum Umgang mit Vim.
*
Das Buch Pro Git* habe ich hier im Blog schon ein paar Mal empfohlen. Es hat mir beim Verständnis der Funktionsweise von Git sehr geholfen und ist voll mit praxisnahen Informationen.
*
Wenn dir die oben genannten Prinzipien der Softwareentwicklung noch nicht viel sagen, dann ist es Zeit für Clean Code*. Das Buch muss jeder Softwareentwickler gelesen haben.
*
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Zusammenfassung
Im Alltag Zeit sparen
Für meine IT-Azubis gehört Zeit zum Lernen und Ausprobieren zur Ausbildung. Gegen Ende der Ausbildung, besonders vor der Abschlussprüfung, steigt der Zeitdruck. Auch im späteren Alltag als Softwareentwickler:in helfen eingeübte Handgriffe und passende Werkzeuge dabei, Aufgaben zügig zu erledigen.
Das Zehnfingersystem lernen
Wenn du täglich Code und andere Texte schreibst, lohnt es sich, das Zehnfingersystem zu beherrschen. Durch regelmäßiges Üben prägen sich die Wege zu den Tasten ein, sodass du beim Tippen auf den Bildschirm schauen kannst. Bereits eingeübte Gewohnheiten umzustellen braucht Zeit. Ich habe dafür mehrere Wochen täglich geübt.
Das kostenlose Programm TIPP10 beginnt mit der Grundstellung auf A, S, D, F sowie J, K, L, Ö. Weitere Zeichen kommen schrittweise hinzu. Für Softwareentwickler:innen gibt es Übungen mit Klammern und Sonderzeichen.
Ich empfehle dir, das übliche Tastaturlayout zu lernen. Damit kannst du auch beim Pair Programming oder an einem anderen Arbeitsplatz mit vertrauten Tasten arbeiten.
Programme mit der Tastatur bedienen
Probiere für eine Stunde oder einen Tag aus, deinen Computer über die Tastatur zu bedienen. Bei alltäglichen Aufgaben lassen sich viele Aktionen direkt per Tastenkürzel ausführen. Die Kontextmenütaste einer Windows-Tastatur öffnet das Rechtsklickmenü; mit Enter kannst du beispielsweise eine Suche abschicken.
Lerne vor allem die Kürzel für Funktionen, die du häufig aufrufst. In Eclipse unterstützt dich das Plugin MouseFeed dabei: Nach wiederholten Mausklicks auf eine Funktion zeigt es das passende Tastenkürzel an. Für häufig aufgerufene Funktionen ohne Kürzel regt es an, eines festzulegen.
Eigene Tastenkürzel lassen sich an deinen Arbeitsablauf anpassen. Ich habe mir beispielsweise eines zum erneuten Ausführen meiner Tests eingerichtet. Das Eclipse-Plugin MoreUnit ermöglicht außerdem, mit Strg+J zwischen einer Klasse und dem zugehörigen Test zu wechseln.
Wiederkehrende Eingaben abkürzen
Für Texte, die du immer wieder eingibst, empfehle ich dir diese Werkzeuge:
CLCL speichert mehrere Einträge der Zwischenablage. In meiner Konfiguration bleiben die letzten 30 kopierten Inhalte verfügbar. So kannst du mehrere Textstellen nacheinander kopieren und später einzeln einfügen.
KeePass verwaltet deine Zugangsdaten. Mit einem passenden Browser-Plugin lassen sich Benutzername und Passwort per Tastenkürzel eintragen und das Formular abschicken.
AutoHotkey ersetzt kurze Eingaben durch längere Texte, etwa eine Grußformel oder deine E-Mail-Adresse. Das kostenlose Programm kann auch Makros ausführen, die mehrere Tastendrücke und Eingaben verbinden.
Vi beziehungsweise Vim lernen
Mit Vi/Vim kannst du Texte mit wenigen Tastendrücken bearbeiten. Über H, J, K und L bewegst du dich durch den Text, während deine Hände nahe an der Grundstellung bleiben. Auch beim Ersetzen und Bearbeiten von Text helfen kurze Befehle.
Für den Einstieg brauchst du Übung, weil viele Tasten eigene Befehle auslösen. Ein Cheat Sheet hilft dabei, sie nachzuschlagen. Ich empfehle dir das Spiel Vim Adventures, um Befehle spielerisch kennenzulernen, sowie das Buch Practical Vim mit Beispielen für den Arbeitsalltag.
Texte in einem einfachen Format schreiben
Ich schreibe meine Texte in Markdown. Damit kannst du beispielsweise Überschriften und Listen direkt im Text kennzeichnen. Für Fettschrift setzt du jeweils zwei Sternchen vor und hinter die betreffende Stelle. Weitere einfache Textformate sind Textile und die MediaWiki-Syntax.
Solche Dateien lassen sich mit Git versionieren. Dadurch kannst du nachvollziehen, wie sich ein Text entwickelt hat, einzelne Änderungen vergleichen und frühere Stände wiederherstellen.
Dateien mit Everything finden
Das kostenlose Windows-Programm Everything erfasst Dateinamen auf deiner Festplatte. Anschließend kannst du Dateien durch Eingeben eines Namens schnell finden. Die hier beschriebene Suche arbeitet anhand der Dateinamen; die Inhalte der Dateien werden dabei nicht als Volltext erfasst.
Produktiv programmieren
Die Sprache passend zur Aufgabe wählen
Wenn du mehrere Programmiersprachen kennst, kannst du einschätzen, welche für deine Aufgabe geeignet ist. Dabei zählen auch die verfügbaren Bibliotheken und das Umfeld, in dem dein Programm laufen soll.
Für Skripte unter Windows empfehle ich PowerShell. Bei Office-Aufgaben kommt .NET infrage, während Erweiterungen für WordPress in PHP entstehen. Für dynamische Websites ist beispielsweise Ruby on Rails eine Möglichkeit.
Auch das Typsystem gehört zu dieser Entscheidung:
Mit dynamisch typisierten Sprachen lassen sich erste Lösungen mit wenig Code schreiben.
Statisch typisierte Sprachen ermöglichen Unterstützung durch die IDE, etwa beim Springen zu einer Typdefinition, und helfen beim langfristigen Weiterentwickeln des Codes.
Code mit Git versionieren
Mit Git kannst du Änderungen nachvollziehen und Unterschiede zwischen mehreren Ständen ansehen. Beim Ausprobieren hast du einen gespeicherten, funktionierenden Stand, zu dem du zurückkehren kannst. Git funktioniert auch lokal auf deinem Rechner.
Ich verwende Git für meinen Code und meine Texte. Als Buch zum Einstieg empfehle ich Pro Git, das auch kostenlos verfügbar ist.
Geeignete Werkzeuge und Lernangebote auswählen
Beziehe beim Kauf von Software die Zeit ein, die sie dir bei deiner Arbeit spart. Wenn du zwei Stunden suchst, um zehn Euro für ein geeignetes Programm einzusparen,...