How to Become a Web3 Developer, Even If You’ve Never Written a Single Line of Code.
Tags: web3, blockchain, crypto, smartcontracts
Published: 2022-06-02 12:04:56

Web3 is booming and expanding to more areas of life. Its adoption happens faster than the Internet in its time. You might be probably ignited by the idea “to join the movement and shape the future.” And you might have already heard that the Web3 industry offers juicy rewards.

Yes, it does. There is a profound imbalance between talent supply and industry demand. Web3 developers are a rare breed. Scarcity always makes something even more valuable. So how do you bring yourself to Web3 development?

Some productivity gurus would first advise you to define your goals, who you want to be, pick up a niche, etc. But how are you supposed to figure it out while you’ve never touched the Web3 things and have no practical experience to understand what resonates with you the most?!!

This article will cover how to jump into Web3 development right without getting lost in the overabundance of the information.

Let’s get started.

## What areas does Web3 cover?

There is no one full-proved academic definition of Web3. Some attribute to Web3 every next big thing that implementing crypto. Including even those projects that are  ̶s̶h̶a̶m̶e̶l̶e̶s̶s̶l̶y̶  apparently centralized (like Metaverse by Meta).

Others define Web3 as a decentralized Internet of value, enabling users to interact peer-2-peer without relying on a tech-giant intermediary (like Facebook and Google) and stay in complete control over their data. This is closer to the truth.

At least, that's how Web3 is described by [Gavin Wood](https://twitter.com/gavofyork), one of the pioneers and leaders of the Web 3.0 movement, who actually coined this term.

Regardless of how many different definitions Web3 has, it is clear that it is multidisciplinary.

The key areas that Web3 covers are:

- Artificial Intelligence (AI),
- Internet of Things (IoT),
- Blockchain Technology,
- Metaverse Augmented Reality.

No way you want to start mastering them all simultaneously.

Regardless of your expertise, IQ, and persistence, you will likely end up overwhelmed on day one. And will give up on the second.

## So how to approach Web3 development?

As Web3 stands for a decentralized internet, therefore the primary technology it relies on is Blockchain. It is the base of Web3. Other areas  - AI and IoT - constitute its superstructure.

Therefore **the starting point of our Web3 development journey is blockchain technology.**

Further, we will talk about how to get on it. But first, let's look briefly at what a Web3 developer actually does.

## What does a Web3 Developer do?

Each time, the particular set of tasks a Web3 developer depends on the niche he is working in (DeFi, NFT, Metaverse, GameFi, etc.) and what an employer or a client pointed out in the role description. In that sense, the role of a Web3 developer is similar to the role of a Business developer. The latter can be a salesperson, a manager who does fundraising, or someone in charge of establishing partnerships and PR collaborations. Therefore, from case to case, the set of tasks is unique.

I will broadly group Web3 development into two main categories: _core development_ and _application development_.

### Web3 Core Developers

A Web3 Core Developer is generally involved in the design, architecture, and security of blockchain systems. Basically, their roles include the following:

- Designing and building Layer 1 blockchains from scratch;
- Design of consensus protocols and security patterns for the network;
- Design of the network architecture and nodes operating; and
- Supervision of the entire network.

Essentially, a Core Blockchain Developer sets up the foundation for future decentralized applications (dApps).

### Web3 Application Developers

An application developer (dApps developer) has a different set of tasks. They utilize the architecture built by core developers to design and deploy dApps.

The dApps development is basically broken into _back-end_ and _front-end_ parts.

#### Back-end Web3 App Development

Regular (i.e., Web2) back-end programming refers to the server side of an application and everything that communicates between a database and a browser. The back-end is a part of an application that users do not see.

Web3 back-end development is entirely different. We don't need a server to build a dApp. Instead, we want to choose a proper Layer 1 network (ETH, Solana, Polygon, etc.) fitting our dApp's goals and build upon it smart contracts that would define the dApp's logic and automate its work. Roughly said, smart contracts replace a server-side component in dApps.

Web3 back-end tasks mainly include working with distributed databases, smart-contracts design and deployment, and blockchain APIs, SDKs, and EDIs (see below). Unlike Web2 back-end, Web3 one is always open for users. Blockchain databases and smart contracts are inherently transparent and can be viewed by everyone.

#### Front-end Web3 App Development

Front-end stands for the client-side part of an application. This is what users see and interact with (i.e., website and mobile app).

The specificity of dApps front-end is that the front-end architecture is focused on communication with smart contracts. Instead of making network requests to a centralized API server somewhere, you will be reading data from the blockchain directly, usually from smart contracts.

Another specific thing here is users’ authentication. As Web3 stands for decentralized ownership and data storage, users access blockchain networks through a dApp directly using their private keys. So another thing you are going to handle as a web3 front-end developer is wallet connections. To identify a user and procure their access to the blockchain, you will usually ask them to connect their wallets, like Metamask, to the dApps website (or mobile app). A wallet acts like a transaction signer in a blockchain network and stores users’ private keys in the browser.

#### Full-stack Web3 App Development

A Web3 full-stack developer works with both the back and front ends of a dApp. In this sense, they provide end-to-end service and can be involved in projects that include databases and building user-facing websites.

## How to start Web3 development? 
There are multiple different ways of approaching Web3. The defining factors here are your current skillset and experience.

If you are entirely new to programming and development, the path can be a little trickier than having a related background. However, with intense curiosity, commitment, and dedication, nothing is impossible, right?

Here I would offer a general practical scheme that can fit both the experienced and fresheners. It is based on the assumption that regardless of how new you are to Web3, at least you get along with maths and computer science fundamentals. You are also excited about Web3, consistently educate yourself on it, and follow the trends.

So even if you don’t code yet, your theoretical understanding of blockchain technologies is already solid. That is why I would avoid advising here on things like learning what blockchain is, its goals, and other introductory stuff. If you are at the stage of thinking about becoming a Web3 developer, you are supposed to be already clear on that sort of basics.

So here are the steps:

### 1. Focus on one blockchain

I would recommend starting coding with [Ethereum](https://ethereum.org/en/developers/). At the moment, Ethereum is the most mature development environment in the blockchain space. At the core of the Ethereum network is its EVM ([Ethereum Virtual Machine](https://ethereum.org/en/developers/docs/evm/)) - a software platform that developers can use to create programs using smart contracts for various purposes, including dApps.

EVM has all features of a Turing-complete virtual machine, which means it can execute any type of code exactly as intended. In other words, Ethereum's Turing Completeness implies that it can use its codebase to perform virtually any task, as long as it has the correct instructions, enough time, and processing power.

Another reason for starting with Ethereum is that there are a lot of other blockchains out there that are compatible with EVM. Among those are Polygon, Avalanche, Polkadot, etc.

So once you master Ethereum, it would be easier for you to expand into other blockchain networks compatible with its EVM.

Also, if you build on Ethereum,  you are a part of the largest blockchain developers community. So can always learn from professionals and ask for guidance when needed.

#### Why not start with Bitcoin?

While Bitcoin has the most extensive adoption, its technology doesn't have the feature of Turing completeness. Therefore, Bitcoin is way less friendly for development than Ethereum.
It's just not fundamentally wired for this. However, a few projects somehow enable building dApps on BTC. For example, [Stacks](https://www.stacks.co).

### 2. Learn the most applicable programming language

In the world of building decentralized apps, a must-have coding language is [Solidity](https://docs.soliditylang.org/en/v0.8.13/). Solidity is a high-level object-oriented programming language created by the Ethereum Network team for building and deploying smart contracts. It is designed to target the Ethereum Virtual Machine (EVM).

Solidity is statically typed and supports inheritance, libraries, and complex user-defined types, among other features. With Solidity, one can create contracts for voting, crowdfunding, blind auctions, multi-signature wallets, and other purposes. A significant benefit of Solidity is that it is easier to learn than many other programming languages (like rust or C++, for example). The scope of its application is unprecedented. Solidity is used almost in all EVM-compatible networks (Polygon, BSC, Avalanche, RSK, Fantom, Telos) and in most Layer 2 scaling solutions, like Arbitrum, Optimism, Zk sync, Parastat, and others.

The next suggestion is to learn [JavaScript](https://www.javascript.com). It is a client-side (i.e., frontend) programming language that allows to implement various complex features on web pages, like interactive maps, animated 2D/3D graphics, scrolling video jukeboxes, and the like Knowledge of JavaScript would be a great addition to Solidity. As mentioned earlier, in dApps development, even its backend part is open for users. Therefore, no matter which development aspect you decide to focus on - backend or frontend - it’s essential to understand the basics of both and how they interact with each other.

Other top programming languages in Web3 development are C++, Java, C#, Go, Python, Ruby, and Rust. However, Solidity + JavaScript would be enough to cover all the necessary basics if you are just starting.

### 3. Use Web3 IDEs/SDKs

Both SDKs (Software Development Kits) and IDEs (Integrated Development Environment) are collections of various tools in one installable package used by developers to create applications for specific platforms or purposes. They are designed to simplify and automate the process of development. With these tools, you don’t need to code everything from scratch.

The main difference between SDKs and IDEs is that IDEs are purposed to provide an interface for writing and debugging codes, while SDKs are used to add functionality to the codes written.

The actual contents of IDEs and SDKs vary from one to the other. They can include libraries, frameworks, documentation, preprogrammed code pieces, API, testing/debugging tools, etc. Some SDKs have a dedicated IDE that one can use right out of the box.

Let’s look at some most popular Web3 SDK/IDE examples:

- [Hardhat](https://hardhat.org) and [Truffle](https://trufflesuite.com) - terminal-based IDEs that allow developing, testing, and deploying smart contracts on the Ethereum blockchain. Though they have some slight differences, the functionality of these two IDEs is pretty similar. Both provide JavaScript and Solidity-based development frameworks.
- [Remix](https://remix.ethereum.org) - a browser-based IDE serving similar purposes as Hardhat and Truffle.
- [Ganache](https://trufflesuite.com/docs/ganache/) - allows you to set up your personal blockchain to test smart contracts and dapps. It’s a kind of a simulator of Ethereum blockchain that makes developing Ethereum applications faster, easier, and safer.
- [web3.js](https://web3js.readthedocs.io/en/v1.5.2/), [web3.py](https://web3py.readthedocs.io/en/stable/), and [ethers.js](https://docs.ethers.io/v5/) are the most popular Web3 SDKs (libraries' collections). They allow to connect smart contracts with the front end of an application. In other words, these tools would help turn your web application into a web3 one.
- _Niche Web3 SDKs_. By that sort of SDKs, I mean those specifically wired for building certain types of applications. Here is an example. Let’s say you want to launch a crypto exchange or a brokerage platform. For that, you can use the [OpenDAX WEB SDK](https://www.npmjs.com/package/@openware/opendax-web-sdk) created by [Openware](https://www.openware.com), a  Yellow’s company.
OpenDAX WEB SDK combines the privacy and security of decentralized finance with the usability and simplicity of centralized exchanges. This SDK offers reusable UI components and widgets for common web interfaces used in creating exchange platform applications. They come with a simple and modern design developed to satisfy any needs and according to the latest UI/UX practices. Users can customize the interface based on their corporate style, design guidelines, or other preferences.

In addition to UI components, the library leverages [React](https://reactjs.org) state management tools such as Providers, Hooks, and Utils. It allows for an easy connection to the OpenDAX WEB SDK for JavaScript and passing data to the UI layer.

### 4. Join Web3 Communities

Web3 development is amazing and joyous but could be pretty challenging at times. Especially for newbies. If you go a sole wolf way, you can lose days, months, and even years trying to overcome obstacles on your development journey. It makes no sense, given that there is always someone already ahead of you and willing to share their knowledge. You can easily find those people in Web3 communities.

Such communities exist almost around every Web3 network, protocol, or a stand-alone project. They hang out on Reddit, Discord, Github, Telegram, and [other social platforms](https://thehiveindex.com/topics/web3/). Engage with those that are the most suitable for your current professional level and goals. The beauty of the Web3 development world is that it is tremendously supportive and collaborative.

## Final thoughts

Web3 development is absolutely a brilliant career path. Not only will it reward you financially, but the time spent working in this field will give you paramount personal growth and high-quality social capital.

Don’t be discouraged by its seeming at first sight complexity. Learn as you go. The clarity will follow.

## Want to learn more about Web3 and FinTech?

Follow us for more Web3 stories from Yellow powered by Openware!

* Check out the most ambitious decentralized project Yellow Network powered by the latest state channel technology: [yellow.org](yellow.org)
* Take a look at the open-source OpenDAX v4 white-label cryptocurrency exchange software stack on GitHub: [github.com/openware/opendax](github.com/openware/opendax)
* Visit the OpenDAX product page: [https://www.openware.com/product/opendax](https://www.openware.com/product/opendax)
* Follow Yellow on Twitter: [twitter.com/Yellow](github.com/openware/opendax)
* Join the Yellow Network Telegram: [t.me/yellow_org](t.me/yellow_org)
* Read more exciting articles on Yellow Network Medium blog: [medium.com/yellow-blog](t.me/yellow_org)
* Find us on Hacker Noon:[hackernoon.com/u/yellownetwork](t.me/yellow_org)