Webdesign neben C++ machen

Ich würde schon sagen, C++ ist schwieriger aufgrund seines ernormen Umfangs.
Ich finde JS auch schon recht umfangreich. Es sind extrem viele APIs dazugekommen und das gute alte DOM ist ebenfalls eine Sache für sich. Und dann gibt es noch viele Fallstricke

Code:
// der interne Nummerntyp ist IEEE 754 DP floating point
console.log(0.3 - 0.1); // 0.19999999999999998
 
palace4d schrieb:
Code:
// der interne Nummerntyp ist IEEE 754 DP floating point
console.log(0.3 - 0.1); // 0.19999999999999998

Das ist in jeder Sprache so bei Fließkommazahlen und nicht JS-spezifisch.

JS hat dafür ganz andere Sachen drauf:

Code:
[] + [] == ""
[] + {} == object
{} + [] ==  0
{} + {} == NaN

Logisch, oder?

JS bewegt sich auf einem höheren Abstraktionsniveau als C++ und sollte auf dem Papier einfacher verständlich sein. Leider herrscht an manchen Stellen doch eher Willkür, was die ganze Sache unnötig verkompliziert.
 
Zuletzt bearbeitet:
Wie ist eig. das Buch C++ für Spieleprogrammierer? Habs mir letztens gezogen, ist in einer relativ einfachen Sprache geschrieben, anschaulich strukturiert. Taugt das auch inhaltlich?
 
Alle zwei Minuten kommst du mit einem neuen Buch an und fragst, ob das gut ist.

Wie wäre es, wenn du es einfach mal liest? Welches Buch für dich das beste ist, kann nur eine Person entscheiden.
 
Bezüglich JS kann ich nur dieses Video empfehlen, geht zwar erstmal um Ruby aber sehr interessant!
(unten links ist der Downloadbutton, wers lieber lesen will kann den Screencast anschauen)
https://www.destroyallsoftware.com/talks/wat
 
Ja, "wat" ist genial ^^

Besonders geil ist der Teil an dem gezeigt wird, dass versch. Ergebnisse beim Tauschen der Operanden einer Addition rauskommen ^^
 
NaNNaNNaNNaNNaNNaNNaN Batman ^^
 
1337hAx' schrieb:
Mal ein paar kurze Fragen:

1. Muss ich alle Escape-Sequenzen kennen?
2. Kann mir einer nochmal kurz die Formatierung mit <iomanip> erklären?
3. Wie funktioniert dieses z.B. string (75, '-')
cout << "bla bla" ... gedöns?
1. Nö. Für sowas gibt es Referenzen wie cppreference.com
2./3. Eine etwas spezifischere Frage wäre hilfreich.

Zu 3. mal in Blaue hinein geraten: string variablenname(75, '-'); bedeutet, das ein String konstruiert wird, der 75 Zeichen lang ist, und zwar aus 75 mal '-' besteht. Ist im übrigend der gleiche Konstruktur wie bei anderen Container auch: vector<int>(75, 3) würde einen Vektor der 75 Elementen besteht, wobei jedes Element 3 ist.
Jedenfalls ist der so konstruierte string, genau wie jeder andere string auch per cout << variablename auf die Konsole ausgebbar.

