The Cryptoeconomics.study coding challenges follow the course lectures. This includes implementing a centralized payment processor, a distributed proof of authority blockchain, and a proof of work blockchain. To make sure that you can complete all the challenges we recommend the following development setup.
Command Line Basics
In order to install the packages you need for development you're going to have to know how to navigate around the terminal.
NodeJS and NPM
You're going to need Node.js and npm to complete these assignments.
We recommend using a node version manager like NVM to install and manage node/npm.
To install both on any platform go here.
If you're on Ubuntu, you can just run
sudo apt install nodejs npm.
Git and GitHub
You'll also need a Github account and
git installed on your computer.
Create a Github account here.
Setting up Git:
We're going to be using Mocha in order to run tests, so install the Mocha package globally by running:
npm install -g mocha
IDE / Text Editor
Feel free to use any IDE (integrated development environment) or text editor of your choosing to complete the course. Here are a couple options we recommend:
- download Atom
- run this script to install some awesome atom plugins via apm (the Atom Package Manager)
Another free and open source text editor is VIM. VIM stands for VI Improved. It is one of the oldest and simplest text editors available. It's extremely light weight and works on every operating system. Tutorials on the use of VIM are beyond the scope of this course, however we recommend the following resources:
- VIM Cheatsheet - a quick reference to the most common VIM commands/features.
- /r/vim - a friendly Reddit community that loves VIM (great place to learn and ask questions).
console.log to print out different variables. When
console.log isn't cutting it, we recommend using Google Chrome DevTools to debug (guide). It's an awesome tool that allows complete breakpoint debugging.
Downloading the coding challenges
Once you have the prerequisites installed without error, fork this repository (guide).
Once you have your own fork at
github.com/YOUR_USERNAME/code, create a local clone of your fork (guide).
cd into your local clone and run
npm install to install all of the required dependencies.
Staying up to date
To make sure your version of the coding project is up to date, you're going to need to add the original repository as a remote repository (guide). You will have to run
git remote add upstream https://github.com/cryptoeconomics-study/code.git. You can then merge the latest updates to the coding project into your fork by following this guide.
Reach out to the community :)
Often the first steps are the hardest and we want to make sure you have a great experience learning about cryptoeconomics. If you get stuck or encounter difficulty setting up your development environment please reach out to the community. Chances are you're not the only one experiencing difficulties. Reaching out allows us to
- solve your problem directly
- document what the problem was and how we solved it so that in the future people can find those answers quickly
- understand the problem and improve the course material so that it's more intuitive for everyone It's a win for everyone! So if you get stuck, don't worry about it. Just post your problem on the community forum technical difficulties thread and we'll do our best to help :)
Chromebooks are great because they're cheap and secure. Lots of people have them. In order to make the course accessible to as many people as possible, we've created a chromebook guide.
Taking the Course
Now that you're good to go, let's start the course!
The course will alternate between lecture videos and coding challenges, which will have you implementing the concepts from the preceding lecture. but you can also jump straight to the coding challenges Be aware that each coding challenge build upon the previous one, so it's important that you start at the beginning of each chapter and go all the way through. Good luck! 🍀
Don't forget to commit your progress to Github as you go. This will create checkpoints that allow you to go back if you made a mistake. It will also help us track your progress and review your work at the end of the course in order to award you a certificate of completion.
We welcome community contributions! There's lots of ways to get involved. Please see our contributing pages for more information :)