2019-10-09
Is it worth becoming Blockchain Developer in 2020?
Is it still worth to pursue a Blockchain developer career in 2020? An interesting question, since it depends on many things:
- Is developer demand raising or falling?
- What's the cost of Blockchain education?
- What's the average salary for a Blockchain developer?
- How long will it take to become a successful Blockchain Developer?
- Are there any certification programs?
- ... and many more!
If you are considering attending a Blockchain Bootcamp, or thinking about making a career as Blockchain Developer, or trying to become certified Blockchain Developer, then this is for you! Let's get into it. Photo by Brendan Church / Unsplash According to Joseph Lubin's call to action at DevCon 5 in Osaka: "There are an estimated 30 million software developers globally, yet the number of blockchain developers is in the several hundred thousands".
I can wholeheartedly agree and support this initiative. I gave training to around one hundred thousand individuals through on-demand and on-site courses, so, statistically I was in contact with more than 10% of the several hundred thousand Blockchain developers in their professional career. Well, again, statistically, at least. And what I saw? I saw a lot of struggle, a lot of pain points, a lot of hard work and effort learning Blockchain development. I saw a lot of really great people coming into this space.
If you are just starting out your development career, or you are a web-developer, or a Java enterprise developer, or a seasoned software engineer, why should you start a career as Blockchain developer? And how to get into it and where to start?
There is, unfortunately, no single true answer. It depends where you are right now in your life, what education you have, how much experience you already gained, etc. To answer all these questions, it is necessary to find some sort of a baseline first.
Let's start with the most obvious question: Is there going to be demand for any Blockchain developer in the future?
Will demand for Blockchain Developers be the same in one/two/three years from now?
Everything points towards the demand being at least the same or, actually, it will strongly increase. Why? Observable market movements show that Blockchain solutions are being reviewed and adopted by large players in the market, such as Fortune 500 companies and governments [1][2][3][4]. That, in turn, will naturally drive developer demand up.
But, first of all, it depends in which kind of job you want.
Blockchain developer demand will continue to increase in serious enterprise areas and decrease for ICO-alike projects (let's call them: "shady fast growth companies without a real business plan the SEC will come after"). For someone looking to make a "quick buck", it looks like most Blockchain projects will strongly decrease. Regulations already increased and will continue to rise strongly [5][6].
It will get much harder to benefit from Blockchain based fundraising, compared to traditional crowdfunding, equity funding, VC funding, etc. So, the need for "someone who can quickly come up with a new token contract" will diminish over time. In short: It is not advisable to learn Solidity to only deploy a new ERC20 token.
Instead, demand for Blockchain developers will increase in broader enterprise areas such as financial, supply chain, insurance, digital identity, land registries, government, etc. It is a longer term success path, but it adheres to regulations and comes down to real business solutions. There is still one big problem: There are several dozen different Blockchain and DLT implementations running on several hundred different Blockchains in public and private. Which ones should you choose to learn first, and why?
Which kind of Blockchain platform is worth going after?
As it stands right now, large corporations are mainly looking into three Blockchain platforms to develop business solutions on top: Hyperledger (Fabric), Corda and Ethereum. Well, depending who you ask, market share among these three is at least well established [7][8][9]. Photo by Hitesh Choudhary / Unsplash Corda R3 is written for financial institutions, mostly banks. So if you want to work on Blockchain projects in/for a bank, then learning Corda first is advisable. R3 has the largest banks in Europe as their partners (or customers). So, if working for large banks is something you want on your CV, then it could mean that there might be an easy point of entry.
What is Corda?
Corda is a distributed ledger technology (DLT) with support of Smart Contracts written in Java/Kotlin. There is no native token, like the Ether on Ethereum. And their approach for the platform governance is vastly different from Ethereum or Bitcoin. R3 is governing their own Blockchain. It's a permissioned private access model, mostly. There is an open-source variant for self-hosting, but for financial institutions it is usually "pay to play", if they want to be in the R3 blockchain consortium. Then a bank can call the R3 office at any time if they need any help. That makes it very well suited for financial institutions, since it brings all the benefits of a Blockchain, including privacy and secrecy. Plus a manageable risk for data and access. In other words, if things go south, there is a back-up plan: call R3. That means there is a very low entry barrier.
But R3 Corda it's not well suited for other projects. Like supply chain solutions. Hyperledger Fabric seems to become the go-to solution for all kinds of supply chain solutions. Walmart built its supply chain tracking solution on Hyperledger Fabric. Maersk built their TradeLens solution on Hyperledger, in coorporation with IBM. Hyperledger based Blockchain implementations are also used for Governments, such as in the UAE, which are building proof of concepts.
What is Hyperledger?
Hyperledger is an umbrella term for many different Blockchain implementations, with Fabric being the most successful (to my best knowledge). Fabric, similar to Corda, is a Blockchain solution with Smart Contracts. Smart Contracts are called Chaincode in Fabric lingo. There is no native token or native cryptocurrency, like Ether on Ethereum. There is no public network. It's private networks, usually permissioned private Blockchain setups. The main usage of Fabric is between consortiums who need a fast and trusted settlement layer. Officially, the Linux Foundation is in charge of the umbrella organization "Hyperledger". Photo by Kevin Horvat / Unsplash There are also other Blockchain implementations in the Hyperledger project. For example there is the new Hyperledger Besu, which is a typical Ethereum node, written in Java. The other Ethereum nodes are written in Go, Rust, C++, etc. Besu was called PegaSys Panethon before that. It is targeted towards enterprises in private or consortium networks.
So, how does Ethereum fit into this if there are already two major Blockchain platforms out there? Which begs a lot of similar questions:
What's Ethereum? Is Ethereum outdated? Is Ethereum useful at all? What will happen with Ethereum in 2020?
Before being able to answer this, we have to talk about the reason why Ethereum isn't the go-to solution for many use cases right now. When observing what Fortune 500 companies, Governments, management folks and C-level executives from larger corporations say, then there are a few things considered show-stoppers.
These show-stoppers are mostly simple technical misunderstanding how Blockchains operate. Especially with the difference between Ethereum and Hyperledger. It seems to root in the main use of Ethereum right now, which so ingrained as *Cryptocurrency *and not as platform.
Currently, Ethereum is considered as the public permission-less network. It was never coined as go-to solution for private permissioned consortium chains.
Furthermore, looking deeper, there are two problems that arise from the fact that Ethereum is mostly advertised as the "Cryptocurrency Ether". And the terms Ethereum and Ether are used interchangeably by many people, unfortunately.
Here are the two main problems:
Problem Nr1: Who governs this public permission-less network? It is originally out of a Cypherpunk movement [10][11]. Many people in the community are devoted to Libertarianism. For many outsiders looking in, this is equal to disrupting the world order (or so?). That frightens. Looking at the enterprise level this increases risk for decision makers and it means a lot of red flags pop up. A big no-no, which you don't have using Hyperledger governed by big whales like IBM. Photo by Raúl Nájera / Unsplash Problem Nr2: A lot of people only think in terms of public information. Data protection, bugs and governance, etc... In case things go wrong, what do to next? So, the platform itself isn't seen as the "Ethereum Protocol", instead it's seen as the Ethereum Main-Network with the Ether Cryptocurrency. Unstoppable and uncontrollable. That's brings the myth everyone knows and some lived through: If a Smart Contract has just a single bug, it can mean millions of dollars are lost. That certainly isn't an easy sell at a decision makers level.
Then there are these problems:
- Ethreum protocol (or Solidity compiler, or tooling) updates are too frequent and often breaking
- Ethereum doesn't scale well (enough)
- Ethereum tools are not production ready
- There is no privacy in Ethereum
- and: Ethereum training materials are outdated or simply bad/insufficient
(1), (2) and (3) are all in the same category. It means people didn't understand how to use the tools, which is somewhat connected to (5), the training materials are outdated or bad. It also depends how you use Ethereum. Of course, not every application is suitable for a private network, and, vice versa, not every application is suitable for a public permission-less network, but many people mix up what is what. And more people are simply assuming that some things aren't possible on Ethereum without evaluating the tech stack properly. Evaluation comes at a cost, this is true, but so does making the wrong decision.
The privacy problem (4) does indeed create a whole chain reaction of other problems and questions. For example: How well works Blockchain in combination with GDPR. The right to be forgotten. Privacy Protection. Data protection. Personal Information. Private financial transaction. Zero knowledge. Piracy and crime. Is Ethereum suitable for Banks? Should Blockchains be stronger regulated or are they self-regulating? And so on and so forth. There is even official research from the European Parliamentary Research Service concluding the obvious: "it can be easier for private and permissioned blockchains to comply with these legal requirements as opposed to private and permissionless blockchains.". (Note: I believe they meant it's easier for private permissioned Blockchains than for *public *permissionless Blockchains?!).
All in all, if feels like we try to use Blockchains for the right cause, but also try to wrap our head around it, because not everyone understands it 100%. We love what we see, all while trying to protect us as good as we can. Photo by Jonas Verstuyft / Unsplash Blockchains should definitely not be used for everything. But those points mentioned above shouldn't be any show-stoppers. For example, if Hyperledger is used simply because any of those mentioned points are a problem, then the decision should re-evaluated. As simple as that.
Nr (5), the missing or insufficient training material, is indeed a problem. The underlying problem is not easy to solve. There are many free resources for Ethereum and Solidity development out there. Most of these resources are either outdated or bad. This, combined with the fact that Ethereum re-invents itself at a very high pace, is problematic, at least.
I also found it very hard to maintain a certain level of training material, and ultimately found only in-person training can cope with this.
So, why learn Ethereum if it is not really used in enterprise environments, hard to learn and most likely comes under more scrutiny by governments and regulators sooner or later?
Why learn Ethereum in 2019 or 2020?
Ethereum is, undoubtedly and unfortunately, still a bit of a problem-child end of 2019. But it will not continue to be this way, instead, this perception might change very very quickly. The technology is amazing and continues to amaze. The ideas and the outlook, lastly at DevCon V in Osaka, is just astonishing. But the governance and the reputation is problematic. For two reasons: The team and the approach.
Firstly, as mentioned above, there is no large consortium behind Ethereum. No big household names weighting in with their reputation. From the outside, for non technical people, it looks like a bunch of nerds partying at events around encryption and tech. Given, it's a lot of nerds already, but it's still mostly nerds. While the team is certainly good, and the approach might be ok, because enterprises were never the target market for Ethereum in the first place, it still doesn't help with broader adoption. Adoption would mean more money. More money means more people come in. Some claim though, that it is good that adoption is not so rapid, because it gives more time to develop better solutions.
Let's assume for a moment, we want to drive market adoption for the Ethereum Protocol with serious business. Not sure if *this *helps for adoption and reputation among larger enterprises, although it looks fun, somehow:
Link to YouTube Singing at DevCon4. On the other hand, we all know that Microsoft and other large Tech Giants had similar on-stage performances.
Ethereum Development Library and Tooling Updates
The pace at which it goes forward and breaks backwards compatibility is astonishing. No large enterprise will be able to adopt any solution on Ethereum, if there are breaking changes in libraries and tooling on a frequent basis. The risk is astronomical. The cost of training and continuous education too high.
On the other hand, the compilers are stable as they are. The frameworks are ok to be used in enterprise environments right now. What is really missing is a guaranteed LTS release of certain libraries and tools. Something that is supported for a fixed amount of time, no matter what. And that's what some companies got right, contributing to the Ethereum space.
There are slowly "enterprise-y" players in the Ethereum market. ConsenSys started to develop tools and frameworks. Truffle and Drizzle came. Web3.js and EthJS. Libraries, tools and platforms were built around Ethereum which are stable enough to be used in enterprise production environments. Or thre are big players like Ernst&Young building solutions on the Ethereum Protocol. That's a big player, right there, using Ethereum in production. PegaSys, a ConsenSys spoke, developed a new Ethereum client called Pantheon in 2018 and now migrated it over to the Hyperledger consortium as Hyperledger Besu. It's Ethereum for Enterprise environments.
Projecting this trajectory of tooling and community efforts into the future then it is worth to learn Ethereum in 2020 and beyond. The market share of Ethereum, as a platform, will increase and demand for good developers will grow tremendously.
How to learn Blockchain Development? Where to start learning Ethereum?
This might not be the answer you are looking for, but: it greatly depends on current knowledge. "Learning Ethereum" or "Becoming Blockchain Engineer" is very interdisciplinary.
Let's make a comparison to traditional Web-Development. If you want to become a Full-Stack Web-Developer, it's not enough to learn *only *HTML or only JavaScript or only CSS. It means learning all of those, plus a lot more. The same is true for Blockchain Development. It involves a plethora of topics around computer science, systems engineering, systems architecture, devops, sysops, etc. Photo by Lance Grandahl / Unsplash So, what should you bring to be generally accepted as the "senior Blockchain Engineer"? As someone who is working on "Blockchain Solutions". Not to confuse with working on "the Blockchain" itself. So, as somebody who uses a Blockchain, like Ethereum. Not someone who researches and develops the protocol itself.
Let's assume, for sake of simplicity, you want to become an *Ethereum *Blockchain Developer. It boils down to these 5+1 capabilities you should bring along:
- You should know the lowest level, the transport layer. You should be able to understand WebSockets and RPC, so HTTP calls and security. That brings along, at least, a bit of knowledge about Infrastructure and SysOps. Like LoadBalancing, Networking, Firewalls, TCP/IP, the OSI model, etc.
- Then you should know the Ethereum Blockchain protocol from the inside out. That includes the EVM, what it is, how it operates. Basic understanding of instructions, gas costs, contracts and their interaction. Accounts, Private keys, public keys, transactions.
- You should know Solidity from the inside out. You should know the tooling that helps you. This includes following all security guidelines, proper code style, testing, debugging, optimizer, and so on.
- You should know how to write a (Web-)client for your new smart contract(s). That is, e.g. in JavaScript or anything else. Your client should understand the response from nodes and be able to encode/decode those requests. This mostly means: React, Vue, or vanilla JavaScript knowledge is 99% a must, unless that's a totally different project. NodeJs, npm, maybe webpack and those tools that come with traditional web-development. The more Full-Stack web-development knowledge you bring along, the better.
- You should be able to understand and use tools at your disposal. Frameworks, such as Truffle. How other tools plug into this. Why you need unit testing and what is test driven development. How to use these tools within teams. How to integrate them in any dev-environment.
- Then there is one "bonus point". You should be resilient. Resilience is extremely important when it comes to learning Ethereum. Never give up, there is always something new to learn, almost every day. And you will fail a million times without someone giving the right answers on StackOverflow or similar sites. Why? Because it's bleeding edge tech. You are among the few people writing history. Congratulations!
And the same is true for any other Blockchain out there. It is new technology. It is not in use for decades. Photo by Tim Mossholder / Unsplash
So, when it comes to Blockchain courses, which course to pick that also works in 2020? What to look out for?
There are courses for any budget out there. Price wise you get everything between free (YouTube self-taught) and extremely expensive (instructor-led on-site Bootcamps). But there are more differences, not just the price. Not every course will cover the same things. Not every course will touch on all topics necessary to get the big picture. And this is where you should look for the following details.
Usually, any course will let you look into the curriculum. That means, you can look for red-flags or things that are missing. Most video on-demand courses are fun to do and are project based and relatively cheap. Most bootcamps require more time, but have better outcomes, but also a higher price point. At the end of any course, if you are looking into Ethereum development, you should know the following things:
- Ethereum Protocol, what is it, how does it work. Consensus protocols, such as Proof of Work, Proof of Stake, PoA, ... Keys, Accounts, Transactions, Security.
- Ethereum Nodes and how to work with them. Public network, genesis blocks, private net, consortium networks, bootnodes, block explorers. What's the difference, how do they work? When are they used? How to set them up?
- The EVM, what it is, how it works under the hood. That includes understanding the basics of debugging, opcodes, what they are.
- Then, the big part: Writing smart contracts. I mean in Solidity. And you should be able to know Solidity from the inside out. I think Vyper is simply not ready yet. So learning Vyper would be a bonus at this point. It should include all Solidity in-depth topics. Also Debugging and security best practices.
- Web3/EthJs/... libraries to "talk" to an Ethereum Node
- Truffle, Unit Tests, Teams
- Potentially things like Drizzle
All of this. Ideally, with proven up to date material. Watch out for the version numbers of the tools in use.
Given this, unfortunately, it is impossible to wholeheartedly recommend a single course out there. Not even my own courses. I know our ownvideo courses try to provide this and much more, but they get outdated at a speed where we simply can't catch up creating new videos. So, if you are a total beginner, you have never touched any programming language, I am not sure if they are suitable for you. But they are *cheap, starting at around $15. *Considering the price, that might be an option to start with. Especially, if you already have some experience as a web-developer. Then you don't get caught up with installing npm or what is JavaScript.
But, undoubtedly, we're not alone with this problem. The majority of materials on Ethereum Development is outdated. Sometimes extremely outdated. The only viable solution to this is in-person training.
There you have physical access to an instructor, which is perfect. If an instructor is present then he can guide around problems that occur, explain it, and it is possible to get the most out of it. That is the best thing that can happen to you.
There are several week long bootcamps and also a few days long intensive-training classes. The traditional "academy" approach is a several weeks long course. And it usually comes at a premium to have an instructor at your disposal. So, it's not about the length of the course. It is usually about the quality and cost. The main question is: how to recoup your investment for Blockchain training? After all, the training is usually not cheap.
What's the cost of Blockchain education and the salary as a Blockchain developer?
Great Blockchain courses are not for free. For course providers, keeping materials up to date and hiring knowledgeable trainers comes at a higher price point. As a student it all depends on how fast you can recoup your investment to make up for the larger upfront cost to join such a course. In terms of salary u.today put together some reasonable numbers:
The average annual income for a blockchain developer in Asia is $87,500 per year (the lowest threshold is $60,000 and the highest is $120,000).
The average annual income for a blockchain developer in Europe is $73,300 per year (the lowest threshold is $55,000 and the highest is $91,000).
The average annual income for a blockchain developer in the U.S. is $136,000 per year (the lowest threshold is $70,000 and the highest is $200,000).
The average base salary for a remote blockchain developer is $123,750 (it ranges from $70,000 to $200,000).
The average pay rate for a blockchain specialist is $65 per hour, but some rates can be as high as $250 every hour!
Source: https://u.today/top-12-highest-paying-blockchain-jobs-in-2019
When it comes to payment for the training, there are several factors. Firstly, you could pay cash, upfront. These in-person on-site classes are starting from around $2000 per person. ConsenSys Academy is charging around $1k for their online program. It's hard to find prices for their in-person programs, presumably it will be around 4-5 times the price tag of their online-program. We at ThinkingAssets.com charge $2000 for in-person training.
For these classes the full price has to be paid upfront, or at least in regular installments. Some educational providers are offering options for paying based on the job offer after the training. You pay nothing (or very little) upfront and then pay X% of the salary for X-months. That might be an option if a larger upfront expense is not possible. https://vschool.io/paylater/ is one of those providers. Photo by Razvan Chisu / Unsplash
Comparison of Blockchain Developer Programs for Developers
Let's compare the major Blockchain education providers:
- *Closed *cohort, available twice a year
- 11-week self-paced program, with typical commitment of 10-15 hours per week.
- Active support from ConsenSys blockchain developers and trainers
- Access to course content is included for one year after the cohort ends
- Lifetime community membership through our alumni network
- Certification included and issued on graduation
- Active graduate screening by ConsenSys HR
- Price unknown
- Workload: 12 modules, 8-12 hours per module
- Location: Online
- Blockchain certificate upon successful examination
- EUR 1450
- Length: 12 weeks, part-time
- EVM Architecture, Solidity/Smart Contracts using Ethereum, Truffle,...
- Mock interviews and resume building.
- Cost: $1,499
- Location: Online
- Length: 12 weeks, full-time or 12 weeks, part-time
- Curriculum: Create your own cryptocurrency. Learn about Blockchain platforms, keys and addresses, cryptocurrency, assets and tokenization, smart contracts solidity, regulatory, security, ...
- Including meetups, hackathons, conferences, workshops
- Cost: $14,950
- Location: NYC and Online
Lighthouse Labs
- Length: 12 weeks, part-time
- Curriculum: Ethereum, Solidity, Hyperledger, for experienced software developers.
- Cost: $3,500
- Location: Toronto
Return on Investment: A Blockchain Developer Education Calculation Example
Let's just assume for a moment that, all in all, it will cost you $10.000 to get educated as Ethereum Blockchain Developer. This might include the training itself, the cost for air-tickets, accommodation, food, and some private consulting, ramp up time, etc. Also the cost of forgoing any other opportunities of regular income (e.g. the cost of quitting your current job). How fast would you be able to recoup your investment?
Let's base it on the numbers in Europe alone. If you would take the average Blockchain developer position paying you $73.300 per year gross. And the compare it to the average software engineer salary $55.636 in the UK. Then it gives a difference of $17.664 before tax. Assuming a whopping 50% income tax (conservative towards the ROI calculation), means it's around $9.000 net. Usually you can claim tax-deductions for education, but let's not take any tax-deductions into account. That would mean around 1 year until you recoup your investment. That sounds very reasonable.
By choosing the right course and the right educational path it will probably take you less than half that time.
How to become certified Blockchain Developer without spending countless hours on Bootcamps?
Of course, not everyone wants (or needs) to attend a full blown Blockchain Bootcamp. In fact, many people are just attending a several weeks long course to get the course certificate on their CV. But what if you can get certified without attending the course at all? Photo by Davor Denkovski / Unsplash First of all, there is the option to simply take part in any mass open online course program (MOOC), such as Udemy, Coursera, etc. The quality of the courses vary, but that's not the point, because at the end you want the certificate, not the content. It might be an option, if you are looking for a quick hack to add something to your CV. If you are really looking for the content, then it's a hit and miss. The quality of the courses vary greatly, especially on Udemy, where money is made by quantity not quality on the creator side. Most instructors are not making enough money to support and sustain a certain level of course materials. Still, you might find some diamond for $9.99 on sale.
To get a quick certificate, you could attend one of these courses. Of course, you'd still need to prove yourself as a "Blockchain developer", but it would make a good item on your CV. If you are a self-learner, reading through the Solidity Docs, then this is maybe a path for you.
The next option is to do a more serious Ethereum Blockchain developer examination and become "Certified Blockchain Developer". I can't really speak about Hyperledger Certification programs, since I'm not a Hyperledger Developer. But I know that at least *one *certification provider is taking the exam serious, requiring people to be physically present at the examination and showing a proper ID. Other are just providing online examinations. The only option you have is the Blockchain Training Alliance.
Their Certified Blockchain Developer Ethereum Certification program is probably the only one out there you can really take. I was on the initial advisory board, so I can wholeheartedly say they tried to make this as good as it gets. I know they also struggle with the many and frequent updates to the Ecosystem, but regardless of that, it's still the only certification program I can recommend.
How about attending Blockchain Courses on Universities?
If you are a student then maybe a Blockchain course on a university is something for you. Recently, most major universities started to offer courses. I was in contact with Stanford, but ultimately had to cancel and stop any collaboration on courses, because I am in a different time-zone and only available remotely from Europe. Their approach sounded pretty well at the time I got in contact. That was mid 2017. I believe they have a full blown curriculum around Blockchain now.
If you are a student already learning all the great things in Software Engineering, then Blockchain is definitely a must in my opinion. Take the chance and do at least a basic intro into Blockchain development! Photo by Joseph Chan / Unsplash If you are at Stanford, Berkeley, NYU, Cornell, Duke, Georgetown, MIT, Princeton and many other universities, then good news: Just attend courses at your university. Most likely, free of charge, if you already paid for your tuition. More information here: https://blockchainbitcoins.in/university-blockchain-course/ and https://www.accounting-degree.org/college-cryptocurrency-blockchain-courses/ or simply consult Google. Information changes rapidly, so best is to simple look out for your own University or nearby Institutes offering this kind of education!
Of course, just attending a course alone doesn't make you a successful Blockchain developer. That makes the practice projects, the hands-on work, the great teams, all the success and failure, trial and error, and many other factors. But it's definitely a good first step if you want to change the way the world works right now. And you are at the edge of a new technological era. One that might shape the world how you, your kids and grandchildren perceive this very world
Whatever path you will take, I hope you will succeed and you will take this opportunity to change the world for the better.
I wish you all the best!
Thomas