Woran erkennt man, ob man zum Entwickler geeignet ist?

JavaTalksToMe

Mitglied
Schönen guten Tag,

ich habe vor 3 Jahren privat angefangen mir selbst programmieren zu lernen. In dieser Zeit, habe ich allerlei Programme erstellt. Angefangen von größeren, bis hin zu kleineren. Dabei kam ich mit

  • Java(Spring)
  • C#
  • PHP
  • HTML und CSS
  • SQL
in Berührung.

In letzter Zeit keimt aber das Verlangen in mir auf, zu erfahren, wo ich mit meiner Leistung stehe. Ich bin ein Mensch, der in dem was er tut, gut sein will. Das bedeutet, ich habe eine hohe Erwartungshaltung an mich selbst. Der Programmiersektor ist ein breit gefächerter Bereich und mir ist bewusst, dass man unmöglich sagen kann, wo genau man steht.

Ich kann nur sagen, dass ich Spaß mitbringe und bin sehr gerne auf der Suche nach Fehler im Quellcode. Aber wie wir alle wissen, reicht das unter Umständen nicht aus.

Woran erkennt man einen guten Programmierer? Und vor allem: Woran erkenne ich, ob ich das Zeug dazu habe?

Ich habe mich zu dem Thema intensiv befasst. Immer wieder lese ich darüber, dass das Erkennen von Problemen und Algorithmen zur Lösung zu erschaffen einen guten Programmierer ausmachen.

Ich bin auch sehr Selbstkritisch. Manchmal muss man sich selbst sagen können: Lass es lieber sein. Das ist nicht dein Weg. Dieser Umstand gepaart mit meiner hohen Erwartungshaltung an mich selbst, ist Gift. Gift für meinen Geist. Denn ich stehe mir damit selbst im Weg.

Ich habe auch das Gefühl von Programmierbereich zu Programmierbereich zu pendeln. Dabei bleibt das Gefühl zurück, etwas angefangen zu haben, aber nicht richtig gelernt zu haben.

Vielleicht kann mir ein erfahrener Programmierer etwas zu dem Thema sagen? Über mehrere und fundierte Antworten wäre ich sehr dankbar.
 

Barista

Top Contributor
Ich kann nur sagen, dass ich Spaß mitbringe und bin sehr gerne auf der Suche nach Fehler im Quellcode.

Damit hast Du bereits eine sehr gute Voraussetzung.

Ich habe auch das Gefühl von Programmierbereich zu Programmierbereich zu pendeln. Dabei bleibt das Gefühl zurück, etwas angefangen zu haben, aber nicht richtig gelernt zu haben.

Man spricht von T-shaped Skills, also nicht nur spezielle Kenntnisse.

Zu tiefes Interesse an einem Thema ist oft kontraproduktiv, das wollen die Arbeitgeber nicht, sondern dass man irgendein gerade aktuelles JavaScript-/Python- usw. Framework irgendwie ins Projekt reinfummelt.

Dabei bleibt das Gefühl zurück, etwas angefangen zu haben, aber nicht richtig gelernt zu haben.

Wie ich schrieb, so arbeitet man heute.

Hauptsache ist, es macht Dir Spass. Wenn es Spass macht, ist man auch gut.
 

MoxxiManagarm

Top Contributor
Ich kann nur sagen, dass ich Spaß mitbringe
Du bist geeignet. Ehrlich, einer der wichtigsten Aspekte ist Lust sich mit Problemen zu beschäftigen und Herausforderungen zu stellen. 3 Jahre sind echt nicht viel in diesem Umfeld, ich finde du hast für diese Zeit schon extrem viel gelernt. Natürlich musst du Probleme lösen und Algorithmen können, aber solange du nicht jede 2. Aufgabe links liegen lässt weil du dich der Herausforderung nicht stellen willst ist alles gut. Ausgelernt hat man nie in diesem Bereich, ich lerne bis heute täglich dazu und bin schon mehr oder weniger 12 Jahre unterwegs.

Ich habe auch das Gefühl von Programmierbereich zu Programmierbereich zu pendeln. Dabei bleibt das Gefühl zurück, etwas angefangen zu haben, aber nicht richtig gelernt zu haben.
Ist doch nichts Schlimmes, es gibt Breitwurzler und es gibt Tiefwurzler. Du bist halt eher ein Breitwurzler. Vielleicht findest du irgendwann etwas wo du noch tiefer einsteigen magst.
 

LimDul

