GithubHelp home page GithubHelp logo

consensys-academy / basic-training Goto Github PK

View Code? Open in Web Editor NEW
89.0 4.0 99.0 19.89 MB

Open-source repo for ConsenSys Academy's Basic Training: a software fundamentals course covering Unix-like OSes, CLI, Git, Javascript and more

Home Page: https://courses.consensys.net/courses/bootcamp-basic-training

HTML 98.79% JavaScript 0.06% CSS 1.16%

basic-training's Introduction

Basic Training

Table of Contents

Introduction
Purpose
Fundamentals
Tool Bag
Course Outline
Contributions

Introduction

First, please give this repo a star ⭐️!

If you are interested in Ethereum development, be sure to have a look at our DevPortal and other course offerings.

Purpose

This course aims to teach software developers the best practices for using fundamental software development tools.

It is aimed at new learners and intermediate software engineers. This course is helpful for general software engineering and for those wishing to enter blockchain development. Prior to digging into Web3 development, having a firm grasp on some of the core tools you'll use throughout your projects will better equip you for success.

This course helps showcase the tools a developer has at their fingertips and will show you some tips and tricks along the way.

Fundamentals

It's the little things that count. In a professional software developer's life, these tools are like air: ever-present, all-encompassing, and direly needed. To be at our best, we need to learn how to utilize these properly.

We believe being a developer means you're a forever student. New versions, syntax, tools, and documentation constantly roll out, only learning the minimum in order to achieve X may be a slippery slope.

Too often, we are taught what is "good enough" to accomplish the job, but not necessarily the best practices. This results in compounding bad practices, resulting in wasted time and unnecessary agony.

We built this mini-course to give a place to learn these fundamental tools in a deliberate, focused way. This came from our experience of seeing many people signing up for our Blockchain Frontend Bootcamp and having to learn the fundamentals, frontend development, and blockchain skills.

Learning these tools is similar to learning how to breathe properly. It seems foolish at first. But if done properly, it's the key to a meditative rest that allows you to get into the zone. Or at least not deal with an unnecessary disturbance in your everyday workflow.

We hope to pre-emptively help with many of the issues we've seen people struggle with over the years.

Tool Bag

If you're staring at a code editor for hours on end, shouldn't it be tricked out in the best way possible? What you learn here could make your developer experience not only more efficient but fun!

Even if you're very familiar with the technology in these lessons, we encourage you to flip through them. Along with introductory material, we've curated tips and tricks for optimizing and improving your use of these tools.

We want to help ensure you not only have the tools, but the fundamental knowledge on how to make them work for you, espcially as you start to develop your workflow & preferences.

Course Outline

In this mini-course, we will go through:

  • Unix / Linux Operating Systems
  • Command Line
  • Code Editor
  • Git
  • Javascript / Node / Web Frameworks

We will provide some material in these lessons, but we'll mainly provide links to other places where you can learn more. There are a number of fantastic resources we point you towards and similarly to being a dev, exploring the links and documentation will help solidify your knowledge.

If you never left the mini-course, after completing it, you'll be able to find your way around a computer pretty well. However, please follow the links within a lesson to dive deeper, deepen your knowledge, and enhance your developer experience.

Now, let's take a deep breath, relax, and learn the way.

Contributions

This course will grow over time. Contributions are HIGHLY encouraged and desired. If you see an error, please open an issue and submit a pull request.

We envision this course to grow over time—sections on "contributing to open source" would be helpful. Should you have an idea, please open an issue and discuss it with the team. Pull requests are highly appreciated.

Please see CONTRIBUTING.md for how to make a contribution.

