πŸ‘» Motoko Bootcamp 2023

La traducciΓ³n al espaΓ±ol puedes encontrarla aquΓ­.

Welcome to all Moto-campers πŸ‘‹

We're excited to share with you the incredible capabilities of the Internet Computer, a network that brings together various fields including cryptography, mathematics, computer science, and blockchain technology.

But beyond the technology itself, the most important aspect of the Internet Computer is the community of passionate individuals who believe in its potential. At this Bootcamp, you'll have the opportunity to learn from a diverse group of developer mentors, organizers, and contributors who are volunteering their time to make this event possible and amazing.

Our goal is to transmit not only our technical knowledge but also our enthusiasm for the Internet Computer and its role in shaping a better future. We believe that blockchain technology and the Internet Computer will play a key role in creating a more fair and hopeful world, and we hope that the knowledge you gain and the connections you'll create during this week will help us work towards this goal.

πŸ“† Structure of the week

Participation in the Bootcamp is open and free, and you are welcome to attend any lectures or take on any challenges that interest you. However, if you wish to be recognized as a Motoko Bootcamp graduate and be eligible for prizes, diploma & other perks you must:

  • Enroll fully in the Bootcamp (see the #enrollment channel on Discord for more information).
  • Complete all assigned questions, coding challenges, and tasks, and submit them to your GitHub repository within 48 hours of their release.
  • Submit your completed core project before the deadline on: Monday 23rd January 8AM UTC.

πŸ“œ Daily guide

For each day of the camp, a guide will be provided - this guide will contain different sections:

  • A list of 🍿 lectures and an overview of the subjects covered on that day. You can also see the list of lectures by checking the calendar.
  • One or several 🧩 lesson(s): those lessons will cover topics that will be useful when working on your core project.
  • A list of ✏️ questions based on the lectures & lesson(s) of that day.
  • A list of πŸ₯Š coding challenges based on the lectures & lesson(s) of that day.
  • A task 🎯 that helps you make consistent progress on your core project, which will usually be related to the content you've studient on that day.
  • A πŸ”— useful-links section that contains useful resources & documentation.

You can find the guides for the different days:

🍿 Lectures

Lectures will be held live on Zoom Webinar by mentors (each mentor is an experienced member of the community who is actively contributing to the ecosystem). Each lecture will cover one specific topic.

You can take a look at the list of lectures.

You can also view the full Motoko Bootcamp Calendar .

To access all available lectures: click here

If this calendar does not open up in your time zone, you can click the (+) symbol in the bottom right corner to add the events to your calendar and see them according to your time zone. Each event contains a Zoom Webinar join URL, and if necessary there are also options to call in for audio (though we recommend using the join URL).

Each lecture will be recorded and available on Discord so you can keep up even if you are not available to watch it live.

🧩 Lessons

Each day you will find a module. Each module is dedicated to explain and details a specific aspect about building a project on the Internet Computer (project stucture, configuration, cycle management, upgrades...).

You don't have any action to take regarding modules - expect to read them all!

πŸ™‹ Questions

Questions are designed to test your understanding of the subjects covered in the lectures or explained in the module. There will be a few questions for you each day, and you will have 48 hours after the daily guide is published to submit your answers. Some of the answers may be provided directly during the lectures, while others may require you to delve deeper into the material and make use of the resources provided in the (#usef) section. It is recommended to spend between 30 minutes and 1 hour each day working on the questions to reinforce your learning and deepen your knowledge of the material.

πŸ₯Š Coding challenges

Coding challenges are designed to help you become familiar with the Motoko language through practice. There will be a few coding challenges for you each and you will have 48 hours after the daily guide is published to submit your answers. It is recommended to spend between 30 minutes and 1 hour each day working on the coding challenges. These challenges are a helpful way to build your skills and confidence with Motoko as you progress through the Bootcamp.

🧹 Tasks

Tasks are designed to guide you through your core project. Each day (expect on Day 1) you will receive 1 task that corresponds to the implementation of one or more features of your core project.

πŸ”— Useful links

A list of useful resources, such as websites, documentation, and sample code, related to the topics of the day will be provided. These resources may be required for some questions, coding challenges, or tasks.

πŸ§‘β€πŸ”¬ Core project

The core project is a project that you will build during the entire week. The experience of building this project will be as close as possible as what the experience of building a real-live project on the Internet Computer looks like.
All information related to the core project can be found in this document. The core project submission form will be made available on day 7.

πŸ₯ Open mentorship hours

Throughout the week there are some Open Dev Mentor Hours scheduled, you should have at least 2 within your time zone.
These meetings will be the opportunity for all students to troubleshoot issues live and ask questions directly with a dev mentor.
This is open to everyone participating in the Bootcamp.
It is highly recommended you attend at least one of these (or watch the recordings), even if you don't have any specific issues.

πŸ«‚ Team meetings

Motoko Bootcamp is a self-driven event where each student works on their project individually, but it can still be helpful to have other students who can share your journey and help motivate you to stay on track.

Each student will be assigned a team of around 10 students within a similar time zone, and then get private voice & chat channels on Discord where they can get together and discuss progress. We encourage each team to schedule a time each day to meet on the Discord voice channel to stay in touch.

🀹 Activities

We have several activities planned throughout the week to help you connect with your fellow students and take a break from coding. These activities include:

  • Networking session: these sessions are designed to help you connect with other students and build relationships that may be beneficial to you in the future. Whether you're looking to make new friends, find a study buddy, or network for job opportunities, these sessions are a great way to make connections. More information on 🌏networking
  • Talks: We will host talks to discuss about the IC ecosystem. This is a great opportunity to learn and gain insights into the space. We will announce these on Discord, so keep an eye out for them!
  • Game sessions: Taking breaks is important for maintaining productivity and mental well-being, so we recommend scheduling at least 2 gaming sessions for your team so you can relax and have fun with your classmates. Use your team's Discord voice channel to share live audio during your gaming session, and have fun!

πŸ“ž Assistance & Troubleshooting

This event is being run by volunteers and we have limited resources, we won't be able to answer all questions at all times considering that we have hundreds of students, please understand this fact and make sure to follow all instructions in the order provided.

When you need help, follow these steps in this order:

  1. Search on Google: most issues have their solution somewhere on the Internet, this is how real developers solve most of their problems. You need to make sure you've searched for a few minutes on the Internet before moving to the next step.
  2. Dig into the list of resources and documentation at the bottom of this guide. Most likely the answer you need will be in here if you dig enough, and the more practice you get navigating these resources the more effective and self-sufficient you'll be able to be as an Internet Computer developer.
  3. Ask your team for help on Discord: you all have been assigned a specific team channel on Discord, this team is composed of people in your Time zone who are learning along with you. If you run into an issue, someone in your group probably encountered the same issue and might have the solution. You need to make sure you've asked your team and waited for a few minutes before moving to the next step.
  4. Go to the #ask-questions channel on Discord and ask your question by creating a new topic. Make sure your issue hasn't already been answered in another topic.
    If you decide to create a new topic, please provide as much information as possible:
  • When did you encounter the issue?
  • What is the exact error message?
  • What have you already tried to deal with the problem?
  • Provide some screenshots to illustrate your request.

Note: your issue might be resolved only in the next mentor session if we need you to share your screen and the issue cannot be resolved in one simple answer.

🚫 Do not spam the main channel of Discord with your issue, and do not directly DM mentors. Disruptive behavior that hinders the learning of other students will put you at risk of getting kicked out of the Bootcamp. We've never had to do this before, don't be the first.

πŸŽ“ Graduation levels

  • Graduated | You submitted a core project that met the requirements.
  • Graduated with honors | You submitted a core project that met the requirements, and went above and beyond by also meeting the graduate with honors requirements described in the core project guide.
  • Graduated at top of your class | You submitted a core project which included unique extra features beyond any requirements we provided, and the dev mentors found your submission exceptional.
  • Top 3 | 3 students will have the honor of being judged as having the 3 most impressive submissions.

🎁 Prizes

All Motoko-Bootcamp graduates will receive :

  • A non-transferrable NFT-diploma that will give special access to an exclusive Motoko Bootcamp DSCVR portal where students will be able to continue learning and collaborating with mentors and other graduates. πŸ†

Motoko Bootcamp graduates will recieve a share of prizes from our prize pool. This includes some NFTs as well as up to 3,000,000 OGY tokens (worth $20k), depending on how many graduates we have. More details on prizes are coming soon.

The prizes are great, but keep in mind that this isn't a hackathon and the focus is education. The most valauble prize any student will get from then event (registered or enrolled) is the knowledge they gain!

The gift of knowledge is the highest gift in the world.

πŸ“š Resources

Internet Computer documentation : The main documentation website for the Internet Computer.

Motoko Language documentation : The main documentation for the Motoko language.

Motoko Types documentation : A reference for the Motoko base library types and their functions.

DFX documentation : The main documentation for the DFX command line tool used to deploy and manage dApps on the Internet Computer.

Motoko playground : A sandbox to quickly write and test Motoko code from your browser.

Motoko extension : A Motoko extension for Visual Studio Code that provides syntax highlighting.

Dfinity education repo : Educational resources on data structures, web development, blockchain, and more.

Examples : Sample code and applications written in Rust or Motoko.