Recently I entered the Hashnode and PlanetScale Hackathon. My entry for the hackathon was the website Smart Contracts School.
At the beginning of this year, I started learning about Web3. Web3 is the term used to describe blockchain technology that is in a nascent form. You may be familiar with Bitcoin or Ethereum. They are two coins that run on top of the Blockchain.
What is a Smart Contract
One of the technologies that have been created for Web3 is the concept of Smart Contracts. A smart contract is a self-executing contract with the terms of the agreement between buyer and seller being directly written into lines of code. The code and the agreements contained therein exist across a distributed, decentralized blockchain network. The code controls the execution, and transactions are trackable and irreversible.
Smart Contracts are written in a programming language called Solidity. Solidity is a new technology and very few programmers know how to write a smart contract using Solidity. This is what opened the door for me to create the Smart Contracts School website.
Why Do I Want To Build Smart Contracts School?
If Web3 is the future of the Internet then programmers need to learn how to use this new technology. The most efficient way of learning a new skill is to actually create something with it. This process is commonly called "learn by doing." I want Smart Contracts School to be the go-to place for learning how to create a Smart Contract.
How Smart Contracts School Works
The basic design for Smart Contracts School is the use of challenges for users to complete. The challenges have a range of difficulties from beginner to advanced. Anybody starting out today would complete the beginner challenges. As their skills improve they can start attempting the intermediate challenges. The Advanced challenges are designed for people who have mastered the Solidity programming language.
There is no fun in completing a challenge in a vacuum. That is why we provide the solutions that other users have completed. Users can refer to these solutions to learn from and to help them in improving their programming skills.
If you get stuck in completing a challenge, you can review other users' solutions. If you don't understand what they have done in completing a challenge, you can actually leave a question on their solution. The people who created the solution can answer your question or any other member of the community can answer it.
What I Want to Add to Smart Contracts School
A Paid Version
I want to add a paid version of the website. If a user signs up for the pay version, they will get a weekly email detailing all the challenges that have been created in the past week.
All users will be able to see every challenge but the solutions to select challenges will only be visible to users on the pay version.
Monthly Challenge Contests
Another feature I would like to add to the website is a monthly challenge contest. A challenge will be posted on the first day of the month. Users have until the end of that month to submit their solution. Unlike other challenges, the solutions will not be publically visible.
On the first of the next month, all solutions will be revealed. Users will have a period of 10 days to vote on the solution they think is best. The most voted solution will win the challenge.
Job Recruiting Feature
As the number of Web3 companies grows, the demand for Solidity programmers will also increase. Companies will need a mechanism to judge the technical skills of potential job applicants. Companies can pay to create a Smart Contracts challenge. Users will complete this challenge and their solutions will only be visible to the company. The company can then select the best solutions and interview these people for a position within their company.
Conclusion
If you are interested in watching me build Smart Contracts School in public, you can follow me on Twitter. I will be posting updates as I build out the features listed above. Also, I encourage you to join Smart Contracts School!