├── Contribution Guidelines.md
├── README.md
└── banner.png
/Contribution Guidelines.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | If you're reading this, thank you for considering contributing to this course! Please carefully read and follow these guidelines to help us make the process easy and seamless for everyone involved.
4 |
5 | ## Guidelines
6 | Follow the steps in order to contribute to this course.
7 | 1. Fork the repository to your own GitHub account.
8 | 2. Clone the project to your device.
9 | 3. Create a branch locally with a succinct but descriptive name.
10 | 4. Commit changes to the branch.
11 | 5. Push changes to your fork.
12 | 6. Open a PR in our repository and wait for us to review and pull the changes.
13 |
14 | ## Best Practices
15 | - Keep the title and descriptions concise and short.
16 | - Add a new section if needed.
17 | - Search for previous PRs or Issues before making a new one, to avoid duplicate submissions.
18 | - Check your spelling and grammar.
19 | - Remove any trailing whitespaces.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # GNOLANG 101
2 |
3 |
4 |

5 |
6 |
7 | ## Contents
8 | - [Introduction](https://github.com/onbloc/gnolang-101#introduction)
9 | - [Resources](https://github.com/onbloc/gnolang-101#resources)
10 | - [Course](https://github.com/onbloc/gnolang-101#course)
11 | - [Community](https://github.com/onbloc/gnolang-101#community)
12 | - [Contribute](https://github.com/onbloc/gnolang-101#contribute)
13 |
14 | ## Introduction
15 |
16 | Welcome to GNOLANG 101!
17 |
18 | This course is designed for aspiring programmers who are looking to become a smart contract developer on Gnoland, a scalable layer 1 with built-in concurrency.
19 |
20 | Existing smart contract platforms are struggling with mass adoption due to technical issues such as 1) low throughput, 2) non-interoperability, or 3) flawed tokenomics.
21 |
22 | Gnoland addresses these problems with the highly performant Tendermint Consensus algorithm and Gnolang, a fork of Golang. This course focuses on Gnolang, the language that is used in the core modules of Gnoland and its dapps. Highlights of Gnolang as described in its official docs are as follows:
23 |
24 | - Like interpreted Go, but more ambitious.
25 | - Completely deterministic, for complete accountability.
26 | - Transactional persistence across data realms.
27 | - Designed for concurrent blockchain smart contracts systems.
28 |
29 | Gnolang is in its early stage, and therefore we're in need of passionate developers that can help us build the tools, applications, and modules to create a vibrant ecosystem centered around quality software.
30 |
31 | This course consists of resources, tutorials, and guides that will help you get started on your journey as a Gnolang developer. By the end of the course, you will understand how to write and publish contracts on the Gnoland blockchain in Gnolang. If you ever run into any issues, reach out for help on [the Discord server](https://discord.com/invite/3YbdqVP8Tb) where we have active developers willing to support newcomers!
32 |
33 | **This course assumes that you have a moderate degree of programming skills.*
34 |
35 | ## Resources
36 | A full list of resources that you will need to access throughout the course.
37 |
38 | ### Reading
39 | - [Readme](https://github.com/gnolang/gno#readme)
40 | - [Philosophy](https://github.com/gnolang/gno/blob/master/PHILOSOPHY.md)
41 | - [Plan](https://github.com/gnolang/gno/blob/master/PLAN.md)
42 | - [Roadmap](https://github.com/gnolang/gno/blob/master/PLAN.md)
43 |
44 | ### Repositories
45 | - [gno](https://github.com/gnolang/gno)
46 | - [awesome-gno](https://github.com/gnolang/awesome-gno)
47 | - [www.gno.land](https://github.com/gnolang/www.gno.land)
48 | - [tendermint](https://github.com/gnolang/tendermint)
49 | - [tendermint2](https://github.com/tendermint/tendermint2)
50 | - [bounties](https://github.com/gnolang/bounties)
51 | - [gno-basics](https://github.com/moul/gno-basics)
52 | - [adena-extension](https://github.com/onbloc/adena-extension)
53 | - [decentralists DAO](https://github.com/decentralists/DAO)
54 |
55 | ### Tutorials
56 | - [Gnoland Developer Portal](https://github.com/onbloc/gnoland-tutorials)
57 | - [The Official Golang Tutorial](https://go.dev/doc/tutorial/)
58 | - [The Gnoland Quickstart Guide](https://test2.gno.land/r/boards:testboard/5)
59 | - [Gno Basics](https://github.com/moul/gno-basics)
60 |
61 | ### Tools
62 | - [Adena](https://adena.app/)
63 | - [Gnotools](https://app.gno.tools/r/boards:testboard)
64 | - [Gnoscan](https://gnoscan.io)
65 |
66 | ## Course
67 | Read the instructions and follow the checklist in order.
68 |
69 | ### Instructions
70 | - `read`: Items to be read, be they journals, write-ups, or even lines of code.
71 | - `do`: Items that require you to perform specific tasks. These items usually include writing and running your own code.
72 | - Clone this repo and check off items to track your progress!
73 |
74 | ### Checklist
75 |
76 | 1. - [ ] `read` [the README file](https://github.com/gnolang/gno#readme)
77 | 2. - [ ] `read` [the Philosophy](https://github.com/gnolang/gno/blob/master/PHILOSOPHY.md)
78 | 3. - [ ] `read` [the Plan](https://github.com/gnolang/gno/blob/master/PLAN.md)
79 | 4. - [ ] `read` [the Roadmap](https://github.com/gnolang/gno/blob/master/ROADMAP.md)
80 | 5. - [ ] `do` [Join the Discord Server](https://discord.gg/3YbdqVP8Tb)
81 | 6. - [ ] `do` [the Official Golang Tutorial](https://go.dev/doc/tutorial/) (skip if you know Golang)
82 | 7. - [ ] `do` [Build](https://test2.gno.land/r/boards:testboard/5) `gnokey` [and create an account](https://test2.gno.land/r/boards:testboard/5)
83 | 8. - [ ] `do` [Acquire testnet tokens from the faucet](https://test2.gno.land/faucet)
84 | 9. - [ ] `do` [Create a board, a post, and a comment on test2.gno.land](https://test2.gno.land/r/boards?help)
85 | 10. - [ ] `do` [Set up a local node](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/boards/README.md#starting-a-local-gnoland-node)
86 | 11. - [ ] `do` [Publish sample packages](https://github.com/gnolang/gno/blob/master/examples/gno.land/r/demo/boards/README.md#publish-the-gnolandpdemoavl-package)
87 | 12. - [ ] `do` [gno-basics 001-hello](https://github.com/moul/gno-basics/tree/main/001-hello)
88 | 13. - [ ] `do` [gno-basics 002-args](https://github.com/moul/gno-basics/tree/main/002-args)
89 | 14. - [ ] `do` [gno-basics 003-data](https://github.com/moul/gno-basics/tree/main/003-data)
90 | 15. - [ ] `do` [gno-basics 004-render](https://github.com/moul/gno-basics/tree/main/004-render)
91 | 16. - [ ] `read` [package](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/avl) `avl`
92 | 17. - [ ] `read` [package](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/dom) `dom`
93 | 18. - [ ] `do` [gno-basics 005-import](https://github.com/moul/gno-basics/tree/main/005-import)
94 | 19. - [ ] `read` [package](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/grc/grc20) `grc20`
95 | 20. - [ ] `do` [gno-basics 006-grc20](https://github.com/moul/gno-basics/tree/main/006-grc20)
96 | 21. - [ ] `read` [package](https://github.com/gnolang/gno/tree/master/examples/gno.land/p/grc/exts/vault) `vault`
97 | 22. - [ ] `do` [gno-basics 007-vault](https://github.com/moul/gno-basics/tree/main/007-vault)
98 | 23. - [ ] `do` [explore more packages](https://github.com/gnolang/gno/tree/master/examples/gno.land/p)
99 | 24. - [ ] `do` [explore more realms](https://github.com/gnolang/gno/tree/master/examples/gno.land/r)
100 | 25. - [ ] `do` [explore bounty programs](https://github.com/gnolang/bounties)
101 | 26. - [ ] `do` [Write & publish your own packages & realms](https://test2.gno.land/)
102 |
103 | ## Community
104 | - [Discord](https://discord.gg/3YbdqVP8Tb)
105 | - [Telegram](https://t.me/gnoland)
106 | - [Twitter](https://twitter.com/_gnoland)
107 | - [Gnoland Boards](https://gno.land/r/boards)
108 |
109 | ## Contribute
110 | Gnolang is a new language with new updates being shipped almost every day. We'll try to keep this course as up-to-date as possible, but we'd appreciate your help to cover as much information as possible.
111 |
112 | Please take a look at the [contribution guidelines](https://github.com/onbloc/gnolang-101/blob/main/Contribution%20Guidelines.md) and become a TA by helping us develop this course!
113 |
--------------------------------------------------------------------------------
/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/onbloc/gnolang-101/1d119eabfb1e16728857bfcd63a6afb1a07a13a6/banner.png
--------------------------------------------------------------------------------