Skip to content

cryptoeconomics-study/code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.


Prerequisites

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.

Javascript

This course assumes a familiarity with the basics of Javascript. If you're new to programming, or just want a refresher, we recommend the following resources:

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.

Mocha

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:

Atom

Atom is free, open source, and works on every major operating system. Furthermore, it's easy to configure and set up. We recommend this setup by Elad Ossadon.

TL;DR:

  • download Atom
  • run this script to install some awesome atom plugins via apm (the Atom Package Manager)
apm install atom-beautify prettier-atom atom-transpose case-keep-replace change-case copy-path duplicate-line-or-selection editorconfig file-icons git-plus highlight-selected local-history project-manager related set-syntax sort-lines sublime-style-column-selection tab-foldername-index sync-settings toggle-quotes atom-wrap-in-tag atom-ternjs autoclose-html autocomplete-modules color-picker docblockr emmet emmet-jsx-css-modules es6-javascript js-hyperclick hyperclick pigments linter-eslint tree-view-copy-relative-path lodash-snippets language-babel react-es7-snippets atom-jest-snippets one-dark-ui dracula-theme

VIM

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).
  • burrrata's VIM setup (ubuntu) - designed to be quick to install, lightweight, and work on any Ubuntu VM even without a graphical user interface (just follow the apt, vim, and javascript sections).

Debugging

Many users like to just debug Javascript programs by using 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.

Technical Difficulties?

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 :)

Chromebook Support

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.


Contributing

We welcome community contributions! There's lots of ways to get involved. Please see our contributing pages for more information :)


About

👾 Interactive coding challenges to test and apply your knowledge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published