Featured

Read First (Pinned to top)

Introduction:

This will be a straightforward journal detailing my journey with learning Solidity (Ethereum’s programming language).

You can follow along from Day 1, when I currently have no idea what I’m doing, to becoming a reasonably competent Solidity programmer.

Update [7/12/22]: I decided to use a few codes to make things easier. This will go into effect starting on Day 8 (unless I edit earlier entries).

Because I’m currently studying multiple Solidity courses and websites, I figured I would use codes representing the referenced course.

Course Codes

These are course codes you may see in the upcoming posts:

>>If you see UD3, it means I’m referring to Udemy Course #3: Ethereum and Solidity: The Complete Developer’s Guide 

>>If you see UD1:31, it means I’m referring to Udemy Course #1: Module 31

Click here to see the current course list

 

 

Day 28 – Mocha and React

Starting with modules 87 – 94. Then I Skipped to the Appendix to study React.js (Module 230 – 247)

On and Off from → Wed 1:10 PM – Thursday 2:10 AM

Today was great! Even though it rained all day, I never left the house and watched Grider’s Udemy videos all day.

Oh yeah. Maybe I should have mentioned this earlier, but I’m not affiliated with Grider. I don’t know him. I’m not endorsing his course. I don’t get paid if you buy it. For the most part, this blog is an actual journal blog for me (that I’m making ‘public’ for those who may find it helpful). To repeat, I created it as if I were logging what I learned on a given day, as well as (as of now) sharing my thoughts and documenting my progress.

I didn’t watch any TV except for a few YouTube videos and baseball (O’s beating the Yankees….which contributed to ‘day == great’).

I also have been taking brain supplements for the past three years. I’m personally curious as to how my brain would have responded to nonstop hours of coding videos in a parallel universe where I haven’t taken the brain pills, but I’ll never know.

As of today, I seem to get great mental clarity and focus from Huperzine A, Fish Oils, Ashwagandha, 5 HTP, Rhodiola Rosea, Ginseng, and NAD. 

With all that out of the way, the first portion of modules (87 – 94) focused on Mocha testing, which involves testing a portion of your Solidity code to make sure everything works as it should.

This is important because, in theory, your Solidity code could compile correctly; however, there could be transactional errors, such as the improper amount of Ether/Ethereum may not be paying out as it should.

If I’m being honest, the Mocha testing isn’t that fun. It wasn’t painful to study. It wasn’t like I was bored. I learned a lot today and took lots of notes. It’s just not that exciting.

The next set of modules was from the Appendix, which covered the basics of React.js. This was more exciting than I expected. I initially wanted to ‘get through it’ to return to learning Solidity, but as I dove into it, I enjoyed it. At first, I wouldn’t say I liked the idea of learning another language while not finishing the programming language I was currently studying, but it made sense to learn the basics of React. If it weren’t too late, I would keep going, but I felt myself getting tired. Ok… until next time.

Day 27 – My Thoughts

New plan: I will start mentioning what ‘my thoughts’ are on certain days.

In other words, on certain days, I will discuss the ‘lesson’ I learned that day, and on another post, I will discuss ‘my thoughts’.

My thoughts: At this point in studying Solidity, I finally ‘get it’. Part of me even feels as though I know enough to create most simple projects based on what I currently know while knowing enough to research what I don’t currently know.

More thoughts: I’m also motivated to learn other related programming languages to complement Solidity, such as:

>> Javascript
>> React.js
>> AI prompting
>> Rust (Solana)

 

Day 27 – Lottery Contract

UD3:63 – UD3:80

I spend 80% of my waking hours doing Solidity. Even when the baseball game came on, I watched videos and tested the contract. As usual, I took a lot of tablet notes (i.e. taking a picture of the screen with my Samsung Tablet and ‘writing notes’ on the screenshot).

Much of the lessons today involved building the parts of a lottery contract:

 

 

Day 26 – Deploying contract to a test network

Note: I’m still following Grider’s course.

Today was pretty fun and exciting! I learned how to deploy a smart contract to a test network.

I got pretty excited when it happened.


Using a code editor (VS Code) and a terminal (Windows PowerShell), I created the deploy.js code (following the course). Then, I deployed the smart contract to an Ethereum test network (Sepolia network).

Here are the main things that were required:
> Requesting ‘Test Ethereum’ to be sent to ‘test wallet’ (a metamask wallet used exclusively for testing). 
> Writing the deloy.js code. This is the code that the terminal refers to that deploys the smart contract (inbox.sol) to the test blockchain (Sepolia network).
> Using the PowerShell deploy code: node deploy.js

Day 25 – Using ChatGPT to Learn Solidity

Today was a moment of clarity. Because I had taken a two-year break, I forgot which command-line software I used. I remember downloading a few, but I couldn’t recall which one I preferred. I also couldn’t remember what Node.js was. I didn’t know the difference between Truffle, Mocha, Chocolatey, and a few more programs needed to create smart contracts.

So, I went to ChatGPT.com and typed a list of questions like:

“What is Powershell?”
“What is the difference between Powershell and Gitbash?”
“What is Chocolatey?”
“What is Mocha?”
“What is Node.js”

Then, I cut and pasted the answers into one document labeled Solidity – Related Software and Programs.

