I just got into c++ programming a couple weeks ago. So far am learning this at a slow pace but enjoying everything I am learning. However I want to know from your guys point of view if its possible if i can learn mostly everything about this language from now till September of next year. I read a lot about how it may take people years to fully understand this language. I made a commitment to learning c++ 2 hours a day, 5 days a week.
Also am bad at math (and by bad I mean really, really bad) but am willing to go into an academic upgrading for math so I can better understand much harder code.
Ultimately am doing this towards a bachelor of computer science.
Any thoughts, tips or recommendations you guys have can greatly help me.
Firstly, learn math. If you learn math, you'll do better at programming. Also, bachelor will require you to take math exams.
And it depedns on what you mean by "learn mostly everything about C++". Sole knowledge of language won't do. You need to learn how to use some frameworks.
But I guess it's possible to learn C++ so that you could start making some programs. Get past basics, and then try making some simple programs, and then start complicating them. For example, when you have learned C++, you may try making some simple IRC client - you could use Qt and Boost; you could make some game - SDL/SFML/OpenGL/Ogre3D, some xml... These names are all names of libraries allowing you to perform some tasks - for example, Qt allows you to create GUI, and it's cross-platform.
But if you want to learn C++, just learn it. You'll see if you can make it.
Math requires logic i.e. logical thinking and problem solving. Programming is kinda same like that - it requires you to think logically and solve problems. Therefore, if you are good in math, it will help you in programming (not directly but indirectly by helping you think logically). However, if you plan on making games, I'm afraid you'll need math (at least some understanding of geometry). But you do not need math to be a programmer, it just helps you that's all ;).
Also, practice. Once you finish a chapter, start some mini-project trying to apply all that you've learnt until that point.
I suggest that you look into the beginners forum and try to solve some of the problems posted there, even if someone else has already found the solution. It is great practice to find your own solution to a problem and compare to what others have done.
Math is important, true. But if you're looking to do programming for business applications, etc... then it's not really that urgent.
Game programming takes a lot of math knowledge. If you are really interested in programming, keep on studying C++ and don't get sidetracked by trying to do math at the same time - at least not at the outset. Sooner or later, you'll know exactly how much math knowledge you need (tailored to your specific choice of programming be it games, business, education, etc...) and then you can focus on the math topics necessary.
Also, if you're wondering what you'd be like in C++ after a year of studying, I would have to say if you're really passionate about it, you might be really good at it already by the end of the first year. Also, be sure to focus on the 'why' and 'how' of the code you write, rather than just what code to write and get your program working. If you proceed like this, then down the road, you won't be able to really understand your own programs.
I'm not sure if you are interested, but I tutor students in C++ (especially beginners).
If you mean learning the WHOLE language then:
Even in 60 years of learning C++ I will still not know the whole language C++ is ENOURMOUS Bjarne Stroustrup creator of C++ only knows 60%
Would you mind providing source?
I'm quite skeptical about informations like these. Also, it doesn't say much. Indeed, Stroustrup created C++, but right now there are many more people that are managing the standard then himself.
Also, what does it mean to "knowing whole C++ language"? I'm pretty sure it means nothing.There will always be something that you can learn, or some new library. And after 5-10 years working experience with C++ I believe you can say that you know this language; it doesn't mean, that it cannot surprise you, but treating it like something so complex, that even after 50 years of working with it you'll not really know it seems like overkill to me.
If you mean the standard library, you can get good at that in about 1 to 3 years. If you mean everything... well you can't learn everything, there is too much and always more. And then, new more stuff. And more, and then new stuff and more... It goes forever.
What's special about C++ is that it can expand because of its libraries which provide useful code for you. Some programming languages do not provide this capability and thus their "progress" is stumped.
So, learning the basic C++ syntax such as templates, overloading, pointers, functions, classes etc... will take maybe 1 - 2 years with lots of practice. But the C++ standard library will keep on growing and you only need to pick and choose the components that you will use the most. There are references here in this site that detail the libraries and you can use it any time to refer to anything you're unsure of. This is what programmers do.
So, learning the basic C++ syntax such as templates, overloading
is overloading considered syntax? i was thinking that was more of a feature. anyways, it entirely possible to learn all of the features of c++ in that time frame. do i recommend it? no. there is more to c++ than just those features. learning libraries like boost, sfml, sdl, stl, opengl, the c library, etc, and also not just how to write code, but how to write it correctly, is important. for example, knowing when to use switch, ternerary, or if chains, when to use a collection of functions or a class, or when to use goto.