C++ besser verstehen durch Anime schauen. Könnte man dadurch einen gewissen Lerneffekt erzielen?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Als Anfänger wirst du vielleicht den einen oder anderen Kniff mitbekommen, falls er dort genannt wird, von den geposteten Bildern her urteilend, aber lernen wirst du programmieren nicht, nein. Gerade C++ ist schon ein großes Monster, wenn man bisher nichts mit Programmieren zu tun hatte, im Vergleich zu höheren Sprachen wie Java oder C#.

Wenn du Programmieren lernen möchtest, aber dir der Stoff zu trocken ist, gibt es genügend Möglichkeiten, wie man das unterhaltsam gestalten kann. Da gibt es beispielsweise Sprachen, die einem das spielerisch beibringen, wie Scratch oder falls dir das zu kindisch ist, kannst du auch ein einfaches Spiel programmieren, mit beispielsweise mit der Unity3D Engine. Da gibt es massenhaft Tutorials, die auch blutigen Anfängern ohne Vorkenntnisse einiges beibringen können.

Für Anfänger ist es dadurch sicherlich angenehmer mit dem Einstieg in C++

Aber es kommt natürlich auch darauf an, wieviel der Anime an Wissen vermittelt.

Ich denke Bild 1 sagt alles, Nenechi lernt nicht aus nem Buch weil es ihr Spaß macht das Buch zu lesen sondern weil sie weiter kommen möchte, du kommst nicht darum rum die Sprache von Grund auf zu lernen, nur so wirst du sie später auch beherrschen.

Nenechi hat ja auch Anfangs nur Side Tasks und Tasks außerhalb des Games das an dem gearbeitet wurde erhalten, der Grund lag einfach darin das sie erst die skills erwerben musste um da wirklich mitarbeiten zu können.

ich würde ganz klar davon abraten. ich bezweifle das sie dort den kompletten code zeigen und vorstellen. und selbst wenn muss die qualität des code's nicht automatisch gut sein. ausserdem wirst du nicht arg viel davon haben wenn du 5h anime schaust und dann 5 minuten irgendwelchen code siehst mit dem du persönlich absolut nichts anfangen kannst.


ceevee  16.12.2017, 15:58

Der Code, den man im zweiten Bild in der Frage sieht, ist auch nicht wirklich gut... was der Code im Gesamtkontext macht, kann man aufgrund der Kürze nicht sagen, aber da sind meiner Meinung nach so einige "Bad Practices" drin. Insbesondere die Sprache und die Zeichencodierung der beiden Kommentare, das "m_"-Prefix sowie die Tatsache, dass der Methodenname mit einem Großbuchstaben beginnt.

3
Kieselsaeure  16.12.2017, 16:03
@ceevee

was mich an solchen geschichten immer interessiert ist wie da englische schrift stehen kann und im kommentar dann chinesisch. so nachm motto ich stöpsel mal kurz meine tastatur um um einen kommentar zu schreiben den keiner lesen kann? :-D

0
lhVorstand 
Beitragsersteller
 16.12.2017, 17:33
@ceevee

Kleines example

void Elevator::Drive(int destination) {

if (destination >= min_floor && destination <= max_floor) {

current_floor = destiantion;

 }

else {

if ( destination < min_floor) {

current_floor = min_floor;

}

else{

current_floor = max_floor;

}

}

}

Der Gültigkeitsbereichsoperator ordnet die Methode der Klasse zu. Bei der Ausgabe macht es doch keinen Unterschied, ob der Methodenname klein oder großgeschrieben ist. 

0
regex9  16.12.2017, 17:45
@ceevee

Dies liegt wohl daran, da es sich hierbei um C++.NET handelt und man sich daher bei den Bezeichnern auch an .NET-Konventionen orientiert, wenn auch die member-Konvention eher etwas veraltet ist.

1
Kieselsaeure  16.12.2017, 18:25
@lhVorstand

es macht keinen unterschied, da hast du recht. aber es gehört sich zum beispiel nicht seine klasse Elevator zu nennen oder seine methode Drive. bei längeren namen wie shutdownDatabase hätte ich verständnis für das große D. ansonsten finde ich es schlecht wenn irgend etwas bis auf makros gross geschrieben wird.

es ist einfach so als ob du bei dem code den deutschlehrer spielen möchtest und am besten noch kommas und satzzeichen in den programmcode einfügen würdest.

