Mein Problem als Anwendungsentwickler?

6 Antworten

Guten Morgen, Someone266!

Erst einmal "Glückwunsch".

Ich kann Dich teilweise verstehen und kenne ebenfalls die Grundproblematik zwischen dem Gelernten nebst gewohnter Umgebung und fremden Projekten nebst neuer Dinge.

Du musst auch nicht alles können und wissen. Innerhalb einer Ausbildung lernt man die Basics und zumeist auch, wie man Probleme angeht und diese löst. Sozusagen die Grundlagen und Werkzeugarten.

Ich bin der Auffassung, dass ein FI-AE als auch ein studierter Informatiker schon die Basis beherrschen sollte. Auch während der Ausbildung lernt man doch, gewisse Dinge auf eine bestimmte Art und Weise anzugehen, Problemlösungsstrategien zu entwickeln und Neues dazuzulernen. Und bei vielen Firmen ist es doch so, dass man dort ins kalte Wasser geworfen wird. In der Ausbildung/beim Studium lernt man zumeist die Grundlagen. Spezialisiert und häufig einseitig läuft es dann bei den einzelnen Firmen ab. Ich denke auch, dass man schon erwarten kann, dass sich Menschen in allen Berufen weiterentwickeln, dazulernen und auch gewisse Dinge neu lernen. Zumal die von Dir angesprochenen Dinge ja nicht fachfremd sind.

Ist der Beruf nichts für Dich?

Man erkennt doch anhand des Codes, was dieser tut. Auch unterschiedliche Varianten sollte man doch erkennen können. Je nach Code gibt es eben Vor- und Nachteile. Aber, wenn man dies nicht sieht, bekommt man dies doch mit. Notfalls durch die Auseinandersetzung mit der Thematik und dem Interesse. Insofern würde ich da nicht pauschal die Schuld bei der Ausbildung oder den Inhalten suchen. Die AUsbildung geht doch 3,5 Jahre. Während dieser Phase hätte man doch mehrfach nachfragen oder sich selbst im Heimstudium dafür interessieren können, oder nicht? Zumindest denke ich so.

Siehst Du, Du hast doch auch Neues gelernt und die APP entwickelt.

Wie, Du verstehst den Code nicht? Man kann doch bestimmte Dinge ableiten. Zudem wird es doch sicherlich eine SDK nebst einschlägiger Beschreibung geben.

Ich programmiere auch sehr viele Dinge. Und bei allen Dingen gibt es hier und da eine SDK oder ich kann mich, wenn der Codeschnipsel nicht eindeutig ist, informieren. Man sollte schon wissen, was ein Code macht, um diesen eben zu optimieren oder bei Fehlern den Grund zu erkennen. Zumindest sehe ich das so und ist dies mein normaler Anspruch. Einfach irgendwas irgendwie machen, herausklatschen und dann hoffen?

Und im Internet hast Du dazu auch keine Beschreibung gefunden?

Hmm, das wundert mich schon sehr.

Ich sage nicht, dass Du schlecht bist. Ich kenne weder Dich noch Deine Arbeit. Allerdings wundern mich diverse Herangehensweisen schon sehr. Man muss ja auch einmal etwas lernen, sich weiterbilden, angehen, nachschauen, prüfen. Wenn ich irgendetwas schreibe, dann hat das schon Hand und Fuß. Irgendetwas einfach so umsetzen und keine Ahnung davon haben, kann auch gefährlich sein.

Zudem, wenn der Beruf Spaß macht, interessiert man sich doch dafür.

Ich kann mir nicht vorstellen, dass es zum Code keine SDK oder Beschreibung gibt.

Was Du letztendlich machst, musst DU für Dich entscheiden. Ich würde mein Mindset überdenken und gerade dann, wenn der Beruf Spaß macht, nachforschen, mich belesen und Interesse zeigen. Nur meine Meinung und wie ich das sehe bzw. umsetzen würde.

Ein ausgebildeter Mensch sollte schon diverse Dinge können. Neues eignet man sich an, schaut in der SDK nach oder forscht.

Es ist sogar leichtsinnig und fahrlässig, wenn man irgendetwas umsetzt und keine Ahnung hat. Was ist denn, wenn diese Fahrlässigkeit beim Kunden zu Problemen führt oder es ein Sicherheitsproblem gibt?

Woher ich das weiß:eigene Erfahrung

Ich habe den Eindruck, Du bekommst schon hin, was gefragt ist. Aber für Deine eigenen Ansprüche hättest Du eigentlich studieren müssen. Du könntest ja weiter Deinen Job machen und nebenher ein Fernstudium in Teilzeit beginnen. Dann würdest Du sicher die Grundlagen lernen, wie man über Software spricht, und was man da eigentlich macht.

