Hi, guys. I have been studying C++ by myself for a while and finished reading C++ Primer by Stanley Lippman, so I know some of the basics in C++ programming, such as class, pointer, templates and stuff like that, but now I have no idea how I should proceed with my C++ study. Should I find more books to read? Any recommendations? Or should I try to write some relatively complicated programs? Or should I try to read programs written by other programmers? Hope that you guys can give me some advice. THANKS GUYS!
Try to make a 2D graphical game. It can be anything, even a rip-off of your favorite Nintendo or Sega game (in which case Nintendo won't let you distribute it) but the point is to start from scratch and end at something you can play. You will want to restart from scratch a couple times too.
I'm personally a fan of the "jump-in-the-deep-end" school of self teaching; so I'd tell you to try and write some complicated program and say to Canada with the term "relatively". Focus on topics that you are completely oblivious about and when you hit something that you don't understand then you'll know that it is what you should study next. If you find that there is nothing that you don't already know then you are taking it too easy on yourself and you need to pick something more challenging.
If you get stuck and you think that it would be a good idea to reference someone else's code then know that it is not an invalid research technique. But approach every thing you find as if it were written by some copy-pasta script kiddie idiot. That is to say, look-up every function and class that they use in every context that they use it in. If you think you know a better method to accomplish a given task or operation then do NOT hesitate to try it. If you broke it then you were wrong and your next task is to figure out why.
If you do it right and honestly work at it then this technique will occupy you for the next few years of your life.
NOTE_OF_CONCERN: One major drawback to this course of action that is completely unavoidable; if you later decide to go to school for programming then you will have a MASSIVE chip on your shoulder regarding this language. I am not making this up and a number of our forums contributors, especially myself, can attest to this outcome. Do not argue with, or contradict your instructor (it helps to always remember that this is a Touring complete language). Do not skip class, shout out answers or dismiss you peers based on their mistakes or misunderstandings. Take the easy 'A' and work on establishing your social network and your reputation as an approachable referent authority on the subject. In the end you'll be much happier with your inflated GPA and new connections.
To Computergeek01: Thanks for your constructive and elaborate advice. I really appreciate it. Do you happen to know where I can find some ideas for complicated programs? Just some brief instruction of the functions should be included and what purpose the program should serve is good enough. BTW, this might be off the topic and you might not have the same experience, but I'll just put this out there if case you have some insights this and I would truly grateful. So the thing is that I'm in my second year of college and majoring in Mathematics and Physics, I kindled my interest in programming about half year ago and I kind of want to make a career out of programming after I graduate or pursue a PHD in computer science, but I don't want to change major, so is it possible to achieve all these by solely relying on self-teaching?
... is it possible to achieve all these solely on self-teaching?
Not realistically, a PhD has to come from an accredited university so you can't just build one from life experience. But programming is a subset of mathematics so why change at all?
I have it on good authority that after you achieve your first post doctorate, every additional one after that is easier and easier to obtain. With the mandatory classes out of the way and the transferable credits from related courses already in hand it's really just a matter of connecting the dots and filling in the holes to snag your next one. Of course I'm the lazy cuss who got out after their associates degree in engineering, so do take that third person advice with a grain of salt.
To Computergeek01:
I guess you misunderstood me. What I meant is that that I want to apply for a PhD in an accredited university after I graduate from college, but since my major may not be so related to computer science, I'm a little concerned. Anyway, it's reassuring to hear that mathematics has a lot to do with programming and thanks again for your insightful advice. I really appreciate it.