| 

.NET C# Java Javascript Exception

11
Ich bin noch Informatikstudent, programmiere seit meiner Jugend. Neben meinem Studium arbeite ich hier und da in diversen Studentenjobs (die viel mit meinem Studienfach zu tun haben). Und so langsam überlege ich, in welche Richtung ich später gehen will (es gibt ja viele Möglichkeiten).

Da wir hier eine Programmierer-Community sind, will ich euch (die schon als Programmierer länger arbeiten) einfach mal fragen: Was macht eurer Meinung nach einen guten Programmierer aus? Was sind die Kriterien dafür?
frage programmieren job programmiere
16.04.2012
starki 603 8
9 Beiträge
9
Das ist eine gute Frage. Ich arbeite inzwischen seit knapp 6 Jahren als Softwareentwickler, davor 2,5 Jahre Ausbildung und noch ein wenig Studium davor. Hab also schon mit dem ein oder anderen Entwickler auch zusammen gearbeitet.

Ich mach es mal andersrum und sage dir was, in meinen Augen, einen schlechten Entwickler ausmacht:

Kein Teamwork
Als ich früher das Wort "Teamwork" gehört habe, habe ich immer gedacht, dass das heißt, dass man gut direkt mit einem anderen zusammenarbeiten muss. Also mehrere Leute an einem Projekt rumprogrammieren. Das gehört sicherlich irgendwo dazu, inzwischen sehe ich die Probleme aber öfter in der theoretischen Zusammenarbeit. Wie sind die Leute in Besprechungen und Diskussionen? Können sie gut diskutieren und ihren Standpunkt mit Argumenten untermauern? Können Sie sich auf die Abläufe im Team einstellen?

Unsauberer Code
Ein Code sollte nicht nur funktionieren, er sollte auch für andere nachvollziehbar sein. Das gibt es dann in zwei Extreme. Einmal die, die wirklich unsauberen Code schreiben: Keine Kommentare, Redundanz durch Copy&Paste, schlecht benannte Variablen und so weiter. Macht wahnsinnigen Spaß, wenn man so einen Code später mal bearbeiten muss. Das andere Extrem ist dann ein wenig das "Fancy Code Syndrome" nach dem Motto: "Die Sprache bietet das, also nutze ich es.", da werden dann vermeintlich einfache Codekonstrukte so bearbeitet, dass sie vielleicht nur noch halb so lange sind, dafür brauchen andere dann 1h, bis sie verstehen was das eigentlich macht.

Keine Standards
Es gibt Dinge, die werden einfach nicht überall gelebt und ich verstehe das auch. Meiner Meinung nach sollte aber ein Entwickler zumindest bestrebt sein, dass er gewisse Standards in seine Projekte versucht mit einzubauen oder wenigstens wüsste, wie man sie anwendet. Das sind ganz unterschiedliche Dinge, wie z.B.: Wie schreibt man Unit Tests? Wie verwalte ich meinen Code? Kenne ich ein paar grundlegende Patterns?

Das ist gut, weil ich das kann
Denke da müssen sich recht viele an die Nase greifen, ich bestimmt auch in manchen bereichen. Viele sind da oft nicht sehr objektiv, wenn es um die Wahl des richtigen Werkzeuges geht. Da wird dann gerne die bevorzugte Sprache als beste Alternative verkauft, auch wenn es vielleicht andere Sprachen oder Wege gibt, die besser dafür geeignet wären, die aber vielleicht nicht so "cool" oder spannend sind.

Das ist so das, was mir aktuell einfällt, wenn ich so an die Personen denke, mit denen ich so gearbeitet habe. Ich möchte mich da auch gar nicht bei allen Punkten selbst ausklammern. Jeder hat so seine Stärken und Schwächen. Da kenne ich Leute, die schreiben einen super Code, dafür wirst du in den Meetings wahnsinnig mit denen. usw...
Meine Minuspunkte würde ich vor allem im letzten Punkt sehen, selbst für simple Aufgaben würde ich eher eine Konsolenanwendung in .NET schreiben, bevor ich dafür eine Scriptsprache benutze. King of Patterns bin ich auch nicht unbedingt. Aber man schlägt sich durch. :)
16.04.2012
Feroc 1,2k 1 9
7
Ein guter Programmierer:

- ist wie ein angenehmer Mitbürger, er denkt auch mal an andere (Programmierer): Er macht seinen Code wartbar, verteilt sinnvolle Kommentare und hat auch noch eine gute Dokumentation parat. Auf Verständnisfragen reagiert er hilfreich und ist auch bereit, Verbesserungen einzuarbeiten. Oh ja, und er antwortet auch fleißig auf Fragen bei CK ;-)

- bleibt neugierig und testet ab und zu ein neues Framework, eine neue Programmiersprache oder ein neues Endgerät aus. Er verzettelt sich dabei aber nicht und rennt nicht *jedem* Hype hinterher.

- seine Programme sind nicht fertig wenn sie "irgendwie" funktionieren, sondern wenn sie das robust und in akzeptabler Zeit tun. Er bleibt vielleicht sogar solange um die Reaktion des Kunden abzuwarten und sein Werk ggf. zu verbessern.

Achja, es gibt so viele Kriterien. Jeder entwickelt im Laufe der Zeit seine eigenen Schwerpunkte..
16.04.2012
puls200 3,8k 7
5
Man könnte da jetzt natürlich das ganze theoretische BlaBla aus diverser Literatur oder sonstigen Weiterbildungen aufführen. Das spare ich mir hier. Aber ich nenne gerne ein paar Dinge, die ich im Laufe der Zeit bei Softwareentwicklern schätzen gelernt habe:

Sozialintelligenz
Dies ist ein absolutes Plus in unserer Branche. Wie auch Feroc und puls200 schon angeschnitten haben, muss man auch im Team miteinander kommunizieren können etc. . Der Freak, der zwar genial programmiert und 20 Sprachen drauf hat, ist in der heutigen Zeit wirklich nicht mehr gefragt. Es sei denn, er ist zusätzlich noch im Stande, vernünftig und konstruktiv an einer Diskussion teilzunehmen.
Übrigens ist es auch leichter, mit solchen Kollegen mal ein Bier trinken zu gehen und dabei nicht über irgendwelche Parameter zu diskutieren, sondern vielleicht mal die Deutsche Meisterschaft vorherzusagen, und dies trägt zu einem guten Kollegenverhältnis und somit auch zu einem guten Arbeitsklima bei (IMHO)... ;-)

Lernfähigkeit
Man wird kaum immer die gleiche Stelle während seiner ganzen beruflichen Laufbahn haben. Leute, die nur mit Compiler XY, dem Editor Z etc. umgehen können und sich nicht anpassen können an äussere Gegebenheiten werden es sehr schwer haben. Man muss flexibel und lernfähig sein.

Dies zwei Sachen, die mir zusätzlich eingefallen sind. Ansonsten haben meine Vorredner schon vieles erwähnt, dem ich uneingeschränkt zustimme!
16.04.2012
Eiger 1,9k 2 9
5
Ein guter Coder ist alles das, was die Vorredner gesagt haben.

Ein guter Programmierer ist m.E. ein Softwareingenieur, der den gesamten Produktlebenszyklus überblickt, so gut das geht. Der Produktlebenszyklus fängt mit der Anforderung an, nicht mit der technischen Spezifikation. Und er endet entgegen landläufiger Meinung nicht mit dem Deployment, sondern erst, wenn das Produkt deinstalliert oder durch Upgrade rausgewachsen ist. In größeren Läden mit mehr Arbeitsteilung kommen die Produktmanager und wollen die Entwickler vom Kunden fernhalten. Den Support machen zu Unrecht belächelte oder bedauerte Leute, die eigentlich eine Schlüsselfunktion inne haben. Verkannt wie Erzieher_i_nnen, Adm_i_ns und Sekretär_i_nnen ... Wenn ich den Produktlebenszyklus aber nicht selbst überblicken kann, dann muss die Kommunikation mit Produktmanagern, Testern, Benutzerschnittstellendesignern, Supportern usw. auf Augenhöhe stattfinden und stimmen. Und es muss mir bewusst sein, dass ich bereits die primäre Kundenanforderung und die Rückmeldungen zur Benutzerschnittstelle gefiltert übermittelt bekomme.
17.04.2012
mupan 575 8
2
Mupan, diesen Punkt finde ich super wichtig! Ich habe mal in einer Firma gearbeitet, wo jede/r gegen jede/n gearbeitet hat und sowohl die Entwicklerkollegen, als auch alle anderen in der Firma mehr als Konkurrenz denn als Team gesehen wurden. Grauenhaft! So haben auch sehr gute Entwickler nur ein mäßiges Produkt hinbekommen, mal ganz abgesehen vom Betriebsklima.
KN 17.04.2012
Du kannst davon ausgehen, dass es auch eher mäßige Erfahrungen sind, die mich dazu gebraucht haben, das hier hinzuschreiben ...
mupan 19.04.2012
Um so mehr freut mich deine Zustimmung.
mupan 20.04.2012
5
Zu dem Thema kann ich ein super Buch empfehlen, denn ein guter Programmier ist ein pragmatischer Programmierer:

