Zum Inhalt springen

Ist C++ in 21 Tagen am Stück zu schaffen?


Empfohlene Beiträge

Geschrieben

Ich habe grobe Kenntnisse in C. Allerdings müssten diese aufgefrischt werden.

Nun habe ich die Möglichkeit eine Diplomarbeit in C++ zu schreiben. Es handelt sich um eine Simulation. Ich müsste da was grafisch darstellen. Dies soll in C++, Qt geschehen.

Da als Ingenieur Programmierwissen nicht schadet, überlege ich mir diese Diplomarbeit zu machen.

Nun zu meiner Frage:

Zunächst müsste ich mir meine C-Kenntnisse auffrischen. Danach würde ich mir mittels eines Buches C++ aneignen (bspw. mit dem Buch C++ in 21 Tagen).

1. Ist C++ in ca. 21 Tagen zu schaffen?

2. Ich hörte mal, dass es besser sei, bspw. an 2 Tagen wöchentlich sich das Programmieren anzueignen. Über einem längeren Zeitraum wäre die Programmiersprache erlernt. So könnten die Kenntnisse besser im Hirn abgespeichert werden.

Diesen längeren Zeitraum habe ich nicht. Ich will alles am Stück machen. Mir meine C-Kenntnisse auffrischen und anschließend mir C++ aneignen. Ist dies alles auch am Stück machbar?

3. Wäre es sinnvoll C links liegen zu lassen und direkt mit C++ anzufangen?

Wie gesagt, ich besitze bereits Kenntnisse in C. Doch die dürften eher mager sein. Ich habe fast alles vergessen.

Programmieren hat mich schon immer fasziniert. Ich bin auch kein Überflieger, eher durchschnittlich. Doch sollte es machbar sein, wäre ich auf jeden Fall motiviert.

Was meint Ihr? Für konstruktive Meinungen bin ich sehr dankbar!

Geschrieben

Ich persönlich halte es für etwas utopisch in 21 Tagen eine Programmiersprache so zu beherrschen, dass Du eine Simulation inkl graphischer Berechnung schreiben kannst. Qt ist ein sehr schönes, aber auch umfangreiches Framework. In C++ und gerade die Verbindung zu Qt musst Du objektorientiert arbeiten, was letztendlich ein andere Abstraktion ist. Zusätzlich halte ich es für essentiell, dass gerade im Bereich Simulation, wo Du letztendlich mathematische Strukturen umsetzen musst, auch Kenntnisse über diverse mathematische Bibliotheken brauchst. Ich denke nicht, dass Du z.B. einen Löser für DGLs oder eine SVD selbst schreiben möchtest. D.h. zu dem reinen lernen der Sprache, kommt das Lernen von den entsprechenden Frameworks, das alles in 21 Tagen auf einem Level zu lernen, auf dem man sicher / vernünftig arbeiten kann, halte ich nicht für möglich.

Geschrieben

Kommt auf deine Vorkentnisse an. Kannst du bereits andere Programmiersprachen, hast du das Konzept "Programmieren" bereits verstanden, kommst du vielleicht bereits mit Objektorientierung klar?

Wenn du diese Fragen mit Ja beantworten kannst und dann noch deine groben C Kenntnisse dazunimmst, kann ich mir vorstellen dass du C++ in 21 Tagen lernen kannst. Es betrifft ja dann eigentlich nur die Syntax, da du den Rest ja bereits verstanden hast.

Was du aber auf keinen Fall schaffen wirst ist, zusätzlich in diesen 21 Tagen auch noch Qt zu lernen. Selbst in 21 Tagen nur Qt zu lernen halt ich für unmöglich. Dafür ist es einfach zu umfangreich.

Geschrieben

Grundsätzlich brauchst du deine Kenntnisse in C nicht erst auffrischen, wenn du ohnehin dann C++ benutzen willst.

Ob das in 21 Tagen zu schaffen ist, kann ein Außenstehender kaum beantworten. Aber wenn du schon Vorkenntnisse hast du die 7 bis 10 Tage für C ersatzlos streichst, kann könntest du dir die schon bekannten Grundsatz-Themen (Variablen, Verzweigungen, Schleifen, etc.) in ein oder zwei Tagen anschauen und hättest dann rund vier Wochen (21+10-2) für die zweite Hälfte des Buches - das dürfte reichen, um es zumindest durchzuarbeiten. Ob du dann schon fähig bist, in dem von dir gewünschten Projekt anzuwenden, steht auf einem anderen Blatt.

