| | |
noobish questions
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jan 2009
Posts: 21
Reputation:
Solved Threads: 2
Ok i have a few questions. I'm fairly new to programming.
Im starting to get a little functional with java, i can handle GUI's, threads, exceptions, 2d graphics, JDBC etc. I took a class in C++ only to find that I am not even close to producing graphics or GUI's yet.
In C++ I have made it as far as pointers, references, inheritance, polymorphism, streams.
I want to at least dabble in graphics and GUI's with c++.
I ordered the OpenGL super bible, mainly to flip through the pages, but would like to write some Graphics code before too long.
Are OpenGL and the windows API something that i could realistically expect to learn from reading a book, or is that something i will need to learn in a classroom?
Im starting to get a little functional with java, i can handle GUI's, threads, exceptions, 2d graphics, JDBC etc. I took a class in C++ only to find that I am not even close to producing graphics or GUI's yet.
In C++ I have made it as far as pointers, references, inheritance, polymorphism, streams.
I want to at least dabble in graphics and GUI's with c++.
I ordered the OpenGL super bible, mainly to flip through the pages, but would like to write some Graphics code before too long.
Are OpenGL and the windows API something that i could realistically expect to learn from reading a book, or is that something i will need to learn in a classroom?
I think that when being class taught you are worse off. You tend to take the information you are fed and that is enough for you, you think it is correct. However when you teach yourself from books and the internet you wonder wether the resources information is actually 100% correct. So this means you then take the time to contnue to look around the internet for other sources and seeks help from other people about each indervidual topic.
This means that you gain a much better undertsnading of how things work and more likely a much better approach to doing things. Also you will learn valuable skills of being able to work out things more on your own rather than copying from class taught material!
The Win32 API is quite nice to work with and is VERY well documented on MSDN making it reasonable easy to learn, as long as you do not let it overwhelm you to start with.
I have never used OpenGL so I cannot comment on it directly but I have had a look at DirectX 9 which doesn't make it too complicated to use graphics. The main aspect of graphics programming is all about the Math behind it. If you can get yourself a good OpenGL reference then with a bit of common sense you can implement almost anything your mathematicals skills allow.
Chris
This means that you gain a much better undertsnading of how things work and more likely a much better approach to doing things. Also you will learn valuable skills of being able to work out things more on your own rather than copying from class taught material!
The Win32 API is quite nice to work with and is VERY well documented on MSDN making it reasonable easy to learn, as long as you do not let it overwhelm you to start with.
I have never used OpenGL so I cannot comment on it directly but I have had a look at DirectX 9 which doesn't make it too complicated to use graphics. The main aspect of graphics programming is all about the Math behind it. If you can get yourself a good OpenGL reference then with a bit of common sense you can implement almost anything your mathematicals skills allow.
Chris
Knowledge is power -- But experience is everything
•
•
Join Date: Jan 2009
Posts: 21
Reputation:
Solved Threads: 2
Thanks for the replies. After a few Java classes, and a C++ class, I ended up with the feeling that they were more of an intro to the languages than anything else. I've been reading everything i can get my hands on c++, vb, c#, java, php, assembly. But it seems difficult to make the jump from the basic coding that is taught in the classroom, to the actual skills that are needed to make useful applications.
Im working in another industry, so im not getting any experience at work, so I guess I will pick up a couple of books and try to comprehend what they are talking about.
Im working in another industry, so im not getting any experience at work, so I guess I will pick up a couple of books and try to comprehend what they are talking about.
I'm dreading starting my Computer Science course in september...don't wanna get into an argument with my lecturer....thankfully i'll be doing Java so I wont go skitz at him about void main() lmao
Knowledge is power -- But experience is everything
•
•
Join Date: Nov 2008
Posts: 392
Reputation:
Solved Threads: 72
Coming back to the original post. (sorry).
I think it is a level of depth. For Java, yes you do GUI/ graphics from a previously written library. For the c++ you are seeing a deeper part of computer programming, i.e. the lower level, the bit that builds the library. If you do more embedded stuff, you would learn assembler.
Interestingly there is a shift between the [old?] self-taught programmers who did basic (until aged 10) - assembler - C - C++ - Java, and the CS programmers who did Java-C++-C-assembler in that order. The self-taught know that the CS people don't understand pointers/memory correctly and the CS people know that the self-taught spend way to long programming something that is a one line library call, [even if it isn't exactly what was wanted].
Your course, could have done it the other way around (C++ first then java), but java hides some of the pointer stuff from you.
It is important to code at the lowest level required and no lower.
For my work, we use absolutely no java, it is 85% c++/fortran, some Schema, some Octave, but then I do numerical stuff that burn a few 1000 days of CPU per run. The graphics are C++ but so much of the rest is, it was a natural extension.
Would we use java? just for the graphics (had we not had to build the numerical engine). Yes! Could we do the numerics in java, maybe but the extra hardware to run it would have been prohibitively expensive [it costs approximately 2000 dollars to power and cool a single computer core -- either quad/dual per year]. Factors 2 are big, and factors 10 are life changing.
p.s To Freaky_Chris: First off, I envisaged you as a maths major
Bit surprised actually. Second, the process of "arguing" with the lectures is part of the university process, by the time you are doing your PhD you will sit and have coffee each day with several profs. and "discuss" about this/that, because that is one of the fastest ways to learn.
I think it is a level of depth. For Java, yes you do GUI/ graphics from a previously written library. For the c++ you are seeing a deeper part of computer programming, i.e. the lower level, the bit that builds the library. If you do more embedded stuff, you would learn assembler.
Interestingly there is a shift between the [old?] self-taught programmers who did basic (until aged 10) - assembler - C - C++ - Java, and the CS programmers who did Java-C++-C-assembler in that order. The self-taught know that the CS people don't understand pointers/memory correctly and the CS people know that the self-taught spend way to long programming something that is a one line library call, [even if it isn't exactly what was wanted].
Your course, could have done it the other way around (C++ first then java), but java hides some of the pointer stuff from you.
It is important to code at the lowest level required and no lower.
For my work, we use absolutely no java, it is 85% c++/fortran, some Schema, some Octave, but then I do numerical stuff that burn a few 1000 days of CPU per run. The graphics are C++ but so much of the rest is, it was a natural extension.
Would we use java? just for the graphics (had we not had to build the numerical engine). Yes! Could we do the numerics in java, maybe but the extra hardware to run it would have been prohibitively expensive [it costs approximately 2000 dollars to power and cool a single computer core -- either quad/dual per year]. Factors 2 are big, and factors 10 are life changing.
p.s To Freaky_Chris: First off, I envisaged you as a maths major

Bit surprised actually. Second, the process of "arguing" with the lectures is part of the university process, by the time you are doing your PhD you will sit and have coffee each day with several profs. and "discuss" about this/that, because that is one of the fastest ways to learn.
experience is the most expensive way to learn anything
•
•
•
•
Coming back to the original post. (sorry).
I think it is a level of depth. For Java, yes you do GUI/ graphics from a previously written library. For the c++ you are seeing a deeper part of computer programming, i.e. the lower level, the bit that builds the library. If you do more embedded stuff, you would learn assembler.
Interestingly there is a shift between the [old?] self-taught programmers who did basic (until aged 10) - assembler - C - C++ - Java, and the CS programmers who did Java-C++-C-assembler in that order. The self-taught know that the CS people don't understand pointers/memory correctly and the CS people know that the self-taught spend way to long programming something that is a one line library call, [even if it isn't exactly what was wanted].
Your course, could have done it the other way around (C++ first then java), but java hides some of the pointer stuff from you.
It is important to code at the lowest level required and no lower.
For my work, we use absolutely no java, it is 85% c++/fortran, some Schema, some Octave, but then I do numerical stuff that burn a few 1000 days of CPU per run. The graphics are C++ but so much of the rest is, it was a natural extension.
Would we use java? just for the graphics (had we not had to build the numerical engine). Yes! Could we do the numerics in java, maybe but the extra hardware to run it would have been prohibitively expensive [it costs approximately 2000 dollars to power and cool a single computer core -- either quad/dual per year]. Factors 2 are big, and factors 10 are life changing.
p.s To Freaky_Chris: First off, I envisaged you as a maths major
Bit surprised actually. Second, the process of "arguing" with the lectures is part of the university process, by the time you are doing your PhD you will sit and have coffee each day with several profs. and "discuss" about this/that, because that is one of the fastest ways to learn.
Maths Major hmm lol. I'm 17 and my Math isn't exactly the best I must say and I hope to be able to improve it! I do look forward to being able to have a conversation with my lecturers about things that are not directly covered on syllabus, rather than just accepting what is fed me. As i'm self taught at the moment in C++ and some Java (and Python but) it well be very interesting to be able to have a proper conversation about programming techniques, optimisation and the different paradigms of the modern (and not so modern) languages.
Chris
Knowledge is power -- But experience is everything
![]() |
Similar Threads
- Noobish (Perl)
- How can Can I copy the contents of one variable into another??? (C++)
- some noobish questions about xml, xsl (XML, XSLT and XPATH)
Other Threads in the C++ Forum
- Previous Thread: Implementing stack in maze
- Next Thread: Combinations of 0 and 1 for a given number of digits in C++
| Thread Tools | Search this Thread |
api array arrays beginner binary bitmap c++ c/c++ calculator char class classes code coding compile compiler console conversion convert count data database delete desktop developer directshow dll download dynamic encryption error file forms fstream function functions game generator getline givemetehcodez google graph gui homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker linux loop looping loops map math matrix memory news node number output parameter pointer problem program programming project proxy python random read recursion recursive return string strings struct temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock word wordfrequency wxwidgets






