Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

01.07.2016, 13:56

Tutorials über Programmierung mit C++ unter Windows

Hi,
wenn du Anfänger bist was das Programmieren angeht und die Grundlagen lernen möchtest, schau doch mal hier vorbei.
https://m.youtube.com/channel/UCJKDUmPfV5Lni4ddIlhYE7g
Würde mich freuen :)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

01.07.2016, 14:16

Gefährlich. Programmierst du schon lange? Es wirkt ein wenig so als wärst du selbst noch nicht all zu lange dabei. Komischerweise haben vor allem Anfänger oft den Drang ihr gelerntes weiter zu geben. Das ist auch nicht verwerflich, dabei kann aber schnell Halbwissen weiter gegeben werden. Habe mir zum Beispiel mal dein erstes Video angesehen. Da tust du vieles was du nicht erklärst. Direkt am Anfang sagst du dass du iostream inkludierst, sagst aber nicht was das bedeutet und wofür man iostream nun benötigt. Bei using namespace wäre es vielleicht sinnvoller wenn du es erst weg lassen würdest und dann später zeigst dass man using namespace verwenden kann um eben den Namensraum nicht jedes mal dazu zu schreiben. Beim Rest kommen auch immer mal wieder kleinere Fehler hinzu. Zum Beispiel ist int main nicht der Einstieg des Compilers, der übersetzt dein Programm nur und macht das allgemein vermutlich immer von vorne nach hinten, egal wo nun Main steht oder ob Main überhaupt vorhanden ist. Es ist der Einstiegspunkt des Programmes bei der Ausführung. Da ist das Programm dann schon übersetzt. Interessant wäre auch zu sagen dass es sich um eine Funktion handelt, vielleicht mit dem Hinweis dass du auf Funktionen in einem späteren Tutorial genauer eingehst. Dann sprichst du von Operatoren, wobei ein Anfänger unter Umständen gar nicht weiß was es damit auf sich hat. Das ist auch nicht besonders schön. Es gibt noch viele andere Punkte die nicht wirklich optimal sind. So wie es grad ist denke ich dass es keinem Anfänger wirklich weiter hilft. Man benötigt schon ein wenig Wissen um dir folgen zu können, auch wenn es sicherlich nicht viel ist. Wenn man das Wissen aber schon hat dann bringt das Tutorial vermutlich nichts neues mit sich.
Ich würde das ganze vielleicht noch mal überarbeiten. Überleg dir vorher wer genau deine Zielgruppe ist. Wenn du jemanden kennst der zu dieser Zielgruppe gehört dann kannst du ihn ja direkt als Testperson nehmen. Er soll sich deine Videos ansehen und dir hinterher sagen wie er es fand und ob es ihm weiter geholfen hat.
Wäre ja schade wenn du hier arbeit investierst und es am Ende für die Katz ist.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

02.07.2016, 09:36

Also, erstmal vielen Dank für dein Feedback. Aber nochmal eine Frage: Woran genau machst du jetzt fest, ob es sich mit mir um einen Anfänger handelt? Etwa daran, dass in meinem, wie du ja schon festgestellt hast, ERSTEM Video noch ein paar Fehler auftauchen, denen ich mir im Übrigen durchaus bewusst bin und die ich im zweiten Video auch versucht habe zu beheben? Oder daran, dass ich hier im Forum eben noch den Rang "Frischling" habe? Ich möchte dich nur darauf hinweisen, dass man im ersten Video natürlich noch ein paar Fehler macht. Nicht alles kann sofort perfekt klappen. Vielleicht schaust du dir auch mein zweites Video mal an, denn ich denke, dass es wenig Sinn macht, die Qualität eines Programmierers nur an seinem ersten Video und an seinem Rang in irgendeinem Forum festzumachen. Ich bin hier nun mal noch "Frischling" , weil ich einfach noch nicht so viele Beiträge geschrieben habe. Das heißt aber ja nicht gleichzeitig, dass ich noch ein Anfänger der Programmierung bin. Genauso wenig wie die Tatsache, dass in dem ersten Video noch Fehler sind.
Ich hoffe, ich konnte erklären, dass mein Rang hier und die Fehler in meinem Video wirklich nichts mit meinen Kenntnissen in der Programmierung zu tun haben.
LG FMRS

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

02.07.2016, 09:48

Oder daran, dass ich hier im Forum eben noch den Rang "Frischling" habe?

Das sicher nicht. Als Moderator weiß er auch, dass man als "Frischling" startet.

Ich habe auch mal kurz reingeschaut und gesehen, dass du Dinge wie #define SPIELFELD_HOEHE 10 machst. Das ist furchtbar und sollte niemandem so beigebracht werden, denn für sowas gibt es Konstanten.