Ich hab mit diesen Büchern die Erfahrung gemacht, das die ersten Tage in weniger als der veranschlagten Zeit machbar sind, zum Schluss es aber schon ein wenig aufwendiger wird.

Geschrieben
Ich sage dazu: Teach Yourself Programming in Ten Years

Wenn Du grundsätzlich schon programmieren kannst, ist das vielleicht möglich. Falls Du jedoch abgesehen von den groben Kenntnissen in C nicht viel mehr weißt, halte ich das für utopisch.

An dem Artikel ist sicherlich einiges Wahres dran, aber man braucht nicht 10 Jahre lernen, bis man anfangen kann, etwas sinnvolles zu tun. Denn auch die Arbeit mit einem Projekt zählt ja zum Lernprozess.

Es ist halt wichtig, erst einmal anzufangen, sich dann ständig zu hinterfragen, Seitenblicke zu wagen und nicht nach kurzer Zeit schon größenwahnsinnig zu werden. Aber es ist genau so wichtig, immer wieder "unmöglich schwere" Themen anzugehen, denn wer immer tut, was er kann, wird nie was neues lernen.

Ob aber der Threadersteller mit seinem Vorhaben erfolg hat, weiß ich nicht. Ich habe für mein Abschlussprojekt auch umbedingt eine neue Programmiersprache nutzen wollen, weil das so gut passt. Fazit: Ich finde ein Jahr später immer noch "Unschönheiten" und "Verbesserungsmöglichkeiten", die ich damals einfach gar nicht bedacht und gekannt habe.

Geschrieben

Richtig, der Artikel bezieht sich auf eine Expertise in der Programmierung, nicht darauf, ab wann man etwas Sinnvolles schaffen kann. Aber er macht in seinen Ausführungen trotzdem meinen Standpunkt deutlich.

Aber es ist genau so wichtig, immer wieder "unmöglich schwere" Themen anzugehen, denn wer immer tut, was er kann, wird nie was neues lernen.

Dem stimme ich zu, aber in einer Diplomarbeit sollte man eher nicht zu sehr auf Risiko arbeiten.

Geschrieben

Danke für Eure realistischen Einschätzungen.

Also für C++ bräuchte ich also vielleicht 30-35 Tage (ich gehe mal davon aus). Für Qt vielleicht auch so ca. 30 Tage.

Dann käme ich auf 60-65 Tage. Dann kommen noch Feiertage.

Vorher müsste ich mir noch Linux installieren.

Fazit: Ich könnte erst voraussichtlich im Januar beginnen. Darauf würde es wohl hinauslaufen, wenn ich meine rosa Brille ablege.

Das müsste ich mir also gut überlegen...

Ich rechnete mir bessere Berufschancen aus, wenn aus meinem Zeugnis ersichtlich ist, eine Diplomarbeit in C++, Qt gemacht zu haben.

Diese Kenntnisse könnte ich mir theoretisch auch nach meinem Studium aneignen. Doch dann könnte ich keine Arbeit in dem Bereich nachweisen...

Das wäre schade, da ich mir sogar vorstellen könnte in diesem Bereich zu arbeiten.

Nicht unbedingt einfach. Die Entscheidung kann mir wohl keiner abnehmen. Doch finde ich finde es gut, dass Ihr gewisse Einschätzungen gegeben habt.

Geschrieben

Hi,

ähem, naja, natürlich ist C++ eine tolle Sprache, mit der du auch gute Jobchancen hast. Aber was du vorhast, klingt schon ein bisschen nach einer Milchmädchenrechnung.

Wie kommst du darauf, dass du 60 Tage brauchst? Es geht ja nicht nur darum, die Syntax zu lernen, sondern die Konzepte zu verstehen. Und selbst wenn du die Sprache kannst, und je nachdem, was das für eine "Simulation" werden soll, kannst du ja auch nicht mal eben drauf losprogrammieren, sondern ein umfangreiches Programm muss auch vernünftig geplant werden.

Je nachdem, welche Alterantiven du für die Diplomarbeit hast, würde ich mir das genau überlegen, denn wenn du in 60 Tagen feststellst, dass es doch nichts wird, dürfte die Zeit knapp werden.

