When are you "done" with C++ basics?

Started by
13 comments, last by Serapth 11 years, 9 months ago
I've been reading most threads of people asking the same questions over and over as I would ask, such as "what should I do to learn C++" etc, my personal answer anyways is that I should practice and I feel fairly well with it, but I want to ask, since I've been reading a lot of people saying "when you're done with basics move on to library such as SDL or SMFL" etc.

So, my question, maybe its noobish and it has been already asked, i tried to search, so forgive me if its bad, after all im posting in beginners for a reason and trying to avoid the same questions over and over.

I know you may say "when you feel ready" you can move on. But I'd like to know from personal experience or whatever else a list of the things I should keep working on a lot ( like in console games or anything else )

I hope the question isnt noobish at all, im just asking for the things i should focus on practicing the most to move on something new.
Advertisement
i would say its when you're confident you know how to code the game you're working/its become like second nature. I use to practice on a white board with code so that I would get use to what it looks like on something OTHER than a computer monitor. :P That was when i knew i wanted to move on and learn more things in C++. Hopefully that helps :P
Also +1 for not being a super noob. :D
I moved from regular console C++ to graphical SFML/SDL C++when I barely knew anything. Experimentation with games helped me develop a lot of different skills that would've been a lot more boring had I just stuck with console C++ stuff.

My suggestion is to move on once you know the basics (basic classes stuff, some stl stuff, etc) and use games to help you learn. Just realize that you won't be making insanely good games or code at first, so be patient. Expect to research different stuff while you encounter problems.
So basicly, all you need to know is how loops if statement and such work before moving to something because everything is going to be different with each library i go.
Ok, so, also I know i dont expect to work on something huge its obvious. I'll be help to even see something i draw walking on the screen while pushing buttons, its already a huge progress to me to see something walking, then making it shoot, then jump, everything slowly with its time.

But then, almost everyone suggests SFML/SDL, i googled SFML VS SDL and such and I feel like going on SDL once i feel a bit more ready with some console projects. But then, what should I do? Is SDL fine? are there any iother choices?

If i pick on something like SDL i would take my time to think up a game and take it to the end, may it even be something that you walk collect shoot and you're done for example. I just want to pick something that will be useful if i move on in a long future to something else.

I know its going to be slow thats why I'm also slow on picking what i should go next. I like reading books, so I also would be happy if someone could provide me with tutorials to x library or books or anything useful to get me started. For now I want to decide where to go, i'm taking any suggestion and giving a look to everything. Thanks

I just want to pick something that will be useful if i move on in a long future to something else.


The skills transfer over between libraries, engines, APIs and even languages, the libraries that are at the top today may not be at the top in 5-10 years so don't worry about the future, go with something that meets your requirements today. and yes, SDL is fine (It has been used by quite many AAA Linux ports (Quake4 is one of the more recent ones), you just have to use OpenGL aswell if you want modern graphics (The same goes for SFML)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

[quote name='MkChronix' timestamp='1341942839' post='4957683']
I just want to pick something that will be useful if i move on in a long future to something else.


The skills transfer over between libraries, engines, APIs and even languages, the libraries that are at the top today may not be at the top in 5-10 years so don't worry about the future, go with something that meets your requirements today.
[/quote]

Yeah, learning a new library is the act of a day or two. Hell, at this point, I start using libraries without even really bothering to learn them at all. Let Intellisense teach me as I go, only going to the help when I hit a roadblock. It's a good way to test how compatible you are with a library. Not that I am recommending this approach, but you will quickly discover that learning something like SDL or SFML really isn't all that much of a commitment. Once you've done it once, moving to another library is trivial. Well, at least if its a good library.

As to the "when are you ready"? Try it, is it to hard? You are not ready. Is it doable? Congrats, you are ready.
Ok @Serapth thanks, but then, since im a bit "afraid" ( not really so much but yeah im still on my way and i dont really want to think that im gonna be awesome in no time) can you suggest me the "best" ( i know theres no BEST generally, in your opinion im saying ) way to follow? SMFL (watching your signature ) is good way to go and try? Or anything else you would suggest along with a book or a website or video tutorials? ( I will read your blog soon but in the way of tl;dr what would you say? ) Since I said i would go to SDL. To me starting a library looks like a huge thing now, getting a step inside feels hard so try to understand my point of view and what i mean when i ask this questions. probably you wondered too in the past.

