This is a part of my learning journey follow along. See the initial article and the table of contents here: Web3 journey follow along.
On August 12th, exactly one month ago, I embarked on a learning journey.
I decided to learn something new, and out of all the things that had excited me recently, web3/crypto was the most exciting.
How to best learn? By building. That's why I've started learning blockchain development.
My initial learning plan was laid out (see: Web3 journey follow along), and I started working on it.
Here is my update after one month.
First, I wanted to learn React. While it's possible to develop with Python (I'm familiar with it), React has become the de facto language of choice for the frontend.
I had zero knowledge of React, so I've decided that a decent primer would be helpful to know what's going on and not to copy code blindly from other projects.
For learning React, I've chosen this course:
Sections 1-15 only, without the whole Redux part.
In reality, it took much longer than 16.5 hours. That's just the video content length. Add to that: setting up the dev environment, coding along with the videos, running the code locally, fixing errors, etc.
It's an excellent primer for React. What I liked about it (and what was frustrating at the same time) is that it didn't just give code to copy. It went much deeper than that. For each important concept, it took two steps back to explain the big picture, how the internal works, why they work this way and not the other, and how it connects with the rest of the concepts. It often slowed down the process of working on the actual project, but it effectively taught the language.
Next, I took a simple 2-week course where you immediately plunge into building before you even have any idea what you're doing.
It took less than two weeks, and I also was doing it in parallel with the proper Solidity course (the next on the list, below).
It was good at getting your hands dirty and writing some code. But that's it. It explained almost nothing—I mostly just copied the code. There was no explanation why things were done the way they were, how it was all connected, or how to do anything even slightly different than in the course's project.
I learned very little, but I wrote working code and deployed it on a test blockchain. That was helpful for the next course—more on this below.
I'm still going through this course. I'm more than 50% done, but a few significant parts still need to be finished.
This is a course by the same guy that teaches the React course. His teaching method is the same here: a lot of stepping back, painting a bigger picture, explaining why things are the way they are, what's a good idea to do, what's bad, and why.
I feel much more confident after doing half of this course than the whole previous one. To be fair, the previous one is not supposed to be comprehensive. It's meant to be a gateway drug to blockchain development, and I think it's doing a decent job at that.
It's still just one month, so almost nothing. But during that month, my goal was to learn at least one hour daily. No exceptions. Sometimes, it was just one hour when I didn't have time or was busy with everything else. Sometimes, it was 1.5h or even 2+ hours. I have a job and a family. Both require a lot of my time every day. I borrow a lot from sleep and hope that the payment will not be too steep when the time comes to pay for it.
So, after a month of learning, I don't feel completely helpless, like at the beginning. I feel like I could do some things on my own. Things that are different than the course working projects. Maybe it wouldn't be a production-level code, perhaps it wouldn't be tested as thoroughly as I'd like it to be, but it would (probably) work. And that's a massive win for me.
Also, when I look at the Solidity/React code of some of the larger, established projects, I understand most of what's going on there. There are a few functions or structures that are not familiar yet, or that are slightly different than what I saw so far, but I know what the code is supposed to be doing and why. That's another huge win.
I'll keep going and see how my self-assessment changes after another couple of weeks or months.
I'll keep learning at least an hour a day, every day. I'll keep posting updates. I'll keep giving my thoughts on what was helpful in my learning journey and what wasn't. I'll try to create a learning journey that many others will be able to follow and save a lot of time.