I also created a second document (MasterFile – Powershell Commands and other Commands) and copied and pasted a list of commands from Google searches.

Doing this allowed me to understand better how the programs interact with each other and their roles in creating a smart contract.

I was able to compile a smart contract using a series of commands in Git Bash (a command-line interface) as I followed Grider’s course, actually understanding the gist of what was happening.

Day 17-24 – Learning Solidity Again (After 2 year break)

As you can see, I took a small two-year break. 🙂

It started as a one-week break. Then it turned into a month…then a year…then two years. Oh well. I’m back at it. LFG!

The good news is this SolidityJournal.com blog helped me get back on track quickly.

As far as where I’m at now. I started about a month ago (Aug 14, 2024) for about a week (that’s why the title is Day 17-24). I just forgot to create posts on this blog. I started partway through Stephen Grider’s course (Ethereum and Solidity: The Complete Developer’s Guide) on Udemy.com.

I skipped the first 15 modules because they were too basic, and I already knew the basic history of Bitcoin, Ethereum, and blockchain. I started in Module 16, which began discussing the Solidity Programming Language.

One thing I have started doing a lot in the past month is using my tablet to create screenshots of critical parts of the lesson while taking notes on the screenshots. This makes it much easier and quicker than writing out and typing out notes (which I’ve done a lot of in the past).

Here are some examples:

Day 16: Marathon Day

Today was a marathon day! But it was very zen-like and peaceful.


Photo from Unsplash

Although, this is Day 16, it really represents Day 48 because I started on June 23rd.

Day 16 is really the number of  major study days, if that makes sense.

Rather than list the modules that I did (because I jumped around a bit), I mentioned that I was studying from 10AM up to 1AM (that’s 15 hours!), but there were a few breaks in between. So in terms of actual studying time, it might have been anywhere from 11 hours to 13.5 hours.

Although my overall plan involved learning Solidity first before moving on to other programming languages like Javascript, Web3, command line (if that’s a language), I decided to go back to the skipped modules in UD3 that talked about Javascript and command line.

I’m glad I did. Although I don’t know the difference between many of the command line programs (if that’s what they’re called) or terminals (which is what the instructor, Grider called them, I decided to use Git Bash,  because it was suggested inside of the course (UD3), to use Git Bash if you’re using windows

As far as a code editor, I decide to use Sublime Text.

To get a sense of the modules that were covered (even though I said I wasn’t going to list them, it was the green X’s.

I started with Mod80 through 85. Then Skipped to 95 where he said something like, “before moving on to the next module, make sure you know React. If you don’t go to the Appendix (Mod234 – 266) where he teaches React. I did that. Then it became apparent that I couldn’t fully follow it because I skipped modules that discussed Javascript and command line…soooooooo, I went BACK to the skipped modules that discussed that (starting at Mod33).

So the plan is to finish these skipped modules (up until Mod64) and then go BACK to the React Appendix (starting at Mod234).

I do notice on the sheet there is a second set of Skipped Modules (86  – 94). Not sure if I’m going to go through them first before finishing up with the Appendix. We’ll see.

Until, next time!

 

Day 15: Arrays, Structs and Mapping

UD3: Module 69 through Module 79.

Today it really hit me that Stephen Grider (UD3) is great at breaking down the code and explaining things.

For example, I loved how he explained the difference between Mapping and Structs. He basically said that you would use Structs when you want to represent a singular thing (i.e. a car, a house, a desk, etc.). And you would use Mapping, to store a collection of things (i.e. a collection of cars, a collection of houses, etc.)

At any rate, I don’t think I would have been able to fully appreciate his impressive teaching style, if I hadn’t experienced at least three other Solidity instructors. And while the other instructors are good, I just feel that Grider is on another level.

Day 14: More Solidity Udemy Course #3

This is Day 2 of Udemy Course #3 (by Stephen Grider). I ended up skipping more modules.

Unlike the first set of modules I skipped (that talked about the history of the blockchain and stuff like that), I do plan to come back and review these modules.

I watched 3 videos (modules) –> Module 30 through 32. And then from there, I skipped a bunch of modules (that talked about installing virtual environments) so that I could focus on the Solidity coding which resumed on Module 65.

Day 13: Udemy Course #3

Ok so today I started a new Udemy course. This is the third one (Ethereum and Solidity: The Complete Developer’s Guide – By Stephen Grider) and so far I like it the most.

I went through the first seven modules. Once I realized it was just a review of info I learned from other courses, I skipped to Module 20 which was the first module were Solidity code was discussed. And while the instructions were elementary for me, I decided to just use this as the starting point to get a sense of his teaching style, which again, I’m impressed with.

With that in mind, I will say that each instructor brings a new flavor. I would highly suggest going through each Udemy course. All three have been great. And I haven’t experienced one that I considered to be a waste of time.

Getting back to Course #3, today I made it up to Module 30.

Also, I’ll mentioned that a few days ago, I watched a YouTube Video were this guy talked about what he recommends learning to be a Solidity programmer and I found it to be insightful.

He suggested that you should:

Step 1: Learn basic web development such as: HTML, CSS, Javascript and then ReactJS.

Then, learn Solidity from books, Udemy courses (I strongly recommend!) and Youtube.

With that in mind, my plan is to learn the above (from Step 1) after I learn Solidity.