Sign in to follow this  

C++ college courses vs learning on your own..

This topic is 1189 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So I want to begin learning c++, Ive used some python and ruby before, never got really into c++.. My question is, has anyone taken any C++ College Courses? The reason I ask is that I have about 18 months left in my software development program (champlain college - VT) and I have two C++ classes to take.  I would ideally like to get a good grasp on the basics before I get thrown into a fast paced class.

 

I am currently using "how to program in C++ for the absolute beginner" by Mark Lee.  I understand this may not be the best to begin with, but the way it makes you create small simple games holds my attention as opposed to a Java book I have that is mind-numbingly boring. 

 

-What is a good, easy to read book or tutorial to help, I'm open for online tutorials and stuff like that as well

 

also, I would hopefully be able to create something other than just display a triangle or rectangle to the screen, which I have heard some people have taken programming classes and this seems like their big final project (though some of these people were in Information Systems and not strictly a software based degree)

 

also, if anyone is willing to 'mentor' or just kind of keep me on track, show me how they started and what small programs they started with, as far as people to reach out to professionally, I have nearly no one in my social or professional circle that understands any of this, nor would want to learn haha.

 

Any help would be great, thanks.

Share this post


Link to post
Share on other sites

Thanks,

 

Yeah I took a java class and it felt like i could have learned everything on my own and then some in the same amount of time than the class took.  And no I dont expect to have some insane computer game in 13 weeks but Id hopefully get a better grasp than just getting a shape to print to screen.  I have seen some good tutorials out there its just trying to hunt them down.  thanks again

Share this post


Link to post
Share on other sites


As far as the class, this will have everything to do with your professor, the text book, their knowledge, and skills as a teacher.  I don't even think you can ever really know what you're in for unless you talk to someone else who's had that teacher.  I'd see if you can find out from other students in the program who they had, because there's really nothing worse that a bad programming instructor.

To add to this: It also depends on the professor's teaching style. Let me explain, when I was in my senior year of high school, I had a student teacher in economics. He told our class about a college professor he had that would say maybe three sentences on the course before turning the whole class time into a discussion about a family vacation, things he had seen in his childhood, ... basically anything other than what the course was about. All that was written on the board was the chapters and homework and the next class time he would spring a pop quiz over what they should have read. His reason was that he wanted to make the students self reliant rather than just coasting through the course and not really learning anything or pay attention to lectures. So, yeah, you have to be sure what type of professor you are getting.

 

Other than that story I was told, I agree 100% with what Glass_Knife told you.

Share this post


Link to post
Share on other sites

Mmm. It depends on the depth you go.

 

If you are majoring in Computer Science. Then you will go much further than what learning on your own can do.

But if you are only going to CS II, and leaving it at that. You are better off learning on your own.

 

 

But then again. There are tricks, tips, and secrets that you will learn in college, that you will normally only learn under chance if you teach yourself.

That chance being you going onto the internet to ask questions, and then someone happens to mention it.

 

 

--------------------------

 

Examples. When you learn on your own, you will more than likely avoid pointers. But pointers are your best friends with a gun to your head. You can get a LOT more done with them and much more efficiently. Both in speed, and in resources. You will also be able to make a program that is more "Real World"

 

You are very unlikely to learn advanced AI outside of college courses. The most you'd probably get on your own are state machines and motor control.

 

You are really unlikely to learn how to create your own graphics engine. Sure, there are ones pre-written for you. But even then, major games actually make edits to the render code to make it suitable for what they need. You are also unlikely to go any further than basic graphics.

 

Really, don't expect to make an overly advanced game without college teaching. But this is highly dependent on your professor, and your ingenuity.

Share this post


Link to post
Share on other sites

My question is, has anyone taken any C++ College Courses? I would ideally like to get a good grasp on the basics before I get thrown into a fast paced class.

 
College / university studies are generally NOT job training.
 
If I am reading the web site correctly, it looks like your school has two options:  Computer Science (curriculum) and Software Development (curriculum).  Going over their requirements, the first looks like the traditional CS degree, the second looks like a trade school degree.

 

Not that either of the choices are bad, they are just different. The world needs many types of people.
 
In my own studies in undergrad and grad school, there were some 100-level and 200-level courses that focused on programming languages. Everything after that they assumed you would pick up the languages on your own as you studied more fundamental topics. Languages come and go, new ones are invented every day. Looking around at three local CS programs, I only found one with a language course in the third year, it was an optional course on "assembly language and computer internals". In compiler theory we needed to not only implement two different languages but also devise our own. It looks like your CS program follows a similar philosophy. 
 

CS usually focuses on algorithms, data structures, analysis of systems, mathematics, and computer theory.  Trade degrees tend to focus on using specific languages, moving data from place to place, transforming from database tables and disk into displayed content and back again, and otherwise converting specifications from human code to computer code. 

 

