Crypto Market Commentary
4 February 2020
Doc's Daily Commentary
The 29 January ReadySetLive session with Doc and Mav is listed below.
Mind Of Mav
How To Become A Blockchain Developer
Ever think about a job change?
Or, want to do something with your free time that could lead to some interesting opportunities down the road?
If nothing else, want to gain a better understanding of what you’re speculating on and trading with?
Welcome to our guide on gaining skills for the blockchain industry in 2020!
I think this is increasingly relevant as the blockchain industry looks to make expansionary moves this year and continue to develop the underlying technology stack.
Furthermore, the data points are there. A LinkedIn blog published last month notes that “blockchain” is the most in-demand skill in the United States, the United Kingdom, Australia, France, and Germany — more popular than cloud computing, artificial intelligence, and UX design.
“Blockchain has emerged from the once shadowy world of cryptocurrency to become a business solution in search of problems,” said LinkedIn. “Which means that you don’t have to be in financial services to be seeking new hires who have background and expertise in putting blockchain to use.”
“[…] Companies seem to be saying that the potential [of blockchain] is worth the gamble,” LinkedIn continued. “Blockchain has become a line of business for a who’s who of the corporate world — IBM, Oracle, JPMorgan Chase, Microsoft (LinkedIn’s parent company), Amazon, and American Express, to name just a few.”
To sum up that article (and this one), LinkedIn says that learning Solidity is key to working in blockchain today. For those unaware, Solidity is the programming language used to write Ethereum smart contracts.
While going freelance to write code might not be in your interest, knowing that the average blockchain developer on Upwork earns $215 / hour might give you some ideas.
But, let’s not get ahead of ourselves. First, we need to cover some important material.
This guide will proceed in ten parts:
- Why should you learn blockchain development?
- The theoretical foundations of Bitcoin
- Building a blockchain yourself
- Ethereum and smart contract programming
- Smart contract security
- Taking off the training wheels
- Building your own projects
- Navigating the blockchain community
- Getting a job
Let’s dive in!
Why should YOU learn blockchain development?
Let’s get this covered right out of the gate: blockchain is massively speculative, full of garbage projects, and nearly everyone seems to have an ulterior motive. No matter how you interact with blockchain, it’s important to remember that price will never follow technology in a perfect correlation.
Projects and technologies which, by all rights, should get recognition don’t, and those that shouldn’t do. It’s an unfair world, and even though blockchain seeks to ameliorate that in some way, it is still inherently the birthplace of massive speculation and disappointment cycles.
Essentially, in my view, prices are the least interesting part of cryptocurrencies. These are massively important technologies, and they are going to irrevocably change the world with time.
So, rather than being pedantic or unsure of ourselves, let’s consider a couple of reasons to take the leap and get your hands dirty with blockchain tech:
1. You’re early.
There is no such thing as a blockchain expert. The space has hardly been around for 10 years, and many of the subsequent iterations of blockchain and DLT have been in existence only for a fraction of that.
Many of the people who you would possibly consider as an expert in the space have only been working in it for a few years.
Consider Ethereum. Anyone coding with Solidity only has a headstart of a few years over you. It’s equivalent to those who started building web technologies in the 90’s and you finally took the plug in 2000. Think about how much you could have learned and grown in the last 20 years, and how insignificant those early adopters’ headstart was in retrospect.
The fact is we’re only at the beginning of this story.
2.The funnel of talent is nascent at best
One of the reasons that there is way more demand than supply for blockchain developers is that there simply isn’t a well-established pipeline of talent.
Universities are only just starting to teach blockchain. Corporations are only just starting to offer formal positions for blockchain development.
Compare this to the talent pipelines that exist for machine learning, cloud computing, or game development. Blockchain is only just starting to have those pipelines established and people are slowly warming up to the idea of committing thier career to blockchain development.
Just by being open-minded and curious, you’ll find a seat at many tables and help build many bridges for those that follow you.
Naval Ravikant said in a recent interview: “The key to success is to give society things that it wants, but doesn’t know how to get on its own. You can’t go to school for such things; if you could, the world would already have a steady supply of it.”
3. Demand >>> Supply
Based on a report from job site Indeed, there is less interest from candidates in blockchain and cryptocurrency roles, as searches for the jobs are on the decrease. On the other hand, Indeed says employer demand has “skyrocketed.”
Here’s a few insights:
Between September 2015 and September 2019 the number of cryptocurrency and blockchain-related jobs per million increased by over 1,400%. Across that same time period though, searches only increased by 469%.
Over the past year, cryptocurrency job postings per million have increased by 26%. Despite this, the number of searches per million have decreased by 53%. This marks the first time in four years that employer demand has gone up but candidate demand has gone down.
What does this mean?
Well, it might seem as though developer interest in blockchain is fading. Perhaps there is some of that, however, I’d argue that the more relevant conclusion is that the job market is trending towards big business.
In 2017 it was mostly startups and ICOs attracting developer talent. Today, however, the top five jobs in blockchain and cryptocurrency are for engineers, developers, and software architects.
According to Indeed, Deloitte, IBM, and Accenture are the top three employers in the decentralized tech, and the likes of Ernst & Young, JP Morgan Chase, and Cisco also make the top 15 companies doing the most hiring for Bitcoin and blockchain jobs.
In short, the quality & quantity of blockchain jobs have increased over the last three years, while the quantity of potential applicants have decreased.
That sounds like an opportunity to me.
Prerequisites to working with blockchain
Ah, but the land of opportunity doesn’t exist without the ravine of reality and cliff of challenged expectations, does it?
After all, what you often hear about blockchains is that they’re hard to build and complicated. Blockchain itself was built upon decades of research and breakthroughs in computer science, economics, and cryptography.
But, right there is your golden ticket. You have the chance to create something no one else knows how to build, and the world will reward you handsomely for it. Blockchains are brand new and there’s so much left to build and test and modify and iterate.
So, starting with the fundamentals is always a good place. Even Satoshi, a renegade beyond his time, knew that he had to draw upon the collective knowledge and history that preceded 2008.
Here’s some starting points to better understand topics that directly support or run parallel to blockchains:
Cryptography is the namesake and bedrock of cryptocurrencies. All cryptocurrencies use public/private key cryptography as the basis for identity and authentication. I’d recommend studying RSA (it’s easy to learn, and doesn’t require a very strong math background), then look at ECDSA. Elliptic curve cryptography requires significantly more abstract math — it’s not important to understand all the details, but know that this is the cryptography that’s used in most cryptocurrencies, including Bitcoin.
The other important cryptographic primitive is the cryptographic hash function. These can be used to construct commitment schemes, and are the building block for Merkle trees. Merkle trees enable Merkle proofs, one of the key optimizations that blockchains use for scalability.
The decentralization of blockchains derives in large part from their peer-to-peer network topology. As such, blockchains are direct descendants of the past P2P networks.
To understand the blockchain communication model, you need to understand the basics of computer networking: this means understanding TCP vs UDP, the packet model, what IP packets look like, and roughly how Internet routing works.
Blockchains have their own place, but they draw upon the lessons of these networks and how they were designed.
You’ll want to be familiar with the characteristics and complexity guarantees of the major data structures: linked lists, binary search trees, hash maps, and graphs (specifically, directed acyclic graphs which feature prominently in blockchains). It helps to have built them from scratch to better understand how they work and their properties.
This is one of the free data structure and algorithm courses from Udemy for all those people who want to learn data structures from an absolute basic to advanced level.
This course doesn’t expect you to have any prior knowledge of data structures, but a basic prior knowledge of Java is helpful.
The author @William Fiset is a Software Engineer at Google and a former ACM-ICPC world finalist and has excellent computer programming and problem-solving skills.
In short, it’s a complete guide to learning everything there is to know about data structures.
There are a few good textbooks on distributed systems, but it’s a sprawling and difficult area of study. Distributed systems are absolutely essential to reasoning about blockchains, so you must build a foundation here before tackling blockchain programming.
Once you’re no longer living on a single machine, you have to start reasoning about consistency and consensus. You’ll want to know the difference between linearizable and eventual consistency models. You’ll also want to learn the guarantees of fault-tolerant consensus algorithms, such as Paxos and RAFT. Know the difficulties of reasoning about time in a distributed system. Appreciate the tradeoffs between safety and liveness.
With that background, you’ll be able to understand the difficulties around Byzantine fault-tolerant consensus, the primary security requirement of public blockchains. If you need help understanding BFT consensus, read through an explanation of the Byzantine Generals Problem and understand how this was a limiting factor of early digital currency attempts.
You’ll want to learn about PBFT, one of the first scalable algorithms to deliver Byzantine fault-tolerant consensus. PBFT is the basis for many non-proof-of-work blockchain consensus algorithms. Once again, you don’t need to understand the details of how and why PBFT is correct, but get the general (pun intended) idea and its security guarantees.
It’s also very useful to understand the traditional methods of distributing databases (at its core, blockchains are databases after all). Learn about sharding (such as via consistent hashing), leader-follower replication, and quorum-based commits. Look into distributed hash tables (DHTs), such as Chord or Kademlia.
AKA that class you took Freshman year and only remember supply and demand curves from.
Cryptocurrencies are not just protocols, they are also forms of money. As such, they respond to the laws of macroeconomics (if they can be called laws). Cryptocurrencies are subject to different monetary policies, and respond predictably to inflation and deflation. You should understand these processes and the effects they have on spending, saving, etc.
Another valuable economic concept is the velocity of money, especially as it corresponds to valuing a currency.
Cryptocurrencies are also deeply interwoven with markets, which requires an understanding of microeconomics. You’ll need a strong intuition for supply and demand curves. You should be able to reason about competition and opportunity costs (they’ll apply frequently to cryptocurrency mining).
For many coin distributions and cryptoeconomic systems, auction theory features prominently.
The most important branch of economics that plays into cryptocurrencies is game theory, the study of payoffs and incentives among multiple agents. You don’t need to go extremely deep here, but you do need to understand the basic tools of game-theoretic analysis and how you can use them to analyze incentives in one-shot and iterated games.
The Theoretical Foundations of Bitcoin
In October of 2008, Satoshi Nakamoto published a white paper in which he described a protocol for a decentralized digital currency. He called this protocol Bitcoin.
Before you can understand the big ideas behind blockchains, you have to start with Bitcoin and grasp Satoshi’s original insight.
First, I recommend building your intuitions about proof-of-work and the fork choice rule (also known as Nakamoto consensus).
Now that you’ve built up your intuition, this article will provide a deeper end-to-end exposition of the critical components of how Bitcoin works.
There are far more resources with which you can better understand Bitcoin, such as (in my opinion) the best overall textbook for blockchains, Bitcoin and Cryptocurrency Technologies (which accompanies the Princeton Coursera course).
The one nontechnical book I’d currently recommend is Digital Gold by Nathaniel Popper. Pretty much everything else worth reading will be in blogs, not books — this space is moving so fast that the most important figures seldom have the time to write books, and books are often outdated by the time they’re released.
By now you’ve gone through and shored up your fundamentals, so now that you’ve got your theory in check, let’s get started on blockchain development tomorrow.
Press the "Connect" Button Below to Join Our Discord Community!
Please DM us with your email address if you are a full OMNIA member and want to be given full Discord privileges.
An Update Regarding Our Portfolio
We are pleased to share with you our Community Portfolio V3!
Add your own voice to our portfolio by clicking here.
We intend on this portfolio being balanced between the Three Pillars of the Token Economy & Interchain:
Crypto, STOs, and DeFi projects
We will also make a concerted effort to draw from community involvement and make this portfolio community driven.
Here’s our past portfolios for reference:
RSC Managed Portfolio (V2)
RSC Unmanaged Altcoin Portfolio (V2)
RSC Managed Portfolio (V1)