I'd never heard of the "Byzantine General's Problem", but after reading the wikipedia entry it's an obvious issue once you consider system reliability. It's a variation on decidability. As noted, there is a *lot* more to programming than learning a language. In fact, the particulars of a language are *usually* trivial. C++ is an exception as in the presence of enthusiastic use of multiple inheritance, understanding a single line of code can require reading the source for all the class libraries, the C++ standard and the compiler implementation notes.
A self taught programmer who has read the MIT algorithms book or Sedgwick, has a copy of Knuth and knows when to go look at it, comprehends assembly and register level concepts, can setup a table of function pointers and use it and can implement a reliable UDP data transfer that does not cripple the sender if the receiver is down, is not going to have any problems finding work if they look in the right places. However, they will need to supply suitable credentials in the form of work already done.