There is no unified and standardized source that Computer Programmers learn their magic from. I have tried summarizing them in 3 main groups, but I’m absolutely sure there are many exceptions to that. What matters in the end is a programmers knowledge and ability to write amazing software and programs regardless of where that knowledge is coming from.
Depending on the education and training background, a programmer could belong to one of the following groups: