I have a 1,000 page C++ textbook. There are a few things it that I still don't know, but I've got a good handle on most of it. I've learned some C too. Where should I go next?
Printable View
I have a 1,000 page C++ textbook. There are a few things it that I still don't know, but I've got a good handle on most of it. I've learned some C too. Where should I go next?
GUI, if you don't know it
or
Graphics programming (OpenGL/DirectX)
or
Assembly language programming
Learning things like graphics libraries and assembly language and different libraries can give you some good learning experience, but some people think that fussing about language semantics and grammar is learning how to program. It really isn't. You have to learn to apply your skills and think of problems to solve and stuff. You may or may not have known this stuff already, and if you need some good ways to apply some of the C++ that you already know, doing something with some library can be good experience.
I'm afraid I'm going to deviate from the replies already given, but...
What makes you think you have learned C++ and C? Most people with years of actual experience on them will still probably be careful in admitting such a thing.
The natural step after reading a 1000 page book on C++, as you seem to have, is to actual program in C++. Honestly, if you find yourself asking the question you just made, you haven't learned C++. In fact you have a poor view of programming languages since you just don't pick them like apples, put them on some mental equivalent to a basket, and move on to the next programming language.
If you are asking instead for an idea for a project, search the forums for "project ideas". There's heaps of posts on that subject.
Well, your opinion doesn't really deviate from mine. I just 'know' that the term 'know' is thrown around loosely, and I also agree that the OP should apply some critical thinking and problem solving skills to attain a better understanding of programming and the C++ language in general. When you just start thinking of crazy ways to make your application cooler, you run into so many things that you could learn and all sorts of different methods of solving things.
A number of interesting responses have been given, but I'd have to say that depends on what you are interested in. Also what book is it? I've been thinking of learning a bit more about C++ and I've more or less run out of useful online tutorials. Not to mention my book is from the days of Borland Turbo C++. :(Quote:
Originally Posted by thetinman
I think a little study of algorithms will be usefull... just to understand why O(log(n)) is better than O(n) and when you can be still happy with the second one...
I've learned a significant amount of C++ and C. I'm like Frobozz in that the usefulness of my 1,000 page and the online tutorials is rapidly decreasing.Quote:
Originally Posted by Mario F.
Problem Solving with C++ by Walter SavitchQuote:
Originally Posted by Frobozz
Then check Tonto's reply.
Programming languages are notoriously mischievous in that they give us a false sense of knowledge that crumbles like a deck of cards after the first 20 lines of code.
You will have to apply that knowledge now. By developing some form of small project you would like to. Immediately after you start, you will know what you are missing in know-how. Trust me on this one.
I don't think you'll get any reasonably informed answer until you tell us what things you've made with C++ or any other programming language.
Taking into account all other replies, do you understand and can you create working
programs that incorperate all the things C++ uses? If you can, have a dabble at opengl or direct X. Both of these combine a good knowledge of C/C++. Although opengl is technicly a graphics library, it shows you what amazing things computers can do.
Looks at NEHE'S tutorial on gamdevelopment.com for more information.
If games is not your thing, think about "Real World" objects and try to write a program that
simulates one. Ideas for this would be an elevator, or an ATM machine, or even a data base for a bank. When you are happy with this try windows programming, one of the most
challenging experiences out there to date
Know of any good C++ reference books. I find myself looking up even the most basic things for small projects.Quote:
Originally Posted by Mario F.
Quote:
Know of any good C++ reference books. I find myself looking up even the most basic things for small projects.
is one of the best around.Code:C++ coding standards
Authors: Herb Sutter and Andrel Alexanderscue
Hmm... I wouldn't call Coding Standards a C++ reference book. It's an extraordinary book. One I'm happy to have on my still short collection. But it is more a book of good coding practices, as the subtitle attests.
I know of no good reference C++ book. And I'm starting to doubt it exists. I certainly have looked for one on many bookstores. Of course, Bjarne's own book is a complete reference to C++. But I believe you mean a more traditional-like reference book.
With that said, The C++ Standard Library: A Tutorial and Reference, from Josuttis is the closest I got. An extraordinary book. It's centered on the STL and details it to the smallest detail. It's certainly a reference book. But it does leave out the C portion of C++.
>There are a few things it that I still don't know, but I've got a good handle on most of it.
People call me an expert, and I wouldn't make that claim. Unless you're way better at C++ than me, you shouldn't either. ;)
>Where should I go next?
What do you want to do?
You know what I love about you, Prelude? You're so modest, yet you consider yourself cocky and egotistical every chance you get. :) Whether or not you know almost everything about C++, you still know more than a lot of people, which in my book makes you an expert.Quote:
Originally Posted by Prelude
Yes, but I think it's mostly things that aren't directly related to the language. It's things such as platform specific GUI programming, interfacing with the hardware, or the header format for a BMP file.Quote:
Originally Posted by Mario F.
You just read one book on C++. You aren't ready for advanced stuff.
The simple general rule for C++ is... ok... sit down and brace yourself. This is going to hurt... the simple general rule for C++ is you need 2 years to feel comfortable around the programming language concepts, and 2 more to become fluent. The remaining years are spent becoming an expert. This generally happens 10 or more years after you first started.
The GUI thing?... well, I would advise you to try this only after the first year. But I can see you are going to be one of those little speedy gonzales that think they can do it and a couple of weeks later give up cursing at C++ for being too complicated.... yeah.
A windows programming tutorial:
http://www.foosyerdoos.fsnet.co.uk/
>It's things such as platform specific GUI programming, interfacing with the
>hardware, or the header format for a BMP file.
Those are more API stuff than programming skills. Before you jump head first into the grind of programming, you should have a strong foundation in the basics. That means 1) familiarity with at least three languages that have followed different evolutionary paths, 2) a good understanding of algorithms and data structures, and 3) experience with logic and problem solving. Each of those will make you a far better programmer than a little knowledge of an API or graphics formats.
Once you're a good programmer, you can learn new things easier and more quickly.
I think I understand general programming concepts, though I'm not sure what you consider general programming concepts to be. I've done a GUI, and the program runs, although the GUI is not a very nice one.Quote:
Originally Posted by Mario F.
I've used about eight different languages (counting scripting languages), but I certainly do not know eight different languages. What is considered familiarity?Quote:
Originally Posted by Prelude
Personally I think algorithms is such a broad area that one could never really know it. It includes everything from alphabetic sorting through edge detection in image processing. Data structures I don't think I know. Logic I think I do know.
What Mario F. stated is essentially true in terms of learning *everything*. If you don't need to "learn it all" (aka if you want to learn what you need to on the fly) then perhaps you can learn much quicker, only to be hindered slightly (or sometimes not so slightly) when you run into something you don't yet understand. Some people (like me) don't learn concept very well and only learn from implementation. I find it much more interesting to go to way of "dive right in" but of course, that's not for everyone.
I don't know anymore what you are asking, thetinman.
All has been said. You should program in C++ for a while. Reading a book is not enough. If you think you know C++, you are wrong. You don't.
Build a game. If you think you really know C++ then build a simple console game or even a simple windows-based game.
I've been coding in C++, BASIC, VB, and assembly for a very long time and I'll be the first to admit I'm not even close to having learned them all or mastered them. Some things still to this day keep me up at nights thumbing through tons of books and/or browsing the net for an answer to one of my obscure problems. Amazon is my best friend and fortunately I also think they sell bookcases...which I'm sorely in need of.
Don't be fooled by a book. Start coding and you will really see how much you know. If your current projects are not challenging enough then start on some that are way out of your league. Since you are familiar with the language jumping into a difficult project probably won't deter you from the language - so I say jump in head first. I give you about an hour into a complex project before you will be reaching for a book.
My programming exploits, fits and frustrations, misadventures, and moments of sheer rapture to this point could fill 10000 books and I haven't done 1/4 of what some of the people on this board have. Not to toot my own horn but to illustrate a point...I've read about 20 books or more in the past year or so on different topics in programming and yet there are about a million more to read. One book certainly does not make you an expert. Go write a report in school and cite one source and see what kind of grade you get.
You certainly are making some outrageous claims in this thread.
Give your code to someone else to support, and count all the non-normative lexic he uses trying to figure out what is going on here and there.Quote:
What is considered familiarity?
If your count is close to zero - you can say that you're programming good enough in the given language.