In this series I will share my crypto developer journey with you. I will share the learning resources recommended by the Byte Mason’s and let you know which of them I found the most useful. No two journeys will be the same. For many of you, your skill levels will well exceed mine. This article will be aimed at absolute beginners. My hope is that it will resonate with an audience who is excited about the crypto space and eager to learn. And for those of you who are more experienced, keep watching Lrn.fi for upcoming programming content from our senior devs including our very own Justin Bebis.
My Programming Journey so far…
My first exposure to programming was when I was in primary school. I was fascinated about how the internet and web pages worked. I tracked down a copy of the Dummy’s guide to HTML (HTML 4 at that time) and started putting together very basic websites. These were nothing more than text, links and images thrown together inside <body> tags with crazy tiled backgrounds. Probably not much different from The World’s Worst Website Ever but young HELPeR was proud of his achievements. Unfortunately I didn’t persist in my learning.
Jump ahead to college where I used Python and Matlab as part of my degree. I figured out how to import data, create loops and spit out some charts to get through assessments. I was only looking to solve problems given to me as fast as possible, looking for quick fix solutions but failing to take the time to learn the principles of programming.
In the workforce, I have continued to improve my skills by completing the tasks in Al Sweigart’s great book Automate the Boring Stuff with Python (available to read for free here). These real world examples helped open my eyes to what could be done with programming. I have continued my journey by conquering the basics of Microsoft\\\’s VBA to squeeze more productivity out of Excel and automating processes with data extraction from servers.
Finding a learning roadmap
Now I would like to shift gears and learn about the building blocks of the cryptoverse, but where to begin? At this stage, I will be using the Public Good Blockchain Development Guide to provide me with a roadmap for my learning. dcbuil3r’s guide provides great overviews of key topics and importantly offers further external resources for you to continue your learning. The guide begins with an introduction to crypto specific technologies such as blockchains, smart contracts and decentralization. If you are new to crypto, I highly suggest beginning at the start, taking your time to go through the suggested resources.
The guide is then broken down into sections which focus on different development specializations. These sections include:
- Front end development: The technology stack involved in building user interfaces to blockchain technology.
- Smart contract development: The “on-chain” code that lives on the blockchain and forms the backbone of dApps. The most commonly used language used on Ethereum and Fantom is Solidity.
- Back end development: The “off-chain” complementary technology which allows users to query data from blockchains, index data and create databases to create on demand data. This supports the development of more powerful and responsive experiences for users.
As the guide suggests, I will aim to learn the basics from each area to help build my overall knowledge before picking a specialization.
Starting with the Fundamentals
For my journey, I want to make sure I stayed humble and didn’t skip from level 1 to level 10, missing out on all of the knowledge and skills of the intermediate levels. For this reason, I went back to square one to learn the basics using the excellent learning resources that are available today. I will now share three of the resources that have been recommended to me by the team that have helped me the most.
Programming 101 with “Uncle Bob”
One of the resources that is regularly suggested for beginners in the Byte Masons Crypto Developer Beginner thread is Clean Coders Programing 101 video. Uncle Bob is a highly enthusiastic teacher who doesn’t want to just tell you how programming works but rather show you. In this video, he creates a program for turning on light bulbs in his house to explain some basic programming logic and binary math. If you are just starting your programming journey, this is an entertaining watch to get you started.
I am a regular user of the language app Duolingo and I have made it part of my daily ritual to hop in the app to smash out a quick lesson to maintain my daily streak. Mimo is like Duolingo for programming. It comes highly recommended by both Bebis and Munchies for beginners looking to dip their toes into programming. I have found it very easy to add a Mimo lesson into my daily ritual. I try to do at least one lesson each day to supplement other avenues of learning.
Responsive Web Design Course
freeCodeCamp is a resource that comes highly recommended by Munchies. I have tried several online courses such as codecademy and a variety of udemy courses. freeCodeCamp is by far my favorite. If you prefer to learn by doing, not just reading, this resource is for you. The courses are self contained within your browser so you don’t have to install anything. Lessons are quick and concise whilst being difficult enough to keep you thinking.
In preparation for writing this article, I have completed the Responsive Web Design Course. This course is all about the fundamentals of web design. Do not be put off by the 300 hour estimate for the course. In my experience, I completed it much faster.
The course revolves around the languages that developers use to build webpages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design. You start by building basic web apps in HTML, then progress by adding styling with CSS. The next part is an overview of the best practices for accessibility with.
The main topics covered are:
- Basic HTML 5 – build a cat photo app to learn the building blocks of any webpage.
- Basic CSS – tell the browser how to display the text and other content. Control colors, font, size, spacing, etc.
- Applied visual design – combine typography, color theory, graphics, animation, page layout and more to help deliver your message.
- Applied accessibility – learn best practices for building web pages that are accessible to everyone.
- CSS Flexbox – Flexbox is a powerful layout method which makes it easy to create dynamic user interfaces which shrink and expand automatically.
- CSS Grid – build complex responsive layouts by turning an HTML element into a grid.
Five Things to do if you are just starting
- Download Mimo, start the Web Development coding path and complete lessons while you are on the bus, in between sets at the gym or while you are on the toilet.
- Sign up to freeCodeCamp and start working through the interactive courses to learn the basics of web development.
- Start getting familiar with crypto lingo and how blockchains work. DevPill.me has many resources to start you on your journey. If you need to brush up on Web 2.0 knowledge, check out the Frontend Developer Roadmap. If you are unfamiliar with how crypto and blockchains work, consider reading through documentation such as the Fantom Developer Documentation or the Ethereum Developer Docs.
- Join the Byte Mason’s Discord, say hello and ask questions in the Crypto Developer Beginner thread.
- Stay up to date with the Learn team at Lrn.fi.
That brings this introductory article to a conclusion. I hope you have enjoyed this first entry and find these resources as useful as I have. I will continue to share books, courses, videos and guides that I find useful throughout my journey. Good luck with your learning and I hope to see you in the next edition!