Different jobs call for different skills. The world needs people who encode human specifications into computer code. The world needs people who analyze problems to create and adapt algorithms in unexpected ways. 

 

I would hopefully be able to create something other than just display a triangle or rectangle to the screen, which I have heard some people have taken programming classes and this seems like their big final project (though some of these people were in Information Systems and not strictly a software based degree)

 

3D computer graphics is more about mathematics than code. Arguments about a structure-of-arrays or an array-of-structures are implementation details that depend on your hardware and usage patterns.

 

The manipulation of points and vectors and matrices is math, not code.
 
In my computer graphics course back when I was in school (CS450) the prerequisites included linear algebra and discrete mathematics.

 

You need to know the topics well enough to describe them to another before you explain them to a computer.  If you don't know how to manipulate matrices and vectors, if you don't understand the reasoning behind projecting from R3 to R2, how do you expect to explain it to a computer? If you can't understand the relationship between dot products and vector angles, how will you manipulate the algorithms you don't understand?

 

 

I dont expect to have some insane computer game in 13 weeks but Id hopefully get a better grasp than just getting a shape to print to screen.

 

 

In CS450 mentioned above we studied computer graphics. In CS455 the following semester each team of three built a networked 3D game in 10 weeks.

 

I don't know why you chose "Computer Programming" instead of "Computer Science".  Job prospects are still good, but the things you learn over the years of education are quite different.

 

 

 

Knowing how to translate someone's algorithm into code is the job of a coder. Coming up with the algorithms is the job of a computer scientist. 

 

I don't expect someone who is "just a coder" to understand the concepts behind a view frustum and the transformations involved in positioning point clouds through transformation matrices. I don't expect "just a coder" to understand how to effectively use the basis vectors inside the transformation. I don't expect "just a coder" to understand the relationship between surface normals, silhouette edges, and shadow volumes.  

 

I do expect the same "just a coder" who didn't understand the math concepts could take an algorithm using those features and translate them into computer code in an efficient manner.

 

It is just a question of which job you want.  Do you want to be a person who encodes algorithms previously designed by others, or do you want to be a person who invents and discovers new algorithms to problems that haven't been imagined yet? Or do you want a different job entirely?

 
 

 


