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.
Podcast: Play in new window | Download (Duration: 50:40 — 22.9MB)
Abonnieren: Apple Podcasts | Spotify | RSS
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.
- 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.
*
Ich würde nicht generell zustimmen, dass jede Zeitersparnis gut ist. Manchmal ist es auch gut, wenn Dinge länger dauern, wenn man sich im Detail mit etwas auseinander setzen muss und sich Zeit für etwas nimmt.
Das Beispiel zur Nutzung von Everything etwa: Es ist durchaus gut, sich Gedanken über die Strukturierung von Dateiablagen zu machen. Sonst landet alles in einem großen Ordner und die Struktur ist wieder verloren.
Den Einsatz von Regulären Ausdrücken zum Lösen von Problemen konnte ich leider auch nicht nachvollziehen. Für mich haben Sie im Umgang mit Dateien vielleicht das ein oder andere Probleme gelöscht, bei der Programmierung aber nur äußerst selten.
Den Vorschlag, einen Tag nur die Tastatur zu nutzen fand ich dagegen gut und werde ihn auch an meine Schüler einmal weitergeben.
Auch die Tatsache, dass Bücher immer noch ihr Berechtigung haben und gelesen werden sollten, kann ich nur bestätigen.
Hallo Marco,
sich ausreichend Zeit für Aufgaben zu nehmen ist sehr wichtig. Das Suchen nach Dateien zähle ich aber nicht dazu! 😉 Ich habe eine sehr sinnvolle Ordnerstruktur, aber allein das Navigieren im Explorer dauert schon deutlich länger, als die Datei bei Everything zu suchen. Die schnelle Suche ersetzt also nicht die sinnvolle Struktur.
RegExes nutze ich wie beschrieben sehr häufig. Sowohl als schnelles Hilfsmittel, als auch in Code. Natürlich lösen sie nicht alle Probleme, aber in meiner Praxis erstaunlich viele!
Viele Grüße!
Stefan
ich verwende sehr gerne einen Norton Command Clone. Die „älteren“ werden wissen was es ist. Dieser zeigt quasi zwei „Explorer-Fenster“ nebeneinander an. Man kann so schnell Dinge von „a“ nach „b“ kopieren/verschieben. Die Bedienung mit Tastatur (die ich auch sehr sehr wichtig finde als Entwickler) ist damit in der Regel auch möglich. Desweiteren kann man von dort auch eigene Hotkeys einrichten und somit seine Programm gleich mit dem richtigen Ordner starten und so z.B. ein Diff/Mergetool starten für die beiden angezeigten Ordner starten.
Desweiteren finde ich eine Software zur Wissensammlung sehr wichtig. Hier gibt es unterschiedlichste Ansätze. Ich persönlich finde Evernote ist hier eine unschlagbare Software. Ich setzte diese allerdings selber nicht ein, da die Daten ausschließlich irgendwo in Amerika liegen. Wenn der Service eingestellt wird, ist mein „Wissen“ weg. Wer aber keine „Angst“ vor „alles in die cloud“ hat, sollte es sich unbedingt mal anschauen! Es gibt aber auch Alternativen. Sollte es Evernote irgendwann mal bezahlbar zum selber hosten geben, würde ich es sofort einsetzen. Als Alternative setzte ich tagspaces ein. Dieses kann man auch selbst hosten und mit nextcloud/owncloud als Backend nutzen. Der unschlagbarer Vorteil von Evernote / Tagspaces ist, dass die Dateien mit „Tags/Schlagworten“ versehen werden. Man findet damit unglaublich schnell auch aus vielen Artikeln/Dateien seine Informationen.
Bei der täglichen Arbeit habe ich oft das Problem, dass ich Aufgaben habe, die über den Tag verteilt sein können. Hier hat sich für mich dieses kleine JavaScript Tool bewert. https://github.com/mrcoles/todo-stack Damit kann man schnell Todos in einen „Stack“ packen, der in einer bestimmten Reihenfolge abgearbeitet werden muss.
Hallo Thomas, danke für die Ergänzungen!
Statt Norton Commander nutze ich aktuell Explorer++, der wie der Windows-Explorer arbeitet, aber mehrere Tabs unterstützt. Evernote habe ich auch im Einsatz, da ich leider keine gute self-hosted-Alternative gefunden habe, die auf allen Plattformen gut läuft. :-/ Für die TODOs nutze ich Todoist. Leider sind sowohl Evernote als auch Todoist kostenpflichtig.
Viele Grüße!
Stefan
Danke, sind viele nützliche Tipps die du hier gibst.
Gern geschehen! 🙂
Hi Stefan, wirklich gute Tipps, einiges werde ich glatt übernehmen!
Du hast ja RegExes erwähnt. Eine meiner liebsten Anwendungen dafür ist die Suchen / Ersetzen Funktion. Das wird in so gut wie jedem Editor unterstützt. Angenommen ich habe eine Datei mit hunderten Zeilen und möchte nur die ersten 5 ZIffern jeder Zeile haben:
Find: „(\d{5}).*“, Replace: „$1“ und schon bin ich fertig.
Das benutze ich bestimmt fast täglich für diverse Aufgaben. Vielleicht kann der ein oder andere das auch in seinen Workflows brauchen.