Sign in to follow this  
LostSource

When is someone ready to move on from C++?

Recommended Posts

LostSource    199
I'm not sure if others feel this way, but I'm pretty sure someone has atleast felt this way one time or another in their programming life cycle of ups and downs. Currently I'm sophomore college student going for a BS in CS with a minior in mathematics (I'm just saying that to lay some ground). What I'm wondering is when is it time to start moving from just learning Cpp to learning API's? Don't get me wrong, I know that I'll be learning Cpp for the rest of my life because its impossible to master, and it will be in everything I do. I just feel like sometimes I get to worried about not knowing enough and get stuck in learning Cpp trying to learn more. Which makes my stop from learning API's. I know some data structures(STL's, Lists, BST, AVL BST, Hash Table (open and closed), Heaps, and a little bit of graphes). I've completed three full games (ASCII): hangman (this is actually a tutorial to make hangman), snake, pong. When is it safe to pick it up a notch and move on to the next level? (all advise is welcome) Thank you in advance!

Share this post


Link to post
Share on other sites
cignox1    735
Mmm...I think that once you know the main features of C++ (that is, classes, inheritance and the C subset) you could move to something new. Try making some bigger app and decide what tools do you need (2d api? 3d api? sound api? UI api? xml? mathematic? something else?) and if you don't want to create them from scratch (for educational pourposes) you could give a look around searching for free apis that satisfy your needs.
Good work!

Share this post


Link to post
Share on other sites
DigiBen    144
That's a good question. Me and many other people don't give the computer science degrees much recognition because many people can't actually come out of college being able to really program anything efficiently because they just spent most of their time on theory. Sure, theory is important, but you are right, there is a level when you need to stop and start learning practical things for software developement. My friend teaches at the guildhall for game programming, a master degree program, and most of the people have to have a CS degree... but they aren't really good programmers when they get there because they have never even done any Win32 of 2D/3D programming, just theory. I say you should learn the CS stuff, but during college on your own if you want to be decent when you get the degree, learn the API's on your own on the side.

Share this post


Link to post
Share on other sites
LostSource    199
Thank you for the input. I'm going to follow that advice cignox1 and DigiBen (GT!). After I finish this Algorthim book I'm reading and start learning Win32 and DirectX.

Share this post


Link to post
Share on other sites
paulecoyote    1065
Learn the APIs on your own whenever you feel like you can handle pointers and interface style classes.

There are many different APIs, personally I would go towards learning the Win32 API first, and if that's too difficult then try SDL or MFC.

I suggest Win32 because it's the lowest common denominator as far as APIs go. MFC changes each time a new visual studio is released, SDL also goes through changes. Thing is if an employee doesn't want to use MFC or SDL then you've just learned a skill that's not directly to do with what the employer wants. On Windows knowledge of Win32 would be useful regardless.

Usually I would recommend going for the easiest thing and working down... it really depends what you want to achieve. If you just want to get your programs done and on screen then do the SDL / MFC thing.

Win32 is also a decent spring board in to learning DirectX. Sure you can coast in to DirectX directly too though.

Of course if you are looking to program Macs or a *nix then you're best to go for a cross-platform api like SDL / OpenGL, which hide the platform specific stuff (including Win32 on windows) away from you.

Best thing to do is just experiment, if you know your C++ pretty well you'll soon get a feel about what each API wants you to do.

Share this post


Link to post
Share on other sites
Telastyn    3777
Once you're comfortable with common parts of the Library, inheritance, pointers, and templates.

Once you've used those major pieces to become comfortable with design [like the little games you described].

Some APIs would be better to learn before [boost::function, boost::bind] and you can probably learn APIs like DirectX sooner, but you'll run into problems using them effectively without being comfortable with the major parts of c++ and design.

Share this post


Link to post
Share on other sites
Spoonbender    1258
As I see it, the main reason beginners usually aren't encouraged to mess with big API's is that, well, it won't make sense to them. You might run into a lot of functions taking pointers to pointers, references, templated this or that, and I'm not even going to get into COM objects... [lol]
And, well, if you're just starting out with C++, all of this will just make you want to give it all up and find a different hobby...

That's all. If you know you're comfortable with C++, take a look at whatever API's you need to make what you want to make.

Share this post


Link to post
Share on other sites
Zefrieg    316
You want to learn APIs and other stuff like that? Well, I would do the following:

1. Think of a project you want to do using the language or API.

2. Try to define the parts of the project to a point where you have a clear idea what needs to be done.

3. Work on the project and mutter things like, "Why isn't this working. Work you stupid piece of crap!"

4. Put the work somewhere where people can comment on it and make suggestions. Try to implement any feature requests that seem like a good idea.

5. Move on to another project.

The easiest way to learn APIs is to just use a wide vareity of them in various projects. The same goes for languages. If you have a broad experience with different APIs and languages, then you are more apt to choose the ones that will save you the most time and give you the functionality you need.

Try to make things easy for yourself.

Share this post


Link to post
Share on other sites
njpaul    367
Quote:
Original post by DigiBenMy friend teaches at the guildhall for game programming, a master degree program, and most of the people have to have a CS degree... but they aren't really good programmers when they get there because they have never even done any Win32 of 2D/3D programming, just theory.


Do you have a link to that program? I'm almost done with a BS in CS and am contemplating doing a master's program. Need to start scouting places early, you know.

I guess I'm one of the odd people in college then that enjoys learning new APIs. When I asked one of my professors why we don't learn APIs, I quote "Because it's just an API".

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this