What is a good, easy to read book or tutorial to help
C++ Primer (latest edition) by Lippman, Lajoie, and Moo (starts at beginners, works you through to intermediate skills)
Accelerated C++ by Koenig and Moo (similar to above, starts simple, works up through intermediate)
Effective C++, More Effective C++, Effective STL by Meyers
Exceptional C++, More Exceptional C++, Exceptional C++ Style, by Herb Sutter (Explains many subtle insights and also gotcha's)
The C++ Standard Library by Josuttis. (Dated, but still extremely instructive. Expects a lot of knowledge, gets very in depth.)
C++ Coding Standards by Sutter and Alexandrescu
Modern C++ Design by Alexandrescu
C++ Templates: The Compete Guide by Vandevoorde and Josuttis
 
You'll note that several of the co-authors are duplicated in those books. Several of these people are heavily involved in the C++ language committee, such as Herb Sutter who has been in charge of the committee for most of its life. Koenig, among other things, helped with several important language features including what is referred to as "Koenig lookup". Alexandrescu's work has helped improve consistency among a bunch of features along with a lot of pioneering work on features most of us take for granted. Other authors on that list are similarly well-regarded.
 
Many people also recommend The C++ Programming Language (4th edition) by Stroustrup so I'll mention it, but I wouldn't put it with the others above. While the first and second editions (1986 and 1992) were effectively the C++ language standard during that era, those days are long past. There is a standards committee and he is on it. While the language stems from his work at AT&T and he continues to guide it through the committee as a member, it is not him but the committee in charge of the modern standard that was released 1998 and updated in 2003, 2007, 2011, 2014, and another expected in 2017. While this book has the occasional insight and covers some history, if you're at the point where you'd use this as a reference you are probably better off going directly to the actual current standard instead.

Share this post


Link to post
Share on other sites

To add to frob's list I will post my normal list for learning C++:

  • Programming Principles and Practice Using C++ Second Edition by Bjarne Stroustrup
    • Is a book designed to help you learn to program (if you have never programmed before) using C++ as a tool. It is also the intro course book for several degrees at Texas A&M University. Not to mention it is written by Bjarne Stroustrup himself.
  • C++ Primer Fifth Edition by Stanley B. Lippman, Josee Lajoie, Barbara E. Moo
    • The usual recommendation for Beginner C++, but that phrase is a little misleading. It isn't a book for someone who as never programmed, but rather a book for a programmer who is experienced in another language and looking to learn C++ now. It covers C++ more in-depth.
  • The C++ Standard Library Second Edition A Tutorial and Reference by Nicolai M. Josuttis

    • ?Covers the standard library in-depth. 
  • The C++ Programming Language Fourth Edition by Bjarne Stroustrup

    • I recommend this purely as a reference book. It too is written by Bjarne Stroustrup. You can certainly read it cover to cover if you like, but it makes a better reference than a book about learning due to its technical nature.

Share this post


Link to post
Share on other sites

-What is a good, easy to read book or tutorial to help, I'm open for online tutorials and stuff like that as well

 

also, I would hopefully be able to create something other than just display a triangle or rectangle to the screen, which I have heard some people have taken programming classes and this seems like their big final project (though some of these people were in Information Systems and not strictly a software based degree)

 

also, if anyone is willing to 'mentor' or just kind of keep me on track, show me how they started and what small programs they started with, as far as people to reach out to professionally, I have nearly no one in my social or professional circle that understands any of this, nor would want to learn haha.

 

I post C++ video tutorials on my website when ever I have spare time.  You'll also find a step-by-step tutorial series that takes you from a blank Visual Studio project to a 3D dungeon crawler game created using OpenGL.  So if you are interested, have a look.

 

I also take requests for video tutorials.  If there is a specific topic that you want to learn, just email me and I'll create a tutorial and post it on my site if I haven't covered the topic already.

Share this post


Link to post
Share on other sites

Currently, I am taking a C++ course called Graphic programming but its a CS 370.

You should read a book called OpenGL. I would say you should read a book and learn on your

own. it is always better.

 

Use this site http://www.cplusplus.com/doc/tutorial/

and get familiar with C++ library because C is just programming side and C++ is the extended 

version of it which is objected oriented too.

 

In terms of IDE you can use Eclipse, or netbeans.

Edited by Coder3189

Share this post


Link to post
Share on other sites


The three major books are the "red book", "blue book", and "orange book". The "Red Book" is the OpenGL Programming Guide. The "Blue Book" is the OpenGL Reference manual. The "Orange Book" is the OpenGL Shading Language. 

Just to make sure we are on the same page. Are you referring to these books(?):

Red Book:

http://www.amazon.com/OpenGL-Programming-Guide-Official-Learning/dp/0321773039/ref=sr_1_1?ie=UTF8&qid=1410587128&sr=8-1&keywords=OpenGl

Blue Book:

http://www.amazon.com/OpenGL-SuperBible-Comprehensive-Tutorial-Reference/dp/0321902947/ref=sr_1_2?ie=UTF8&qid=1410587128&sr=8-2&keywords=OpenGl

Orange Book:

http://www.amazon.com/OpenGL-Shading-Language-Randi-Rost/dp/0321637631/ref=sr_1_14?ie=UTF8&qid=1410587128&sr=8-14&keywords=OpenGl

Share this post


Link to post
Share on other sites
Yes, no, yes. Blue Book has a long title of The OpenGL Reference Manual as I wrote and you quoted.

The 'SuperBible' book is in a different group, although I have an old copy on my bookshelf -- it was yellow back then.

Share this post


Link to post
Share on other sites

Hi.

I say both, Go to school and learn on your own. This way with school you get a Recorded Grade and a piece of paper saying you have done some study.

Share this post


Link to post
Share on other sites

Yes, no, yes. Blue Book has a long title of The OpenGL Reference Manual as I wrote and you quoted.

The 'SuperBible' book is in a different group, although I have an old copy on my bookshelf -- it was yellow back then.

Okay so you mean this one: http://www.amazon.com/OpenGL-Reference-Manual-Official-Document/dp/032117383X/ref=pd_rhf_se_p_img_2

 

I wanted to clarify because all the other books were more recent so I wasn't sure if you meant the older Reference or the Super Bible when you said blue book.

Though, OpenGL.org states that you should get the SuperBible and Programming Guide so I guess there is no harm in me linking it earlier.

 

Question: Is the Reference manual really all that helpful still since it is for version 1.4 and OpenGL is now on 4.5? 

Edited by BHXSpecter

Share this post


Link to post
Share on other sites

Hey I just wanted to recommend these excellent videos I've been watching. The guy teaching is a CS professor at Neumont University and he's really entertaining and has a really good teaching style (at least for me).

 

https://www.youtube.com/user/1kingja is the channel, he has several playlists on different C++ topics as well as two graphics/game related playlists:

Game Engine Development - https://www.youtube.com/playlist?list=PLRwVmtr-pp04XomGtm-abzb-2M1xszjFx

3D Computer Graphics using OpenGL - https://www.youtube.com/playlist?list=PLRwVmtr-pp06qT6ckboaOhnm9FxmzHpbY

Share this post


Link to post
Share on other sites

This topic is 1189 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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