onflow / developer-grants

Grants for developers that contribute to the broader developer ecosystem
Apache License 2.0
50 stars 18 forks source link

Flow Educational Developer Articles #81

Open ph0ph0 opened 2 years ago

ph0ph0 commented 2 years ago

Flow Educational Developer Articles

Grant category

Educational material

Description

This grant aims to increase the availability of Flow/Cadence text-based technical educational content available to developers. The grant will allow the author to write a number of articles that tackle a range of topics that vary in complexity. The aim is to have a broad gamut of articles produced over time that cover many subjects ranging from beginner to expert, although not necessarily in any order. Each article is likely to be independent of the others, unless stated that it is part of a series.

My hope is that by writing educational content focused on Flow/Cadence, we might jump-start the community into writing their own content as people learn from and improve upon concepts communicated in our written articles. It will also aid our efforts in Discord by hopefully reducing the number of duplicate questions.

Problem statement

There are currently some brilliant sources of educational material available for the Flow ecosystem, including the developer docs, Joshua Hannan and Ben Ebner's medium articles, and Jacob Tucker's video series. However, unlike other ecosystems and languages, there is a lack of written material available on the internet that covers tips, tricks, principles and advanced concepts in Flow and Cadence.

Further, Flow/Cadence has a very limited presence on Stack Overflow, primarily because Discord is the first port-of-call for many developers when they have questions. The result of this is that huge volumes of information are lost in Discord, and the same questions are often asked by different people.

The target audience for this project would be all Flow/Cadence developers ranging from beginner to advanced.

Proposed solution

The proposed solution is to create a knowledge-base that is easily found via a google search. The articles will be written in a tech focused blogging platform such as https://hashnode.com/ or dev.to.

Text is the primary medium used in education, and it allows students to easily progress at their own pace. Text documents can be accessed easily, even with a poor internet connection, and the content within the document can be searched. Further, keeping articles up-to-date as new information emerges is a possibility. The greatest strength of textual information is that it can be indexed by search engines and therefore presented to developers when most relevant.

The project will involve a series of articles (not necessarily a set number of articles, could be on-going if agreed) that address topics as simple as "How to Get Started with Flow" through to more complex topics such as "Elliptic Curve Cryptography and Hashing in Flow".

Impact

In what ways does this benefit the broader Flow developer ecosystem?

The more knowledge shared amongst a community the better, as it allows the members to grow and innovate by building upon the contributions of others. It can make the learning experience for developers of all levels frictionless, therefore reducing drop-off. The Flow community already has a great mindset for helping others, and if this could extend beyond seemingly ephemeral Discord messages into more permanent, easily searchable online content, then the whole community would benefit.

The other impact is that if information was more easily found online, then it may reduce the load on contributors in Discord, as fewer duplicate questions might be asked. This will hopefully lead to more productive conversations in Discord.

Milestones and Funding

A series of topics can be agreed between the Flow team and the author (myself) or alternatively topics can be proposed on a one-by-one basis as the next article is due to be written.

Milestone Deliverables Timeline Learning Goals USD proposal
Article 1 Smart Contract Development Tips and Tricks 2 weeks • Readers will learn how to refine their techniques in order to be more efficient and diligent during smart contract development with Cadence. 1700

1000 views: $100

10,000 views: 500 dollars

100,000 views: $3000

1,000,000 views $6000

Article 2 How to Use Interfaces to Your Advantage 2 weeks • Interfaces are used in Flow to create standardisation across the ecosystem. Readers will learn how interfaces can be used in their projects to enhance their own ecosystems. 1700
Article 3 Types of Node on Flow and Why You should be Interested 4 weeks • Readers will gain an understanding of the different types of nodes involved in the Flow blockchain and how the architecture of this blockchain differs to others. 3500
Article 4 How to Use Shell Scripts to Speed Up Cadence Development 2 weeks • Development of smart contracts can often involve repetitive tasks such as setting up the environment for the emulator during iteration. Readers will learn how they can use shell scripts to iterate quicker and speed up the development process. 1700
Article 5 How to Gate Minting According to 4 weeks • The minting of NFTs is central to any NFT project. Readers will learn how to restrict access to minting according to criteria such as NFT ownership, access lists and utility tokens. Readers will also learn how to secure against users attempting to re-use NFTs for minting access. 3500
Article 6 How to Verify Ethereum NFT Ownership to Grant Access to Flow NFT Minting 4 weeks • Readers will learn from first-hand experience how a project on Flow can collaborate with a project on Ethereum. Through building a 'cross-chain account verification system', readers will gain an insight into how it is possible to gate access to minting Flow NFTs according to the ownership of NFTs on the Ethereum blockchain. 3500
Article 7 The Structure of a Transaction in Flow vs Ethereum 2 weeks • Through comparing the structures of transactions on Flow and Ethereum and why there are differences between them, users will gain a deep understanding of the roles that gas price, gas limit, events, msg.sender etc play in different blockchains. 1700
Article 8 Flow Smart Contract Security and Best Practices 2 weeks • Readers will form an understanding of why it is important that smart contracts are secure, how to best ensure that their project isn't hacked, and the repercussions of having vulnerable projects. 1700
Article 9 Flow, Tokens, Fungibility and Utility 4 weeks • The various types of tokens and their fungibility are central to Flow. Utility is an emerging trend in blockchain and readers will learn about how it can be used in their projects. 3500
Article 10 Flow Proof of Stake and the Principles of Consensus 4 weeks • Proof of stake is currently a hot topic, and users will learn about why Flow has been using PoS since Day 1. They will learn the concepts behind proof of stake, and also how consensus is achieved through this state synchronisation technology. 3500
Article 11 How to write tests for smart contracts 2 weeks • Testing smart contracts is critical to ensuring that they behave as expected, and can also help to minimise vulnerabilities. Readers will learn how to write tests for smart contracts using flow-js-testing library. 1700
Article 12 How to build a simple oracle for smart contracts on Flow 4 weeks • Oracles allow smart contracts to consume off-chain data, and are critical for many well-known protocols found on other blockchains. In this tutorial, readers will learn what oracles are, why oracles are used, how they are constructed, and will implement their own simple oracle to use with their smart contract. 3500
Cumulative total of 10,000 views - - - 1000
Cumulative total of 50,000 views - - - 3500
Cumulative total of 100,000 views - - - 5000

