Ich kann nicht programmieren....



  • Hallo Leute.ICh studiere seit 1 jahr informatik.Es läuft super bis auf programmieren 👎 .das problem ist -ich kann nicht prorammieren.also was leichteres kann ich schon, aber wenns um was schwiriges geht,klappts nicht.Ich sitze so blöd rum, guck mein bildschirm an und weiß nicht wie ich anfangen soll.Ich hbe schon 2 mal mein prüfung nicht bestanden jetzt habe ich noch ein letzen versuch.ich wollte mal fragen ob ich es noch lernen kann und wenn ja-wie???was mach ich falsch? 😕 ?Möchte gerne die antwort von profis hören.



  • tja, hättest du wohl mal zu den vorlesungen gehen sollen, oder dir notizen machen sollen, oder mal zuhören sollen.
    kauf dir n buch über die sprache die du lernen willst und lies es!



  • Da gibt es nicht viel zu sagen: Üben, üben und nochmals üben. Wenn du irgendwo festhängst such dir eine Lösung oder frag jemand der es kann wie du an der Stelle weiter kommst.



  • da können dir doch deine kommilitonen helfen und die leute in den übungen!!!!!!



  • milka schrieb:

    was mach ich falsch? 😕 ?Möchte gerne die antwort von profis hören.

    Kann ich Dir nicht sagen: Ich bin kein Profi.

    Aber mich würde mal interessieren, was das für eine Prüfung ist, bei der man mehr als Kleinkram programmieren muss. Was muss man da so programmieren? Und wieviel Zeit hast Du noch bis zum letzten Versuch?



  • Programmieren lernt man nur durchs üben. Also setz dich zu Hause hin und programmiere selbst etwas. Ganz unabhängig von dem Uni-Material. Versuch am besten den Prüfungstermin zu verschieben und nimm dir etwas Zeit.

    Es ist noch kein Programmierer vom Himmel gefallen.



  • Ich weiß nicht wieso hier jeder darauf kommt, dass man Programmieren nur durch Üben lernt. Ich denke noch fälscher geht es nicht.

    Das Programmieren an sich lernst du durch Üben überhaupt nicht. Durch Üben lernt man, bereits implementierte Sachen fixer und ohne größere Denkprobleme nochmal zu implementieren oder Funktionsnamen "auswending" zu Lernen und nicht immer nachblättern zu müssen, aber darauf kommt es in der Programmierung nicht wirklich an und zum Verständnis deiner verwendeten Programmiersprache trägt das idR überhaupt nichts bei. Womit wir auch schon beim Punkt sind ->

    Du musst eine gewisse Gedankenebene tiefer gehen und verstehen was die Zeile macht die du gerade schreibst.

    Der normalo-human muss das gelesene oder Gedachte dann natürlich noch per Übung implementieren um das Verständnis im Gehirn einzuankern, keine Frage. Ich sage nur, dass reines Abackern von Beispielen und Codes nichts bringen wird.

    Beispiel c++:

    std::cout<<"Hello World!"<<std::endl;
    

    Bei den ersten Tutorials oder ganz am Anfang beim ersten kompilierten C++ Projekt reicht es, auf Gedankenebene... sagen wir mal 5 zu bleiben und zu verstehen, dass std::cout Zeichen auf der Konsole ausgibt und diese Zeichen per "<<" übergeben werden.

    Wenn du dich allerdings näher mit C++ beschäftigen willst und die Sprache verstehen willst, dann musst du zuerst runter auf Gedankenebene 4,3 oder 2 um zu Verstehen, dass cout ein Objekt (genauer gesagt das Standardausgabeobjekt der Standardbiblothek von C++) der Klasse std::ostream ist und die 2 ominösen "<<" Zeichen nichts anderes als ein überladener Operator sind, welcher alles mögliche an Argumenten zu lässt, zu Zeichen parsed und dann ausgibt. Hierzu musst du natürlich erst mal wissen was Klassen, Operatoren etc. sind.

    Im Falle von cout wird es auf lange Zeit natürlich keine Rolle spielen, ob Du genau weißt, was "es" ist. Ich will damit sagen, dass zuerst das Grundverständnis über die generellen Elemente deiner Programmiersprache kommt (Im Falle von C++ also Syntax,Variablen,Zeiger [C++ Speicherverwaltungsverständnis], Klassen und sonstiger Kleinkram), bevor du es wirklich kannst ( und mir bildet sich bei deinem Posting der Eindruck, dass das Grundverständnis bei dir nicht vorhanden ist )

    Der Gedankenebenen-Vergleich hinkt wohl ein wenig und die gewählten Rangnummern sind natürlich willkürlich von mir gewählt, aber du solltest sehen worauf ich hinaus will.

    Also Tipp: Um nochmal einen schnellen Neuanfang zu machen, such dir Tutorials im Internet [ich vermute du hast bis zur nächsten Prüfung nicht mehr alle Zeit der Welt, und Programmiersprachen gut lernen benötigt viel Zeit] und kauf dir Bücher zum Thema um einzelne Sachen zu vertiefen (also nicht etwa soetwas wie "C++ in 21 Tagen", sondern eher Bücher die sich explizit mit Teilbereichen deiner Sprache beschäftigen, bei C++ etwa generische Programmierung, allgemein dann Design-Patterns etc.).

    Um dein Grundverständnis für die Sprache auszubilden, reichen für die kurze Zeit Tutorials aus dem Internet vollkommen aus, es gibt wirklich gute da draußen!

    Genauere Buchtitel kann ich dir jetzt leider nicht empfehlen, da meine Finger etwas zertippt sind und ich nicht Amazon und Co aufschlagen will, aber Recherche solltest du wohl selbst betreiben können.



  • TravisG schrieb:

    Der normalo-human muss das gelesene oder Gedachte dann natürlich noch per Übung implementieren um das Verständnis im Gehirn einzuankern, keine Frage. Ich sage nur, dass reines Abackern von Beispielen und Codes nichts bringen wird.

    "Abackern von Beispielen und Codes" ist auch eine reine Tippuebung und keine Programmieruebung. Wer die Denkweise beim Programmieren verstehen will, muss IMO sehr wohl Ueben. Wenn man nichts 'selbst produziert' gehts einem wie mit anderen Sprachen auch: irgendwann versteht man zwar Texte, die andere geschrieben haben (weil man einen grossen passiven Wortschatz hat), kann aber selber keinen kohaerenten Satz von sich geben (weil der aktive Wortschatz so gut wie nicht vorhanden ist). Ich erlebt das grad in der Arbeit, wo ich Leuten programmieren beibringen soll, die aber zu faul sind, selbst zu ueben: die verstehen zwar den meisten Code, den ich ihnen zeige, aber wenn sie selbst was schreiben/erklaeren sollen, stammeln sie nur vor sich hin.



  • ich glaube, man lernt durch die finger UND durch den kopf.

    wobei ich denke, dass der/die threadersteller/in nicht "programmieren" lernt, sondern (1. semester informatik) algorithmen und datenstrukturen mit irgendeiner programmiersprache umgesetzt.
    da hilft manchmal dann auch malen (listen)
    spielen (sortieralgorithmen lassen sich hervorragend mit skatkarten animieren)
    planen (algorithmen mal umgangssprachlich formulieren, (oder wegen mir struktogrammähnlich, wers mag) und erst dann in eine sprache überführen
    ...

    lernen ist vielschichtig.

    wie gesagt, ich denke, er/sie wird im ersten semester die grundlagen hören.
    aber wer weiß, was manche unis da bauen...



  • TravisG schrieb:

    Ich weiß nicht wieso hier jeder darauf kommt, dass man Programmieren nur durch Üben lernt.

    weil es so ist. die wenigsten menschen können programmieren, nur weil sie ein paar bücher darüber gelesen haben.

    TravisG schrieb:

    Beispiel c++:

    std::cout<<"Hello World!"<<std::endl;
    

    Bei den ersten Tutorials oder ganz am Anfang beim ersten kompilierten C++ Projekt reicht es, auf Gedankenebene... sagen wir mal 5 zu bleiben und zu verstehen, dass std::cout Zeichen auf der Konsole ausgibt und diese Zeichen per "<<" übergeben werden.
    Wenn du dich allerdings näher mit C++ beschäftigen willst und die Sprache verstehen willst, dann musst du zuerst runter auf Gedankenebene 4,3 oder 2...

    leider wird wird von diesem 'hinabsteigen' meistens abgeraten, um nicht in bodenlose abgründe zu stürzen. das finde ich doof. ich persönlich bin auch mehr für den blick hinter die kulissen.
    🙂



  • Machine schrieb:

    tja, hättest du wohl mal zu den vorlesungen gehen sollen, oder dir notizen machen sollen, oder mal zuhören sollen.
    kauf dir n buch über die sprache die du lernen willst und lies es!

    Unsinn... Das Programmieren, bzw. umsetzung von Aufgaben OO Vorstellung und impelemtation in Algorithmen lern man nicht in den vorlesungen. Dazu komm üben , üben, üben...

    Ein Kind kann auch nicht plötzlich laufen, wenn man es dem Kind zeigt wie laufen ausieht. Es muss üben,üben, üben...



  • BaldWochende schrieb:

    Ein Kind kann auch nicht plötzlich laufen, wenn man es dem Kind zeigt wie laufen ausieht. Es muss üben,üben, üben...

    Der Vergleich hinkt, bzw stolpert, wie das Kind wenn es noch nicht so gut laufen kann.

    Ich vereinfache mein Posting nur noch etwas.

    Wissen aneignen -> Wissen verstehen -> "Wissen üben" -> 👍
    Wissen aneignen -> Wissen nicht verstehen -> Trotzdem üben -> 👎



  • TravisG schrieb:

    Wissen aneignen -> Wissen nicht verstehen -> Trotzdem üben -> 👎

    nene, so muss das aussehen:
    aneignen -> nix verstehen -> üben -> verstehen -> 💡
    🙂



  • TravisG schrieb:

    Ich weiß nicht wieso hier jeder darauf kommt, dass man Programmieren nur durch Üben lernt. Ich denke noch fälscher geht es nicht.

    Natürlich lernt man durch Üben und nicht (nur) durch das lesen von Büchern und Tutorials. Beim üben stößt du nämlich auf konkrete Probleme und musst diese lösen. Und hier lernt man oft erst den Sinn, von vielen Dingen, die einem in den Büchern beigebracht werden.

    Programmieren ist nun einmal hauptsächlich ein Handwerk und keine Wissenschaft (Die Wissenschaft dazu ist die Informatik). Und einem Tischler würde ich auch empfehlen zu tischlern und nicht Bücher über die Konstruktion eines Hammers zu lesen...

    <edit>Mein Beitrag klingt vielleicht ein bisschen zu Theorie feindlich. Natürlich muss man auch Theorie lesen. Aber imho kann man die wirklich nur begreifen, wenn man das gelesene anwendet.</edit>



  • Du studierst Informatik und bist noch nicht auf die Idee gekommen Zuhause was für dich zu programmieren. Bist du sicher, dass das das richtige Studium für dich ist? Gibts Jobs für Studienabgänger die noch nie was größeres programmiert haben?



  • Klar. Schau dir doch die WInfe an. 😃



  • Natürlich muss man programmieren "üben". Beispielsweise reicht es nicht, zu wissen, dass eine (einfach verkettete) Liste verkettet ist und jedes Element einen Zeiger auf das folgende Element hat, sowie Methoden zum Hinzufügen, Löschen, Einfügen, Suchen bereit stellt. Man sollte sie auch implementieren können. Und wenn man das noch nie gemacht hat, wirds auch schwer, eine Struktur wie

    struct ListItem {
        int value;
        struct ListItem *next;
    };
    

    zu schreiben, geschweige denn die Funktionen mit korrekter Speicherfreigabe zu implementieren - wenn man nur weiß was es ist, aber nicht wie es in Codeform aussieht (aussehen kann).





  • TravisG schrieb:

    BaldWochende schrieb:

    Ein Kind kann auch nicht plötzlich laufen, wenn man es dem Kind zeigt wie laufen ausieht. Es muss üben,üben, üben...

    Der Vergleich hinkt, bzw stolpert, wie das Kind wenn es noch nicht so gut laufen kann.

    Ich vereinfache mein Posting nur noch etwas.

    Wissen aneignen -> Wissen verstehen -> "Wissen üben" -> 👍
    Wissen aneignen -> Wissen nicht verstehen -> Trotzdem üben -> 👎

    Dem kann ich so nicht ganz zustimmen, machmal gibt es durchaus Situationen wo man ein Programmstück nicht sofort versteht (ich meine klar jeder könnte Codezeile für Codezeile durchgehen und sagen was dort ausgeführt wird, aber der Sinn dahinter ist ja das Entscheidende), aber wenn man den Code dann einfach einmal abtippt und sich anschließend darüber Gedanken macht und damit beschäftigt, etwas experimentiert und man im Debugger verfolgt was dort genau passiert so hilft das beim Verständnis durchaus.
    Und dieser Prozess zählt - für mich - auch zum Üben dazu. Einfach abtippen hat nur einen Auswendig-Lern-Effekt der ist anfangs natürlich auch nicht schlecht damit man mal etwas hinbekommt ohne alle zwei Minuten erstmal die Doku wälzen zu müssen, aber wirkliche Einsicht erhält man nur, wenn man mit dem Code auch etwas spielt und experimentiert.

    @Threadersteller, ich rate dir dazu mal die ganzen (einfachen) Datenstrukturen zu Implementieren und ein paar Standardalgorithmen die auf diesen Arbeiten.
    Das Designen von Programmen lernt man erst über die Jahre hinweg so etwas kommt nicht von heute auf Morgen. Aber das einfache Runterprogrammieren kann man sich recht schnell aneignen und mit der Zeit wird man immer besser 🙂
    Übrigens: die ein Programmierer ist nur so talentiert wie weit seine Debug-Talente reichen 🙂
    Wer gut im Debuggen ist hat es einfach leichter und das ist das Problem von vielen Anfängern: sie haben einen Fehler, aber können ihn unmöglich finden, da sie keine Ahnung haben was ein Debugger ist und wie man diesen einsetzt.



  • Also, nach den Grundlagen lernen geh ich immer den Weg ein Projekt zu realisieren. Das Projekt ist bei mir am Anfang immer klein und der Umfang wächst dann von Projekt zu Projekt. Damit habe ich bis jetzt gute lern Erfahrungen gemacht. Kann aber durchaus sein das mir das ganze einfach leichter fällt, da ich schon zu Turbo Pascal 7 Zeiten angefangen habe zu programmieren.
    Aber mal ehrlich, wieso fängst du jetzt so spät in deinem Studium erst an zu programmieren? Normalerweise merkt man doch schon irgendwann das einem das programmieren schwer fällt und setzt sich zuhause hin und "übt".


Anmelden zum Antworten