I started by writing BASIC code on my TI calculator in high school. First I just dumbly recopied some sample code in the manual, then I started tinkering with it and adding functionality. I was so bored in high school that I spent most of my time on my calculator writing code.
When the BASIC started to feel too slow and limited I switched to C. I never really learned the language "formally", my original code was filled with GOTOs and local variables (I was coming from BASIC after all). Then with practice it gradually improved. I still fondly remember the "wow" moment when I understood the point of function-local (stack allocated, but back then I didn't know what the stack was...) vars.
Now I write low level C code for embedded systems for a living.
When the BASIC started to feel too slow and limited I switched to C. I never really learned the language "formally", my original code was filled with GOTOs and local variables (I was coming from BASIC after all). Then with practice it gradually improved. I still fondly remember the "wow" moment when I understood the point of function-local (stack allocated, but back then I didn't know what the stack was...) vars.
Now I write low level C code for embedded systems for a living.