March 5, 2024
Learning to Code in the Age of AI and Web3
How a lawyer learned to code through self-study, ChatGPT and a developer community
My journey to coding started during my law firm associate days. Everytime I proofread a document, checking for things like orphan parenthesis, I dreamed of a better, more efficient way. Why couldn’t a robot handle these mundane tasks? My attempts to craft Word macros fell short. If only I could code and automate these tasks, sparing my eyes the strain.
This realization spurred my foray into coding. A simple Google search on which programming language to learn led me to Python via an online Codecademy course. While I watched the lessons and did the homework, I quickly encountered obstacles. Without the support of a traditional teacher and assistant, my progress stalled. I hit a steep learning curve and was forced to put my coding aspirations on pause.
I left my law firm job to join a blockchain technology start up as an in-house attorney. In applying the law to blockchain products and matters, understanding the technical aspects were crucial.
Transitioning from a law firm to a blockchain technology start up attorney opened my eyes to the importance of technical literacy. Especially in highly technical crypto product context, the technical architecture drives the regulatory analysis. There was immense value in being a “technical person.” This all renewed my interest in coding.
Fast forward a few years, I have developed my first game and am currently creating a decentralized version of that game. I also created this website from scratch. I want to share with you what worked for me and how you can do it too.
My Objective
Programming is an evolving science and art with new tools constantly being created. I needed to understand the fundamentals so that I could learn. I decided to dedicate the next several months to understanding the fundamentals. I set my goal to be able to independently read technical documentation and to be able to build something myself. I wanted to be able to evaluate whether a technical product made sense.
My Path
My journey encompassed three main parts: a Full Stack Web Development Bootcamp Course on Udemy, a mentorship program from DeveloperDAO (a Web3 developer community) and ChatGPT.
Online Bootcamp
An online bootcamp is important because it provides a syllabus for your overall learning direction. After researching several courses, I decided on AppBrewery Full Stack Web Development bootcamp from instructor Dr. Angela Yu. Dr. Angela Yu was previously a medical doctor before starting this coding bootcamp. As a lawyer, I identified with her experience of learning to code in addition to a professional and demanding career. Her course addressed not just the technical skills but also the psychological hurdles of learning something challenging.
I treated the boot camp like a job and it took me about 4 months to get through the front-end and back-end portions of the course. There was a Web3 component to the course, but I chose to skip it because it focused on the Internet Computer, rather than simply Ethereum mainnet. One downside of a massive course is that it is very difficult for a course instructor to keep their content up to date and some of the materials will become outdated, making it confusing at times. For example, some of the tools that the course recommended removed their free tier, some of the UI of the tools changed. But it was clear that the bootcamp was gradually being updated to reflect these changes.
ChatGPT - The Tireless Tutor
ChatGPT is the ultimate coding tutor. I used it to learn coding in several difference ways. I have asked it to walk me through code line by line, explaining the core concepts at each line. Another very helpful thing is to ask it to explain technical concepts to you in non-technical terms. Error messages in the terminal are very intimidating for a beginner and asking ChatGPT to help explain what those errors mean and to have it parce through dense console logs is also very helpful. I have even asked it to test my knowledge by quizzing me using multiple choice questions.
Unlike with a person, you do not need to spend social capital to ask ChatGPT questions. Use ChatGPT to answer as many questions as you can so that when you approach a human for help, you are as informed and as respectful of their time as you can be.
The usefulness of ChatGPT actually increased as my knowledge increased because it gives better answers when you ask more precise questions. As I advanced, I was able to tell it what I have already tried and how that may have changed the error. The AI model has also vastly improved in the several months that I have used it. The incorporation of information beyond September 2021 has dramatically increased the usefulness of ChatGPT. I was impressed by its ability to provide useful and nuisance guidance even with newer tools such as Foundry, a Solidity development framework.
Web3 Developer Community
There will inevitably come a time when you have tried everything and cannot fix a bug. It is also in those moments that you realize that software development is a team sport.
I am very thankful for DeveloperDAO, a global and very active Web3 developer community. I joined it a while ago just out of curiosity, but dove into it more deeply as I learned to code. I serendipitously stumbled upon its mentorship program and I was paired with my mentor, Chris Whited, a senior full stack engineer at The Graph protocol.
I could not have progressed as quickly as I did without Chris. Chris was not only able to help me answer my technical questions, but he also helped me prioritize what to learn and what tools to use. For example, he emphasized the importance of good housekeeping habits by using Git (a version control tool) through the command line rather than using code editors. Chris guided me on what I should and should not spend time on because he knows what tools teams actually used in the wild.
The mentorship program would not exist without a tokenized community. The DAO, via the help of its members, was able to use tokens to coordinate its members to participate in this program. Everyone who participated received some $CODE DAO tokens for their work, even the student mentees! This was all coordinated globally in a permissionless way. In comparison, the App Brewery bootcamp course also had a large Discord community, but no one in that community would have put together a mentorship program and no one as experienced as Chris would have spent their time volunteering for the program. The experience underscored the unique advantages of participating in a token-based community, fostering opportunities for growth and collaboration.
The Golden Time to Learn to Code
We are in a golden age for learning to code, with resources like ChatGPT offering endless support. This is an invitation to anyone interested in coding: there's never been a better time to start. With the internet at your fingertips and AI tutors ready to assist, the path to becoming a programmer is more accessible than ever.