First time I had to write a makefile too. Ouch.
It had memory leaks, but nothing I couldn't have fixed given more time. It was userland, libusb, hadn't had time to get it anywhere near ready for a kernel driver.
I don't even know that I've ever properly learned any programming language... I get syntax Alzheimer's quite a bit. Other than novelty languages, how can you not look at code and not have some idea of what's going on though?