Hi! Folgendes, ich wollte im Hinblick auf mein Studium (Elektro- und Informationstechnik) schonmal ein bisschen das Programmieren üben, um nicht ne totale Bruchlandung hinzulegen, wenn es losgeht. Mich interessiert sowohl was man an Software damit basteln kann, als auch die Beeinflussung von Mikrocontrollern. Anfangen wollte ich mich C, im Studium kommt dann C++ und Java. Habe mir "C - Programmieren von Anfang an" gekauft und die ersten Kapitel durchgearbeitet. Hab z.B. ein simples Umrechnungsprogramm geschrieben. Habe die Funktionen scanf, printf und ein Additionsprogramm verinnerlicht. So jetzt meine Frage: wie kann man C besonders gut lernen? Reicht es, sich mit nem Buch hinzusetzen und ein bisschen was zu üben? Ich mach bald mal Praktikum und werde auch dort ein bisschen Programmieren. Sollte man das lieber unter Zuhilfenahme eines Tutors lernen, oder gehts auch gut alleine? Hatte die Idee, mal nen Primzahlenfinder zu programmieren, sobald ich Strings und true-false-Befehle kann. Wie finde ich den Einstieg in die Mikrocontrollerprogrammierung? Habe mir das: http://www.amazon.de/Lernpaket-Mikrocontroller-programmieren-Burkhard-Kainka/dp/3645651357/ref=sr_1_4?ie=UTF8&qid=1367670870&sr=8-4&keywords=mikrocontroller bestellt. Meint ihr, das nützt?
Max Nit schrieb: > Wie finde ich den Einstieg in die Mikrocontrollerprogrammierung? > Habe mir das: > http://www.amazon.de/Lernpaket-Mikrocontroller-pro... Das hat mit programmieren wie in C nix zu tun. Da wird per Tasten ein Programm programmiert. Denke du wärst mit einem Steckboard, einen Programmer, einen Mikrocontroller und dem AVR Studio besser aufgehoben. Gibt auch viele Tutorials im Internet (z.b. http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial)
Wenn Du nach z.B. "Mikrocontroller-Kurs" googelst, wirst Du sicher fündig.
Das kommt auf dein Studium an. Wir hatten zwar viel Programmierung aber auch viel Softwareentwicklung. Bei einem Mikrocontroller hast du eher übersichtliche Programme am Anfang. Außerdem hast du immer noch die "Unsicherheitsquelle" Hardware beim uC. Daher: lerne C erstmal normal auf dem PC und dann später uC. Wie ein Lehrer mal zu uns sagte: schwimmen lernt man nur, wenn man ins Wasser springt und nicht durchs Zuschauen. Daher meine Meinung: viele Aufgaben machen! Damit bekommst du ein Gefühl für die Sprache und übst gleichzeitig das Denken zum Lösen von Aufgaben. Denn das fehlt vielen! Das Programmieren ist eher Mittel zum Zweck. Allerdings braucht man erstmal einen Lösungsansatz bevor man etwas programmieren kann. Wenn man bereits programmieren gelernt und schon etwas Erfahrung hat, sollte dies jedoch nicht so schwer fallen und man kommt auch leichter in eine neue Sprache. Mit einem Buch kann man bis zu einem gewissen Grad die Grundlagen gut aneignen. Das Problem ist jedoch, dass dabei trotzdem irgendwann Spaghetticode rauskommen KANN. Daher ist es auch immer sinnvoll, wenn man jemand Erfahrenes fragen kann, wo sich die Codequalität verbessern lässt. Das kann ein Tutor sein (allerdings bringt das nichts, wenn er ein Semester mehr Erfahrung hat als du...). Ansonsten kann ich aus persönlicher Erfahrung sagen, dass Lernen ohne größere Zuhilfenahme zwar anstrengender und zeitaufwändiger ist aber der Lerneffekt für mich war immer größer gewesen als wenn der Tutor/Prof alles erklärt (z.B. bei mir bei Mathe oder Grundlagen E-Technik). Persönlich kann ich die Bücher von Herold empfehlen. Das C-Buch ist sehr gut und es gab/gibt? auch ein Buch mit Aufgaben samt Lösungen. Am Anfang am schwierigsten sind wahrscheinlich Zeiger. Diese solltest du dir genau zu Gemüte führen und damit viel experimentieren. Das Ganze in Verbindung mit Arrays und Zeiger-Zeiger... wenn das sitzt, ist C eigentlich kein Problem mehr. Der Rest mit Klassen und Referenzen von C++ kriegt man eigentlich ohne größere Probleme drauf, wenn man gut C kann. So Geschichten wie Vererbung, Polymorphie wird sich wahrscheinlich niemand freiwillig über ein Buch anarbeiten. Und dafür gibt es ja auch noch Vorlesungen ;)
Was willst du überhaupt erreichen? Du sagst, du willst dich auf das Studium vorbereiten in dem C++ und Java gelehrt wird. Warum machst du das dann nicht sondern willst dich mit C "belasten"? Nichts gegen deine Entscheidung, aber sehr zielgerichtet ist das nicht. Du wirst (mindestens) zwei Sachen im Studium merken: 1) Du hast keine Zeit ALLES zu machen. 2) Die Programmiersprachen C / C++ / Java werden dein kleinstes Problem! ;-) Gruß Dennis
Dennis S. schrieb: > Warum machst du das dann nicht sondern willst dich mit C "belasten"? Die "Gelehrten" streiten sich noch darüber, ob es, wenn man C++ lernen will, sinnvoll ist, vorher C zu lernen oder nicht.
Rolf Magnus schrieb: > Die "Gelehrten" streiten sich noch darüber, ob es, wenn man C++ lernen > will, sinnvoll ist, vorher C zu lernen oder nicht. Das mag sein und wollte ich auch nicht diskutieren! Fakt ist: wenn er sich für das Studium vorbereiten will, dann sollte er das zielgerichtet tun. Gruß Dennis
Dennis S. schrieb: > Fakt ist: wenn er sich für das Studium vorbereiten will, > dann sollte er das zielgerichtet tun. Und das bedeutet für Dich jetzt genau was? Ist es nicht "zielgerichtet", wenn man sich mit C beschäftigt, um sich danach mit C++ zu beschäftigen?
eule schrieb: > project euler Ist zum Programmiereinstieg eher weniger geeignet. Besonders spätere Aufgaben benötigen zum Teil relativ umfangreiche Kenntnisse im Bereich Algorithmen und Mathematik.
Rufus Τ. Firefly schrieb: > Und das bedeutet für Dich jetzt genau was? > > Ist es nicht "zielgerichtet", wenn man sich mit C beschäftigt, um sich > danach mit C++ zu beschäftigen? Nein, ist es nicht. Wer die zeitliche Strukturierung eines Studiums heutzutage kennt, kann das nachvollziehen. Das Ziel und damit auch die Erklärung was "zielgerichtet" ist steht ja im ersten Post des TO. Gruß Dennis
Für dieses Studium brauchst du weniger Programmierbücher sondern gaaaaaaaaanz viele Mathematikbücher, speziell höhere Mathematik.
Dennis S. schrieb: > Rufus Τ. Firefly schrieb: >> Und das bedeutet für Dich jetzt genau was? >> >> Ist es nicht "zielgerichtet", wenn man sich mit C beschäftigt, um sich >> danach mit C++ zu beschäftigen? > > Nein, ist es nicht Da C im Wesntlichen eine Untermenge von C++ ist und praktisch jedes C++-Lehrbuch sowieso mit dieser Untermenge beginnt, ist es kein zusätzlicher Zeitaufwand, erst C und dann den Rest von C++ zu lernen. Wenn man diese beiden Lernabschnitte klar voneinander trennt, indem man bspw. zwei Lehrbücher (eins für C und eins für C++) nacheinander durcharbeitet, kann man am Ende beide Sprachen. Leute, die von Anfang auf C++ getrimmt wurden, haben erfahrungsgemäß Schwierigkeiten, wenn sie später reine C-Programme schreiben sollen. Deswegen ist das Vorgehen von Max meiner Ansicht nach völlig in Ordnung. > So jetzt meine Frage: wie kann man C besonders gut lernen? Reicht es, > sich mit nem Buch hinzusetzen und ein bisschen was zu üben? Ohne Buch geht fast gar nichts. Und wie so oft macht auch beim Programmieren erst die Übung den Meister. Der ganz wichtige dritte Punkt: Schau dir Programmcode von anderen (erfahreneren Programmierern) an und versuche die Art und Weise zu verstehen, wie dort ein Programm strukturiert und umgesetzt wird. Da wirst du viele Aha-Erlebnisse haben.
Yalu schrob: >Schau dir Programmcode von anderen (erfahreneren Programmierern) >an und versuche die Art und Weise zu verstehen, wie dort ein Programm >strukturiert und umgesetzt wird. Da wirst du viele Aha-Erlebnisse >haben. Ich habe beim Betrachten von C-Quelltexten immer ein "Oh,oh,oh..."-Erlebnis statt eines Aha-Erlebnisses. ;-) MfG Paul
Paul Baumann schrieb: > Ich habe beim Betrachten von C-Quelltexten immer ein > "Oh,oh,oh..."-Erlebnis > statt eines Aha-Erlebnisses. Vielleicht, weil du über die beiden anderen genannten Schritte (Durcharbeiten eine C-Buchs und Üben, Üben, Üben) etwas schnell hinweggegangen bist? ;-)
Yalu X. schrieb: > ist es kein > zusätzlicher Zeitaufwand, erst C und dann den Rest von C++ zu lernen. Naja, man sollte dann halt sehr früh im Buch aufhören. Sobald die C-Standardbibliothek eingeführt wird (und printf kommt doch typischerweise ganz vorne), ist man mit einem C++-Buch besser bedient.
Paul Baumann schrieb: > Ich habe beim Betrachten von C-Quelltexten immer ein > "Oh,oh,oh..."-Erlebnis > statt eines Aha-Erlebnisses. Das ist doch kein Wunder. Ein Dichter braucht Text, Text, C ist (für Lowlewelkram) ja auch eher eine Zeichensprache. Bascom rulez! scnr :-)
Ich schiebe rechts, ich schiebe links und verknote noch mit "UND" dann stürzt mir meine Kiste ab -ich seh's mit off'nem Mund... "Ich möchte keine Typen casten!" schlag ich mit Mühe in die Tasten Setze alles "volatile" Trotzdem gibt's der Fehler viele... Ein Sammelsurium von Sonderzeichen kann nur zum Mitleid mich erweichen und nach einer kurzen While schmeiß' ich vom Rechner diese Teile... Ich kann mich nicht an "C" gewöhnen, lieber nehm' ich PureBasic ..und ich will's auch nicht beschönen: Auch der Berliner sagt: "Dit weeß ick!" In diesem Sinne Paul
Paul Baumann schrieb: > Ein Sammelsurium von Sonderzeichen > kann nur zum Mitleid mich erweichen Es gibt eine Lösung: http://de.wikipedia.org/wiki/Shakespeare_Programming_Language Auch für alle, die lieber Texte schreiben, als programmieren.
@Dussel Das ist ja noch einen Zacken schärfer als C, aber es ist in C geschrieben. Insofern wundert mich überhaupt Nichts daran... ;-) MfG Paul
troll schrieb: > Paul Baumann schrieb: >> Ich habe beim Betrachten von C-Quelltexten immer ein >> "Oh,oh,oh..."-Erlebnis >> statt eines Aha-Erlebnisses. > Das ist doch kein Wunder. Ein Dichter braucht Text, Text, C ist (für > Lowlewelkram) ja auch eher eine Zeichensprache. Bascom rulez! scnr :-) Endlisch normale Leute! SCNR Aber jetzt ernsthaft, lerne Programmieren egal mit welcher Sprache. Da Du ja anscheinend sehr proaktiv bist und die Ergebnisse noch lieber vor dem steinigen Weg siehst. Lese einfach mal locker über die hier veröffentlichten Projektbeschreibungen drüber und überlege, wie Du ein für Dich interessantes Projekt selbst machen würdest. Jetzt weißt Du z.B. wie ich persönlich am besten etwas neues lernen kann. Wie lernst Du eigentlich am besten?
Hi Paul, wenn Du's etwas ästhetischer magst als C, dann schau Dir doch mal "INTERCAL(-72)" an. Ich kenne keine weitere Sprache, in der so wunderhübsche Befehle wie IGNORE, FORGET, TRY AGAIN oder GIVE UP zur Verfügung stehen. Und in der zur Vermeidung von derbem GOTO ein liebenswürdiger COME FROM-Befehl implementiert ist - alles übrigens gerne mal mit einem freundlichen PLEASE garniert ;-) Wenn INTERCAL aber doch zu prosaisch ist, dann wirst Du vielleicht eher mit dem doch sehr puristischen "Brainf*ck" glücklich :-) http://de.wikipedia.org/wiki/Brainf*ck
@Diodenes Ne, laß mal gut sein.... ;-) Ich komme gut mit Bascom für AVR-Kontroller und mit Pure-Basic für den "Großrechner" aus. MfG Paul
Programmieren heisst doch nicht einfach mal loscoden. Programmieren ist mMn das Umsetzen einer Problemlösung in einen Algorithmus. Die Programmiersprache ist da erst mal nebensächlich. Das ist dann nur noch Vokabel- und Grammatik lernen. Und dann gibt es da noch die unretgelmäßigen Verben, also Besonderheiten der einzelnen Programmiersprachen, die man auswendig lernen muss.
Stk500-Besitzer schrub: >Programmieren ist mMn das Umsetzen einer Problemlösung in einen >Algorithmus. >Die Programmiersprache ist da erst mal nebensächlich. Da gebe ich Dir vollkommen Recht. >Das ist dann nur noch Vokabel- und Grammatik lernen. "Nur noch" ist das Problem.... Eine Sprache ist m.E. umso leichter zu lernen, je mehr sie einer "natürlichen" Sprache enspricht. Man hat schon genug mit dem Finden des Algorithmus zu tun und will sich dann nicht zum Dank mit der abartigen Syntax einer der "modernen" Sprachen herumschlagen müssen. MfG Paul
Paul Baumann schrieb: > Eine Sprache ist m.E. umso leichter zu lernen, je mehr sie einer > "natürlichen" Sprache enspricht. Gibts denn sächsisch als Programmiersprache für dich ?
Paul Baumann schrieb: > Eine Sprache ist m.E. umso leichter zu lernen, je mehr sie einer > "natürlichen" Sprache enspricht. Man hat schon genug mit dem Finden > des Algorithmus zu tun und will sich dann nicht zum Dank mit der > abartigen Syntax einer der "modernen" Sprachen herumschlagen müssen. Hrm - ich zweifele. Alle gesprochenen Sprachen haben eine unglaubliche Flexibilität, wie man gewisse Dinge ausdrücken kann, was aber gleichzeitig die Schwierigkeit erhöht, die Semantik eines Satzes zu erkennen. Versuche mal einen mathematischen Text zu lesen und zu verstehen, der vor der Erfindung der mathematischen Notation geschrieben wurde. Obwohl das viel näher an der gesprochenen Sprache ist, ist es quasi unmöglich, dass man ohne Erfahrung mit solchen Texten erkennen kann, was da eigentlich gemeint ist. Ich glaube bei Programmiersprachen ist das ganz ähnlich: Wenn nicht ganz klare Strukturen vorgegeben sind, wie gewisse semantische Ideen hinzuschreiben sind, landet man schnell in einer Programmiersprachenhölle. Siehe PHP und (in geringerem Maße) Perl. Natürlich sind diese klaren Strukturen zu lernen und erhöhen den Lernaufwand. Aber dafür werden Programme von anderen Programmierern lesbar... Viele Grüße, Simon
Wegstaben Verbuchsler schrabte: >Gibts denn sächsisch als Programmiersprache für dich ? Ja, das wäre eine Idee, obwohl ich nicht in Sachsen bin. Versuchen könnte ich es im Nordthüringer Dialekt... Beispiel: Horche_mal_druff (Befehl wartet auf Eingabe des Benutzers) Wamse_mal_den Waaren_zerück_und_huppe (Wagenrücklauf+Zeilenschaltung) Mache_mal_en_Schachbrett (Dimensioniere ein 2-dimensionales Array 8x8) Hör_uff_jezzz (Programmende) Das wäre so ungefähr das, was ich mir vorstelle. saublöde grins Simon schrub: >Wenn nicht ganz >klare Strukturen vorgegeben sind, wie gewisse semantische Ideen >hinzuschreiben sind, landet man schnell in einer >Programmiersprachenhölle. Eben das ist es, was man zum Bleistift bei C-Quelltexten hier auch im Forum immer mal wieder sieht: Jeder Compiler versteht nicht jeden Quelltext. Dann ärgert man sich die Schwindsucht an den Hals.... MfG Paul
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.