I have 20 years of programming experience. Initially I was self-taught but eventually worked my way through a PhD in computer science. I have written hundreds of thousands of lines of code in a myriad of languages.