There are multiple programming languages that you could focus your efforts on and it will depend on which cryptocurrency you would like to use as a base platform for plug and play functionality.
It would also be important for you to consider what the top programming languages are in 2015/2016, published by IEEE here, and TIOBE. To establish a strong crypto programming foundation, I would suggest concentrating on first learning C++ by using a few beginner books (if you are on a tight budget, you can actually purchase many of these books from a nearby Goodwill or used book store for 1/20th of the price), and then begin to experiment with Node.JS, Python, Perl, and other relevant languages as these are typically compatible/accepted/supported in activate crypto environments.For specifically programming with crypto technology, you can focus on C/C++ with OpenCL / Cuda for GPU programming.
As there is a tremendous amount of capital and funding approved and dedicated now to crypto technology infrastructure and architecture (and rightfully so, brick foundation is crucial), you can secure a high ROI by focusing on those areas as well as wallets, mining services and rigs (C or C++). Also, you should definitely learn about the autonomy, decentralization, fault tolerance, and scalability of distributed hash tables (DHT):
A few great books I personally highly recommend you have in your library:
- Amazon.com: Mastering Bitcoin: Unlocking Digital Cryptocurrencies eBook: Andreas M. Antonopoulos: Kindle Store and it is also available free: https://github.com/aantonop/bitcoinbook
- Amazon.com: Blockchain: Blueprint for a New Economy eBook: Melanie Swan: Kindle Store
List of the major cryptocurrencies and base programming languages:
- Bitcoin: core programming is written in C++; David Derosa’s guides are useful in providing a simple introduction, 1) Bitcoin Script Language (1) and (2) and 2) standard scripts being used.
- Programming the Blockchain in C# is a free book published on GitBook; you can download pdf, epub, mobi versions.
- This comes with a test console app that helps you build a blockchain app in only a few minutes: GeorgeKimionis/BitcoinLib
- BitcoinCore development community is very active: https://bitcoin.org/en/development
- Blockchain University is growing: Home
- Programming Bitcoin Reading Lists and associated Projects: jashmenn/bitcoin-reading-list
- Ethereum: as an open source decentralization environment, it offers multiple options, but for the most immediate impact and usefulness I would suggest learning Go as well as mastering everything related to decentralized applications (Dapps). How to best learn Dapps?:
- Ether.fund has a directory of Solidity smart contracts that could help you come up with more innovations.
- The Ethereum Github has a great list of useful resources to help with Dapps development: ethereum/wiki
- This article from Consensys provides a useful introductory tutorial on programming Dapp based smart contracts.
- And finally, user jjms from Ethereum stack exchange (works for Ledger Labs) wrote an "Intro to Dapp Development" tutorial here, which “walks the reader through installing Geth, running a local node, a basic contract design, and a more advanced auction contract example.”
Bitcoin API and enterprise software platforms:Once you are ready, you can explore the sandbox at Chain.com, which delivers the power of a “production-grade Chain Core in a simplified development environment, designed for rapid iteration” and it accepts/offers SDKs for: Ruby, Java, Node.JS and aside from having a unified interface, multi-language support, tutorials and sample code, and implementation guides, Chain offers a Virtual Hardware Security Module (VHSM); this is critically important because it is a device that protects and organizes digital keys for secure authentication and provides cryptoprocessing services. With the recent exploitation of security vulnerabilities, this is essential to any crypto platform.Aside from Chain, there are many other Bitcoin APIs that you could learn about: Blockcypher, Bitcoin API and More, Coinbase, and BitPay.The Blockchain has inspired software that is already being tested and experimented with by enterprise technology companies for multiple commercial applications (albeit most of them being private Blockchain based, yet still effective). If you focus your efforts and time on tracking which applications will pick up the most momentum, and then making sure to become an expert in those programming languages, you should create a very competitive profile for yourself for multiple decades to come.
Recent commercial examples that are trending (some excerpts from Wiki):
- Deloitte and ConsenSys announced plans in 2016 to create a digital bank called Project ConsenSys.
- The R3 Project, which connects 42 banks to distributed ledgers built by Ethereum, Chain | Enterprise Blockchain Infrastructure, Eris Industries, Intel and IBM running on Microsoft Azure.
- IBM ADEPT, an IoT system using Ethereum for smart contracts support.
- Microsoft Visual Studio is making the Ethereum Solidity language available to application developers.
- Ethereum Blockchain As a Service (EBaaS) on Microsoft Azure, which provides enterprise clients and developers with a cloud-based blockchain developer environment.
- SafeShare Insurance offers blockchain-based insurance for the sharing economy, underwritten by Lloyd's of London.
If you are interested in learning more, I blog occasionally on Blockgram.com. You can join the newsletter to receive updates.
Happy crypto programming!