An example of this process found below: Found in the top right of the repository information fork location

  1. Fork it (https://github.com/ConsenSys-Academy/basic-training)
  2. Create your feature branch (git checkout -b branchName)
  3. Commit your changes (git commit -m 'Added X input')
  4. Push to the branch (git push origin branchName)
  5. Create a new Pull Request

Built by ConsenSys and

GitHub Contributors Image

basic-training's People

Contributors

adambdj avatar aymanalexanrezk avatar bschorchit avatar cooganb avatar empeje avatar errolgh avatar hsy822 avatar kadestroude avatar koelhosec avatar kvutien avatar lanaij avatar lukeyounge avatar mbharti321 avatar nayonnapurnell avatar pclaesen avatar phanichand avatar pierre-ange avatar robbiekruszynski avatar robriks avatar rodrogh avatar shih-yu avatar ssameghini avatar stefan4d avatar swmckenna avatar thor4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

basic-training's Issues

Add "check date for tutorial" somewhere in the course

This is a bit random and low hanging fruit, but maybe in the "How to Ask a Question" section, we can add that folks should check when tutorials were written. Particularly for blockchain, specifically Ethereum, these tutorials go stale rather quickly, so you want to check the date and the main libraries used to make sure you don't get weird errors different from the tutorial.

Please don't just copy the above message into the HTML somewhere. If someone could explain it a bit and find a reasonable place to put it, that'd be great!

We're open to a new section about troubleshooting, maybe?

Broken Links

The link structure of basic training has changed with the latest deployment to GitHub pages. For example, thttps://consensys-academy.github.io/basic-training/M1/L1/ is no longer a valid link, causing a 404 error message. The same is true for the other modules and lessons.

Add Linter for HTML

Since there will be a number of contributors, it'd be great to have a linter for the HTML. This could be done on the local level or whenever a PR is submitted. Up to the dev!

Add text to README.md

Add text to basic training README.md describing:

  • CTA to star repo
  • The target audience
  • Motivation for creating the mini-course
  • Motivation for a user to take mini-course
  • Overview of repo/course

Empty link in basic training

In this section:
Advanced: Pull Requests, Rebasing and Guidelines: Contributing to Open Source

The link to Pull request tutorial shows an empty repository.

Add how to use nodeJS to run snippets of code found in Stack Exchange

I'd have a suggestion in Module 1, "How to ask a question"

How about adding a short section how to use node index.js as a REPL, where index.js is a snippet of code, to test the answers of people to a Stack Exchange question. Some answers are good, some answers give a general idea but their snippet of code is buggy. So it's better to test it separately first, instead of including it immediately in your own code to test.

Also, many tutorials assume the reader knows how to run the snippets of code. Like this one about OrbitDB

Add CONTRIBUTING.md

Create a CONTRIBUTING.md file to root that covers:

  • CTA from top of README.md: give star, check out ConsenSys Academy, etc.
  • How to set up the project
  • How to setup origin and upstream
  • Brief gitflow description
  • Branching & forking strategy (main -> dev -> feat / update / fix)
  • branch naming convention
  • commit message convention
  • Add Made with ❤️ by ConsenSys

No Bing advanced search criteria or Bing chat included

I use Bing search and Bing Chat (based on ChatGPT) as my preferred search tools over Google. I have created a fork and will add the related documentation in this area if you wish to include it as an alternative to "Google it"

Typo and issue with wording in the M6 Javascript Exam

For Question three there is an error with a missing beginning parenthesis, this error is not supposed to happen as the correct answer is how the code would work sans typo. Question one the wording seems weird and I couldn't decide if I was supposed to select from the most popular of the primitive data types that were listed. Question eight I'm unsure of, I think that the standard only specifies 3 states for a promise, though it does mention settled descriptively it doesn't indicate that settled is a state, see http://262.ecma-international.org/11.0/#sec-promise-objects

Sorry if this isn't in a correct format or doesn't actually belong here as an issue, wasn't sure where to provide feedback and am not familiar with using github.

Question_3_M6
Question_8_M6
Question_1_M6

Remove no trace mentions from all <a> links

Emmet expansions for links with target="_blank" also add rel="noopener noreferrer" to all href tags, like this example here:

<a href="https://github.com/ohmyzsh/ohmyzsh/wiki/Themes" target="_blank" rel="noopener noreferrer">this page</a>

It'd be great to do a "Find All" and delete in VSCode or similar of all the rel="noopener noreferrer" that are in the course, as they mask where the user is coming from.

Someone will have to clone the repo locally on their machine and run Find and Replace on local editor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.