Team

Name Role Bio Contact
Phill (ph0ph0) Author Community Rep at Flow, FLIPFest 2021 Winner, Blockchain Tech Lead at The Fabricant, Medium profile: https://medium.com/@fullstackpho fullstackpho@protonmail.com
alxflw commented 2 years ago

hi @ph0ph0 - thanks for submitting. please add the the milestones, deliverables, and costs to your application. I understand that you anticipate discussing the topics, but we need a proposal of of topics to get the discussion going.

thanks!

ph0ph0 commented 2 years ago

Thanks for the feedback @alxflw , I have updated my proposal! :)

ph0ph0 commented 2 years ago

Hey @alxflw, do you have any updates on this? Thanks!

alxflw commented 2 years ago

hey @ph0ph0, yes - I just received some feedback and wanted to ask you if you would be open to the following:

ph0ph0 commented 2 years ago

@alxflw thank you very much for your feedback! I have made some changes and replaced the articles that you asked me to skip with new ones. Let me know what you think!

ph0ph0 commented 2 years ago

Hey @alxflw, was wondering if you might have any news on this please? Thanks!

alxflw commented 2 years ago

hey, sorry for the delay. we'll get back to you shortly with a decision!

ph0ph0 commented 2 years ago

No worries at all, thanks!

chrisackermann commented 2 years ago

Hi @ph0ph0, thanks for your patience!

For the milestones, we'd love to see the view-based milestones aggregated across your entire set of articles versus having a view-based payout milestone for each article. Would you mind reworking the proposal here to reflect that?

Ultimately could just add one additional milestone that would denote this. Thanks!

ph0ph0 commented 2 years ago

@chrisackermann no worries at all, thanks very much for getting back to me! :)

I'm not sure I fully understood your request, I have added a column "USD proposal per cumulative views across all articles milestone", is this ok?

Also, I added two new articles to the bottom, "How to write tests for smart contracts" and "How to build a simple oracle for smart contracts on Flow" :)

Interested to hear what you think!

chrisackermann commented 2 years ago

Hi @ph0ph0 - thanks for making the updates! Sorry for the confusion - I'm looking for the cumulative milestone to replace the individual view-based milestones for every single article. Could we remove that column named 'USD proposal per views per article milestone' in this case?

I think the two additional articles look great.

ph0ph0 commented 2 years ago

@chrisackermann thanks for the feedback and clarification! I have made the suggested changes :)

chrisackermann commented 2 years ago

Hi @ph0ph0 - sorry I'm still seeing the 'USD proposal per views per article milestone' column above. Can you please:

1/ Remove the USD proposal per views per article milestone column 2/ Add a set of adoption milestones for each of the levels noted in the current USD proposal per cumulative views across all articles milestone column

Here's an example from another grant project that you could follow (see the last 2 milestones in their table): https://github.com/onflow/developer-grants/issues/28

Thanks!

ph0ph0 commented 2 years ago

@chrisackermann apologies, I had removed the column but hadn't saved my changes...

I have now made the requested changes

Thank you!

chrisackermann commented 2 years ago

No worries, thanks @ph0ph0!

Could we also simplify to perhaps 2 or at max 3 levels instead?

ph0ph0 commented 2 years ago

@chrisackermann sure - done! :)

chrisackermann commented 2 years ago

Hi @ph0ph0 - thanks for your patience! Just wanted to let you know that we've accepted your proposal and will be following up directly on next steps. Thanks!

ph0ph0 commented 2 years ago

Amazing thank you @chrisackermann!!!