Course feedback

I’m only on section 15 and I already feel lost. Terms and their functions are not being explained properly, I’m being asked to run before I can walk, objectives aren’t clear. Honestly I feel as though I’m just copying code and not really learning anything because the lectures offer such a vague explanation on how and why I’m doing things. Every single challenge I’ve been presented has left me absolutely confused and the solution usually doesn’t match up with what was being done in the lecture. I know it’s supposed to be a situation where failure doesn’t matter, but it’s not reassuring when I’m having to skip to the solution every time.

I’m brand new to coding, and I really want to learn, but the course doesn’t feel like it’s accommodating to people in my position, I simply don’t understand what I’m doing or why I’m doing it.

Hi! I’ll preface this with saying I’m not too far ahead of you in terms of the overall course, but thought I’d lend some thoughts.

The main thing I would suggest is really take your time to absorb the bits and pieces, and think about what you’re working with. Pause the video when a new function is mentioned, google the keyword, and see what it says it does.

Up until Lecture 12, most of everything is just getting set-up. Even 12 is making an empty ‘main’, which is what C++ knows to start with when we compile (read: turn the code into something that can run).

Inside the main, we want to print out a little welcome message to the screen, and the function that does that is cout. It uses a different structure to some of the other functions you earn later, but basically saying

std::cout << “Hang in there!”;

Will use the cout function in the standard library, to print Hang in there! to your screen. Because this counts as output to a stream, it has the include of the <iostream> library.

The other major piece to get your head around is variables. The line that has

constexpr int WORLD_LENGTH = 9;

is assigning a variable. Variables are bits of information like your age or your favourite food. To break down that line above, the constexpr is a way of telling the compiler (again, the thing that turns your beautiful code into a running program) that the variable won’t change.

int says that the variable will be an integer, or whole number. WORLD_LENGTH is the name of the variable, and in case the name of it has you perplexed, it’s just a typo for WORD_LENGTH. There’s nothing special about the name, and it could easily be WordLength or SalarisMagicNumber.

If your program was tracking an age, and you expected it to run long enough to reach a birthday, you might store an age variable as follows:

int Age = 100;

The = and number should be self-explanatory, but more or less, it’s stuffing the value inside a hypothetical envelope labelled WORLD_LENGTH. Whenever we want to use that value, we type that in the code, and the compiler opens up the envelop to see what number is inside.

Your best option would be to ask lots of questions, go back to the earlier lectures, and share what you’ve done if yours isn’t working. We’re all learning in one way or another.

1 Like

^ This was very helpful, nice break down.

1 Like

When I worked as a CS tutor for my University, one of the things I told students who came to me for help was this:

Before you ask any questions, look at every line you have typed and tell me, specifically, what it is supposed to do. Do it for every line even if you think the answer is obvious. Many problems with beginners can be solved with repetition and to speak the purpose of your code out loud. A lot of the times you will solve the problem on your own (which was my purpose as a tutor).

It’s just a tip, really. Asking questions is always preferable to getting frustrated and quitting, no matter how simple the answer might be. But the point of my suggestion is to help you help yourself which will then build your understanding of what’s really going on.

Welcome to the long road of programming. If you don’t have any fundamentals at all, you’re going to have a hard time understanding this course. Either way, don’t give up! It takes time to grasp everything. If you persevere you’ll come back understanding everything better and better. It takes a lot of repetition.

If you absolutely have no idea what variables, arrays,functions, data types, operators, if statements, and loops are then just take a break from this and quickly read what all of this is. You’ll get it pretty quick and understand this course better.

Just remember, today is the worst you’ll ever be. It only gets better.

Message understood. Your appraisal of the level of information presented here is pretty accurate. It is not an uncommon approach and it doesn’t work for everybody.

I am not certain what to suggest for getting oriented better without knowing more about what led you here. Please say more about what inspires and intrigues you. Many here can advise you about their travel from novice to fluent in a way that may be helpful to you.

