New c++11 video tutorials, tell me what you think.

Started by
10 comments, last by EddieV223 11 years, 2 months ago

Hi, I have been working on making some c++ video tutorials. They are on youtube and are free to watch. They start at absolute beginner to advanced and will cover c++11. I have the first 13 videos uploaded onto youtube, more are on the way. I want some feedback, how am I doing? Let me know what you think.

Some example feed back I would like is, am I being clear enough in my explanations and how is my order of topic introduction?

I know that in some of the videos the video quality is not great, I tried some different codecs and around video 9 or 10 found a good one. The early codec was making it a bit fuzzy and made my voice sound more nasally than it is.

http://www.youtube.com/playlist?list=PLXjSIEICHR3OW7Ala0hkwNSrVE0uUpH6c

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

Advertisement

I hope you are prepared for some constructive criticism.

From what I have seen so far, 8, 10 through 13, I haven't found anything from the new c++11 standard. Don't encourage the use of using namespace directives without explaining what namespaces are, what they do, and how to use them first. Consider condensing some of the material, there are videos less than three minutes and two whole videos just for loops. Note somewhere in the playlist description, in the videos, or in the first video that c++11 won't be "covered" until "lesson 23" or some point in time.

I watched video 3, 5, 7, and 8.

Some points.

  • You should not name variables as single characters, particularly in instructional code. Use longer names, so anyone mimicking your code will do it too.
  • You should use a lower monitor resolution or smaller capture window. That way your code will be easier read in video.
  • You mention that < returns a bool. You should point out that this implies that you cannot chain <, such as while( 5 < loopcount <10). You may find yourself needing to explain that bool is automatically convertible to int.
  • I think you should separate C++ from the particulars of the IDE you're using. It's good to teach C++ and the IDE together, but you should point out things that are particular to your IDE.

  • You should probably mention that >, >=, ==, != and <= exists when you mention <.

  • If this is C++11, you need to at least mention the existance of range based for loop.

  • Don't say assign when you mean initialize. You don't need to explain the difference between the two right away, but it would be less confusing if you used the correct terminology, so that beginners won't get confused when it does become relevant.

  • You should mention that using i, j, and k as loop indexes is convention.

  • Do you introduce what endl does when you first use it?
  • People should use while when the number of iterations is not known in advance, such as if it depends on user input. Say that. Maybe provide an example. Maybe provide the example before introducing for loops.
  • You should make sure to underscore the importance of indentation to beginners.

You should not name variables as single characters, particularly in instructional code. Use longer names, so anyone mimicking your code will do it too.

This depends really. 'i' for example is pretty well established as index, and thus j,k, etc... as additional loop indices is pretty well established. U, V, X, Y and Z all also have established meanings and should be used when appropriate.

You should not name variables as single characters, particularly in instructional code. Use longer names, so anyone mimicking your code will do it too.

This depends really. 'i' for example is pretty well established as index, and thus j,k, etc... as additional loop indices is pretty well established. U, V, X, Y and Z all also have established meanings and should be used when appropriate.

That's true, but in the video he creates a bool and called it "b". That's bad practice. Sure, since it's just an example, the value doesn't have any meaning, but calling it "my_first_bool" would be better in my opinion.

After having seen stuff like "MyClass" and "myInt" in actual production code (map<...> theMap), I don't think it matters what he uses. If the variable has absolutely no meaning besides being there to demonstrate its existence, the name will ultimately be pointless and people will copy that, no matter what. At least one person would probably even copy it if it was named purelyForDemonstrationAndForGodsSakeDontNameYourVariablesLikeThis.

f@dzhttp://festini.device-zero.de

You should not name variables as single characters, particularly in instructional code. Use longer names, so anyone mimicking your code will do it too.

This depends really. 'i' for example is pretty well established as index, and thus j,k, etc... as additional loop indices is pretty well established. U, V, X, Y and Z all also have established meanings and should be used when appropriate.

That's true, but in the video he creates a bool and called it "b". That's bad practice. Sure, since it's just an example, the value doesn't have any meaning, but calling it "my_first_bool" would be better in my opinion.

Yeah, thats bad.

After having seen stuff like "MyClass" and "myInt" in actual production code (map<...> theMap), I don't think it matters what he uses. If the variable has absolutely no meaning besides being there to demonstrate its existence, the name will ultimately be pointless and people will copy that, no matter what. At least one person would probably even copy it if it was named purelyForDemonstrationAndForGodsSakeDontNameYourVariablesLikeThis.

I missed the days of Hungarian madness... I swear to god I've seen bBool and pszString hundreds of times in production code. Even saw people use Hungarian notation on indexes, resulting in my all time favorite variable, iI.

Actually my second favourite variable, my favorite variable of all time was:

DoNotRenameOrRemoveThisVariableOrElse

And you couldn't... if you touched it, the code blew up, and I never had the time to root out why, so like all the other programmers that inherited the code before me, I left the damned magic variable alone!

Thanks for the feedback the more I can get the better the videos become and everyone wins.

I have uploaded several more videos in the series with a better resolution and settings.

I am planning on rerecording some the early videos in the new resolution and settings as well as make some changes to the content that you guys have suggested, to improve them.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

Watched #14. Only problem here is that you don't explain srand() I don't know if you use it in earlier videos though, and explain it then.

Watched #18. Looks good. No new issues.

This topic is closed to new replies.

Advertisement