ich wollte gerne wissen, was ich eurer Meinung nach tun muss, um ein richtig guter Programmierer zu werden.

Du musst Programme entwickeln und zum laufen bringen können, das kannst Du :)

Schau Dir einfach nochmal die Basics zu Deiner Sprache an und erkläre das einer imaginären Person. Nimm einzelne Code-Schnipsel und google so lange bis Du wirklich weißt was da passiert. Der Console log (oder wie auch immer das in Deiner Sprache heißt) kann Dir ggf. auch helfen. Auch ChatGPT kann Deinen Code in logische Bestandteile zerlegen und es Dir erklären. Wichtig: Anschließend musst Du es wieder der imaginären Person erklären. Das kann deprimierend sein, aber da musst Du durch.

Ich habe das Gefühl, dass mich das zu einem schlechten Programmierer macht, und ich wollte gerne wissen, was ich eurer Meinung nach tun muss, um ein richtig guter Programmierer zu werden.

Dein Problem ist nicht, ein schlechter Programmierer zu sein. Dein Problem ist, ein Programmierer zu sein. Das ist ein Beruf, den es so eigentlich gar nicht mehr gibt: das ist jemand, der eine sehr detaillierte Spezifikation fast schon mechanisch in Sourcecode übersetzt. Der Rest interessiert ihn nicht.

Heute spricht man von Softwareentwicklern, und denen wird viel mehr abverlangt - die sollten von der Anforderung bis zum Betrieb denken und arbeiten können.

Softwareentwickler sollten u.a. die Grundlagen der Informatik genug beherrschen, um diese dann in die jeweilige Entwicklung passend zu übersetzen. "Algorithmen und Datenstrukturen" ist so ein Grundlagenfach, das sitzen sollte. Sie müssen in den Techniken von Softwareentwurf versiert sein, gewisse Entwurfsmuster kennen und verstehen, wann sie geeignet sind. Etwa: was ist OOP, wann setzt man sie wofür wie ein, was sind Vor- und Nachteile? Neben klassischen Lehrbüchern gibt es hier ein paar bekannte Autoren, die sich damit beschäftigen, etwa Bob Martin. Man kann natürlich auch online vieles lernen, etwa bei Martin Fowler.

Und dann muss man auch akzeptieren, dass bestimmte Technologien wie Sprachen schon für sich eine große Breite und Tiefe haben. Auch wenn das viele nicht glauben wollen: es geht bei einer neuen Sprache nicht nur darum, Syntax zu lernen (oder einfach nur von ChatGPT die Lücken füllen zu lassen).

Du erwähntest, dass du Java gelernt hast, also nehmen wir das als Beispiel. Wieviel hast du denn wirklich gelernt? Das ist eine recht große Sprache mit einem recht großen Laufzeitsystem (JVM), da stecken unzählige Personenjahre von schlauen Leuten drin, und die Entwicklung geht ständig weiter. Einfach nur die Syntax zu lernen, kratzt nur ganz wenig an der Oberfläche. Da muss man sich halt auch regelmäßig weiterbilden und tiefer gehen. Man kann sich etwa in Bücher vertiefen (hier wäre für Java ein gutes Beispiel: The Well-Grounded Java Developer), Blogs von Entwicklern lesen, uvm.

Softwareentwicklung ist halt nicht nur ein Handwerk. Es ist auch ein Handwerk, aber eben nicht nur.

Kommentare, Kommentare, Kommentare...

Ein sauber Kommentierter Code (mit schön benannten Variablen) hilft dir und anderen zu verstehen was wo passiert.

Es gibt ja einen Unterschied zwischen "was macht das" das kann man oft sehen denn so kompliziert ist das oft nicht, und "warum macht es das" und das ist oft der Komplizierte Teil wenn man Seitenweise unkommentierten Code rum stehen hat der tausend dinge macht.

Spich der Unterschied zwischen "hier wird i hochgezählt" und "hier wird der Schritt-Zähler von Nach-X-Schritten-passiert-Event hochgezählt" was ja was ganz anderes ist als "hier wird Inventar-Inhalt bis Max-Inventarinhalt hochgezählt wenn neues Item in Inventar".

Und ordentliche Strukturen.

Bei uns wird viel mit historischem Code gearbeitet und es gibt programme die man jedes mal wieder neu verstehen lernen muss weil die so verwinkelt, mit so nichtssagenden Variablen und völlig ohne Kommentare programmiert sind.