I taught myself C on a Radio Shack Color Computer around 1986. I got a job writing point of sale software in 1988; after a year working for a failure and liar I was advised to go somewhere else, that I was very skilled for one year. I interviewed at Microsoft and in midstream, after lunch, learned I’d been promoted from interviewing for an app group to an OS group, for QA. November 1989.
I spent five months doing QA for Cruiser, OS/2 3.0, a joint operation with IBM. They got a divorce later.
Five months later, March 1990, I was promoted to a development group on the same project, writing the core of the installer. Another team member (Ted Miller) wrote the hardware detection, another (Portugese, name forgotten) wrote the DOS box-character charmode interface. My manager was Rajen Shah. I also wrote a UNICODE I/O module since at install time we didn’t have any shell.
So in 17 months from my first coding job I was a developer on MS’ most important project. They gave me stock options that after numerous splits were worth a half million.
That was my start. Self taught on a game machine upgraded to 512 K.
Edit: when I was moved to development the head of Cruiser QA, a man named Moshe something-or-other, ordered me to not speculate aloud why I had been chosen for this promotion. I thought I just sucked at QA.
Then Cruiser was toast, the IBM divorce, and I went to the SQL Server group where I wrote Embedded SQL for COBOL, a plain-box developer product, learning SQL, database fundamentals, COBOL, Lexx and Yacc and burned myself out for a year, thought I finished the project. Then I wrote the very first version of what is now the SQL Server Management Console, but which we called GUIDE: GUI Database Environment, the first non textmode interface for managing SQL Server. Solo projects. I was still only in my 3rd working year and wrote two entire products.