palace4d schrieb:
Ich finde JS auch schon recht umfangreich. Es sind extrem viele APIs dazugekommen und das gute alte DOM ist ebenfalls eine Sache für sich. Und dann gibt es noch viele Fallstricke
Den Umfang der APIs würde ich nicht als maßgeblich für die Komplexität einer Programmiersprache ansehen (dann müssten ja Java und C# aufgrund der riesigen Standardbibliotheken die komplexesten/schwierigsten Programmiersprachen der Welt sein...). Der Umfang der C++ Standardbibliothek ist zwar eher klein, aber um entsprechendes umzusetzen, linkt man halt die passenden Bibliotheken hinzu. Und DOM: Quasi in jeder Sprache gleich. Ist ja auch standarisiert... Davon abgesehen finde ich jetzt DOM nicht schrecklich komplex, eine API unter vielen.

Und: Gräßliche Programmiersprache != komplex. Ich finde es verdammt häßlich mit JavaScript zu programmieren, auch schon wegen der eher mäßgen Tools. Das ändert aber nichts daran, als wie umfangreich ich die Sprache empfinde. Und da ist JavaScript ziemlich überschaubar. Ich finde es auch häßlicher mit C als mit C++ zu programmieren, das macht C jetzt aber auch nicht umfangreicher gegenüber C++. C++ ist recht einfach anzuwenden, nur schwer zu erlernen. Bei vielen Progammiersprachen ist es andersherum.

Wer seine zumindestens seine C++ Basis-Kenntnisse prüfen will, der kann ja sich mal unter cppquiz.org ausprobieren. Sind alles nur sehr kurze Programme und macht kein Gebrauch von Templates. Aber der ein oder andere könnte über zahlreiche Regeln vermeintlich trivialer Programme überrascht sein.
 
Also mit dem Web Fundamentals Kurs von Codecadamy bin ich jetzt durch!
Mit JS bin ich nun auch fast fertig, die Frage ist nur: Wie mache ich danach weiter?
Das Buch C++ für Spieleprogrammierer ist btw 1A, komme endlich mal voran. Nach Kontrollstrukturen endlich mal Funktionen.
Ich glaube nach JS mache ich noch PHP (auch bei Codecadamy) und möchte mir mal ein paar "advanced techniques" Richtung Webprogramming anschauen, auch mal Richtung Design gehen.
Da ich mich in letzter Zeit viel mit Android beschäftigt habe, wäre Java auch ne Option für nebenbei, oder nachher.

Also: Wie kann ich jetzt am besten weitermachen?
 
Zuletzt bearbeitet:
Wenn du meinst, du hast die notwendigen Basics verstanden, dann kannst du ja mal was lernen ohne dich durch vorgekaute Tutorials zu lesen. Das ist nämlich für den Anfang ganz nett, aber irgendwann musst du dich vom Rockzipfel lösen und dir Sachen beibiegen ohne solche Hilfen. Sie kratzen nämlich nur an der Oberfläche. Danach geht es ans Doku lesen für das, was man gerade braucht.

Wenn du dich in Richtung JS weiterentwickeln willst, arbeite dich doch mal in AngularJS o.ä. ein.

Wenn du dich in Webentwicklung mit Java einarbeiten willst, schau dir Spring MVC an. Für Android kann ich dir keine brauchbaren Tipps geben. Ist nicht so meine Baustelle. Da finde ich Webanwendungen mit responsive design interessanter. Das wäre auch was für dich, wenn es dich in Richtung Design zieht.
 
Kann man das ganze nich kombinieren? Erstmal sollte ich mich meinem Buch fertig werde, dann geht's ans eingemachte.

Kurzes Update:

Es geht mit C++ gewaltig voran!
Das andere Buch (für Spieleprogrammierer) ist vieeel besser!
Mittlerweile bin ich auch schon fast wieder durch, und basics sollte ich auf jeden Fall draufhaben.
Kapitel 8 von 13 bin ich grade (Wobei 13 kein richtiges Kapitel ist).

Die Praktikums-Menschen haben mich anfangs gefragt, was mir denn so am programmieren Spaß macht, bzw. was ich später damit machen möchte. Da habe ich gesagt: Spiele, und vielleicht noch Mathe.
Daraufhin erwiderten die , ich solle mich doch auf Datenstrukturen und Algorithmen "spezialisieren". Ich weiß, dass ich noch nicht ganz fertig mit dem Buch bin, trotzdem möchte ich jetzt schon ein bisschen vorausplanen und eure gescheite Meinung einholen!

MfG 1337hAx'
 
Zuletzt bearbeitet:
Schonmal ein Spiel im Laden gesehen und dir gedacht Warum brauche ich für dieses Spiel das aussieht wie von 2006 Quad-SLI und eine 256-Core CPU? (Konkrete Angaben könnten individuell abweichen)

Besonders bei Spielen ist Performance sehr wichtig. Der Anwender möchte nicht, dass seine Framerate in den Keller abstürzt, wenn ihm gerade jemand ins Fadenkreuz läuft undsoweiterundsofort. Deshalb ist eine tiefgreifende Kenntnis von Algorithmen, die die speziellen Anwendungsfälle betreffen sehr wichtig. Die Verwendung der richtigen Datenstruktur kann den Unterschied von Tag und Nacht ausmachen. Sieh dir John Carmack an. Er hat sich durch Berge Literatur gegraben, um das Spiel Doom auf damaligen PCs lauffähig zu machen. BSP wurde vorher nie für diese Fälle benutzt und das Ergebnis war seiner Zeit Jahre voraus. Auf soetwas muss man sich als Spieleentwickler einstellen und deshalb kann ich sagen: Die Empfehlung ist nicht verkehrt.
 
Sinn und Zweck davon sind mir absolut bewusst und interessieren mich auch wirklich. Die Frage ist eben nur, wie es dann weiter gehen soll. Neues Buch anfangen, oder lieber als quer irgendwo durchlesen? Ich werde mich auch bald nochmal mit den Leuten auseinandersetzen und fragen, was ich dort konkret in den 2 Wochen machen soll.
 
Wenn du die Grundlagen beherrschst, wie du sagst, wäre meine Empfehlung, dir ein Problem zu nehmen, das du interessant findest und zu sehen, wie du es allein gelöst bekommst. Übungen in einem Buch hinzubekommen sind eine Sache, aber sie können einen dazu verleiten, aufgrund einer zu engen Sicht, sich selbst falsch einzuschätzen. Die Stützräder mal für einen Probelauf beiseite zu legen, hilft zu sehen, was man wirklich kann und wo man noch investieren muss.

Zum Üben von Algorithmen und Datenstrukturen gibt es massenhaft Beispiele. Sortieralgorithmen sind so das erste, was einem bei dem Wort Algorithmus einfällt. Die könnte man heranziehen, um das Problem zu lösen, einen bestimmten Eintrag in einer Liste schnell zu finden. Zum üben von Datenstrukturen bietet sich für das selbe Problem ein binärer Suchbaum an. Das ist auch für Spieleprogrammierung sinnvoll, aber wenn du ein Problem hören willst, dass einen offensichtlicheren Zusammenhang hat, wäre Wegfindung etwas, das sich anzusehen lohnt. Es gibt etliche Algorithmen zum Erzeugen eines Labyrinths und um den Weg hindurch zu finden. Für weniger spezielle Umgebungen gibt es Dinge wie A* und Dijkstra. Undsoweiterundsofort. Andere (simple) Probleme, die für dich relevant sind und nicht ausdrücklich in deinem Buch behandelt werden, fallen dir (hoffentlich) zuhauf ein. Setz dich dran!

Und wenn das dein erstes Mal ist, dass du dein Wissen ohne Buch an einem nicht trivialen Problem messen willst, wunder dich nicht, wenn es nicht auf anhieb klappt. Das ist eher zu erwarten. Wichtig ist, einen klaren Blick dafür zu haben, was genau der Grund dafür ist, dass du ins stocken kommst und du dir gezielt das zusätzliche Wissen aneignest, das dir weiter hilft.
 
Und ganz wichtig: Selber programmieren und nicht von Google kopieren! ;)
 
Heute war der erste Tag Praktikum, hui :) Zwischen Beruf und Schule sind ja Welten :D
Jetzt darf ich mit Qt schöne GUIs proggen ^^
 
Hallo @1337hAx'

Wenn Du wirklich Mathe machen möchtest, dann prüfe mal, ob nicht ein wirkliches Mathe-Programmierpaket das richtige wäre. Ich meine damit das kommerzielle (und teure) Matlab, oder die beiden Freeware Scilab (www.siclab.org) oder Octave (https://www.gnu.org/software/octave/).

Ich selber verwende seit einiger Zeit Scilab. Brauchte zwar Geduld, da mein Denken in for-Loops zurückgeblieben war, und bin jetzt aber sehr begeistert. Damit Du das einordnen kannst:
- Scilab ist extrem stark für auch wirklich komplexe Mathe, da Du mit einer Programmzeile eine sehr grosse Auswahl an Mathe-Algorithmen hast wie nicht-lineare Gleichungssysteme, Fourrier-Analysen, Systemanalysen, schnelle iterative Gleichungssystem-Löser, sparse-Matrix-Routinen, Statistik, curve fitting etcetc., die algorithmisch optimiert sind, und die Du Dir in C/C++ mühsam zusammen suchen musst.
- Den gross Nutzen aus Scilab holst Du Dir, wenn Du mit elemntarer Vektor- oder genauer mit Matrix-Algebra vertraut bist. Das spart Dir Dutzende von for-Loops. Natürlich kannst Du in Scilab auch im C-Stil programmieren.
- Scilab ist ein Interpreter, d.h. wenn Du wirklich grosse Arrays verarbeiten willst, wird's mal langsamer als C. Dazu gibt's zwei Auswege (die ich aber noch nicht selber getestet habe): (1.) Scilab kann C- oder Fortran-Prozeduren einbauen, und (2) Scilab kann vom Programm einen C-Code generieren, den Du anschliessend compilieren kannst.

Wenn Dich ein moderner Alleskönner interessiert, dann solltest Du Dich mal über Python (www.python.org) ins Bild setzen. Python hat in Mathe was zu bieten, als auch im Web-Kontext. Wie Scilab, hat auch Python grosse Zuwachsraten an Nutzern.

Damit Du mich und mein Geschreibe einordnen kannst:
- ich komme von der Mathe-Seite her und habe 3-dimensionale computational fluid dynamics (incl. Grafik) - also Windströmungen überm Alpenraum etc - programmiert. Das sind grosse Datenmengen mit grossem Bedarf an Rechenleistung.
- ich habe dabei tausende Zeilen an Fortran, Pascal, C, C++ verprogrammiert. Persönlich finde ich es ein grosse Erleichterung, nun mit einen modernen Tool wie Scilab programmieren zu können, wo ich auf drei Seiten erledigen kann, wozu früher deren 100 nicht reichten. Deine Ausführungen zu C++ schienen mir typisch (im C-Detail-Kram eben....), und erzeugten mir kein grosses Heimweh...
- ich bin auf dieses Forum gestossen, weil (a) ein Web-Projekt mir in Gedanken vorschwebt, zu der ich die Technologie suche, und (b) ich meinen Herrn Junior (noch im Schüler-Alter) ins Spiele-machen einführen will. Dazu dann ein Frage an alle, die ich in einem anschliessenden Eintrag formuliere.

Noch eine Fragen an Dich (1337hAx'): Ein Buch über die Spielprogrammierung in C++ scheint Dir nun Spass zu machen. Welches war nun das ?

LG ysbär
 
Der Einstig in Programmierung ist immer trocken, da du überhaupt erst mal eine Basis brauchst mit der du etwas anfangen kannst.
Aber ich lese bei dir Dinge wie "habe mir beibringen lassen", "öde" usw.

C++ als Einstiegssprache ist nicht ohne. Die Kompiler werden dir nicht so viel über deine Fehler sagen wie sie es in Java tun - dort weißt du immer wo der Fehler steckt, ohne großartig tools zu nutzen. Wenn du Web Zeug machen willst, dann kommst um PHP nicht herum - und selbst damit würde dir C/C++ leichter fallen da eh alles objektorientiert ist.
 
Möchte hier einwerfen, dass das Konstrukt "C/C++" etwa so sinnvoll ist, als würde man "Apfel/Toaster" schreiben.

Dann noch zu "ist eh alles objektorientiert": C gibt dem Benutzer keine sofort einsetzbare Lösung für objektorientierte Programmierung mit. Zum Beispiel gibt es keine Klassen. Ein Objektsystem müsste man sich erst selbst basteln und wenn das auch manchmal sinnvoll sein mag (siehe z.B. das Objektsystem in Linux, das in C geschrieben ist), ist OOP nicht das Werkzeug der ersten Wahl beim Programmieren im C.
 
hallo @ysbär

Mit dem Buch C++ für Spieleprogrammierer bin ich eig. ganz gut zurechtgekommen.
hier nochmal der Amazon link.

Nach einer guten Einführung in GUIs mit Qt beim Praktikum, darf ich jetzt sogar richtig Finanzmathematik machen :D :D :D
Okay, eigentlich war es bisher nur eine simple Zinseszins-Funktion, aber ich habe es geschafft, sie beim ersten (!) mal builden, lauffähig zu machen! Das hat auch bisher ganz gut mit Standardklassen wie cmath geklappt. Sowas wie Black-Scholes ist noch nicht drinne :p
Gibt es nicht neben Matlab noch Wolfram Mathematica?

Was mich ja persönlich seit neustem interessiert sind Körper im Raum, wie man diese berechnet, generiert, etc..
Da muss ich mich sowieso nochmal einlesen.. Als Schüler hab ich jetzt nicht die über skillz drauf, deswegen ist erstmal Bücher lesen (Uni-Schinken) angesagt. Aber ich habe einen coolen Primzahlen Algorithmus geschrieben ^^ der geht bis 1.000.000.000 (höher hab ich noch nicht getestet)
 
Zurück
Oben