Top Contributor
Uff, das ist eine sehr allgemein gefasste Frage. Ich versuche es mal aus meiner Sichtweise.

* Man sollte grundsätzlich Spaß an der Softwareentwicklung haben. Ich bin aktuell sogar in der Lage, dass ich sagen kann, dass mir mein Job und das aktuelle Projekt viel Spaß macht und ich gerne zur Arbeit gehe (gut dank Corona ist das nur Bett => Schreibtisch) und ich mich freue auf die Tätigkeiten. Das halt ich aber für essentiell, das man Spaß/Begeisterung an der Sache hat, auch wenn es immer wieder mal Dinge gibt, die keinen Spaß machen etc.
* Das Große Ganze sehen. Das "Big Picture". Ich sehe - ganz platt - so ein paar Evolutionsstufen, wenn man Java Programmieren lernt:
** Ich packe alles in die Main Methode
** Ich mache noch ein paar weitere static Methoden
** Ich fange an weitere Klassen zu definieren
** Ich kapsel Klassen ordentlich
** Ich strukturiere in Packages
** Ich strukturiere in Projekte
etc.
Und gute Software Entwickler haben diese gesamt Struktur immer im Blick, auch wenn sie an einer tiefen Ebene arbeiten. Und das halte ich für essentiell. Nicht das tiefe Wissen wie Spring intern tickt und was genau die Annotation X im Gegensatz zu Y macht. Das sind Dinge, die kann man bei Bedarf googlen odre nachlesen. Aber das Gefühl dafür, ob die Gesamtstruktur von dem was man bau gut ist und trägt - das kann man eben nicht mal eben nachlesen, das muss sich entwicklen.

Ich habe auch das Gefühl von Programmierbereich zu Programmierbereich zu pendeln. Dabei bleibt das Gefühl zurück, etwas angefangen zu haben, aber nicht richtig gelernt zu haben.
Deswegen finde ich das gar nicht schlimm. Je mehr Überblick man hat, um so mehr kann man vergleichen und hat einen Pool aus Tools aus denen man schöpfen kann. Nicht umsonst heißt, Wissen ist Wissen wo es steht. Wichtig ist so viel zu wissen, dass man bei Bedarf fundiert und zielorientiert nachschlagen kann. Ich wusste z.B. bis gestern nicht, wie man mit Spring Boot eine Rest-API konsumiert. Trotzdem stufe ich mich als guten Entwickler ein. Aber ich wusste:
* Das das vom Konzept von Spring Boot her sehr einfach sein muss
* Ich weiß was ich an Datenstrukturen für den Aufruf einer Rest API grundsätzlich brauche
Der Rest war 10 Minuten googlen und adaptieren.

Meine persönliche Meinung zu dir aus den Zeilen, die du geschrieben hast. Mit der Einstellung und dem was du dir schon angeschaut hast, bist du definitiv kein schlechter Entwickler (es sei denn du sagst bei all den Themen "Hab ich nicht verstanden" - aber danach klingt dein Abschnitt nicht).

Es ist ganz normal das solche Selbstzweifel kommen. Ich musste auf meinem aktuellen Projekt auch lernen, dass ich da jetzt die Rolle eines Chef-Entwicklers/Architekten inne habe und wenn ich sage "Wir bauen es so", dann wird es auch so gebaut. Da frag ich mich auch öfters, ob ich die Kompetenz habe, die mir da zugeschrieben wird. Aber diese Einstellung ist meines Erachtens viel gesünder, als wenn jemand von sich behauptet alles zu können und die Weisheit mit Löffeln gegessen zu haben und nicht kritikfähig ist - daher sehe ich die Anlagen, die du beschreibst als die besseren an.
 

sascha-sphw

Top Contributor
Ich kann Dich, wie meine Vorredner, auch nur bestärken weiter zu machen. Ich finde ebenfalls das Spaß einer, wenn nicht sogar, der wichtigste Punkt ist um ein guter Entwicker zu werden. Natürlich hat jeder seine Grenzen, aber ohne Spaß sind die viel schneller erreicht.

Mein Werdegang für Dich als Motivator weiter zu machen: Hoffe es Hilft!

