Programmer's learning path question.

Good time of day or night. Some time ago i was sure that WebGL programmer’s learning path starts with C and OpenGL, but for now, i’m not sure. So the question: What way is more useful C & OpenGL or start with JavaScript & WebGL for programming WebGL in future. Maybe there some special way to learn WebGL? Searching for advice from experienced programmers. Thanks.

Searching for advice from experienced programmers.

I’m a computer science student with specialization on computer graphics. About 10 or 12 years of programming experience. I hope that’s enough :wink:

I suggest the following other:

  1. [li]Learn to program first. Don’t start with JavaScript as first language. Since you want to learn OpenGL later, C++ might be the best choice. C++ is close to the hardware, which is important when it comes to maximal performance. Also, when using the right libraries, it is portable. You are not limited to the Windows platform. In contrast to Java C++ does allow to overload operators, which is boon when it comes to vector math.[/:m:39xsdi4c][/li][li]Learn some math basics behind 3d graphics: At least a little bit matrix and vector math is a must have.[/:m:39xsdi4c][/li][li]Learn OpenGL 2.x or OpenGL 3.x directly. Most beginner tutorials use glBegin()…glEnd() to render first triangles, which is absolutely outdated. Don’t waste time with that: You should start with VertexBufferObjects (VBO) and GLSL Shaders as quickly as possible.[/:m:39xsdi4c][/li][li]Learn to use XHTML with CSS. Then start with JavaScript.[/:m:39xsdi4c][/li][]Start with WebGL.[/:m:39xsdi4c]

Learn math, especially how to work with a 4 dimensional matrix. You should be able to rotate, translate, or scale that sucker in your sleep.

Learn the basics of color. Becoming familiar with sRGB is a good start.

Learn C. Once you can comfortably iterate through a char array with pointer arithmetic, then move on to how objects are constructed in C++. Make a program that does something.

Now go and create a basic OpenGL program in C++. Piece it together from tutorials you find online (nehe articles maybe). Try not to use GLU. Maybe you can draw a rotating sphere without using GLU. Fight your way through the math. Trigonometry needs to be your friend. :slight_smile:

Write the above program any way you can. Don’t worry about speed or using outdated APIs. Just get used to working with the craziness of OpenGL.

Go and read at least the first few chapters of the “gold” book. It’ll help you understand why some parts of non-es opengl are “bad” for you.

Go rewrite your program using the techniques described in the gold book.

Now go make a website in Javascript. Make it do something with Ajax. Draw something to a canvas.

Now go and skim through the WebGL spec, try to relate it to what you read in the gold book. Rewrite your C++ program in Javascript now.

That’s just one path of many. :slight_smile: