A centralized, vulnerable, and data-consuming version of the Internet, where few companies own vast proportions of our data, is set to transform into a permissionless and decentralized internet, where everyone controls their own information and content.
Nonetheless, Web3 presents a big challenge not only for entrepreneurs and web users but also for developers and product managers. So how can they learn, co-create, and develop web3? The aim of this article is to provide a resources of approaches, sources, and principles that will help you build powerful decentralized applications and become a full-stack web3 developer.
- What is web3?
- Web1 – static and read-only
- Web2 – dynamic, co-created, and… decentralized
- Web3 – the answer to web 2.0 cons
- What are the principles of web3?
- Web3 development courses – how to learn web3 development?
- Developing dApp in web3
- dApps vs. blockchain applications in web3
- How to invest in web3?
What is web3?
Web3 is an evolution, not a revolution. It has its roots in the two previous stages of the Internet – static web 1.0 and co-created - but centralized - web 2.0. Even though the third iteration of the web represents a complete model change, it’s difficult to describe its main principles without first looking at a short summary of its predecessors.
Web1 – the static and read-only
It’s difficult to name web 1.0 – the first stage of web development – other than “static.” In the 90s and early 00s, the author and the website owner decided on its design, content, and purpose. End-user had to accept the role of a passive reader and remain thankful that he could even access content published on the web.
But let’s be honest – everyone knew back then that it was only the very early web development phase. We certainly needed something more.
Web2 – dynamic, co-created, and… centralized
The next iteration – web 2.0 brought a couple of advancements. Thanks to such technologies as CSS, JavaScript, HTML5, and many more, developers were able to build an environment where end-users could not only read and consume but also create. Web2, or “social web,” as many people call it, allowed people to co-create the Internet and break their “consumer” role.
To say that web 2.0 transformed how we live is to say nothing at all. Social networks like Facebook, Instagram, or YouTube take a solid piece of our time every day, providing valuable, targeted content and tools connecting us with other people.
However, there is also another side of the coin. The comfort and convenience that social networks provide, require us, end-users, to pay with our data. We also have to accept the lack of ownership over personal information. What is more, even though we can co-create the network, we are still not on the same terms as web2 leaders. Facebook, YouTube, or Google have power over us, deciding on what to present and whether we can use a particular social network at all. They are not permissionless and free as some people think. They are extremely centralized (e.g., one server contains data and connects network elements) and risky to use on a daily basis.
Web3 – the answer to web 2.0 cons
Web3 emerged as an answer to concerns over web2. It is a decentralized, permissionless space that everyone can own. Web3 relieves Internet users of monopolistic control and gives them tools to govern the network.
The ownership in the web3 is represented by tokens and cryptocurrencies. Possessing them allows users to decide what they want to consume and what data (and with who) they want to share. We can even say that web3 brings us back to the web1 period as it relies mainly on the individualized utility (compared to the social networks in web2). However, this time it’s not the content/website provider who owns and manages the Internet. It’s the people.
What are the principles of web3?
Web3 is based on a set of principles that differentiate it from the web2 – the Internet we know today. These are also crucial elements to implement while developing decentralized applications and other projects based on blockchain technology.
- Web3 relies on the P2P network, which means that there is no intermediary (if not needed) between a pair of users.
- There are no centralized databases; the network’s participants share the control over services and data.
- Decentralization means that if one node in the network is missing (or hacked), the network is still running. There is nearly no possibility of hacking the whole web or taking it down.
- Web3 is based on the immutability principle, making it impossible to erase data or reverse the carried-out activity. It enables tracking all the transactions and events.
- There is no distinction between a traditional and “blockchain” world – it is easy to connect both using on-ramping software (to exchange fiat money for cryptocurrencies).
- In web2, ecosystems usually start as collaborative spaces, but then platform owners extract value from developers and close the ecosystem. In web3, developers are the keys to the ecosystem’s success, and each network and protocol rewards them for their work.
- Web3 relies on a similar business model (based on multi-sided market and fees) as web2 projects, but fees are distributed to the community, not to the platform’s owner.
- Web3 is permissionless – you only need a wallet to connect to all the apps you want.
- There is no need to trust anyone.
- And lastly, as the web3 space is constantly growing, learning is the key. Each project, entity, and an individual must adopt a “lean start-up” approach and extract knowledge from every activity.
Web3 development courses – how to learn web3 development?
Even though the path to learning web3 development may seem complex at first, there is a piece of good information to begin with. As the “open-source” principle is one of the foundations of the whole industry, most of the valuable sources are open as well. Therefore, if you want to learn web3 development, the blockchain’s knowledge world is your oyster.
So, where is the starting point of the above-mentioned learning path?
- A good way to learn absolute foundations is to check and briefly read Bitcoin and (especially) Ethereum whitepapers. These two projects are the core of the whole business. Therefore, knowing their principles and technologies backing them serves as a valuable foundation.
- To extend the knowledge about the industry itself, check the popular YouTube channels. Even if it may seem too “basic” at first sight, it may be a great way to know the blockchain ecosystem a little more. There are many valuable sources – Whiteboard Crypto, CoinBureau, and AltCoin Daily, to name a few. And if you need some more dev-focused content, be sure to check out EatTheBlocks and Finematics.
- Once you get familiar with the industry and the leading technologies behind it, you can get into Solidity, one of the main programming languages for the blockchain. How to learn Solidity? By reading Solidity docs, you’ll learn more about smart contracts – the foundation of the web3 development and most of the applications built on its principles. It’ll also be helpful if you try Remix – an IDE that enables you to develop, deploy, and administer smart contracts. Thanks to that, you’ll understand this concept in theory and practice.
- Getting to know Solidity and smart contracts is a gateway to web3 development. Hence, after this step, you can get familiar with other elements of the web3 development stack, such as:
- Web3 libraries (web3.js, ethers.js, web3.py).
- Additional tools for smart contract development like Truffle, Hardhat, Bownie – when a local environment is needed.
- Wallets, such as Metamask
- File storage protocols
- Off-chain data protocols
- API
- Digital identity and KYC-related topics
- Oracles
- Onramping software and on-ramp UX
- Moreover, don’t forget to learn and understand some of the crypto primitives:
- Digital signatures (based on the secret signing keys and public keys; used to authorize transactions, governance voting, consensus protocol voting, etc.)
- Merkle commitments (that enable to show quickly that the particular payment was made; also help to remove the data off the chain)
- Zero-Knowledge Proof systems
- And last but not least, continue extending your blockchain knowledge by listening to podcasts, reading books, and following the aforementioned (and many more) YouTube channels.
Developing dApps in web3
Decentralized apps, often called simply “dApps,” serve as the heart and center of blockchain technology. They connect the complicated blockchain world with real-life problems and end-users. Using the aforementioned principles, they bring blockchain close to people and enable them to interact with web3 in a safe and UX-friendly manner.
As a crucial web3 concept, dApps run on a network built on the blockchain rather than rely on a single entity (like web2 applications do). They are free from control and a single authority, making them resistant to any kind of censorship. Decentralized apps are also immutable and nearly impossible to hack, resulting in a safe and secure experience for the end-user.
Being a web3 developer often means nearly solely “to build dApps.” However, as they connect the technology with the end-users needs, building them with UX principles in mind is crucial. The blockchain industry still struggles with onboarding new people to the space due to the non-transparent mechanisms and complexity of the technology. Therefore, it’s up to developers themselves to work on this issue and propose solutions that will bring less-technical people closer to the industry.
Enhancing the UX of crypto wallets, implementing on-ramping software (that enables users to exchange their fiat money for cryptocurrency safely and conveniently), and raising the security of projects. All these issues serve as critical improvements for decentralized apps and the whole industry.
However, please remember that dApps are still in a very early stage of development, which results in many problems related to this “infancy phase.” The user-friendliness struggles mentioned above are often joined with scalability issues. What is more, web3 still relies on the DNS infrastructure, which makes it not decentralized at all and, therefore, vulnerable to hacking attacks.
Nonetheless, the future of web3 development and dApps based on its principles remains bright. What is more, the infancy stage of the industry’s growth is rather the opportunity than the issue for a talented developer. It is possible to progress jointly with the whole blockchain space and decide on its shape. Especially since many crypto startups almost fight for every programmer with blockchain experience.
dApps vs. blockchain applications in Web3
The world of applications built using blockchain technology doesn’t end at dApps. There is also another type of such solution called blockchain applications.
It’s not “the other way of saying the same thing” as it could look at first sight. The architecture of blockchain applications is slightly different; they don’t rely on smart contracts. Instead, they are built on their native blockchains (such as sidechains), so they don’t share the network with other apps.
Such a solution has its pros and cons. On the one hand, blockchain applications are less flexible and more complex, as it’s more challenging to implement new on-chain logic to the app. It requires a hard fork in the network, whereas, in the case of dApps, it’s possible to add new smart contracts directly on the existing blockchain.
However, at the same time, blockchain applications enable significantly lower transaction fees and serve as a more scalable solution. It is due to the fact that the blockchain that they are built on is designed specifically for such apps. Thus, it stores much less data and is free from any congestion-related problems that often hinder activities of dApps relying on Ethereum. Moreover, even though creating blockchain applications looks like a more complex task than designing an EVM-based dApp, some projects enable to do so using popular programming languages, such as JavaScript.
Therefore, if you want to design web3 applications, there are many ways to do it. No matter if you’re going to use Solidity and smart contracts architecture or you prefer to build using JS, you’ll find an option to create a valuable solution. And, as the blockchain apps and dApps ecosystem is growing day by day, the biggest dilemma you’ll have is whether to build a new multiwallet, crypto social network, insurance tool, DAO, oracle, or a completely different kind of app. But it looks like a nice problem to have, doesn’t it?
How to invest in Web3?
Well, as the whole field of web3 development seems to be so promising, one more question has to be asked – how to invest in web3?
Currently, there are many ways to do so. The dynamic growth of decentralized finances (DeFi), as well as the recent NFT-boom, enabled people to earn on cryptocurrencies in a very different way than before. Moreover, another emerging trend – GameFi – combined blockchain space with the gaming environment, enabling players to create their in-game economics and to earn on their virtual activities. It was unimaginable yet a few years ago. And obviously, people can still invest in web3 in a “traditional way,” using centralized and decentralized exchanges and tools provided by them.
As a web3 developer (current or in spe), you can invest in web3 in two ways. Firstly, you can help other people earn on their crypto trades and projects by enabling them to do it more safely and conveniently. By developing and providing tools such as accessible crypto wallets, well-designed exchanges, or on-ramping plugins, you contribute to the investment world as a whole. Even if it’s a non-direct way of doing it, by making blockchain and crypto space more accessible, you are certainly helping the industry onboard more users and raise more money.
However, if you are a developer who wants to invest in web3, you should – first and foremost – invest in yourself and your skills. Gaining new competencies, personal development, and constant learning are crucial activities for every person involved in such a dynamic and volatile environment.
Therefore, if you want to invest in web3, start learning (e.g., using resources provided above), build (or co-create) your first dApp, and follow the main principles. And bear in mind that even if some concepts may seem complex at first, you're never alone. Web3 development is in its early stages. It’s down to you to become a part of a new, decentralized future and help others to participate.