Skip to content

Latest commit

 

History

History
111 lines (71 loc) · 10.7 KB

File metadata and controls

111 lines (71 loc) · 10.7 KB

Technical Requirements

This course assumes a baseline of technical knowledge. It is important to make sure you are comfortable with the following tech. If you are not, we are providing links to excellent resources you can use to get up to speed! Please note that you can learn all these things in our free Basic Training course.{target=_blank}

Unix or Linux Environments

To be successful in this course you must have access to a Unix or Linux based operating system. MacOS is based on Unix and if you're running Ubuntu, that's a Linux distribution.

If you are on a Windows 10 machine, follow this guide to installing a Linux environment{target=_blank} before starting the course.

If you'd like to get more familiar with a Linux environment, you can check out this Ubuntu for beginners, targeting Ethereum Developers specifically:

(Those interested in learning more about the history of Unix can read this excerpt from Advanced Programming in Unix Environment by Stevens and Rago)

Command Line

The command line is the basic non-graphic interface for your computer. It is most commonly called the terminal or the shell.

To be successful in this course, you should be comfortable using the command line. Among other things, you should be very comfortable changing directories using cd, deleting files with rm, installing files with curl, and running programs from the command line.

We would also recommend becoming familiar with command line shortcuts, such as:

  • CTRL + C Interrupts and quits the process currently running. Crucial in stopping terminal line programs
  • CTRL + A Moves your cursor to the beginning of the line
  • CTRL + E Moves your cursor to the end of the line

Sometimes it's helpful to remap your caps lock key to become CTRL. Find out how to do that here.{target=_blank}

To brush up on command line skills, check out:

Git

Git{target=_blank} is a version-control system (VCS){target=_blank} used to track changes made to projects. While git seems simple, it's actually a bit challenging to get comfortable with. (Note that git is a piece of software, on which version control sites like GitHub or GitLab are based.)

Here are some resources to get you started:

Not only is git a part of a good coding repertoire, it's also used by many open-source projects.{target=_blank} An essential part of the bootcamp is contributing to open-source projects. It's really important to know how to do proper Pull Requests and other guidelines for contributing to open-source. Here are a few resources to help you with this:

For those who would like to get a headstart, check out the "Good First Issues" for these open-source Ethereum projects:

Be sure to read Community Guidelines before contributing to a project. For example, here is Geth's Contributor Guidelines{target=_blank} and their Code Review Guidelines{target=_blank}

JavaScript

Even if JavaScript is not your first software language, it's really important you be familiar with its basic syntax. Solidity,{target=_blank} the smart contract language you'll learn, is based on ECMAScript.{target=_blank} We recommend Code Academy's free Intro to JavaScript course,{target=_blank} The Odin Project{target=_blank} or The Modern JavaScript Tutorial{target=_blank} to get the basics. Beyond basic JavaScript, students should be familiar with Node and npm. Some advanced students will also be using React in this course. Here are some resources to help familiarize yourself with these:

Code Editor

VSCode{target=_blank} is a very popular editor with developers due to the plug-ins and extensions it makes available. We would recommend getting started with it and the following plug-ins / features:

  • Live Server{target=_blank} which allows you to easily start a server in the directory
  • Live Share{target=_blank} an easy way to share your code with someone for pair programming
  • Gitlens{target=_blank} "supercharges the Git capabilities built into Visual Studio Code."
  • Solidity Visual Developer{target=_blank} Built by ConsenSys!
  • Solidity linter{target=_blank} Checks valid Solidity syntax. Fair warning, can be over-opinionated for folks!
  • Solidity Solhint{target=_blank}
  • Partial Diff{target=_blank} Compare (diff) text selections within a file, across files, or to the clipboard
  • Markdown All in One{target=_blank} All you need to write Markdown
  • GitHub Linker{target=_blank} Create links to fragments of code in GitHub

We strongly recommend using VSCode in this course, particularly if you're new to coding, due to its extensive plugins. Other popular editors include Sublime Text,{target=_blank} and IDEA{target=_blank} (written originally for Java but now supports many languages).

Remix Project{target=_blank} is a platform for development tools that use a plugin architecture. It encompasses sub-projects including Remix Plugin Engine, Remix Libraries, and of course Remix IDE.

Remix IDE is an open source web and desktop application. It fosters a fast development cycle and has a rich set of plugins with intuitive GUIs. Remix is used for the entire journey of contract development with Solidity language as well as a playground for learning and teaching Ethereum.

Start developing using Remix on browser, visit: Start coding online{target=_blank}

For desktop version, see releases: Remix Desktop{target=_blank}

There is also the option of text-only editors. Many developers find them extremely productive and, while challenging to learn, make their job much easier. We'll address one here, vim, by providing this series of tutorials:

If you'll be using text-only editors, or simply using the command line for your development environment, you'll want to get familiar with tmux: Getting Started with Tmux{target=_blank}