Meanwhile, here are some random thoughts based on very little information about what you are prepared for.

  1. Go back to the BDD exercise, and write one about you being in this course. Especially what got you here and what was inspiring/intriguing for you.

  2. I have found that it is often valuable to have more than one source of information, sometimes at different levels. Often, one will unlock something for you where the others haven’t. You could look around for other resources about Visual C++ and Visual Studio, for example. There is much online and there is a free Microsoft Virtual Academy (MVA) that also offers self-paced material. It is important that you be able to do exercises for yourself and use trial-and-error experiments to confirm your understanding of all these concepts, too. It will take time apart from how this course advances (but there is no time-limit :wink:).

  3. It may be that C++ is not a good place to start from where you are. An alternative course might be the C# and Unity course, also put together by Ben. You could also consider starting with Java, which has great tutorials and documentation at various levels. First you need to be clear on the purpose for which you desire programming fluency, something that will serve as an achievable beacon for puling yourself through.

A follow-up.

  1. Salari, it is all right if you don’t understand much of this at first. I appreciate that this may not help you with having a clear conceptual model. But copying and pasting and listening for what you can understand is a way of progressing, as many will tell you. It is a bit of an immersion, jump in the pool and learn to swim thing. I think it is scarier for adults than for youngsters.

  2. I would, myself, want to see another way of building understanding on small foundations. I am not clear how to do this well with Visual Studio the way it is designed to be used. I also think that providing a conceptual foundation makes the road longer before one can do something valuable like create a quality 3D game.

I think my recommendation is to stumble along anyhow and see how it goes. Section 02 is very stretched-out, and there are things to learn just by following along and continue building the project.

Can you tell us what you have done with regard to continuing?

I’ve revisited previous lectures to see if there was anything I had missed, and asked the question with the challenges “knowing what I know now, would I have been able to do this?” The answer has been ‘no’ on nearly all occasions. I’ve also looked up on Google various terms that I didn’t fully understand.

Would I have been better doing the beginners C++ course? I wanted to learn C++ around programming games, and since this said it was for beginners it seemed up my alley.

1 Like

I haven’t looked at any of the beginner C++ courses. It should not hurt to work on an inexpensive one on the side.

I do notice that Section 2 lectures have many non-beginner asides and comments that you might not have any context for. Demonstration of refactoring in Visual Studio is an example that caught my attention. (Renaming of variables, extracting functions, that sort of thing.)

For many of these things, it is better to just notice you have seen something fancy being done but stick with doing things you can do just editing code yourself and learning to deal with the messages that happen when you build your code.

That may be a way to look at much of Section 2 content. There are many hints to advanced notions and features that might derail you. So long as you can understand the solutions enough by observing that they work, you are getting the essentials. Visual Studio has a deep set of features. But they are not all required to be understood and used.

Google is your friend.

Also, the cplusplus site may be valuable. And there are PDFs of extensive books by Bruce Eckel. Ignore Eckel’s comments about Visual C++ and Visual Studio .NET. That information is very old and all of the early basic material should just work in Visual Studio 2015 Community edition.

Finally, the wonderful thing about MOOCs on Udemy is you can try it and like it or not, do-overs have no penalty, and you can repeat or redo a course and also fit it into your life as you are able.

Please don’t be discouraged. There are many roads to what you are looking for. They all may require some patience and a pace that works for you.

I think you may be asking that question too soon.

Some tips:

One of the most difficult thing for beginners is knowing where to start when making a program.

That is being demonstrated in Section 2, although not being pointed out as such.

Notice how there was the creation of an almost blank main() function. Then there is the idea of adding comments that are the “pseudo-code” along with references to other functions for the details.

And those other functions are first made to do something simply as placeholders for refinement.

Although it may look incoherent, and the lectures race through it, notice the overall pattern. And notice how, as more understanding/detail arises, it is often time to reorganize things to keep it all coherent.

That may not be so evident in the Lectures because there are so many details to contend with at the same time.

Visual Studio helps in this somewhat tria-and-error, code-and-fix approach by compiling your code to an .exe quickly and reporting errors or showing you how it is actually running (possibly not as intended).

A great deal of the experience is learning how to recognize mistakes and repair them. At some point “fail often and early” will not be a threat to your self-esteem :wink:.

Keep you eye on that as you grapple with the finer details. It takes much practice. It won’t be as difficult as learning to write (remember that?) or even learning to read. Give yourself time to let things sink in, and keep at it.

And keep relying on companion resources available on the Internet and maybe another course. It is too soon to dig into “Code Complete.” Once you have some experience at the basics, some of the more advanced materials will begin to make sense because you will recognize what the issues are.

Privacy & Terms