Frage zu C/C++
-
Daloon schrieb:
Nur mit welcher der beiden Sprachen sollte man denn eher anfangen?
C++
Daloon schrieb:
zu 2) Versteh grad nicht wie du dass meinst im Zusammenhang mit meinen Fragen.
Es bedarf keiner C Grundlage um C++ gut zu lernen.
Daloon schrieb:
zu 3) Puhh.. sicher dass die 5 Jahre nicht übertrieben sind?
btw. was meinst du genau mit "draufhaben"Du hast von "drauf haben" gesprochen.
-
So und nun nochmal etwas ernsthafter.
Solche Pläne wie "eine Stunde am Tag lernen" funktionieren in der Realität einfach nicht. Das geschieht unter Zwang oder unter Wunschvorstellungen, etwas bestimmtes erlernen zu müssen oder zu wollen.Du kannst in ein oder zwei Jahren schon beachtliche Fortschritte erzielen, aber nur und nur und nur wenn es dich wirklich interessiert. Dann wirst Du ganz freiwillig 10 Stunden an einem Samstag programmieren und debuggen, bis dein Code läuft.
Du wirst garnichts erreichen, wenn Du dir nach Lehrplan vornimmst, eine Stunde am Tag zu üben. Programmieren erfordert Leidenschaft. Keine Schulstunden.
-
Gut, bedanke mich erstmal für deine hilfreichen Antworten.
Wobei, nächstes mal gerne genauso ernst, doch bitte etwas freundlicher?ForenTroll schrieb:
Such Dir ein anderes Hobby.
-Wobei ich mir auch ziemlich sicher bin dass es mir Spaß bringen wird.
Gerade wenn ich nachher Fortschritte mache!Grüße
PS: Die "eine" Stunde war ein Bsp.
-
Daloon schrieb:
Gut, bedanke mich erstmal für deine hilfreichen Antworten.
Wobei, nächstes mal gerne genauso ernst, doch bitte etwas freundlicher?- Ich bin betrunken.
- Morgen früh entsteht hier ein Shitstorm
- Frage doch bitte nicht um halb drei nachts ernsthaft nach einer sinnvollen Antwort
- Ja ich verdiene meine Brötchen mit Programmieren und Softwarebauen
- Zeit fürs Bett?
-
ForenTroll schrieb:
Daloon schrieb:
Gut, bedanke mich erstmal für deine hilfreichen Antworten.
Wobei, nächstes mal gerne genauso ernst, doch bitte etwas freundlicher?- Ich bin betrunken.
- Morgen früh entsteht hier ein Shitstorm
- Frage doch bitte nicht um halb drei nachts ernsthaft nach einer sinnvollen Antwort
- Ja ich verdiene meine Brötchen mit Programmieren und Softwarebauen
- Zeit fürs Bett?
- Ich leider nicht
- Viel Spaß
- Hatte grad nichts besseres zu tun.
- Jap, gute Nacht
-
Daloon schrieb:
da ich nach meinem Abi in den IT Bereich gehen möchte wird es mir denke ich von Vorteil sein wenn ich C bzw. C++ kann.
Unabhängig davon, was Du später genau machen wirst, ist die Kenntnis über eine Sprache, die Du eventuell später doch nicht einsetzt, zumindest nicht besonders schädlich. Im Gegenteil. Das, was meines Wissens nach oft gelehrt wird, ist Java. Das war bei mir an der Uni und auch an anderen Unis so. Sich allein auf eine Sprache zu stützen ist aber eine schlechte Idee. Es ist nicht verkehrt, bei mehreren zumindest mal reingeschnuppert zu haben.
Daloon schrieb:
Und zum anderen hätte ich auch Spaß daran später kleine Programme zu programmieren.
Da dass aber logischerweise mit Arbeit verbunden ist wollte ich mal fragen wie lange es ungefährt dauert C bzw. C++ drauf zu haben wenn man sich damit am Tag eine Stunde beschäftigt.Wenn Du Dir jetzt schon Sorgen um die Zeit machst, ist C++ vielleicht nicht das richtige für Dich. Wenn Du mit "drauf haben" meinst, 95% der Konzepte und Regeln der Sprache zu kennen und die Sprache effektiv einzusetzen weißt, dann dauert das schon eine ganze Weile. Wie lang hängt aber auch von Deinem Talent und Deinen bisherigen Programmiererfahrungen ab. Man kann nicht automatisch "programmieren", wenn man eine Programmiersprache "nur kennt".
Daloon schrieb:
Und zum anderen wollte ich fragen welche Programmiersprache besser wäre.
C oder C++?
War es nicht sogar so dass wenn man eine bestimmte der beiden Sprachen kann, dass die andere dann sozusagen darauf aufbaut und dementsprechend schneller zu lernen ist?C++ baut auf C auf. Das heißt aber nicht, dass, wenn Du an C++ interessiert bist, Du zunächst ausschließlich den C-Teil lernen solltest. Das wäre sehr kontraproduktiv, da der "moderne C++" Stil Spracheigenschaften ausnutzt, die C nicht bietet. Du kannst in C++ also C programmieren. Das wäre dann aber kein effektiver Einsatz der Sprache C++. Natürlich sollte man auch das kennenlernen, was C ausmacht. Aber die Reihenfolge ist dabei wichtig.
Sehr wichtig ist ein gutes Buch zum Thema. Leider können Anfänger die Qualität von solchen Büchern nicht selbst bewerten. Der Text mag gut geschrieben sein, pädagogisch aber schlecht aufgebaut und/oder schlicht Fehlinformationen enthalten. Deswegen kannst Du Dir z.B. Nutzerbewertungen bei Amazon schenken. Halte lieber Ausschau nach Rezensionen, die von qualifizierten Leuten stammen.
http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-listWenn Du am Anfang "schnelle Erfolge" haben möchtest, dann ist weder C noch C++ für Dich geeignet. Probier es dann mal mit Python.
-
Danke erstmal für die ausführliche Antwort.
Aber würde es denn überhaubt was bringen mit Phyton anzufangen wenn dass Ziel ist später mit C bzw. C++ weiterzumachen?
Also haben die Sprachen miteinander zutun, oder hab ich dann Phyton sozusagen umsonst gemacht?
Kann man nicht auch mit Java gut beginnen?
-
Du kannst mit jeder Sprache beginnen. Sei dir nur darüber im Klaren, dass in anderen Sprachen andere Konzepte mehr Sinn machen können. Du solltest also bei dem erlernen einer neuen Sprache nicht unbedingt den kompletten Stil der bereits bekannten Sprache übernehmen. Das machen angeblich viele beim Umstieg von C auf C++ falsch. C++ bietet viele Konzepte, die C nicht bietet, die man in C++ aber unbedingt nutzen sollte.
Mit welcher Sprache du anfängst ist dir überlassen, mach was dir Spaß macht. Eine feste Traingsinheit àla "eine-Stunde-am-Tag" ist aber total kontraproduktiv. Fang einfach an oder kaufe dir ein Buch. Gerade bei C++ ist ein gutes Buch (z.B. der C++ Primer) ein Muss. C kann man aufgrund des sehr viel geringeren Sprachumfangs meiner Meinung nach auch ohne Buch lernen, aber rechne damit viel Übung zu brauchen, bis du einigermaßen viel damit machen kannst.
-
Welche Sprache ist denn am besten geiegnet um einen halbwegs guten Einstieg ins Programmieren zu bekommen und um dann irgendwann mal mit C++ weiter zu machen?
-
Meiner Meinung nach C. Der Meinung der meisten hier im Forum nach wohl C++. Java, Python und jede andere Sprache können natürlich auch herhalten, da sie angeblich einfacher sein sollen und Anfänger nicht so viel falsch machen können. Ich persönlich glaube, dass es gar nicht schlecht ist am Anfang viel falsch zu machen, daraus lernt man schließlich. Wie gesagt, du musst dich da selbst entscheiden, es gibt kein Patentrezept. (Edit: Doch, gibt es. Nimm die Sprache, die dir am meisten zusagt, denn Motivation ist das Wichtigste beim Lernen.)
-
Ja, die die mir am meisten zusagt..
Ich weiß garnicht was die Vor- und Nachteile der einzelnen Sprachen sind.
-
Daloon schrieb:
Welche Sprache ist denn am besten geiegnet um einen halbwegs guten Einstieg ins Programmieren zu bekommen und um dann irgendwann mal mit C++ weiter zu machen?
Wenn du C++ lernen willst, dann lern C++ und keine andere Sprache. Kauf dir das Buch http://www.stroustrup.com/Programming/ (gibt auch eine deutsche Übersetzung) und fang an.
-
Daloon schrieb:
[...] irgendwann mal mit C++ weiter zu machen?
Ich habe "Python" vorhin nur erwähnt, weil man damit als Programmieranfänger relativ schnell Erfolge erzielen kann ohne sich dabei versehentlich in den Fuß zu schießen.
Aber eine konsequente Anwendung von "modernem C++" unter Verwendung diverser Debug-Modi, die Compiler/Standardbibliothek/Entwicklungsumgebung zu bieten haben, kann man auch recht schmerzfrei C++ lernen. Man kann auch in C++ relativ produktiv am Anfang sein, wenn man die Teile der Sprache und ihre Konzepte in der richtigen Reihenfolge lernt und nicht mit reinem C anfängt.
Daloon schrieb:
Ich weiß garnicht was die Vor- und Nachteile der einzelnen Sprachen sind.
Prinzipiell ist das ein Produktivität-versus-Performance Zielkonflikt. Mit Produktivität meint man die Geschwindigkeit, mit der man eine Lösung programmiertechnisch erarbeiten kann. Mit Performanz meine ich die Geschwindigkeit und den Speicherverbrauch, mit der das Programm dann laufen wird. C++ ist interessant, weil es ein großes Abstraktionsspektrum bietet. Wenn man möchte, kann man "nah an der Maschine" programmieren und alles kontrollieren oder auch auf hoher Abstraktionsebene relativ schnell eine Lösung bekommen.
C brauchst Du eigentlich nur, wenn Du es auf Performanz abgesehen hast und es für die Plattform, für die Du entwickelst, keine C++ Compiler gibt. Bei Schnittstellen kann man sich auch auf C beschränken für eine höhere Interoperabilität. Du kannst beispielsweise eine Bibliothek in C++ schreiben, die etwas bestimmtes kann und eine C-Schnittstelle dafür anbieten. Ich habe beispielsweise mal ein LADSPA-Plugin in C++ geschrieben, obwohl die Pluginschnittstelle in C definiert wurde.
-
Habe mich jetzt einmal ein bisschen eingelesen und finde es ganz gut mit Java anzufangen, da es einfach viele Vorteile bietet, und halbwegs Einsteigerfreundlich ist. Nun wollte ich mal fragen ob man es nachdem man Java kann einfacher hat C/C++ zu lernen. Weil nachdem man Java kann hat man doch schon im allgemeinen programmier Grundkenntnisse oder?
-
Wenn du eine schon Programmiersprache kannst, hilft das immer. Du musst zwar etwas umdenken (Kein GC, Freie Funktionen, ..), aber solange du das hinbekommst ist das kein Problem.
-
Daloon schrieb:
Nun wollte ich mal fragen ob man es nachdem man Java kann einfacher hat C/C++ zu lernen. Weil nachdem man Java kann hat man doch schon im allgemeinen programmier Grundkenntnisse oder?
Programmiergrundkenntnisse sind größtenteils sprachunabhängig. Programmiererfahrung hilft immer, egal in welcher Sprache. Trotzdem ist Java eine völlig andere Sprache als C++. Das erfordert ein Umdenken.
Analogie:
Das ist wie mit natürlichen Sprachen auch. Wenn Du Deutsch denkst und Wörter 1:1 ins Englische übersetzt, wird ein ziemlich beschi**ener Text rauskommen. Du solltest Englisch denken und viele englisch-spezifische Idiome kennen. Unabhängig davon, solltest Du lernen, wie man "spannende Geschichten" aufbaut. Dieses Wissen ist aber eher sprachunabhängig.Das Denken und die Sprache beeinflussen sich gegenseitig. Es ist daher nicht ganz unpraktisch, mehrere Sprachen zu lernen.
Noch etwas: C/C++ ist keine Sprache. Das kommt generell nicht gut an, wenn man die zwei Sprachen in einen Topf schmeißt.
-
Daloon schrieb:
Habe mich jetzt einmal ein bisschen eingelesen und finde es ganz gut mit Java anzufangen, da es einfach viele Vorteile bietet, und halbwegs Einsteigerfreundlich ist. Nun wollte ich mal fragen ob man es nachdem man Java kann einfacher hat C/C++ zu lernen. Weil nachdem man Java kann hat man doch schon im allgemeinen programmier Grundkenntnisse oder?
Erstens gibt es kein C/C++. Das sind beides verschiedene Programmiersprachen. Aber wenn du C++ lernen willst, dann lern C++ und kein Java! Siehe meine Buchempfehlung. Das Buch richtet sich speziell an Leute, die gerade mit dem Programmieren anfangen.
-
rüdiger schrieb:
Erstens gibt es kein C/C++.
es gibt ein Buch mit diesem Titel
-
!rr!rr_. schrieb:
rüdiger schrieb:
Erstens gibt es kein C/C++.
es gibt ein Buch mit diesem Titel
Wahrscheinlich von Jürgen Wolf.
-
FreakY<3Cpp schrieb:
!rr!rr_. schrieb:
rüdiger schrieb:
Erstens gibt es kein C/C++.
es gibt ein Buch mit diesem Titel
Wahrscheinlich von Jürgen Wolf.
Nein, dann könnte er nur halb so viele Bücher verkaufen.