Welche Sprache sollte ich nahezu perfekt beherrschen?





  • volkard schrieb:

    Kai9595 schrieb:

    Bei uns an der FH werden erst funktionale Programmierung und Java, gefolgt von C und bisschen Assembler und natürlich noch C++ gelehrt. Von allem ein bisschen was. Irgendwie glaube ich kaum, dass mich das auf meinen künftigen Beruf (Softwareentwickler) vorbereitet.

    Ähm. Falsche Sichtweise!

    Programmieren muss man selber lernen weit über das hinaus, was die Hochschule lehrt.

    Da muss ich volkard zustimmen.

    Ich sehe das auch so: Wer gut programmieren lernen will, der muss es selbst lernen. Ja, es gibt Kurse, ja es gibt (ein paar) Arbeitgeber die einem solche Kurse finanzieren. Aber auch mit diesen Kursen lernt man meist nicht wirklich gut programmieren.
    Wenn man ganz viel Glück hat erwischt man einen Arbeitgeber mit nem Mentoring-Programm und wirklich guten Mentoren.
    Aber das alles bringt einen nur so weit - bestimmte Fehler muss man einfach selbst gemacht haben.
    Je nachdem wie man im Kopf verdrahtet ist mehr oder weniger -- bei mir isses leider wohl eher mehr 🙂

    D.h. wenn du schon gut programmieren können willst bevor du zu arbeiten anfängst (was vermutlich deine Chancen auf Einstellung und ne schnelle Gehaltserhöhung deutlich verbessert), dann musst du deine Freizeit opfern. Und mit Freizeit ist das gemeint was neben dem was du so schon für's Studium aufwenden musst noch übrig bleibt.
    Bzw. wenn du dann schon arbeitest, und wirklich gut werden willst, dann auch das was neben dem Job übrig bleibt. Zumindest die ersten paar Jahre.

    Natürlich kann man auch ohne viel Zeit zu opfern als Programmierer arbeiten. Nur auf die wirklich guten Leute die ich kenne trifft oben beschriebenes zu. Die haben das alle als Hobby empfunden bzw. einfach starkes privates Interesse daran. Und entsprechend viel Freizeit investiert.


  • Mod

    Kai9595 schrieb:

    Welche Sprache sollte ich nahezu perfekt beherrschen?

    Java && Assembler
    Assembler ist ein Bonbon, denn es gibt ja nur eine Handvoll Befehle beim ARM, deren Benutzung sich sehr schnell erarbeiten lassen.

    Der Sprachumfang und Bibliotheksumfang von C ist klein.
    Für C und Assembler ist ein (Hardware-)Entwicklungskit sehr dienlich.

    C++ und FP sind umfangreich, brauchen viel Zeit.

    Programmieren ist ein bisschen so wie Dauerlaufen. Am Anfang ist es erstmal egal, wo du lang läufst hauptsache du läufst.

    Auf dem Weg zum besseren Programmierer ist eine Fehlerprotokoll-Datei (oder Bug-Data-Base) sehr nützlich.
    (Wenn man z.B. mit einem Haskellinterpreter arbeitet, dann sollte die Fehlerprotokoll-Datei geöffnet sein, bevor der Interpreter gestartet wird.)

    (Eines der ersten Programme sollte ein Programm sein, welches den eigenen, aktuellen Code (Performance) nach den gelisteten Fehlern checkt und den entsprechenden Eintrag in der Fehlerliste ausgibt - der nächste Schritt mit der Fehlerdatei ist, diese in den Buildprozess zu integrieren. So hast du dann immer auch eigene Fehlermeldungen + Performanceüberwachung (plus Tagesaktuelle Kommentare wie "Alles Char Coal hier oder was?" oder "nur 3 Fehler heute, Respekt!" oder "Nur 20 Fehler, geh mal besser schlafen!) oder "Fehlerrate-Monitoring Output: Status: 2 von 32 : (Bedenklich, Chaotisch) : Empfehlung : Weg vom Rechner", oder "0 Fehler: Flowtime, go")
    ( http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered
    http://www.joelonsoftware.com/articles/fog0000000332.html
    http://c2.com/cgi/wiki?FunnyThingsSeenInSourceCodeAndDocumentation )

    Für Motivation sehr dienlich, wenn man sich
    a) eine Liste, mit Wunschprogrammen erstellt, bzw. diese Liste immer mal wieder erweitert oder anpasst, + den Fortschritt o. ä. interpretiert, bewertet etc. also auch "Evaluation" betreibt.
    b) Unternehmen anschaut, bei denen man gerne arbeiten möchte. Problem: man weiß nicht immer vorher, wo es Spaß macht. Also: Praktika, Ferienjobs, Unijobs...



  • nachtfeuer schrieb:

    Auf dem Weg zum besseren Programmierer ist eine Fehlerprotokoll-Datei (oder Bug-Data-Base) sehr nützlich.
    (Wenn man z.B. mit einem Haskellinterpreter arbeitet, dann sollte die Fehlerprotokoll-Datei geöffnet sein, bevor der Interpreter gestartet wird.)

    (Eines der ersten Programme sollte ein Programm sein, welches den eigenen, aktuellen Code (Performance) nach den gelisteten Fehlern checkt und den entsprechenden Eintrag in der Fehlerliste ausgibt - der nächste Schritt mit der Fehlerdatei ist, diese in den Buildprozess zu integrieren. So hast du dann immer auch eigene Fehlermeldungen + Performanceüberwachung (plus Tagesaktuelle Kommentare wie "Alles Char Coal hier oder was?" oder "nur 3 Fehler heute, Respekt!" oder "Nur 20 Fehler, geh mal besser schlafen!) oder "Fehlerrate-Monitoring Output: Status: 2 von 32 : (Bedenklich, Chaotisch) : Empfehlung : Weg vom Rechner", oder "0 Fehler: Flowtime, go")

    Never! Das Rezept klappt nur für Dich und ist für Menschen ungeeignet.



  • @volkard
    Wieso hast du deinen ganzen Beitrag wieder weggelöscht? 😕



  • hustbaer schrieb:

    @volkard
    Wieso hast du deinen ganzen Beitrag wieder weggelöscht? 😕

    War irgendwie zu viel der Beratung für dieses Forum.

    Und Kai hatte reichlich Zeit, ihn zu lesen.



  • volkard schrieb:

    hustbaer schrieb:

    @volkard
    Wieso hast du deinen ganzen Beitrag wieder weggelöscht? 😕

    War irgendwie zu viel der Beratung für dieses Forum.

    Versteh' ich nicht. Wieso zu viel?



  • @hustbaer: Gefühlt die Hälfte von Volkards kryptischem Nonsens ist tatsächlich nur Nonsens. Vielleicht eine Art Experiment?

    Irgendwie glaube ich kaum, dass mich das auf meinen künftigen Beruf (Softwareentwickler) vorbereitet.

    Praktisch das wichtigste als Software-Entwickler ist IMO, zügig Lernen zu können. Wenn deine Hochschule es geschafft hat, dir das beizubringen, hat sie ihr primäres Ziel erfüllt. C++ ist ein Brocken, aber viele Sprachen sind relativ schnell erlernbar (e.g. ML, Java, …), was bedeutet, dass, sobald du die unterliegenden Prinzipien der Programmierung verinnerlicht hast, dir potenziell viele Sprachen zu Füßen liegen. Man braucht dann nur noch ein paar Dutzend Stunden für Formalitäten (Syntax, Standardbibliothek, Idiome, etc.) und man kann es schon halbwegs einsetzen. Noch ein paar hundert Stunden mehr und man geht richtig ab. (Zeit hängt natürlich von der Sprache ab!).



  • hustbaer schrieb:

    Versteh' ich nicht. Wieso zu viel?

    Siehe Arcoths infantilen Einwurf.



  • ----



  • Kai9595 schrieb:

    Reicht es aus sich auf eine Sprache zu konzentrieren?

    Wahrscheinlich eher nicht ... wobei man das auch nicht so pauschal sagen kann. Aber nur eine einzige Programmiersprache zu können ist relativ wenig für einen Softwareentwickler. Auch wenn man hinterher nur mit einer Sprache arbeitet, sollte man abundzu mal über den Tellerrand gucken. Für Adroid-Programmierung könnte man z.B. auch Kotlin als "hübscheres Java" ausprobieren -- einfach mal so.

    Kai9595 schrieb:

    Wie hält ihr euch in mehreren Sprachen fit?

    Hauptsächlich, indem ich sie benutze. Das sind aktuell C++, Matlab/Octave und Rust. In Java habe ich auch mal eine längere Zeit programmiert. Aber das ist für den Anwendungsbereich, in dem ich mich jetzt bewege, eher uninteressant.



  • eine Sprache vernünftig lernen, alle anderen kann man sich dann i.d.R. recht flott beibringen.
    Nimm wenn möglich eine Sprache, die auch OOP (objektorientierte Programmierung) gut unterstützt*, da viele Frameworks davon stark Gebrauch machen und man sich eben leichter tut, wenn man das mal verstanden hat.

    Je nachdem, was man machen will, sind unterschiedliche Sprachen sinnvoll. C++ zu lernen schadet sicher nicht (total unerwartete Antwort in diesem Forum, oder?), da man dann leicht auf einfachere Sprachen (Python, Java, ...) ohne zu viel Aufwand umsteigen kann.

    * ja, man kann auch in C OOP programmieren, aber ich denke der Lernerfolg stellt sich bei Java oder C++ eher ein


Anmelden zum Antworten