Gute Berufschancen hast du auch, wenn du in deiner Freizeit bei Open Source Projekten mitmachst, zumal du da auch das Einlesen in fremden Code üben kannst. Sowas würde ich für sinnvoller halten, zumal der Druck dabei ja auch nicht so groß ist.

Aber natürlich gibt es auch Menschen, die die Herausforderung lieben. Dann viel Spaß beim Lernen. :)

Geschrieben
Hi,

Wie kommst du darauf, dass du 60 Tage brauchst? Es geht ja nicht nur darum, die Syntax zu lernen, sondern die Konzepte zu verstehen. ...

Natürlich geht es in erster Linie darum die Konzepte zu verstehen. Das ist mir klar. Die Syntax allein bringt es nicht ...

Aber ich muss irgendwie planen können, einen groben Zeitrahmen veranschlagen.

Es geht darum, mir die Voraussetzungen für die Diplomarbeit (hinsichtlich C++, Qt), anzueignen. Da dachte ich mir, 60 Tage wären dafür realistisch.

Danach würde ich die Arbeit anmelden (falls der Betreuer mitmacht).

Dann würde es sich erweisen, wie gut ich die Konzepte verstanden habe.

Aber ich denke, dass muss doch machbar sein. Programmieren kann doch keine Hexerei sein.

Die Frage ist nur, ob mein Betreuer bereit ist so lange zu warten bzw. ob ich bereit bin diesen Weg zu gehen. Zumal ich eine andere Arbeit hätte. Da könnte ich sofort anfangen.

Geschrieben

Es geht darum, mir die Voraussetzungen für die Diplomarbeit (hinsichtlich C++, Qt), anzueignen. Da dachte ich mir, 60 Tage wären dafür realistisch.

Ich frage einfach mal danach, da es ja eine Simulation werden soll, ob Du Dir auch darüber Gedanken gemacht hast? Denn bisher würdest Du mit Qt und C++ eben nur eine GUI zusammen bauen können.

Aber ich denke, dass muss doch machbar sein. Programmieren kann doch keine Hexerei sein.

Nein ist es auch nicht, nur um später ein lauffähiges System, das ggf auch erweitert werden kann, zu erstellen, gehören mehr als 60 Tage.

Geschrieben

@ flashpixx

Also ich habe mich noch einmal erkundigt. Die Arbeit soll gar nicht sooo anspruchsvoll sein. Sie wird über eine GUI hinausgehen, aber angeblich nicht viel.

Aber der Vorschlag von Carstenj später in der Freizeit mir das Programmieren beizubringen und an Open Source-Projekte teilzunehmen ist auch nicht schlecht...

Kommende Woche werde ich mich entscheiden...

Geschrieben
@ flashpixx

Also ich habe mich noch einmal erkundigt. Die Arbeit soll gar nicht sooo anspruchsvoll sein. Sie wird über eine GUI hinausgehen, aber angeblich nicht viel.

Ich beziehe mich mal auf Dein erstes Posting, in dem Du ja geschrieben hattest, dass Du eine "Simulation" machst. Ich meine eine GUI ist nun mal keine Simulation, d.h. in meinen Augen ist eine GUI zwar nett und kann ein nettes Addon zu einer Simulation sein, aber eine "GUI mit nen bisschen mehr" als Simulation zu verkaufen, finde ich irgendwie sehr seltsam.

Also entweder machst Du eine GUI oder Du machst eine Simulation. Wenn Simulation brauchst Du definitiv kein Qt, bei einer GUI wäre es eine gutes Framework. Wenn die Simulation steht, kann man sicher eine GUI mit Qt anbauen, aber das wäre ja dann wohl nicht der Schwerpunkt der Arbeit. Als Ingenieur wäre in meinen Augen der Schwerpunkt auf Simulation zu legen, wobei Du da definitiv andere Bibliotheken verwenden kannst, die man aber nicht in 20 oder auch 60 Tagen so erlernen kann, dass die Simulation brauchbare Ergebnisse liefert.

Geschrieben

