user3855: To make those who not familiar with C++ to understand the algorithms.

user1171: Forum user and Armory client developer etotheipi put together a few nice images covering some aspects of the Bitcoin protocol, mostly related to transaction construction and verification; see this forum thread.
Other than that, though, most of the documentation is in code only. If you're comfortable with another language, you could try looking at BitcoinJ, a Java implementation of Bitcoin (client node functionality only), BitcoinSharp, a C# port of BitcoinJ, CBitcoin, a C99 Bitcoin library (also partial), Bitcoin-Ruby, BitcoinJS, and/or PyWallet.
In the end, though, currently the only complete reference implementation of Bitcoin is the original C++ code, so biting the bullet might be the only option.

user1473: Although it does not speak directly to programmers.
The Khan academy has got a great set of conceptual videos about bitcoin internals
https://www.khanacademy.org/science/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it 

3855: <p>To make those who not familiar with C++ to understand the algorithms.</p>
 1171: <p>Forum user and Armory client developer <a href="https://bitcointalk.org/index.php?action=profile;u=31239" rel="nofollow">etotheipi</a> put together a few nice images covering some aspects of the Bitcoin protocol, mostly related to transaction construction and verification; see <a href="https://bitcointalk.org/index.php?topic=29416" rel="nofollow">this forum thread</a>.</p>

<p>Other than that, though, most of the documentation is in code only. If you're comfortable with another language, you could try looking at <a href="https://code.google.com/p/bitcoinj/" rel="nofollow">BitcoinJ</a>, a Java implementation of Bitcoin (client node functionality only), <a href="https://code.google.com/p/bitcoinsharp/" rel="nofollow">BitcoinSharp</a>, a C# port of BitcoinJ, <a href="http://cbitcoin.com/" rel="nofollow">CBitcoin</a>, a C99 Bitcoin library (also partial), <a href="https://github.com/lian/bitcoin-ruby" rel="nofollow">Bitcoin-Ruby</a>, <a href="http://bitcoinjs.org/" rel="nofollow">BitcoinJS</a>, and/or <a href="https://github.com/joric/pywallet" rel="nofollow">PyWallet</a>.</p>

<p>In the end, though, currently the only complete reference implementation of Bitcoin is the original C++ code, so biting the bullet might be the only option.</p>
 1473: <p>Although it does not speak directly to programmers.
The Khan academy has got a great set of conceptual videos about bitcoin internals</p>

<p><a href="https://www.khanacademy.org/science/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it" rel="nofollow">https://www.khanacademy.org/science/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it</a> </p>
