That's some very cool stuff. Difficult to do?
I'm very hesitant to do any rendering-related programming. It seems like a very tough field to get into.
Right now I'm trying to find and consume as many C++ homework tasks/programming challenges as possible. I really want to get good at the logical side of things because I'd like to be working at a AAA studio at some point in the future. It's tough when your college doesn't offer that kind of support and there's no tutors for programming either.
Thanks! It's actually not too difficult. These are the more simpler fractals, which don't really need to use
affine transforms.
Right now, I'm using SDL2 for rendering, and C as the language. These programs are just rendering one line at a time using recursion, and using sine and cosine for rotating the lines in the Y-fractal.
If you are relatively new to programming, I recommend you learn about truth tables, as they are very important when making logical statements. Then learn how to apply logic in your if-statements and for/while loops.
Then you may want to know how memory works. Learn about pointers and how they work. Since you're using C++, you wouldnt need to worry about knowing how to allocate & free memory (although it doesnt hurt to learn!). You should also understand the stack & heap.
If you want to skip ahead or already know that stuff, then I'd suggest learning your basic sorting algorithms: Bubble, Insertion, Selection, Merge, and Quick sort.
After that, learn your basic data structures: Stack, Queue, Circular Queue/Buffer, and Linked List (requires pointers). Then you can later try to use your sorting algorithms to sort elements inside the data structures (Linked list would be good to start with sorting).
Now you pretty much know beginner/intermediate programming. If you still want to move forward, then learn your binary tree structures, which are structures with two children: Binary tree, B-tree, AVL tree, BSP tree, etc. (I would just recommend learning the binary tree for now). Then you can advance into trees with even more children: quadtrees (four children) and octrees (eight children). All these trees are used for storing things in memory, and then being able to access/render them in a very fast and efficient way. As an example, game engines like Quake and Source use BSP trees to store object information in their maps, so they can later render them efficiently. Blockland also uses octrees,
as stated in this very detailed post by Klarck
Along with all the things I just said, knowing linear algebra and geometry is an
essential when programming games: vectors, matrices, quaternions, linear transformations, affine transforms, etc. Linear algebra is used in almost all games (3D and 2D).
If you dont know where to start, you should use Khan Academy to learn linear algebra.
Thats pretty much all I have to say. Im still learning as I go, so I may be wrong in some cases. There is also so much more to be covered, but knowing all of this will already make you very advanced, and a AAA company will want to hire you.
Good luck.