Ich habe schon sehr viele Leute gesehen, die ohne Zeitlimit C++ lernen wollten und meist nach wenigen Wochen oder spätestens ein paar Monaten verzweifelt aufgegeben haben. Darunter waren viele Uni-Abbrecher (sogar einer mit mehrjährigem Informatik-Studium, was auf mich irgendwie absurd wirkte). Viele können sich das notwendige abstrakte Denken - wieso auch immer - nicht aneignen und tun sich wirklich schwer, sobald es über die Grundprinzipien der reinen Syntax hinaus geht, welche den meisten aber auch schon ein unüberwindbares Hindernis zu sein scheint.

Wenn man sich trotzdem durchboxt, die geistige Flexibilität mitbringt und v.a. den Willen und das Interesse am Thema hat, denke ich, daß fast jeder Programmieren lernen kann bis auf ein paar extrem Lernresistente. Die dafür aufzubringende Zeitspanne kann sich bei jedem einzelnen stark unterscheiden von wenigen Monaten auf viele Jahre. Dein Vorhaben mit 21 Tagen (ich hab das Buch auch) ist ohne Vorkenntnisse jedoch ziemlich unrealistisch für das, was Du offensichtlich vor hast - es sei denn Du zählst zu den extrem seltenen Leuten, die das tatsächlich schaffen. Es ist nicht unmöglich, aber sehr unwahrscheinlich was Du vor hast. Ohne Dich jedoch persönlich mit Deinen Voraussetzungen zu kennen (Physikstudium heißt noch gar nichts wenn es ums Programmieren geht), will ich Dich jedoch nicht vollständig davon ausschließen es zu schaffen.

Ein Programmierer ist wie ein alter Käse, er sollte ein wenig in Projekten Reifen, dann entwickelt er sich weiter. :D

Ich mache anbei derzeit auch eine Software für den Bereich Physik eines sehr großen Insituts. Mir wurde der Auftrag erteilt, weil nach Aussage der Bereichssleiter die vor Ort verfügbaren Physiker mit Programmierkenntnissen nach deren Erfahrungen sich für deren Anforderungen kaum eigenen. Was das bedeutet kann ich mir nur denken, auch wenn ich es nicht so recht glauben kann, daß die wirklich alle sooo schlecht sind. Dabei halte ich mich auch eher für einen recht durchschnittlichen Entwickler.

Geschrieben

@flashpixx

Ich zitiere: "... es soll eine grafische Benutzeroberfläche (GUI) erstellt werden, die es ermöglicht, eine Produktionsanlage virtuell am PC zu modellieren und mögliche Bewegungsabläufe zu simulieren.

.... Ziel dieser Arbeit ist die Erstellung eines geeigneten Konzepts für die Implementierung einer solchen grafischen Benutzeroberfläche, die Umsetzung und der Test. ... Erstellung von Templates einzelner Komponente, korrekte Darstellung des Materialflusses entsprechend der Ereignisse, die in der Anlage auftreten."

Diese GUI soll in Qt erstellt werden und eine Simulation ermöglichen. Sie soll implementiert werden ...

@Crush

Ja, ich finde es mittlerweile auch nicht mehr realistisch in 21 Tagen C++ zu schaffen. Deswegen dachte ich eher so an 60 Tage für C++ und Qt.

Selbst da weiß ich nicht, ob ich zu denen gehöre welche länger brauchen oder ob ich zu denen gehöre die schneller sind. Ich schätze mich eher durchschnittlich ein. Aber diese Unsicherheit ist problematisch.

Geschrieben

es soll eine grafische Benutzeroberfläche (GUI) erstellt werden, die es ermöglicht, eine Produktionsanlage virtuell am PC zu modellieren und mögliche Bewegungsabläufe zu simulieren.

Ich denke hier musst Du Dich mit dem Konzept der OOP sicher auskennen, denn sonst wirst Du massiv Probleme im Design bekommen. Weiterhin würde ich auch die entsprechende Templateprogrammierung sicher als Voraussetzung ansehen. Templates im Sinne, dass man dynamische Scripte einfügen kann, gehen nicht direkt unter C++, d.h. entweder musst Du über entsprechende Bibliotheken eine Schnittstelle zur Verfügung stellen oder eben einen eigenen Parser für "Scripte" entwickeln.

Was hier wirklich unklar bleibt, ist "Bewegungsabläufe simulieren", denn um ein entsprechendes Rendering ggf in Echtzeit in Qt zu realisieren sind Kenntnisse über die Computergraphik / Bildverarbeitung für eine flüssige Darstellung unerlässlich.

Rein fachlich würde ich sagen, Du kommst hier in die Netzflußplanung rein,

jedenfalls klingt es so. Was ich mir als Kernfrage stelle, wie umfangreich soll so etwas werden, denn nur eine GUI erstellen ist es ja nicht, sondern dahinter soll Funktionalität liegen und es soll ein / mehrere Prozess/e dargestellt werden. Je nach Datenmenge wirst Du mit einem naiven Ansatz nicht weit kommen, wobei ich da schon eher tendenziell auch über Datenbankanbindung nachdenken würde.

Geschrieben (bearbeitet)

Ich möchte nach der Beschreibung der Software (hab ich wohl übersprungen) mal behaupten, daß man selbst als eingefleischter C++-Entwickler an so einem doch recht komplexen Projekt problemlos 12-24 Monate verbringen kann. Das Modellieren, Simulieren, Parsen usw. schüttelt keiner mal kurz so aus dem Ärmel. Kernfusion, ich glaube Du überschätzt Deine Fähigkeiten sehr. Ich habe schon so Software zur dreidimensionalen Planung und Simulation von Produktionsanlagen gesehen (Dassault) und die haben sicher Teams von 50 Leuten oder mehr über mehrere Jahre hinweg beschäftigt um den ersten Release machen zu können. Manche Menschen haben eine unrealistische Sicht auf den (Zeit-)Aufwand und die Komplexität hinsichtlich Softwareprojekte. Aber das habe ich anderswo auch schon häufiger mitbekommen, wie sich Leute in dieser Hinsicht irren.

Bearbeitet von Crush
Geschrieben

Ich muss mich hier eindeutig Crush anschließen. Ich arbeite schon 10 Jahre mit C++ und jetzt 2 Jahre mit Qt und so ein Projekt ohne C++ und Qt-Erfahrung ist sehr gewagt. Es lässt sich vielleicht in einem Semester machen (je nach Abstraktionsgrad und Komplexität der Produktionsanlagen und den Bewegungsabläufen), aber für jemanden der mit C++ und Qt noch nichts gemacht hat würde ich sagen es wird wirklich sehr schwer und nur mit großen Qualitätseinbußen überhaupt machbar.

Und du willst ja sicher auch eine qualitativ hochwertige Arbeit abliefern. Ich denke bei der Bewerbung ist ein "langweiliges" Thema mit ner 1 auch deutlich besser als z.B. dieses mit einer 3.

Geschrieben

Also falls es Euch interessiert: Ich habe mich für die Diplomarbeit ohne Programmierkentnisse entschieden.

Eure konstruktive Meinungen erleichterten mir diese Entscheidung!

Dennoch: ich will das Programmieren nicht aufgeben. Nach meiner Diplomarbeit will ich (in meiner Freizeit) mir das Programmieren aneignen. Vielleicht, wie Carstenj sagte, indem ich bei Open Source Projekten mitmache.

Dann ist auch der Druck nicht so groß. Läuft was schief, hat dies keine Konsequenzen.

Ich werde mir aber C++ aneignen. Oder vielleicht C#.

Danke für Eure Antworten!

Geschrieben

Ich werde mir aber C++ aneignen. Oder vielleicht C#.

Ich denke, was Du da konkret nimmst kommt auf das Projekt an, an dem Du arbeiten willst. Ich persönlich (meine Meinung) würde C++ nehmen und eben direkt in cross-plattform Systeme einsteigen, so sollte Dein Code dann auch auf den gängigsten Plattformen laufen. Wenn Du MS only arbeiten willst, nimm C#

Geschrieben
... Ich persönlich (meine Meinung) würde C++ nehmen und eben direkt in cross-plattform Systeme einsteigen, so sollte Dein Code dann auch auf den gängigsten Plattformen laufen. ...

Mal gucken! Bis Mai 2011 werde ich voraussichtlich mit meiner Diplomarbeit zu tun haben.

Erst danach werde ich Zeit haben zu programmieren (auch wenn ich es momentan kaum erwarten kann anzufangen). Hoffentlich gibt es dann noch dieses Forum. :) Aber bis dahin bin ich wohl in Vergessenheit geraten!

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...