Dann noch ein Tipp: Stell die Schriftgröße hoch, sonst kann man auf kleineren Displays kaum was erkennen.

5

02.07.2016, 10:37

Aber mit #define erzeugt man Konstanten, oder nicht?

Also zumindest habe ich das so gelernt. :huh: Aber danke für den Tipp mit der Schriftgröße.

LG FMRS

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

02.07.2016, 10:52

Nein, #define definiert ein Makro, das der Präprozessor durch reine Textersetzung verarbeitet. Konstanten definiert man mit const, wodurch sie dann auch einen Typ haben, zudem kann man Referenzen und Pointer auf sie erzeugen. Probier mal, mit &SPIELFELD_HOEHE die Adresse deiner "Konstanten" zu erfragen - es geht nicht.

fraggr

unregistriert

7

02.07.2016, 10:52

Vielleicht schaust du dir auch mein zweites Video mal an, denn ich denke, dass es wenig Sinn macht, die Qualität eines Programmierers nur an seinem ersten Video und an seinem Rang in irgendeinem Forum festzumachen.

Ich habs gemacht und dir eine kleine Errata erstellt:
  1. Du beschreibst Deklaration und Definition nicht korrekt.Erklärung in der MSDN

  2. ...speichert aber auch "Hashtag".
    Das Symbol heißt Raute, offenbar auch bekannt als Doppelkreuz, aber bestimmt nicht "Hashtag"!

  3. Wenn man in char Zahlen speichern will, muss man sie in Hochkommata angeben.
    Das ist teilweise richtig, dann nimmt die Variable den ASCII-Code der entsprechenden Zahl auf und ist damit ein Zeichen. Man kann in einem char aber auch "normale" Zahlen wie in int speichern, solange sie innerhalb des Wertebereichs liegen.

  4. Int ist 4 Byte groß, kann also die Zahlen von -127 bis 128 speichern.
    Int mit char verwechselt und der Wertebereich ist -128 bis 127.

  5. In C++ wird ein Komma durch einen Punkt gekennzeichnet, weil das Komma eine andere Bedeutung hat.
    Zweifelhafte Begründung. Der wesentliche Faktor dürfte sein, dass C++ aus dem englischen Sprachraum stammt und dort für das Komma der Punkt und umgekehrt verwendet wird.

  6. Double bzw. Dooble-Werte, je nachdem wie mans aussprechen will.
    Die richtige Aussprache ist Double.

  7. Double-Werte werden am Ende mit einem "d" gekennzeichnet.
    Double-Werte ("Literale", also konstante Werte, die in Form von Ziffern im Quellcode stehen) tragen keinen Suffix.

  8. Mit Semikolon beendest du den Befehl.
    Ja, aber eigentlich spricht man hierbei von Ausdrücken.

  9. Alles wird verbunden durch Kleiner-Als-Operatoren.
    Man nennt ihn Ausgabeoperator und verwechselt ihn typischerweise mit dem linken Bitshift.

  10. Variable1 + Variable2 = Variable1;
    Hast du ja selbst gemerkt, jedoch:

  11. Du wiederholst den vorherigen Fehler nochmal.
    Falsch geschnitten?

  12. Variable1 = Variable2 = 100; - Dann haben beide Variablen den Wert 100.
    Nein, dabei hattest du es zuvor schon richtig gesagt!

  13. "signed int" kann nur noch Minuswerte annehmen.
    Das ist falsch, signed int ist einfach nur int.

#define SPIELFELD_HOEHE 10 [...] ist furchtbar und sollte niemandem so beigebracht werden, denn für sowas gibt es Konstanten.
Hallo Bjarne, vielleicht könnte man es doch so beibringen, um dadurch die Verwendung von Konstanten zu motivieren. Begegnen wird man den #defines über kurz oder lang nämlich garantiert.


Aber mit #define erzeugt man Konstanten, oder nicht?
Er meint Konstanten mit dem C++ Schlüsselwort const, die der Typprüfung des Compilers unterliegen. In diesem Mikrocontroller.net-Thread werden die Unterschiede ausführlich diskutiert.

Jonathan

Community-Fossil

  • Private Nachricht senden

8

02.07.2016, 11:10

Zitat

Aber mit #define erzeugt man Konstanten, oder nicht?

Also zumindest habe ich das so gelernt. :huh: Aber danke für den Tipp mit der Schriftgröße.

LG FMRS


