Excited to start the series, best learning practices?

The Partridge Family were neither partridges nor a family. Discuss.
Post Reply
User avatar
Circumnavigate
Posts: 5
Joined: October 27th, 2019, 12:04 am
Location: Irvine, California

Excited to start the series, best learning practices?

Post by Circumnavigate » October 31st, 2019, 4:31 pm

Hey guys I am excited to be starting the series, I was just wondering what the best practices would be to get the most from these videos.

Should I be taking notes while watching the videos, or should I just focus on the video by watching it all the way through with no notes taken? I am worried about being able to memorize everything for the long haul.

I am going from zero to C++, should I buy a text book and be working with that also or something along those lines? Was considering getting C++ Primer (5th edition) by Lippman and Lajoie.

Any other advice/tips to get the most from this series? I'm trying to pull a couple hundred hours of study by new years. My goal is to be "fluent" in C++.

Thanks folks. :geek:

User avatar
cyboryxmen
Posts: 190
Joined: November 14th, 2014, 2:03 am

Re: Excited to start the series, best learning practices?

Post by cyboryxmen » November 1st, 2019, 3:11 am

You don't have to take notes. Just be sure to program along instead of just watching
Zekilk

albinopapa
Posts: 4373
Joined: February 28th, 2013, 3:23 am
Location: Oklahoma, United States

Re: Excited to start the series, best learning practices?

Post by albinopapa » November 1st, 2019, 4:05 am

When I started I watched the videos twice, once not following along, then once following along. This was back when chili videos were anywhere from 1 to 3 hours long. Now that they're shorter and more polished, I'd just follow along because of the faster pace.

Have a game idea brewing, but keep it simple and short. As you learn new concepts try using them to create your simple game. This will help solidify what chili covers in the videos and it won't be just "Monkey see, monkey do". The reason to keep your game ideas short and sweet in the beginning is it is easier to keep motivated if the end is always in sight and you'll get the sense of accomplishment when you complete it.

Notes are good too. One user on here made notes as comments in their project so they could refer back to them while coding, I hadn't thought of that before and thought it was a pretty neat idea.

Chili's videos do cover most if not all of C++ as he is still churning them out, so you shouldn't really need to buy any books, but I'm not going to suggest you don't as you may learn better through different methods or understand different explanations. Something that makes chili's method of teaching different than others from what I can tell is chili doesn't teach idioms or best practices, you get to develop your own method on how to write your code.

One of the difficulties in learning a language like C++ ( don't know about others ) is the language is always evolving so the so called "best practices" may change from one version of the language or library to the next.

For those that are familiar with the language, what I mean is before 2011 we didn't have the auto keyword which allows the compiler to determine the type of a variable instead of explicitly having to declare a type. This meant that if we have a function returning a type before 2011 and then changed that type, we'd also have to go back to all the places that function was called and change the explicitly declared type to the new type.

Let's say we first start out with making everything in the global namespace

Code: Select all

// Define a Widget struct 
struct Widget
{
    int xPosition, yPosition;
    bool isActive;
};

// Declare a function returning a widget
Widget WidgetFactory( int _xPos, int _yPos, bool _active = false );

// Call factory method to get a widget
Widget someWidget = WidgetFactory( 100, 100, true );
Now, let's say you import some third party library that also has something called widget and they didn't put their Widget in a namespace ( usually they would, but examples ). You'll need to either rename the Widget struct or move it into it's own namespace.

Code: Select all

namespace MyLib
{
struct Widget
{
    int xPosition, yPosition;
    bool isActive;
};
}

MyLib::Widget WidgetFactory( int _xPos, int _yPos, bool _active = false );

// You must now change the type to reflect the move to the MyLib namespace
MyLib::Widget someWidget = WidgetFactory( 100, 100, true );

Now imagine you had several places where Widget needed to be changed to MyLib::Widget, sounds like a nightmare. With auto you let the compiler deduce the type for you so the only part that needs to change is the factory function return type and the location of the struct. Everywhere else you call WidgetFactory() to create a new MyLib::Widget won't need to be changed if you declared it as auto.

Code: Select all

auto someWidget = WidgetFactory( 100, 100, true );
So, some suggest as best practice to use auto everywhere, while others have found instances where using auto can actually produce unexpected results in rare cases.

As someone who is new, you won't have to even worry about this in particular, my point was to show that teaching C++ and teaching best practices at the same time is probably more difficult and less effective and chili doesn't bog down the tutorials with such things.
If you think paging some data from disk into RAM is slow, try paging it into a simian cerebrum over a pair of optical nerves. - gameprogrammingpatterns.com

albinopapa
Posts: 4373
Joined: February 28th, 2013, 3:23 am
Location: Oklahoma, United States

Re: Excited to start the series, best learning practices?

Post by albinopapa » November 1st, 2019, 4:05 am

I probably confused the hell out of all the new comers to the chili universe, but you'll run across this stuff in time.
If you think paging some data from disk into RAM is slow, try paging it into a simian cerebrum over a pair of optical nerves. - gameprogrammingpatterns.com

User avatar
chili
Site Admin
Posts: 3948
Joined: December 31st, 2011, 4:53 pm
Location: Japan
Contact:

Re: Excited to start the series, best learning practices?

Post by chili » November 1st, 2019, 4:20 pm

Not just C++, Java and JS are certainly evolving considerable over the years as well.
Chili

Post Reply