Nobody said anything more than SFML and SDL, so now ill have to pick one, then probably as you just said one day ill feel like they are the same thing and will laugh at myself probably.

Ok @Serapth thanks, but then, since im a bit "afraid" ( not really so much but yeah im still on my way and i dont really want to think that im gonna be awesome in no time) can you suggest me the "best" ( i know theres no BEST generally, in your opinion im saying ) way to follow? SMFL (watching your signature ) is good way to go and try? Or anything else you would suggest along with a book or a website or video tutorials? ( I will read your blog soon but in the way of tl;dr what would you say? ) Since I said i would go to SDL. To me starting a library looks like a huge thing now, getting a step inside feels hard so try to understand my point of view and what i mean when i ask this questions. probably you wondered too in the past.

Nobody said anything more than SFML and SDL, so now ill have to pick one, then probably as you just said one day ill feel like they are the same thing and will laugh at myself probably.



There is no "best way" per say.


Generally speaking the progression goes learn the basics of C++, get code compiling and running, then run through a bunch of simple console apps while learning the language constructs.

C++ is however a remarkably sparse language ( part of the ethos behind C++, this is both a strength and a massive weakness, and is a big part of why C++ is a pretty lousy starter language ), so very quickly you hit a wall where you need to work with 3rd party libraries to do.... well just about anything. You are going to hit this wall pretty damned early actually, so this obviously is your next step.

The problem isn't so much working with another library, its you now have to learn the linker ( which is a right pain in the ass ), and you need to have a good understanding of header files and the precompiler process. This is a huge jump, and a bit of a difficult one, but it is part of working with external libraries like SDL or SFML.

Additionally, the next phase for a beginner is learning how to structure code. Up until now you have probably only had a single C++ file. This is another pretty daunting process in C++, with arcane WTFisms like include guards, or annoying bugs like forgetting a semi colon at the end of your header. Additionally this is where you have to start dealing with code complexity. This is where things like OO programming come into place.


So, regardless to your next phase, those are the two really big hangups of "the next step". Learning the libraries themselves is actually kind easy compared to getting them up and running.


This is exactly what the tutorial you mentioned in my sig covers. It's not really about SFML, its about making a slightly more complex C++ application than you have been until now. It just happens to use SFML along the way. Run through that tutorial would be my recommendation, as of course, that is why I wrote it. It will guide you through the linker process. It will show you *one way* how to structure your code in a more OO manner. Along the way, it will teach you a bit more about C++. In the end, it will help you, regardless to if you want to learn SDL or SFML or any other library really.

Those honestly are your next tasks... learning the linker, and learning how to go beyond single file applications. Both of those tasks are actually more difficult to grok than whatever library you decide to go with.


That answer your question?
If you're using C++, SFML and SDL are excellent ways to go. I feel like maybe SFML is just a tid bit easier than SDL so perhaps you should go with that. I've used SFML very minimally so I can't say much, but for what I did do I thoroughly enjoyed it.

So it's as Serapth said. Try it, there is no harm in doing so. If you feel it's overwhelming, take a step back and refine your programming-fu.

Yo dawg, don't even trip.

Ok, I think i will start out by SFML. Any good books or stuff I should follow to get started on?

Also, probably i feel the answer is yes already but maybe not, i read on some threads that people said some features such as net management is done better in sdl ( well i dont know if thats not true and i dont care ) my question is, say, i use SFML for all, can i take the net part from SDL and implement it in my SFML game? or thats just like saying putting a piece of a car into another one that doesnt fit? just a random question that came to my mind, also im happy to have all this many replies they're comfortable somehow :P what im expecting is that in at least 3 months of work i can get to see some results, i dont expect anything the first day or week, but in like 3 months ( or more, just shooting a "random" date ).

I need though to start thjinking in flexibility cause i cant stay on one thing forever otherwise i feel im not gonna progress.

Thanks again, hope im not annoying, also i know i can google for SFML books, resources, and such. Theres always google for that stuff, but since now you guys know how i think, maybe you can suggest something good.

This topic is closed to new replies.

Advertisement