1
Kieselsaeure  16.12.2017, 18:33
@Kieselsaeure

übrigens: wenn man mal bild 2 betrachtet und die for schleife (beginnend ab zeile 30) könnte man sich denken das es effizienter wäre einfach nur nach der count anzahl zu gehen anstatt hier die werte unnötig zu klonen - sie werden ja scheinbar überhaupt nicht verwendet.

0
Isendrak  16.12.2017, 19:15
@Kieselsaeure
so nachm motto ich stöpsel mal kurz meine tastatur um um einen kommentar zu schreiben den keiner lesen kann? :-D

Ganz einfach: https://de.wikipedia.org/wiki/Eingabemethode

Für Linuxbasierte Betriebssysteme gibts da z.B. SCIM und IBUS.

Da hat man eine "Tabelle", in der steht, welche Tastenfolge welches Zeichen "produziert".

Hier als Beispiel eine IBUS-Tabelle, mit der ROT13-Codierter Text "direkt" eingegeben werden kann:

SCIM_Generic_Table_Phrase_Library_TEXT
VERSION_1_0
BEGIN_DEFINITION
LICENSE = LGPL
UUID = b044c324-30b4-42e1-9e4c-5f0c52cb0e50
SERIAL_NUMBER = 20171205
ICON = rot13.svg
SYMBOL = 13
NAME = ROT13
DESCRIPTION = This is a ROT13 table for IBus Table.
LANGUAGES = en
AUTHOR = root@localhost
STATUS_PROMPT = 13
VALID_INPUT_CHARS = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
LAYOUT = en
MAX_KEY_LENGTH = 1
AUTO_COMMIT = TRUE
AUTO_SELECT = TRUE
DEF_FULL_WIDTH_PUNCT = TRUE
DEF_FULL_WIDTH_LETTER = FALSE
USER_CAN_DEFINE_PHRASE = TRUE
PINYIN_MODE = FALSE
DYNAMIC_ADJUST = TRUE 
RULES = 
PAGE_UP_KEYS = Page_Up,KP_Page_Up,minus,comma
PAGE_DOWN_KEYS = Page_Down,KP_Page_Down,equal,period
SELECT_KEYS = 1,2,3,4,5,6,7,8,9
ORIENTATION=TRUE
END_DEFINITION

BEGIN_TABLE
a    n    1
b    o    1
c    p    1
d    q    1
e    r    1
f    s    1
g    t    1
h    u    1
i    v    1
j    w    1
k    x    1
l    y    1
m    z    1
n    a    1
o    b    1
p    c    1
q    d    1
r    e    1
s    f    1
t    g    1
u    h    1
v    i    1
w    j    1
x    k    1
y    l    1
z    m    1
A    N    1
B    O    1
C    P    1
D    Q    1
E    R    1
F    S    1
G    T    1
H    U    1
I    V    1
J    W    1
K    X    1
L    Y    1
M    Z    1
N    A    1
O    B    1
P    C    1
Q    D    1
R    E    1
S    F    1
T    G    1
U    H    1
V    I    1
W    J    1
X    K    1
Y    L    1
Z    M    1
END_TABLE

Für japanisch/chinesisch wäre die jeweilige Tabelle natürlich "etwas" umfangreicher... ;)

1
ceevee  16.12.2017, 19:52
@Kieselsaeure

Die Drive-Methode würde ich auf irgendwas in Richtung

currentFloor = Math.Max(minFloor, Math.Min(currentFloor, maxFloor));

kürzen und refactorieren, aber das nur nebenbei. ;)

Dass der Code nicht läuft, wenn man "Bad Practices" einsetzt, stimmt nicht. Der Code ist aber schlechter lesbar. Es hat sich eingebürgert, dass Klassenmethoden Tätigkeiten sind, dementsprechend als Name ein Verb haben sollten oder mit einem Verb beginnen sollten und daher klein geschrieben werden. Gerade in großen Projekten, an denen mehrere Programmierer arbeiten, ist es wünschenswert, wenn der ganze Code wie aus einem Guss aussieht. Die Methodennamen "Elevator" und "drive" sind schon in Ordnung.

