Transition, a word that apart from its primary meaning — the transition from one state to another — in practice often carries a negative connotation. Transitions lead to frustration because the comfort zone is a habitat where everything is perfect. So why change anything, is a logical question?
Sometimes because you have to, but often because it will get better. Let's take the Internet as an example.
The first iteration of the Internet (Web1) marks the period in which users exclusively consumed content prepared by someone. For the average user, web1 was just a version of digital printing. That's why there was a need to build something that will benefit a much larger number of people. It had to be more interactive.
With Web2 — still the dominant incarnation of the Internet today — users were given the opportunity to connect massively with other users, to participate in content production or even to furiously comment on fake news.
When we say Web2, as a rule, we mean Google, Facebook, Amazon and every similar mega-platform that networks hundreds of millions of people, giving them certain privileges, but still grabbing an incomparably larger part of the pie for themselves.
And censorship? A giant step backwards compared to Web1. That's why Web3 is a natural sequence of events.
There are various attempts to compare the three iterations of the web. One Twitter user put it vividly:
- Web1: Reading
- Web2: Reading + writing
- Web3: Read + Write + Ownership
Web3 is built on decentralized peer2peer networks of nodes that communicate without intermediaries. On them, people consume content, create it, but also own it.
In addition to infrastructure, it also changes the paradigm — how we see, value and use the Internet. Web3 addresses issues of digital identity, content and property, ownership, security, censorship, transparency, inclusivity and numerous other needs of the modern user. But, perhaps most interesting of all, Web3 is, above all, an ideological turn from a centralized to a decentralized value system.
The difference between Web2 and Web3 programming
Although many things in Web3 development overlap with Web2 programming, which means that critical reasoning and algorithmic thinking are necessary prerequisites, there are noticeable differences between the two ecosystems regarding architecture, technologies, and most importantly, mindset. Because of all the above, the transition is not just a simple transition from A to B.
For starters, Web3 abandons the standard three-tier application building architecture. Web3 frees us from the middleman, so there is no centralized database that stores the essential data of the application, and there is no web server on which the backend logic is located.
Instead, a blockchain is used to build applications, which by definition is not managed by any central entity but, consensually, by a network of connected computers. This obviously implies that knowing the blockchain, its philosophy, structure and practical application is the first essential step in the transition.
Anatomy of the Web3 stack
Now it's time to determine what, from a technological point of view, one needs to know in order to call oneself a Web3 developer.
Since Web3 is still in its early days, one should be objective and say that the stack is insufficiently mature, sometimes incomprehensible, and fragmented. Additionally, much technology is changing at a rate never seen before in any other ecosystem. Being up-to-date should be taken literally.
Due to the structure of the ecosystem, it is certain that the transition represents a significant time (and mental) investment.
That's why Occam's Razor — the best-researched and most-used solutions — are, as a rule, the best ones to start with.
Ethereum — a chain of serious programming
Although Bitcoin is the first association when it comes to cryptocurrencies and blockchain en général, Ethereum is a game changer — the first blockchain that brought great opportunities to the ecosystem, so now everyone knows that blockchain is no longer just about buying expensive mining equipment.
Although there are a huge number of chains on which it is possible to create dApps (decentralized applications), Ethereum is a good choice for the transition due to the most widespread community of developers, the breadth of opportunities it provides for development, and detailed knowledge bases.
After watching and reading all of Vitalik's interviews (if you are interested in Ethereum, you will almost certainly want to know what the creator has to say) you can move on to the next step and one of the most important features of Ethereum — smart contracts).
What are smart contracts and how are they created?
Although smart contracts are used on many chains, Ethereum was the first to implement them as a concept. Smart contracts are programs that define the logic of state changes that take place on the blockchain. We can also consider them as transaction protocols that automatically execute, control and document all events that take place within the chain according to defined conditions.
And their purpose? Multi-layered, but what is most noticeable is that smart contracts completely exclude the need for a (trusted) intermediary. So smart contracts save money.
Smart contracts are immutable — once posted on the blockchain, anyone can access them. They can be written in different programming languages, depending on the blockchain they are on, but when it comes to Ethereum, Solidity as an object-oriented language is the logical first choice. With a solid background in languages like C++ or Java, mastering Solidity will be a natural extension of knowledge. For a better understanding of how smart contracts work on the blockchain, Ethereum's white paper is a good place to start.
After Solidity, the next step would be to understand certain execution mechanisms like EVM (Ethereum Virtual Machine). EVM serves to execute logic defined in smart contracts and process state changes within the chain. EVM represents a virtual machine on which all programs are executed, while Solidity is the most popular language that compiles to bytecode.
By mastering Solidity and EVM, it is not only possible to program on Ethereum, but also on EVM-compatible Layer2 solutions (which serve to solve Ethereum's biggest problem — scaling), and other blockchains such as Avalanche or Fantom.
Interacting with the blockchain
As far as user-side programming is concerned, the frontend code, like the Web2 code, defines the UI logic. But in addition, it has to communicate with the blockchain itself, e.g. his nods. For that, it is necessary to master libraries such as Web3.js or ethers.js. Mastering these technologies will significantly speed up your transition.
Almost a Web3 dev! What else?
There are a lot of details when it comes to the Web3 stack, whether we're talking about APIs, frameworks, identities, file storage, protocols, etc. which significantly exceeds the intentions of this text. Those eager to delve deeper can read the advice of a full-stack developer with 10 years of experience who became a Web3 developer.
And after the advice, it's time to study. From where?
As mentioned earlier, the Web3 ecosystem is turbulent, so knowledge is quite fragmented. However, within blockchain communities that are very lively, it will not be difficult to find Web3 tutorials and other useful tips. Those who prefer structure and speed can find courses on some of the well-known platforms such as Udemy, as well as Web3 University and ETHGlobal. Certainly, the official Ethereum documentation is probably the first address a future Web3 developer should visit.
What will happen to Web3?
Some call Web3 the "final stage of the Internet", and for others like Elon Musk, it is a "marketing phrase" and "more fantasy than reality". For some it is the best thing that has happened to the world, for cynics it is a bubble that is about to burst (for years).
No matter what you believe, Web3 is here and seriously expanding. Even if its future is a crash, it is certainly not an obstacle to try your hand at Web3. Because knowledge cannot be taken away, and it will certainly be applicable no matter what kind of programming you do.
Speaking of which, what are the reasons for someone to become a Web3 developer?
Well, very diverse.
For many, it is an ideological motive. Since Web3 is not only a technology but also a system of values (and actions) that advocates the decentralization of the Internet for the benefit of everyone, many developers see Web3 as an ideal chance to directly realize their beliefs.
Some developers are attracted to Web3 because it offers the possibility to simplify software development itself quite a bit. With a more precise demarcation of frontend and backend, developers have more time to focus on what is really important and necessary for them.
The third, it is participation in something that represents perhaps the biggest technological hype of today. Being on the front line is fun unless it's wartime.
The fourth is money. Yes, Web3 developers are well-paid. Better than Web2.
For heels, it's all together.
For you, it can be something from the list or something completely sixth. The only thing you might be wondering is if you go into transition, where you could get a job with us. The company Decenter has several answers to your question.