A path to blockchain developers education with a focus on Polkadot, Substrate & Rust. Simply put, this is my journey to blockchain education as a developer who has no professional experience or education in blockchain previously.
One of the most difficult tasks I found to date, was often not understanding the content, but rather finding it. Blockchain spans a wide range of technologies from peer-to-peer networking to cryptography (not even considering the actual application of the blockchain itself). A fair amount of this education is either aimed at crypto traders or those with an extensive amount understanding of crypto development already. Neither of which may be of much help to new blockchain developers.
The following is my list of recommended free and paid educational resources which I found to be helpful. This list is ongoing.
A few small notes for context. I have been a developer for 10+ years at this point, working mostly in languages that are compiled and type-safe. In this list, I focused on Substrate, a framework for creating your own blockchain (and blockchain applications), which is the underlying technology created for Polkadot Coin. Substrate allows you to avoid having to re-invent the wheel.
Substrate is written in Rust, which is considered to have a fairly difficult learning curve at the beginning. Especially if you have never worked with a compiled and type-safe language, such as C, C++, C#, Java, etc. Honestly, Rust is not recommended as a first programming language. If you are looking into your first programming language, I highly recommend learning one of the more popular ones beforehand.
I watched most of these courses in parallel. I used Rust Fundamentals on Pluralsight as my topic guide. After finishing each topic/ section, I would watch the analogous section on the other courses (mostly). I find I better understand a topic after seeing more than one perspective on it.
https://www.udemy.com/course/ultimate-rust-crash-course/
This is one of the most popular Rust courses on Udemy and it fills a specific niche. It does cover all of the fundamentals of Rust in a short period. It is clear and includes some good (and sometimes difficult) sample challenges to keep you sharp. I would note however, you still need to go outside of this course to look up specific topics in more depth. Various important topics are glossed over too fast.
If you already have a Pluralsight subscription, this is a must-watch. While it was recorded in 2015 it still retains its value as a fundamentals course for Rust. I found this course to be a little bit slower than the Udemy course, but that is not a bad thing. For a paid course, this IMHO is the best one I have taken. It would be great to see an updated version. Interestingly, this is the only Rust course on all of Pluralsight, which is a shame. If you can get a free trial month on Pluralsight, you can finish it in that amount of time.
https://www.youtube.com/playlist?list=PLLqEtX6ql2EyPAZ1M2_C0GgVd4A-_L4_5
This is a great series on Rust for beginners. Doug likes to compare it back to other programming languages, which is nice. Be prepared for lots of dad jokes and other silly humor (which I think adds levity to an otherwise sometimes dry topic). Doug should probably be selling this course because it is certainly worth the value.
The pros are the videos get into more detail than the Rust Fundamental course on Pluralsight. The cons are, the videos get into more details than the Rust Fundamentals course. It also offers a little less structure, which is to be expected for youtube content.
https://www.youtube.com/playlist?list=PLVvjrrRCBy2JSHf9tGxGKJ-bYAN_uDCUL
Another solid series on youtube for free. This one compared to Doug Milfords is much terser and to the point. It works great as a brief introduction to each topic or a refresher. Well worth the watch.
https://www.youtube.com/playlist?list=PLfllocyHVgsRwLkTAhG0E-2QxCf-ozBkk
The Easy Rust series is yet another very solid series in learning rust. This one also goes into depth quite a bit more, similar to Doug Milfords series, which is helpful if you are trying to get beyond the absolute basics and tackle real-world problems. It has over 180 videos, so allocate a fair amount of time if you want to watch it all!
https://www.amazon.com/Rust-Programming-Language-Covers-2018-ebook/dp/B07SRQ97RD/ <- Paid
Free version: https://doc.rust-lang.org/book/ <- Free Online Version
"The official book on the Rust programming language, written by the Rust development team at the Mozilla Foundation, fully updated for Rust 2018."
A good solid introduction to Rust from the Rust development team. It covers all of the major topics but sometimes can be a bit light on the more advanced areas. As I mentioned above, no single source will teach you Rust and this book is no exception.
https://www.amazon.com/Hands-Data-Structures-Algorithms-Rust-ebook/dp/B07N7D6PG4/
An 'intermediate' level book on data structures with Rust. For me, this was 2.5 - 3 stars out of 5. It has some good leads on working with data structures in Rust, however, if you are not already familiar with the data structures, then this is probably not the right place to start. Overall, I was hoping it would be a little more clear.
https://www.amazon.com/Programming-Rust-Fast-Systems-Development-ebook/dp/B077NSY211
Another introductory book on the topic of Rust. Covers all basic topics that one should know to get started.
https://www.rust-lang.org/learn
This will be key in learning Rust, as it contains all the official documentation. It is written quite clearly, especially compared to some other language documentation websites. This includes links to various online books for Rust as well.
https://doc.rust-lang.org/stable/rust-by-example/
As the title implies, this is a series of Rust by example lessons that you can follow along with. I highly recommend this one as you can only 'really' learn to do something by actually doing it. (Otherwise, it is purely theoretical).
https://github.com/rust-lang/rustlings/
"Greetings and welcome to rustlings. This project contains small exercises to get you used to reading and writing Rust code. This includes reading and responding to compiler messages!"
Want to get some more hands-on code experience in Rust? This is another good place to do it.
https://rust-unofficial.github.io/patterns/
This book covers Rust design patterns, which differ a fair amount from traditional OOP programming. It covers some design patterns, anti-patterns, and idioms to help you remember various aspects of building with Rust. At this point, I haven't had enough time to read through it all to have a strong opinion about it. However, there seems to a lack of books in this specific area so far.
https://dev.to/hertz4/rust-module-essentials-12oi
Article on the difference between mod and use with pub in Rust.
https://jrvidal.github.io/explaine.rs/
Paste your Rust code here and hover over the code for an online explanation of the snippet. Helpful for new developers when you don't even know what keywords to search on google.
https://a16z.com/crypto-startup-school/
After having a basic understanding of what blockchain is and crypto, this is a great (free) place to get a structured overview of crypto and blockchain technology, especially if you are interested from the business/ developer perspective.
The videos and files are available on demand without any signup and were recorded in 2020.
https://polkadot.js.org/apps/#/explorer
This online web prebuilt front-end UI can not only view the Polkadot network and other networks in real time but also allows you to view your development network. This is helpful when working with Substrate as a developer who needs to connect a development UI.
https://www.youtube.com/watch?v=IwY-D5J8otU
https://www.youtube.com/watch?v=BgCgauWVTs0
https://www.youtube.com/watch?v=l4jccXoqLGM
https://www.youtube.com/watch?v=wcCHlqgGSH4
https://vitalik.ca/general/2021/01/05/rollup.html
https://zksync.io/faq/intro.html#introduction
https://www.youtube.com/watch?v=el-9YYGN1nw
https://zkp.science/
List of various ZKP and libraries available per language.
https://en.wikipedia.org/wiki/Merkle_tree
https://en.wikipedia.org/wiki/Cryptographic_hash_function
Yup, wikipedia. Its pretty blah, but it's a place to start if you don't know much about this topic.
https://www.youtube.com/watch?v=lik9aaFIsl4
Start here if you don't know what a Hash and Merkle Tree is. Then move onto something more technical.
https://www.youtube.com/watch?v=gUwXCt1qkBU
A bit deeper look into how Merkle Roots/ Merkle Trees work. Not quite the do-it-yourself stage, but a better technical description of each part.
https://www.youtube.com/watch?v=qHMLy5JjbjQ
Another look into the structure of Merkle Trees. Just around 10 minutes long.
https://www.youtube.com/watch?v=cqgtdkURzTE