What I’ve Been Up To Lately - Solidity workshop, CS50, Collège de France lectures

What I’ve been up to lately

This past week I have been quite busied with meeting old and new folks at random coffee shops and restaurants. I’m curious to hear what everyone has been up to. Also, I’ve been a little obsessed with discovering what’s going on with CS50 course, Solidity smart contract programming stuff in general. Watched way to many YouTube videos. Mostly about fiction writers, Jonathan Franzen, Édouard Louis, Annie Ernaux, Ocean Vuong, to name a few, and public lectures on social science related topics.

Sciences sociales - Collège de France

Also, I’ve spent so much time on the weekends this month and last month watching this French economist Philippe Aghion giving lectures to the public as a professor at Collège de France https://youtu.be/IsETdyTxFCg Innovation et le triangle entre marché, état, et société civile (4) - Philippe Aghion (2022-2023). I was like, literally taking notes and stuff. I’m not sure why I’m doing it. It’s entertaining to watch how this French professor express himself. He uses a lot of gestures and has an effective way of communicating complex idea to the general public. They’ve got this YouTube channel set up Sciences sociales - Collège de France.

I don’t know how I discovered this channel (so glad I did!). I think a friend of mine, a French researcher, may have mentioned this research institution Le Collège de France to me a long time ago. It’s quite unique; I truly wish there was an equivalent in Taiwan.

Meeting blockchain engineers

I met several folks who know a lot about Solidity smart contract development and virtual machine design. One of them recommended that I take a look at CryptoZombies https://cryptozombies.io/. It’s an interactive Solidity programming program where I could learn how to build smart contracts at my own pace.

I played with it for a little bit this morning. Was doing this “Making the Zombie Factory” thing. Did Chapter 1: Lesson Overview, Chapter 2 Contracts, Chapter 3 State Variables & Integers, Chapter 4: Math Operations.

One interesting thing I learned was something about the data type uint in Solidity. The uint data type is an unsigned integer; its value must be non-negative. Meaning the uint data type can only represent positive integers.

A note follows this introduction, suggesting that uint is also known as uint256. A 256-bit unsigned integer. “You can declare units with less bits – uint8, uint16, uint32, etc.. But in general you want to simply use uint except in specific cases…” I thought this particular note was quite helpful for me. Since I already know a few things about data types in C programming language. Thanks to CS50’s Introduction to Computer Science taught by David J. Malan. I’m glad that I could connect the dots better.

Overall, the instructions were quite clear and easy to follow. Although I do have an issue with this zombie character and the project name CryptoZombies – not too thrilled about the idea of manufacturing “zombies” (why zombies?). However, if I ignored the character designs and just focus on the “Solidity programming tutoals” content itself, it’s actually not bad. I might want to spend more time with it.

A Solidity intro workshop

On Thursday November 3, I participated in a 2-hour Solidity intro workshop led by Bill Wu flying limao. I had suspected he was going to introduce all of these concepts and syntax really fast so in order to have a better experience of it I watched some 10 episodes of hydai_tw’s Solidity intro tutorial videos on YouTube https://youtu.be/fpA2yxLKU5o prior to the actual in-person workshop. It turned out I was right. Watching those very basic intro videos had helped me build up a foundation knowledge about Solidity in general and hence getting a better experience of this two hour session of intro and advanced solidity programming all at once.

Obviously the workshop was a bit too advanced for me but I’m glad I did it anyway. Just getting a sense of how the instructor browsed the documentations and a sense of the way he looked at the code examples were already a lot of valuable information for me. When you have so much information about a certain topic, it’s good to at least have an idea of where to look and what keywords might be useful, as well as how to filter all of these information in the world wide web.

One thing I learned was how Solidity developers think about the Solidity code. I noticed sometimes they like to compare a particular element with C programming language, such as macros in C, or compare a feature with Python. Trying to find an equivalent of a particular element or concept in an existing, well-established, mostly well-designed programming languages. If something you had seen before or already have a good knowledge of, it’s good that you could actually compare the two and noticed the differences. That way you could learn it much better.

In my case, I worked on all of these CS50 problem sets in C so really, C is my first programming language. I haven’t learned macro and pointer however so that is suffice to say I’m still very beginner’s level in terms of writing C. I had the feeling that I’d need to learn another language, be it Javascript or Python, before I could actually dive into Solidity. The guy next to me said he’s been working with Java, C, Python for quite some time so it’s not that difficult to get the concepts in Solidity.

I spent about six or seven days with Solidity intro class using Remix before attending the in-person Solidity intro workshop. I noticed there’s a lot of interface design change to Remix. First time I used it was back in 2018.

At this point I feel I’m still interested in learning more about Solidity smart contract development but I will have to make a pause and get back to CS50 Lecture 3 on algorithms for now. To develop a better understanding of the CS fundamentals. Also, I will see if I could tolerate the frustration that would definitely come up when working on the problem sets once more and wrap up lecture 3 by the end of this month (fingers crossed.). What I hope to obtain is to get an idea of what it feels like to be a junior software programmer. Hopefully by the end of my adventure I’d be able to imagine a life that a programmer could have which wouldn’t look like a dead end.

Another thing that I really look forward to is a possible trip to Japan. I look forward to meeting my former colleagues, friends and a few crypto folks. I used to visit Japan a few times a year but that has stopped for about three years. It’s time to get it back.

I’m not sure what my next post is going to be about. I’d written a little bit about Jonathan Franzen’s latest novel. I had put some thoughts toward his writings. Maybe it’d be about Franzen. Maybe it’d be about something else.