I want to learn how to program the drone in C without using the available libraries and platforms. I want to be able to understand how everything is set at a fundamental level(SRAM). Also, I want to learn to implement complex algorithms, such as computer vision, in combination with drones. How should I learn that?
Programming a drone consists of two levels. The first one is to create a remote control software. This task is done with microcontrollers and embedded system programming. The idea is, that the operator has a joystick, moves the joystick forward and the drone will react to the action. The first level is easy to master, and there are lot of tutorials available which can explain the details. In most cases, the microcontroller runs a realtime operating system and the drone controller sits on top, very similar to a firmware like the LeJOS operating system.
The second level in drone programming is way more complicated. Here is the idea not only to provide a remote control system but an artificial intelligence system. This kind of programming task has nothing to do with classical embedded system programming nor C programming at all. Instead, the task of creating an AI system is located in the domain of Academia / Matlab and deeplearning projects. It has to do with reading papers about pathplanning, implementing algorithms in software and thinking about reinforcement learning. Mastering the second level of drone programming is much harder and not real tutorials are available in the Internet.