Ich selbst habe als Elektroniker angefangen und bin dann über ein paar Umwege zur Programmierung gekommen. Durch Bücher habe ich mir dann alles angelesen, was ich für meine Projekte benötigt habe, alles eigentlich als Hobby. Irgendwann hat mir das dann aber nicht mehr gereicht, ich wollte mehr, ich wollte das beruflich machen. Ich hatte damals auch keinen, an dem ich meine Fähigkeiten hätte messen können. Als ich dann, beim bewerben auch noch bitter realisieren musste, das einem keiner glaubt, wenn man das nicht auf Papier hat, wurde ich auch kurz skeptisch. Ich habe dann aber kurzerhand einfach eine Firma (nebenbei) aufgemacht und als "billiger Jakob" (allerdings aus Unwissenheit), meine Dienste verscherbelt (würde ich so aber nicht mehr empfehlen). Nach einiger Zeit und extremer Anstrengung, kamen dadurch dann doch ein paar Referenzen zusammen mit deren Hilfe ich dann einen Developer posten in einer Agentur ergattern konnte (allerdings war hier auch ein Probearbeitstag nötig um gänzlich zu überzeugen). Ich habe mich nebenbei dann weiterhin mit unterschiedlichen Programmiersprachen und Konzepten befasst. Bis ich dann ein paar Jahre später in einem richtigen Software Unternehmen angefangen hatte, hatte ich, immer noch niemandem mit dem ich mich hätte messen können, da ich immer der einzige Entwickler war. Erst als ich in diesem Unternehmen anfing und ich nach dem Einstellungsgespräch direkt als Senior eingestuft wurde, wusste ich, so schlecht kann ich ja dann nicht sein.

Auf dem ganzen Weg bis einschließlich heute hat mich das Gefühl "noch nicht genug zu wissen" nicht verlassen, Probleme lösen geht jetzt aber wesentlich schneller. ;-)
 

MoxxiManagarm

Top Contributor
Als ich dann, beim bewerben auch noch bitter realisieren musste, das einem keiner glaubt, wenn man das nicht auf Papier hat, wurde ich auch kurz skeptisch
Das stimmt nur zum Teil. Ich habe zwar ähnliche Erfahrungen gemacht, aber auch ganz andere. Ich glaube bei Java ist es wirklich so, dass man es auf dem Papier braucht. Im Bereich Webentwicklung sieht das schon wieder anders aus, nichts desto trotz hilft es zumindest ein Hobbyprojekt vorzeigen zu können.
 

M.L.

Top Contributor
das Erkennen von Problemen und Algorithmen zur Lösung zu erschaffen einen guten Programmierer ausmachen.
Im Grund sollte klar sein, dass ein elektronisches Gerät (und dazu zählt ein Computer idR) bestimmbare Reaktionen auf Stromflüsse zeigen soll. Hierbei dient die Mathematik mit ihren Werkzeugen um die Stromflüsse (bzw. deren Auswirkung auf z.B. die Darstellung eines 3D-Objekts am Bildschirm) modellieren und berechnen zu können. Zum Thema guter (besserer) Programmierer/Softwareentwickler könnte dieses Video auch ganz interessant sein:
 

White_Fox

Top Contributor
Ehrlich gesagt, für einen so richtig guten Entwickler fehlt mir bei dir drei wichtige Eigenschaften:

  1. Faulheit. Ein so richtig guter Entwickler muß ein stockfauler Hund sein. Wenn du dreimal das gleiche kopieren und einfügen mußt, muß dir das schon zuviel Arbeit sein, das muß dir wirklich hart auf die Eier gehen. Denn dann entsteht auch (wenn man Grips hat) der Drang, solche Arbeit von seinem Werkzeug, z.B. seiner IDE, erledigen zu lassen. Ein guter Entwickler darf das nicht sehen können, wenn andere Kollegen händisch einen Variablennamen umändern anstatt das die IDE refakturieren zu lassen, ohne das ihm die Tränen in die Augen steigen. Diese Entwickler beherrschen dann auch ihre Werkzeuge. Und legen Wert auf gutes Werkzeug.
  2. Vergesslichkeit. Ein schlechte Entwickler hat alles im Kopf, vergißt deshalb etwas Wichtiges dann wenn er es braucht, und schaut sich nach einem halben Jahr seine Arbeit durch um etwas in ein Projekt zu übernehmen und flucht über den verdammten Idioten, der diesen unverständlichen und chaotischen Scheiß zusammengeschissen hat - und bemerkt dann, daß das sein eigenes Werk war.
    Ein gute Entwickler dokumentiert sein Arbeit vorher, macht sich auch mal eine Skizze wenn er eine Lösung für ein Problem ausbrütet, und gestaltet seine Arbeit insgesamt so, daß möglichst jeder Idiot sie sofort versteht.
  3. Struktur. Ein schlechter Entwickler nimmt die erstbeste Idee, die ihm einfällt, krempelt die Ärmel hoch und legt los. Ein guter Entwickler überlegt sich, welche von mehreren Möglichkeiten er hat, überlegt was wichtig ist und wägt darüber ab, welche Lösung ihm am ehesten zusagt.
Das ist, wie ein guter Entwickler meiner Meinung nach arbeiten sollte. Aber:
Ich bin ein Mensch, der in dem was er tut, gut sein will.
[..]
...dass ich Spaß mitbringe und bin sehr gerne auf der Suche nach Fehler im Quellcode
Ich sehe das auch wie die anderen. Meiner Meinung nach bringst du damit die wichtigsten Vorraussetzungen bereits mit. Die drei Punkte oben kann man sich gut antrainieren und angewöhnen, aber diese zweiten beiden Dinge sind Charakter- und Talentfragen. Das kann man nicht erlernen und erwirbt man auch nicht im Studium.

Ach ja, Studium: Ich weiß nicht, wie deine Bildungsvorraussetzungen sind, ob du noch zur Schule gehst oder schon länger irgendwo arbeitest. Aber wenn du Spaß an der Sache hast und gut sein willst würde ich dir definitiv raten, dir Vorlesungen zu dem Thema anzuhören. Wenn ein Vollzeitstudium oder berufslbegleitend nicht drin ist - warum auch immer - dann setz dich halt als Gasthörer in ein paar interessante Vorlesungen. Vielleicht kannst du dir das auch irgendwie bescheinigen lassen, dann kannst du auch Papier vorlegen - muß ja nicht immer ein komplettes Abschlußzeugnis sein.
Übrigens: ein schöner Nebenbenefit als Student ist, das man in der Bibliothek wunderbar viel Fachliteratur findet und einfach mitnehmen kann. Es sind leider unglaublich wenige, die davon Gebrauch machen, aber so ist das halt. Die Hochschulen sind unglaublich voll von Studenten, die in ihrem Leben besser etwas anderes gemacht hätten - besser für ihre späteren Arbeitgeber und besser für sie selbst. Ich denke, ein Studium ist etwas für genau die Leute, die das Fach interessiert. Deiner Selbstbeschreibung nach scheinst du mir da richtig zu sein.
 

Kreuzberg0

Mitglied
a = b

solange du ohne zu überlegen weißt, dass hier a der Inhalt von b zugewiesen wird (und nicht umgekehrt), bist du als Programmierer geeignet. Viele scheitern schon bei diesem grundlegenden Beispiel mit "weiß nicht" oder "die Zuweisung erfolgt an b", etc. ... nicht besonders geistreich.
 
K

kneitzel

Gast
Aber genügend, in denen das eine ist. In den Übrigen ist es keine Zuweisung von links nach rechts. Müsste ein selbsternannter Moderator das nicht eigentlich wissen?
Sorry, aber du gibst zu, dass deine Aussage falsch ist, aber machst dann dennoch andere blöd an von wegen selbsternannten Moderator, was halt auch Quatsch ist, denn er wird das Forum nicht gehackt haben um an diese Rechte zu kommen.
Somit hat ihn jemand anderes ernannt...

Und ein Programmierer sollte auch gewisses abstraktes Denken haben, etwas von Logik verstehen, in einem Team arbeiten können, Clean Code Regeln befolgen können, ....

Also mir fallen immer noch viele Dinge ein, die ich erwarten würde ....
 
K

kneitzel

Gast
Was soll denn daran falsch sein?

Also noch ein Account? Ist Kreuzberg0 jetzt auch schon gesperrt?

Die erste Aussage von Dir ist falsch, denn
a) a = b ist nicht immer eine Zuweisung, daher macht eben genau diese Erkenntnis niemanden geeignet, ein Programmierer zu sein. Dass diese Aussage falsch ist, hat mrBrown erwähnt und das wurde von Dir auch aberkannt. Die Tatsache, dass dann a=b keine Zuweisung von a an b ist, ist dabei aber bezüglich Wahrheitsgehalt der ersten Aussage irrelevant. Denn wenn a=b nicht immer eine Zuweisung ist, dann macht es keinen Sinn, darin generell eine Zuweisung zu erkennen.
b) die erste Aussage in meinen Augen Quatsch, denn es bedarf sehr wohl deutlich mehr.
 

