My personal Web 3.0 Development story
My learning path to web3 development or programming started with a lifelong love for Mathematics, exploring my first computer late at the age of 10 and simple C programming during my engineering bachelor studies (2006). I progressed to more complex Matlab code for finance calculations during my finance master´s studies (2011). I stuck with Finance during Web2, but Web 3.0 is Fintech!
After speaking Italian as a Sales Executive in Western Union Milan in 2016, I realized that our competition was this website called Transferwise and that in the future it could also be something called Blockchain and Bitcoin. I knew that if I was ever going to build anything of value, I would have to make a jump in my career. So I started basic web development and soon started work as a Quantitative Research Assistant while doing my PhD in Economics.
I was initially focused more on Blogging content creation, SEO and Marketing. But after doing research work in Finance I was coding extensively on Mathematica and R (2018) to finally moving deeper into Python for Data Analystics and Deep Learning (2020). In 2021, I explored Crypto on the Algorand blockchain, joined the AlgoShibaInu or aSHIB team, wrote some Python code to do some airdrops and in 2022, I am plunging into web 3.0 development by aiming to combine all of this experience with some newly gained Frontend and Backend experience thanks to some recent job interview projects.
Why is this the best Web3 Development guide?
While most Web3 Development tutorials available online seem to mainly focus only on Ethereum´s Solidity and Metamask, the following guide focuses on the Algorand blockchain and the MyAlgoWallet. Moreover this Web 3.0 Development guide also covers Machine Learning and Deep Learning. If you want to learn Web3 Development from scratch, or have very basic knowledge about programming, then the below Web3 overview will definitely be very helpful.
Roadmap to Web3 Development in 10 steps
- Web3 Developer tracks his job applications
- Best Command Line Interface for Web 3.0 Development
- Is VScode the best code editor for Web Development?
- Frontend for Web3 development
- Backend for Web Development
- Why use Docker for web 3.0 development?
- Why use GitHub for Web 3.0 Development?
- Machine Learning for Web3 Development
- Algorand or Ethereum for Web3 Development?
- Why use Notion for Project Management?
1. Web3 Developer tracks his job applications
Web 3.0 developers must always sharpen the saw by interviewing for Jobs
You gain valuable experience just by doing interviews. After a series of unsuccessful job interviews, I am extremely pleased to have kept going on because I gained great insight from each job interview that has resulted in this blog post.
Feedback and Learning from Job Interviews:
- Tips on documenting my code better
- Using more Objected Oriented Programming instead of functional code
- Building backend for AI and Finance applications
- Designing REST API and Frontend for a website
- Understanding Databases like SQL and best practices of using Docker and Github
I would not have pushed myself to dig deeper if not for each of the many job interviews I have done over the years since I first started Blogging. Hence, always apply to jobs to become a Web3 Developer.
Why use a Job Tracker tool like myjobstracker.com ?
You must keep track of the jobs you have been applying to in your Web 3.0 career. Having done numerous interviews for banking jobs earlier, I could be invited for an interview with a high chance if I applied now as they are always curious about what valuable experience I have gained since we last met. With Technology jobs, you would often have to keep applying for a particular role till you adapt and learn to be fit for the job. I however kept applying for different jobs which fortunately have helped me with my entrepreneurial goals of writing this blog post but not much with my short-term goals of getting a new job fast.
A tool like myjobstracker.com can help you plan your career better. Be it a more focused job hunt on specific roles or a more opportunistic search for broader roles, tracking each job application and interview will help you focus your efforts better. Keeps track of all your job applications in one place!
2. Best Command Line Interface for Web 3.0 Development
A code of a thousand lines begins with a single Command Line Interface open
I spent a lot of time coding in MATLAB, Mathematica, and R and never really needed my command prompt much. But after working on Python and a database like SQLite, I began to use the command prompt more. You can launch your Python Jupyter notebook and access an SQLite database both from your notebook and directly from the terminal. Python code requires installing packages and you normally do it using a pip command.
I also spent a bit too much time not upgrading to a Windows Terminal and accessing a Windows Subsystem for Linux like Kali Linux. Why is it better to switch to a Linux WSL like Kali or Ubuntu?
In simple words, if you are going to use a command-line interface, then Unix (of which Linux is merely one kind) has a lot more commands than Windows. Windows is focused on the user experience and has evolved in the development of GUI. But if you want to pretend to be a web 3.0 developer you should at least start using a WSL.
3. Is VScode the best code editor for Web Development?
VScode improves the way you work, Python Jupyter notebook improves the way you think
I wish I had discovered VScode before. I was using the heavier Visual Studio for some python code a few years back before moving to a Jupyter notebook. Jupyter notebook for Python is amazing to get started and explore new code. But once you want to build your big projects like a website or an app, you can no longer keep coding in just one notebook. You would have to make your code more modular and separate them into .py files and import them accordingly to keep things organized.
However, when you have no clue of what you are doing in Python, using a Jupyter notebook is a great interface for trial and error.
4. Frontend for Web3 development
Web3 Development can be art. Web Development can be aesthetics. Frontend is so simple, that’s why it is so complicated
What is the minimum Front End you need to know to build an app?
What is the difference between a Library and a Framework?
When you use a Library, you are in charge of the application flow and choose when to use the library, and have more flexibility. When you use a framework you would have to follow the rules set.
Why do I suggest React to build your frontend?
The State method in simple words allows you to manipulate a variable value while the Render method displays the view to be rendered on the browser window. You must definitely explore simple React applications like the tic-tac-toe game here in the official React tutorial. Youtube tutorials and some sample Github code from those youtube content creators are also great resources. You will have a collection of projects you can study in detail. But there is a lot more to learn to become a Full-Stack web 3.0 developer.
5. Backend for Web Development
When Backend supports Frontend, Incredible Web Development happens!
Why use Python for backend web development?
Python, because you can never understand one language until you understand at least two
I have used Python in several projects now in tasks like:
- Web Scraping and Data Mining
- Building an SQLite Database
- Conducting complex mathematical calculations and presenting insightful charts and results
- Machine Learning and Deep Learning applications
- and finally building the Backend for web applications on Python with FastAPI
Hence, I would suggest Python for the backend. You have various options like Flask and Django, but I discovered FastAPI. As the framework is based on OpenAPI you have Interactive API documentation. You basically design a REST API with the CRUD operations of Create, Read, Update and Delete. You implement a mock server and can connect it to a Database. If you are able to successfully test the GET, POST, PUT, DELETE methods with a 200 Successful Response, then you are good to go.
Why use SQLite for learning web 3.0 development?
Is it in the Database or the Blockchain?
I have been working with SQLite databases for quite some time. Still remember a very unsuccessful job interview for some SQL developer position in Milan years ago. I had cluelessly landed up in the interview with hardly any experience with databases. Fortunately, I now have a much better idea about relational databases and the importance of having clean and tidy data.
I have worked on a big project involving vast data collected in a self-built SQLite database using various automated web scrapping methods on Python. Hence, this does not scare me one bit anymore. You mainly need to understand the syntax to create, access, and manipulate tables of data. First on your command-line interface and then on Python using relevant packages.
6. Why use Docker for web 3.0 development?
For every minute spent on Docker, an hour is earned to a web 3.0 developer
Now that you know enough to have a full-stack web application running on your localhost, you can share it with other developers. Docker is a platform for building, running, and shipping applications. The benefit of using Docker is that you can package an application with everything it needs. You can then run it anywhere on any machine that runs docker. If it works on the development machine, it will work on test and production machines.
If your app needs a given version of node and database, this will be included in the Application package and this can be run on any machine that runs docker. Someone new does not need to spend time setting up the machine to run the app. They tell docker to run the dependencies in an isolated environment called a container. This allows multiple apps to use diff versions of some software side by side. Docker makes it easier to build, run and ship applications.
7. Why use GitHub for Web 3.0 Development?
Talent wins games, but Github wins web 3.0 development
Github allows you to host your repositories and has a series of commands to clone projects, add and commit changes to it locally, and then add the changes to the version of your repository on GitHub using the push command.
Pull requests are what encourage collaboration on Github. With a pull request, you propose changes and request that someone reviews and pulls in your contribution and merges them into their project. You get to see the difference in content between your repo and the repo to that you are submitting changes to. The changes, additions, and subtractions are shown in green and red. Read more on how you can pretend to be a web developer with this interesting introduction to Github.
8. Machine Learning for Web3 Development
With Machine Learning, we fight for accuracy. With Deep Learning, we tear ourselves and everyone else around us to pieces for precision
Having done linear regressions in my master´s thesis, I was super excited to learn how Deep Learning can help in modeling for nonlinearities. Hence I found myself building Deep Learning models with the Google TensorFlow and then the Facebook PyTorch libraries. While TensorFlow was easier to use for basic models, once you go PyTorch there is no going back. From my experience, you understand Deep Learning in a new much better way once you build and explore with PyTorch. You can do explicit hyperparameter search with Tensorboard and optimization calculations with Optuna on complex models to minimize the mean squared errors in prediction.
Although you can enjoy Machine Learning as a game where you are trying to minimize the MSE or maximize accuracy and precision, the innovation and practical business application of your predictions is what finally matters.
9. Why Algorand is better than Ethereum for Web3 Development?
A Crypto is as valuable as its web 3.0 business application – MilanKaRaja
When I was younger, Bitcoin or Crypto felt great mainly due to the mystery and anonymity associated with it. Soon Bitcoin developed into a stable store of value while Ethereum became exciting for its added smart contracts feature. In 2022 a crypto is good if it is carbon neutral, has low gas fees, is fast and secure. Hence I am super excited to build a web3.0 application on the Algorand blockchain.
I, fortunately, joined team AlgoShibaInu or aSHIB and cannot wait to have our first dapp out. REACH is integrated and I have had some success with the basic milestones. I have added the Algorand wallet connect and have made transactions on the app on test net. I have done airdrops for aSHIB to 10,000 users with some Python code. We have a strong discord server with a lot of demanding people. Everyone is curious to know about the progress of this Algorand ASA crypto project.
10. Why use Notion for Project Management?
Web3 Development involves a lot of organized effort and needs good project management. Notion is an amazing tool that allows you to take notes, create todo lists, make calendars etc. Notion is so versatile that it can really help you organize your life and career better.
The above 10 points would be my best Web 3.0 Development tips for someone with very basic knowledge. The main focus should be on the Frontend, Backend, and Algorand SDK to develop a basic Web3 application. But the other points will definitely help you in getting a web3 developer job.