I can relate to this. Self-taught programmer. People ask, "How did you teach yourself?" and my answer is always, "I built things and learned along the way."
>> At the same time, the best programmers I’ve ever worked with had limited formal education. They had something far more useful…
The best programmers I’ve ever met are what I would call “builders”. They always were building something. Even when they weren’t coding, they were usually building something without code - like wood tables or renovating their bathroom or something like that.
I'm always amazed at the conflict between "the best programmers I've ever worked with had limited formal education" and the notion that the best engineers are those that make a lot of money and work at Google/Facebook/Microsoft/Amazon, etc. Because it seems like the "builders" probably won't have the DS/Algo/CS knowledge required to get past the interviews of the Big Guys. Are the true "best programmers" a combination of the two?