Was muss ein guter Programmierer können?



  • Hallo Forum.

    Was muss/soll ein guter Programmierer Eurer Meinung nach können (Programmiersprachen, etc.)?



  • gute englisch kentnisse
    gutes mathematisches verständnis
    gutes logisches denkvermögen
    ausdauer



  • Eigentlich hätte ich mehr auf konkretere Antworten gehofft.
    z.B.: welche programmiersprachen (außer C++, Java), ...



  • Jover schrieb:

    konkretere Antworten

    schwer mööglich



  • Kommt immer darauf an, was du machen willst.
    Ich denke nicht, dass man so was verallgemeinern kann. 😉



  • es gibt gute Lisp programmierer die weder java noch c++ können
    es gibt gute C++ programmierer die weder basic noch ada können
    es gibt gute Ada programmierer die weder Cobol noch Fortran können
    ...

    beliebig erweiterbar

    wie soll man da sagen dass du eine bestimmte sprache können musst um gut zu sein?



  • Jover schrieb:

    Eigentlich hätte ich mehr auf konkretere Antworten gehofft.
    z.B.: welche programmiersprachen (außer C++, Java), ...

    Ich denke wenn man schonmal irgendeine etwas mächtigere programmiersprache gelernt hat (java, c++, ADA) wird man schnell in eine andere einsteigen können... (wies mit lisp oder Haskell weis ich net da hab ich "noch" kein erfahrung)



  • gute englisch kentnisse
    gutes mathematisches verständnis
    gutes logisches denkvermögen
    ausdauer

    Ich würde noch eine hohe Frustrationstoleranz hinzufügen... Im allgemeinen, was man sowieso könne sollte: sich möglichst schnell in neue Themangebiete einarbeiten zu können. Im allgemeinen läuft es heutzutage in (gaerade kleineneren) Firmen so, das man sich das meist selbst beibringen muß, da oft kein Geld (== Zeit) für Schulungen da ist.



  • Ich finde die ausdauer ist eine der wichtigsten Eigenschaften eine Programmieres.

    Zu oft bin ich an einem einfach problem herumgesessen, und hab es erst nach langwierigem analyseren gelöst.
    (ich bin zwar kein guter programmierer aber ich glaub das es machmal guten programmieren auch so gehen kann)



  • Gen.d.Pz.Tr.Seb schrieb:

    Ich finde die ausdauer ist eine der wichtigsten Eigenschaften eine Programmieres.

    nicht ausreichend. kenne ausdauernde leute, die nix hinkriegen. würde eher sagen, es ist wie liebigs gesetz des minimums beim pflanzenwachstum. jener faktor, der am geringsten verfügbar ist, begrenz das wachstum.



  • Ich denke, es ist von Vorteil verschiedene Paradigmen der Programmierung zu beherschen. So kann man sich relativ schnell in neue Sprachen einarbeiten. Wenn du beispielsweise OOP in Java wirklich beherscht ist der Schritt zu einer anderen objektorientierten Sprache relativ einfach, weil du keine grundsätzlich neuen Denkweisen lernen mußt.



  • Kaffee kochen 🙄

    Das mit den benötigten guten mathematischen Kentnissen zweifel ich mal an... die hab ich beim programmieren noch nie gebraucht.
    Ausser 3-Satz war da nix, obwohl das natürlich auch wieder davon abhängt WAS man macht...



  • gut fehler-suchen sollte man können (also debuggen)



  • dreaddy schrieb:

    Kaffee kochen 🙄
    Das mit den benötigten guten mathematischen Kentnissen zweifel ich mal an... die hab ich beim programmieren noch nie gebraucht.
    Ausser 3-Satz war da nix, obwohl das natürlich auch wieder davon abhängt WAS man macht...

    sagt ein blinder: ich halte es unsinnig, sehen zu können. ich habs noch nie gebraucht.
    klar kommste ohne mathe durchs programmieren. aber das ist doch kein beweis dafür, daß andere auch drauf verzichten könnten, ohne großen ärger zu haben.



  • dreaddy schrieb:

    Kaffee kochen 🙄

    Das mit den benötigten guten mathematischen Kentnissen zweifel ich mal an... die hab ich beim programmieren noch nie gebraucht.
    Ausser 3-Satz war da nix, obwohl das natürlich auch wieder davon abhängt WAS man macht...

    Okay, dann schreib mal eine Funktion mit einem Parameter n, die die Zahlen von 1 bis n aufaddiert und zurückgibt.
    Danach schreibste noch eine Funktion, die zwei Polynome (Koeffizienten sind gegeben) miteinander multipliziert.

    Es genügt auch, wenn Du den Aufwand im O-Kalkül angibst.
    Mit etwas Mathe kriegt man da wesentlich bessere Ergebnisse.

    Aber da fällt mir gerade was ein: Ein Programmierer sollte gut abschätzen können. Da kann man nämlich schon vor dem implementieren sagen, ob das Teil nachher performant genug ist oder nicht. In letzterem Fall kann man sich die Implementierung sparen.



  • hm... in 99% aller Fälle ist es egal ob die Funktion in 0.0001 oder in 0.000001 Sekunden durchläuft.
    Oft würd ich sogar den simpleren Weg bevorzugen damit man nicht noch 10 Zeilen Kommentare dazuschreiben muss damit auch jeder begreift was man da wieder gebaut hat.
    Und für das 1% schau ich mal ins www oder benutzt eine vorgegebene Funktion.

    Ich finde man sollte ein wenig praxisbezogen sein... ist ja toll wenn die Hello World Funktion vom Nachbarn 10 Milliarden mal in einer Sekunde durchläuft wärend meine nur ein zehntel schafft aber...



  • dreaddy schrieb:

    hm... in 99% aller Fälle ist es egal ob die Funktion in 0.0001 oder in 0.000001 Sekunden durchläuft.
    Oft würd ich sogar den simpleren Weg bevorzugen damit man nicht noch 10 Zeilen Kommentare dazuschreiben muss damit auch jeder begreift was man da wieder gebaut hat.
    Und für das 1% schau ich mal ins www oder benutzt eine vorgegebene Funktion.

    Ich finde man sollte ein wenig praxisbezogen sein... ist ja toll wenn die Hello World Funktion vom Nachbarn 10 Milliarden mal in einer Sekunde durchläuft wärend meine nur ein zehntel schafft aber...

    Okay, dann schreib mal eine Funktion mit einem Parameter n, die die Zahlen von 1 bis n aufaddiert und zurückgibt. Und zwar so ganz praxisbezogen, wie du das immer machst.



  • Ein guter Programmierer sollte programmieren können.



  • volkard schrieb:

    Okay, dann schreib mal eine Funktion mit einem Parameter n, die die Zahlen von 1 bis n aufaddiert und zurückgibt. Und zwar so ganz praxisbezogen, wie du das immer machst.

    Das mach ich mal:

    public static int addFirstNNumbers(int n)
    {
       return (n * (n+1)) >> 1;
    }
    

    🙂



  • @dreaddy

    Prinzipiell stimmt das schon, ABER man sollte in der Lage sein sich in mathematische Vorgänge einzudenken oder zumindest in der Lage sein aus der Vorgabe eines mathematischen Sachverhalts einen halbwegs brauchbaren Algo abzuleiten und auf den benötigten Sachverhalt anzupassen.
    Ich bin selbst ein mathematischer Tiefflieger, aber reale Sachverhalte lassen sich ohne fundamentales mathematisches Verständnis nunmal nicht in jedem Fall umsetzen.


Anmelden zum Antworten