One Year In - An Education Review

One year ago, I left a “low-tech” industry to dive head-first into the Polkadot ecosystem. In that time, I have managed to go from no programming experience to successfully signing and submitting a simple extrinsic on my own solochain from a self-built dApp.

In this post I will layout the path that I have taken so far on my educational journey, highlighting strengths and weaknesses in material I used along the way, in hopes someone else might find it useful.

Q4 2023

Harvard’s CS50x

  • This free online course provided a top notch opportunity to learn programming fundamentals
  • Discord channels moderated by TAs helped me formulate thought out/detailed questions which enabled me to later engage with Substrate StackExchange in a meaningful manner

Q1 2024

CS50x continued
The Rust Programming Language by Steve Klabnik and Carol Nichols
Rustlings
Substrate Tutorials: archive

  • I dove into these tutorials shortly after the Polkadot-SDK merge, leading to confusion, Substrate StackExchange provided patient help

Q2 2024

Interactive Substrate Tutorials

  • Similar in style to Rustlings Exercises
  • Moving the repository to Polkadot-SDK was a challenge
    • This builds, some learning material is depreciated
  • Helped develop a better understanding of error messaging and
    how to navigate FRAME and runtime dependencies.

Polkadot Blockchain Academy FRAME Lectures

  • Right from the start these videos began answering questions about blockchain/Polkadot/Substrate that I could not get from the documentation alone.
  • Pivotal in understanding storage and weights

The Rust State Machine

  • Closed lots of gaps, most notably for me Generic Typing

Using these resources along with the Polkadot-SDK documentation
I managed to build a pair of tightly coupled pallets and add them to a node template.

Q3 2024

The Modern Javascript Tutorial
Official React Docs
Node.js Docs
Next.js Docs

Building a Front-End for Substrate
Building a dApp with Polkadot.js

  • These helped by providing examples of concepts such as contexts and typescript

PAPI Doc
Substrate Kitties

  • I ended up using PAPI to interact with my solochain

Using these resources, I have managed to successfully build a simple dApp capable of signing and submitting extrinsics on my solochain.

Some Thoughts On This Journey

The old Official Substrate Docs provided a way into blockchain.
As simple as it was, getting a node running on my machine for the first time
was an empowering feeling and a fun way to start to learn about blockchain.
The docs also laid out a clear path to learning blockchain development. All of this documentation was a driving force in my decision to use Polkadot. I feel like that “ease of entry” has been lost in the new Polkadot Wiki, and I hope the coming docs are able to bring that back.

I managed to get a lot of help on StackExchange, but it doesn’t lend itself to certain types of conversation. My experience on Discord was not great, lots of noise and redirection to the StackExchange.

Diving into Javascript after working with Rust was tough. 30+ years
of development has made it difficult to choose a way in and a route to take.
I still dont feel solid in the JS world.

Concepts from The Rust State Machine helped in grasping React basics quickly.
Rust typing lent itself to Typescript concepts.
Working with FRAME helped conceptualize other frameworks ie, Next.js

My learning here coincided with the release of Polkadot-Api. Realizing polkadot/api and polkadot-api are different tools took me longer than I care to admit.

I found the front-end work more complex than I was envisioning and helpful documentation was hard to come by. That being said, I understand this part is very much a work in progress, these resources are being actively updated/created, and will be a larger part of the PBA curiculum in the future.

Going Forward
I am amazed that the material put forward by the Polkadot community has allowed me to learn so much, so quick.
I know I have a lot of work still to do.

Goals:
Rework my solochain into something more “real world”

  • weights/brenchmarking
  • storage with more detail
  • more complex relationships between users/assets

dApp

  • complete rebuild with concepts learned
  • curate simple UX for interacting with solochain
13 Likes

What a great post. Thank you @hippiestank.

Regarding: GitHub - hippiestank/substrate-tutorials: A collection of exercices to teach yourself Substrate

Have you thought about bringing something like this to https://dotcodeschool.com/

This could help bring visibility to your tutorial, and of course allow resources to be kept better up to date. cc @batman


I saw you referenced: GitHub - shawntabrizi/substratekitties: A simple cryptokitties-like runtime built with Substrate

But did you see that recently the whole tutorial has been updated for this project?

https://www.shawntabrizi.com/substrate-collectables-workshop/

If not, I would love for you to give it a try and feedback.


I think the story of your journey here is super valuable, but I would like to see if you could make a “hackathon weekend” list of instructions for what you would recommend to someone wanting to get started in Polkadot.

So like you, it is someone who may not have deep technical experience with blockchain or Polkadot, but wants to build something. Unfortunately the limit here is the time and number of resources they can access.

What would be your roadmap for such a user?

2 Likes

Checkout w3ux library of utilities for Js/Ts based Polkadot Dapps, by @ross and team :slight_smile:

2 Likes

Thanks for the shoutout @muddlebee, w3ux attempts to provide good documentation for common Dapp utilities. It’s my hope that its usage in Staking Dashboard & Console will give even more intuition on how they’re used, beyond just the documentation.

It’s scope has primarily been for our apps, but we would jump on the chance to improve support for other Dapps if interest is shown.

1 Like

Thanks Shawn!

I have not yet seen dotcodeschool. I gave the PAPI tutorial a quick scan, and it looks like it might be able to answer some lingering questions. I will contact them about picking up the tutorial. I respond really well to those types of learning resources, and imagine others do too.

I used the updated SubstrateKitties PAPI-UI folder as a cross reference with other PAPI examples to get an idea of how things are done. I’d be glad to give the whole tutorial a go. I’m sure it will make a nice refresher as I transition back into Polkadot from the JS world.

Off the top of my head, I came up with something like this for an abbreviated Polkadot crash course:

Polkadot In Less Than 10 Hours

That list isn’t necessarily my final answer. I think a question like this might be answered well with a “So You Want to Learn Polkadot?” flow chart after a more formal review of the current Edu landscape.

1 Like

Cool library. The useEffectIgnoreInitial caught my attention immediately. I’ll be taking a closer look as I circle back around to UX.

Thanks for the post @hippiestank. This is really great stuff!

I’ve been wanting to add a “learning path” feature to the platform for a while now, this would be the perfect starting point for that.

For the tutorials, I’d love to get your feedback on the same. Ideally we would open a github issue for the specific tutorial directly.

For example, the repo for the PAPI tutorial is GitHub - wirednkod/papi-intro-tutorial: A simple step-by-step guide to start with PAPI - so opening issues there can help us keep track and leverage the open source community for getting things done with fewer bottlenecks.

1 Like

Oh wow amazing!

Noticed you mentioned that you left a low-tech industry i’m curious what was your tech background?

I’m part of a team who are hoping we can onboard new developers from parts of Africa to start building on Polkadot and I believe your experience and tips can be very helpful especially considering we have more web2 devs/google developers in Africa than web3.

@Kratist0s

I have a degree in Mechanical Engineering, but never went into the industry. Instead, I have spent the past 15 years working outside with hand tools. Blockchain caught my attention for a variety of reasons, and is allowing me to get back to those Engineering roots.

The Polkadot ecosystem seems to be agile and decentralized in many ways, and the Education Department is a good example of that. There are many resources out there and seemingly more on their way. I would bet that as these resources evolve, the bridging between web2/web3 development will continue to get easier. Good luck!

1 Like