Guter Code liest optimalerweise sich wie ein Kinderbuch in englischer Sprache, also vom Schlag: "This is Peter. Peter is in the house. Now Peter eats a salad.". Es ist aber nicht leicht, so zu programmieren. Wenn ich da auch einen Literaturtipp geben darf: lies mal "Clean Code" von Robert Martin oder "Weniger Schlecht Programmieren" von Kathrin Passig. Es macht manchmal Sinn, beim Programmieren Deutschlehrer zu spielen.

Hier https://anime.stackexchange.com/a/41380

hat sich übrigens auch noch jemand mit dem Bild auseinandergesetzt, vor allem den dritten Punkt halte ich für wichtig. Wenn "DestroyMe()" das macht, wonach es benannt ist und das Objekt zerstört, dann wäre es nicht schlecht, wenn in dem Fall die Schleife abgebrochen wird, um nicht mehr auf nicht zugewiesenen Speicher zuzugreifen.

2
Kieselsaeure  16.12.2017, 21:56
@ceevee

>>Die Methodennamen "Elevator" und "drive" sind schon in Ordnung

ich meinte jediglich das ich mit der grossschreibung bei solchen ''simplen'' wörtern nicht einverstanden bin.

das mit dem deutschlehrer war vermutlich etwas falsch rüber gekommen. ich meinte damit das er nicht versuchen sollte wie in einem aufsatz die groß- und kleinschreibung zu übernehmen für jede kleinigkeit. wenn ich für eine while schleife als stop bedingung bool stop verwende muss ich ihn nicht unbedingt "Stop" nennen weil es ein nomen ist. bei Elevator und Drive hätte ich nach englischer rechtschreibung auch die kleinbuchstaben bevorzugt. wenn wir jede variable als "das ist doch das erste wort im satz" werten müsste ja alles groß anfangen. ich hoffe es ist verständlich was ich meine.

0

Auch wenn du dir einige Kenntnisse damit ein kleines Bisschen in relativ langer Zeit erarbeiten kannst, ist diese Methode doch extrem ineffektiv.

Ich denke, es es unvergleichlich wirkungsvoller, wenn du mit einem vernünftigen Lehrbuch und das gelesene nebenbei am Rechner in Experimenten ausprobierst.

Und im Übrigen kann ich dir garantieren - ohne deinen Anime zu kennen - dass jedes mittelmäßige Lehrbuch deutlich weiter in die Tiefe gehen wird!

Wenn du wirklich C++ lernen willst, vergiss Anime! :)


lhVorstand 
Beitragsersteller
 16.12.2017, 17:49

Durch den cuteness factor steigt jedoch die Motivation, und beim Programmieren ist das auch ein sehr wichtiger Punkt.


0
Kieselsaeure  16.12.2017, 18:30
@lhVorstand

keine frage, das ist sicherlich ein gutes argument. dennoch solltest du deine lehre nicht vollständig anhand eines animes hängen. sonst bist du in ca 10 jahren da und kannst ein hallo welt, mit einer for schleife hantieren und villeicht ein wenig mit vector spielen. so wirklich das wahre ist das auch nicht.

2
ceevee  16.12.2017, 20:01
@lhVorstand

@TeeTier : Der Anime ist "New Game!" https://myanimelist.net/anime/31953/New_Game

Das hat dich doch jetzt interessiert, oder?

@lhVorstand: Das Problem ist, dass du nicht weißt, ob das, was du da in dem Anime siehst, auch wirklich richtig und sinnvoll ist. In Filmen wird da gerne mal übertrieben, damit es spannender wirkt. Zur technischen Sache habe ich mich in dem anderen Kommentar hier schon geäußert.

Ich hatte auch einen Kollegen, der riesiger Anime-Fan war. Dementsprechend war sein Rechner eingerichtet, bezüglich Wallpaper, Töne, etc. Seine Entwicklungsumgebung sah aber trotzdem normal aus. Und vielleicht gibt es da draußen auf den Lernplattformen auch irgendjemanden, der das ganze Anime-mäßig aufzieht, wer weiß.

Man sollte beim Programmieren aber in der Lage sein, sich auch so zu motivieren, ansonsten muss man halt ab und an mal Pause machen und 'ne Folge "Pokemon" gucken, um den Cuteness-Faktor wieder aufzuladen. ;)

1
regex9  16.12.2017, 20:33
@lhVorstand

Was bringt dir Motivation, wenn du nichts wirklich dabei lernst? Der wichtigste Punkt ist und bleibt die Lernquelle. Eine gute Quelle kann ebenso Freude bringen, es schließt sich nicht aus.

1