How did I get there?
Then, I've been lurking some websites suggesting programming languages to start. Albeit very young, I've managed to learn basics of C++ (the procedural style, didn't touch OOP unless required). It was very hard time for me, because I didn't have knowledge to solve all of my problems myself, and didn't have a welcome community to help me out.
It sounds stupid, but the person that drew my attention to C was my IT teacher. I've talked to him, and said, that I've "learnt" C++. He proceeded to ask Which header files would you include to make a command-line calculator? I've been prepared for this question (as I've made a few cli calculators before). I replied <iostream> and <cmath>. His reply was Oh, I really don't have an idea, because I just program C. One of issues with my early carrer was lack of people willing to help me out. I decided then, why not learn C, if so many people know it? I had no idea back then, that they have been forced to learn C on the university. So it all rolled down.
At the first stage of my transition, I've started to simply use C functions (like printf(), instead of using << overloaded operator for std::cout known from C++). The code seemed like some kind of a frankenstein, because I didn't really know how to get without simpler to use C++'sisms like std::string.
Time has been flowing. In 2015 I learnt basics of Java, and gone even deeper into C. In summer of 2016, I've downloaded and built FreeDOS, and tweaked it a bit. I've been adding a few (useless, eh) routines written in pure Assembly. I didn't really learn it, because I had trouble with understanding the online guides and the way they required to remember so much, I couldn't make it through. So I learnt by reading and writing, simply speaking, by doing. I spent too much time on learning Assembly. But I loved it. As I've finished my custom distribution of FreeDOS, I came into realisation that I don't really want it public, so it stays probably on my hard disk upon this day.
In Winter of 2016, I've picked on developing my "own" operating system. I've followed a few guides, but I had really no idea on understanding them (to emphasise it, I lacked knowledge of what segment is back then), so the project ended quickly on a brainfuck kernel that would read the code from the keyboard, execute it, and print out the result.
In 2017 I began doing real stuff. I've uploaded a few (not very high quality) libraries onto my Github. My first project, in fact, was just my 2012 stuff that I've decided to upload after I've discovered Github. I made an archiving library (I'm not so proud of it now, because as I look into the code after all that time passed, I'm really having bad time with doing it).
Me and C now
I've studied C really deep. I've been reading others code alot, trying to get an idea of what is happening there. I've been making some more projects and other stuff with time passing. I can really say that I do know C now.
As I've spent so much time on C and low level, I'm not going to just drop it, it's going to remain with me forever. I've undergone apprenticeship at local business, programming C for two months. It has changed my point of view on programming overall, and probably will influence my future decisions. I've spent on real C just four years (but my programming carrer started around 7 years ago at the time of writing). One might think - Hey, that's not a lot. It's not true. For most of my time those years, I've made a serious improvement. I've been programming stuff for about 5 hours a day, on peak, around 8. For the whole year. This gives around 2000 hours spent a year, and 6000 hours spent for the entire time. Recalculating this to the programmer's workhours, it's about the same as average mid-level developer experience. Given that at the moment I'm quite young, the time spent is just going to grow.
Do I have life