I studied some C in university, and now after graduating have bought some books and went a bit deeper into compiling, operating systems, etc.
When I finished a C course, they taught us all the basic stuff – loops, pointers, memory, etc. and said “you’re now a C programmer”. However, whenever I open actual distributed source code, I cannot follow or understand a single thing. I wish to begin slowly writing stuff myself, but I feel like I cannot cross this “gap” separating me from knowing basic C syntax and actually writing efficient and portable code.
An example of this is – I tried to look through the GCC standard header files, in particular ‘math.h’ and ‘stdio.h’ and hoped to get a better feel for resilient coding. When I opened the files I feel like I never learnt any C, I know that there is a lot of system specific code and so on, but at least I hoped to understand a small part of it.
Can anyone point me towards what should I do to transition from my superficial knowledge to confidently writing stuff that others can use? (in particular I wish to write drivers for hardware, mainly bare-metal programming)
‘I tried learning how to be a programmer and expected to be one by the end of the courses. Actual result – I feel like I’m starting from scratch.’