Jaaaa, es gab mal eine Zeit, wo das viele Leute gerne gemacht haben. Es gibt da aber gewisse Probleme (die meistens erst später bei komplexeren Programmen auftreten) und deshalb benutzen jetzt alle coolen Kinder die neue Methode, die weniger Probleme macht (const int LevelCap = 10; statt #define LevelCap 10).

Das Problem ist aber, dass man das als Anfänger natürlich nicht weiß, und wenn es jemand einem anders erzählt, glaubt man das natürlich. Generell ist es also ein Problem, wenn man von Leuten lernt, die es selber auch nicht richtig können. Und bei C++ geht richtig können halt irgendwann nach 10 Jahren los. Vorausgesetzt, man hat die technischen Entwicklungen der letzten 10 Jahre aktiv mitverfolgt.

Ansonsten empfinde ich Schorschs Meinung schon als ziemlich gerechtfertigt. Ich meine, du würdest gerne andere weiter bringen, was ein nobles Ziel ist, aber du solltest dich nicht wundern, wenn dein Kanal nicht wahnsinnig erfolgreich wird.
Das liegt zu allererst schon an dem Format. Niemals im Leben würde ich irgendjemanden ein Video zum Programmieren lernen empfehlen. Videos sind inhärent unübersichtlich, man hat keine Möglichkeit, gezielt zu einer Stelle zu springen, weil alles gleich aussieht und sich gleich anhört. Und gerade bei komplizierten Themen, braucht man seine eigene Geschwindigkeit, in einem Buch kann man innehalten und zurückblättern, man kann Absätze mehrfach lesen, Dinge unterstreichen.
Generell mag ich Videos nicht sonderlich: Ich ärgere mich jedesmal, wenn ich im Internet nach einer Anleitung nach irgendetwas Suche und statt einem bebilderten Text nur ein dämliches Video finde. In einem Text kann ich schnell drüberfliegen, und sehe worum es geht, in einem Video kann ich einzelne Stelle anspringen und muss erst eine Minute zuhören um zu sehen, was überhaupt gesagt wird. Komplexe, visuelle Vorgänge ('Schuhe binden' oder so) sollte man als Video zeigen, fast alles andere eher nicht. Alleine schon, weil man sie nicht ausdrucken kann.
Der zweite Punkt ist halt so ein bisschen, dass es so unglaublich leicht, ist, ein Video zu machen. Man überlegt sich kurz, was man zeigen will, startet die Aufnahmesoftware, geht es einmal durch und ist fertig. Wenn man faul ist, macht man das Voice-Over direkt bei der Aufnahme und lässt einfach alles an einem Stück, so spart man sich danach komplett die Zeit fürs Schneiden, mal davon abgesehen, dass man vielleicht noch einen Vorspann davor packt. Aber man merkt halt als Konsument, wie viel Arbeit investiert wurde. Generell versuche ich meine Zeit nicht zu vertrödeln, wenn ich also ein Video sehe, in dem jemand die Hälfte der Zeit überhaupt nichts sagt, weil er mit Tippen beschäftigt ist, denke ich mir halt, dass ich die selbe Information auch in der halben Zeit hätte bekommen können. Nur würde das natürlich bedeuten, dass man das Voice-Over in einem zweiten Durchlauf, bzw. von einer anderen Person machen lassen muss.
Das ganz große Problem ist eigentlich nur, dass auf Youtube unendlich viele Leute berühmt werden wollen. Und das wird man, indem die eigenen Videos besser sind, als alle anderen. Es gibt ein gnadenloses Überangebot von Videos (jedenfalls sobald man zu irgendeinem Thema, das keine absolute Nische ist, ein Video macht. C++ ist definitiv keine Nische) und Menschen werden dich gnadenlos ignorieren, wenn du nicht besser und professioneller als alle anderen bist. Und dann sitzt man an einem Video nicht einen Sonntag Abend eine halbe Stunde lang, sondern eine ganze Woche in Vollzeit.

Mir tut das gerade selbst ein bisschen Leid, dass das jetzt quasi alles negativ war. Aber du versuchst eben mit recht geringem Aufwand in einem gnadenlosen Konkurrenzkampf zu bestehen. Vielleicht kriegst du ja ein paar 100 Views, aber mehr würde ich an deiner Stelle einfach nicht erwarten.
Programmiere vielleicht lieber irgend ein nützlichen OpenSource-Tool, vielleicht freuen sich da mehr Menschen drüber.
Lieber dumm fragen, als dumm bleiben!

9

02.07.2016, 11:56

Okay, okay ich habs verstanden.

Jonathan

Community-Fossil

  • Private Nachricht senden

10

02.07.2016, 12:14

Wie gesagt, nicht entmutigen lassen. Dass du so ein Interesse an der Thematik hast, dass du Videos darüber machst, zeigt ja schon, dass du auf dem richtigen Weg bist. Ich denke halt nur nicht, dass Videos momentan die belohnenste Art sind, das Hobby auszuleben - aber du findest da bestimmt eine gute Alternative.
Lieber dumm fragen, als dumm bleiben!

Werbeanzeige