Well, he hasn’t had any formal training in software engineering, and apparently it showed in the Zip2 days:
“While Musk had exceled as a self-taught coder, his skills weren’t nearly as polished as those of the new hires. They took one look at Zip2’s code and began rewriting the vast majority of the software. Musk bristled at some of their changes, but the computer scientists needed just a fraction of the lines of code that Musk used to get their jobs done. They had a knack for dividing software projects into chunks that could be altered and refined whereas Musk fell into the classic self-taught coder trap of writing what developers call hairballs—big, monolithic hunks of code that could go berserk for mysterious reasons. ”[1]