Maliko

Bekanntes Mitglied
Gibt einige Sprachen, in denen das keine Zuweisung ist ;)

Das ist tatsächlich ein wichtiger Einwand. In Delphi z.B. ist a := b eine Zuweisung. a = b ist in Delphi im Zusammenhang mit einer If-Abfrage ein Vergleich (wer auch immer sich den schwachsinn ausgedacht hat). Aber allgemein würde ich sagen, für den Job des Programmierers ist jeder geeignet der zum einen Spaß an der Sache hat, was aber meiner Meinung nach noch erheblich wichtiger ist, ist eine gewisse Grundaffinität für Sprachen. Jemand dem es nicht schwer fällt eine neue Sprache zu lernen, wird auch wenig Probleme haben sich eine neue Programmiersprache anzueignen.

Alles andere kommt mit der Erfahrung. Und dazu haben meine Vorredner schon genug geschrieben.
 

White_Fox

Top Contributor
In Delphi z.B. ist a := b eine Zuweisung. a = b ist in Delphi im Zusammenhang mit einer If-Abfrage ein Vergleich (wer auch immer sich den schwachsinn ausgedacht hat).
In VBA ist das noch viel geiler: Da kann a = b sowohl ein Vergleich als auch eine Zuweisung sein. :cool:


was aber meiner Meinung nach noch erheblich wichtiger ist, ist eine gewisse Grundaffinität für Sprachen. Jemand dem es nicht schwer fällt eine neue Sprache zu lernen, wird auch wenig Probleme haben sich eine neue Programmiersprache anzueignen.
Nein, Einspruch!
Ich weiß nicht ob ich der lebende Gegenbeweis oder eine Ausnahme bin. Auch wenn ich freiwillig Russisch lerne, lerne ich eine Programmiersprache - je nach Sprache - passabel schnell.
Eine Sprechsprache zu lernen fällt mir dagegen wirklich schwer. War schon immer so, als Schüler mußte ich jedes Jahr hart um meine Versetzung kämpfen, denn sowohl Englisch als auch Französisch waren Hauptfächer, und ich konnte mir immer nur in einem der beiden Fächer eine Fünf leisten.
 

LimDul

Top Contributor
Jemand dem es nicht schwer fällt eine neue Sprache zu lernen, wird auch wenig Probleme haben sich eine neue Programmiersprache anzueignen.
Dem würde ich widersprechen, Sprachen mag ich nicht. Programmiersprachen sind eben keine Sprachen. Programmiersprachen folgen logischen Regeln, während natürlich Sprachen dies nicht tun (Stichwort unregelmäßige Verben).
 

Meniskusschaden

Top Contributor
In Delphi z.B. ist a := b eine Zuweisung. a = b ist in Delphi im Zusammenhang mit einer If-Abfrage ein Vergleich (wer auch immer sich den schwachsinn ausgedacht hat).
Soweit ich weiß wurde das erstmals mit ALGOL eingeführt. Zumindest ist mir keine frühere Programmiersprache bekannt, in der das so gehandhabt wurde. Ich finde das deutlich logischer und besser lesbar, als Java und Konsorten es umgesetzt haben. Dafür ist es vielleicht etwas schwieriger zu tippen.
 

Meniskusschaden

Top Contributor
Ausnahme zumindest nicht, ich kenne niemanden, der sowohl Fremdsprachen als auch Programmiersprachen mag.
Ich mag beides, allerdings beherrsche ich leider keines.:( Als Schüler haben Fremdsprechen mich überhaupt nicht interessiert. Wenn ich mich jetzt mal damit beschäftige (was nur sehr selten und mit wenig Talent vorkommt) interessiert mich vor allem die Grammatik. Die meisten Menschen kann man damit jagen, deshalb liegt es vermutlich am Informatik-Faible, das das Interesse am Abstrakten fördern dürfte.
 

Maliko

Bekanntes Mitglied

Kann ich absolut bestätigen. Ich selbst bin ein miserabler Mathematiker, habe dafür aber ein Händchen für das erlernen von Sprachen. Auf mich trifft die Studie auf jedem Fall zu. Ich denke mal dass die Aussage ob man ein guter Mathematiker sein muss oder gut mit Sprachen ist um ein guter Programmierer zu sein, liegt irgendwo dazwischen. Sowas ist ja auch immer ein sehr persönliches Empfinden.
 

Neue Themen


Oben