Der pragmatische Programmier
http://www.amazon.de/Der-Pragmatische-Programmierer-David-Thomas/dp/3446223096/ref=sr_1_1?ie=UTF8&qid=1334912893&sr=8-1

Eines der besten Bücher die ich je lesen durfte ;)
20.04.2012
pistenprinz 121 3
2
@pistenprinz: recht hast Du; das pragmatic-... Zeugs sollte jeder gelesen haben.
Deinen Literaturvorschlag muss ich zwar erst noch beherzigen, aber in Hunt - pragmatic thinking & learning wird ein Dreyfus Modell beschrieben:
zu jedem Skill kann man die Levels
1. "Neuling"
2. "fortgeschrittener Anfänger"
3. "Kompetenz"
4. "Gewandtheit"
5. "Experte"
erreichen. Es wäre m.E. wünschenswert, in jedem Skill (Skript, OO, Configs, Continious Integration, UML, SQL, XML) Experten Level zu erreichen; in o.g. Buch wird es mit der Fähigkeit zu abstrahieren; etwas leicht aussehen zu lassen; über einen reichen "nicht erwähnenswerten" Wissensschatz über Handwerk und Technik zu verfügen assoziiert. Aber solange wir uns noch von Nummer 5, Toastern und Terminatoren unterscheiden, werden wir damit leben müssen, Defizite aufzuweisen.
23.04.2012
johorst 51 2
1
HTML 3.2 - das braucht man einfach :)
johorst 23.04.2012
1
In die ähnliche Richtung wie der Pragmatische geht der Productive Programmer, schon etwas älteres Buch, aber trotzdem oder gerade deshalb sehr lesenswert:

Karlsruher Virtueller Katalog (kvk.uni-karlsruhe.de): Anfrage "productive programmer" in Bibliotheken und 2nd-Hand-Buchhandel
25.04.2012
mupan 575 8
0
Nicht nur dieser Seite sollte freundliche Beachtung geschenkt werden:

http://www.clean-code-developer.de/
12.05.2012
Wolfgang R. 61 3
0
Gute Programmierer interessieren sich meistens brennend für das Thema Programmierung und die neuesten Technologien.

Viele der richtig guten Programmierer betreiben oftmals auch einen Blog in dem sie über die neuesten Technologie-Themen schreiben.

Zudem findet man gute Entwickler meistens auch auf Konferenzen und Events wieder.

Was natürlich auch wichtig ist, ist das man als Programmierer funktionierenden Code abliefern kann. Viele Programmierer schreiben unwartbaren Code mit Bugs die man noch Wochen nach der Erstellung ausbessern muss.

Wir haben auch was zum Thema geschrieben: http://www.yuhiro.de/wie-sie-sehr-gute-programmierer-finden/
Da es für uns auch wichtig ist, immer die besten Programmierer zu finden. Leider sind die guten meistens schon in Arbeitsverhältnissen untergebracht...

Gute Programmierer werden meistens auch schon während des Studiums an die Industrie weiterempfohlen.
22.02.2014

Stelle deine Frage-Frage jetzt!