--- tags: ncd title: DEPRECATED landing page for NEAR Certified Developer (all-in-one) --- # :warning: this page is deprecated :warning: # :arrow_right: see this [updated page](https://hackmd.io/@nearly-learning/ncd) :arrow_left: --- # NEAR Certified Developer This course is an opportunity for web developers to earn a Certificate of Completion that represents the ability to design, develop, test and deploy smart contracts on the NEAR platform. ## Welcome Glad you could join us. We will be working together over the next week to learn to build decentralized applications on the smart contract platform known as NEAR Protocol. Here's a [report](https://medium.com/electric-capital/electric-capital-developer-report-2020-9417165c6444) of what's happening in the industry with these so-called "layer 1" platforms as of Dec 2020. The research makes it clear: *NEAR is here.* > *This is a NEAR L2E (Learn-to-Earn) course, meaning **we pay you** to complete the course.* ## Overview During this course we will practice: - **perceiving** web 3 in the context of human history - **reading** contract code in Rust and AssemblyScript - **writing** contracts using Rust and AssemblyScript - **testing** contracts using unit and simulation tests - **deploying** contracts and a sensible user interface The course will include lots of listening, watching, reading and writing. A minimum of 2 hours per day is recommended but up to 4-6 hours per day is likely, especially for developers with less than three years web development experience. ## Working Agreement - We will meet for **60 mins on Monday and Friday** for kickoff and demos, respectively - We will meet for **30 mins Tuesday, Wednesday and Thursday** for standup and announcements - We will break up into **small-groups** a, b, c ... etc. depending on cohort size, 3-5 people per group - We will **meet with our small-group every day** to align on progress, share confusion and promote aha! moments to the cohort - We agree to **complete activities on a daily basis** to the best of our ability - We agree to **work towards a group project demo** by the end of the week ## Questions All questions should be posted to 1 of 3 channels: - `#help` *questions re: general logistics, general schedule, account issues, etc* - `#small-group channel` (group-A, group-B, etc) *pairing requests, comments on progress, encouragement, cries for help and mercy, etc* - `#day channel` (day-0, day-1, etc.) *assignment support, confusion re: some topic for the day, etc* ## Assignments - Assignments will be posted just-in-time to the `#day channel` - Questions related to the assignment, clarifications, concerns, etc should be posted in the same day channel to avoid confusion - Completed assignment submissions should be posted to the `#day channel` so that others may review your work and learn from it, especially if they're struggling. ## Schedule ### Day 0 -- Perceiving web 3 > *What's all the fuss about?* *Learn to make sense of what is actually going on right now in the larger context of history.* #### Core Activities - :eyes: something to see - [Peer-to-Peer Money in a Historical Context](https://www.youtube.com/watch?v=n-EpKQ6xIJs&list=PLFjTj8QScrlnl_iYZSLBmRxMmtjPhUbu9&index=1) - [Bitcoin and the coming Infrastructure Inversion](https://www.youtube.com/watch?v=5ca70mCCf2M&list=PLFjTj8QScrlnl_iYZSLBmRxMmtjPhUbu9&index=2) - [Money as a Content Type and the Grand Arc of Technology](https://www.youtube.com/watch?v=6vFgBGdmDgs&list=PLFjTj8QScrlnl_iYZSLBmRxMmtjPhUbu9&index=3) - [Applications: Today & 2025](https://www.youtube.com/watch?v=3jPYk7ucrjo&list=PLFjTj8QScrlnl_iYZSLBmRxMmtjPhUbu9&index=4) - :ear: something to hear - [Bitcoin's Pre-History and the Cypherpunks](https://www.whatbitcoindid.com/podcast/the-beginners-guide-to-bitcoin-part-3-bitcoins-pre-history-and-the-cypherpunks-with-aaron-van-wirdum) - [The History of Bitcoin](https://www.whatbitcoindid.com/podcast/the-beginners-guide-to-bitcoin-part-5-the-history-of-bitcoin-with-marty-bent) - [Altcoins, A History of Failure](https://www.whatbitcoindid.com/podcast/the-beginners-guide-to-bitcoin-part-9-altcoins-a-history-of-failure-with-nic-carter) #### Bonus Activities - :newspaper: something to read - [Bitcoin: A Peer-to-Peer Electronic Cash System](https://bitcoin.org/bitcoin.pdf) - [Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) - Everything on [nakamotoinstitute.org Literature](https://nakamotoinstitute.org/literature/) --- > *Perspective is worth 80 IQ points* > > *-- Alan Kay* --- ![cypherpunks mailing list post by Adam Back re: b-money 1998](https://i.imgur.com/dn8B3CI.png) ### Day 1 -- Reading web 3 > *Wait, what's a contract even?* *Learn to read (smart?) contracts in Rust and AssemblyScript, there's really nothing to it.* #### Core Activities - Watch these orientation videos before doing anything else - [steps a & b](https://www.loom.com/share/528942bebbe9419b8b65f0832b953034) (survey and curate) - [step c](https://www.loom.com/share/ff7b381f7d4147d7861065819544c737) (analyze) - [steps d & e](https://www.loom.com/share/f0f138efccc64fd59a839b4ac7275fe6) (review) - **( a )** survey all 25 contract repositories as per video (30 mins) - Skim the database for about 1 minute - Open all 25 links in tabs (or in batches of 5 if you prefer) - Find the contract “purpose” and “code” - Close it if you’re not interested - You should end up with 10 contract tabs open - **( b )** choose 5 out of the 25 contracts and prioritize them as per video (5 mins) - Make new records, one for each contract of interest - Prioritize it in your todo list, most important at top - **( c )** review each of the 5 contracts and make notes as per video (120 mins) - Scan for structure (and capture in airtable) - Scan for interface (and capture in airtable) - Add comments as needed to teach others **STOP** *Continue ... NEXT DAY ... (it’s best to sleep between these activities)* - **( d )** review all others’ notes for their contracts (30 mins) - Review all contract summaries for all other participants - Marking your “intuitive confidence” in understanding - **( e )** dig into your 3 lowest confidence contracts (60 mins) - Choose any 3 of your lowest confidence scores - Review the contract as if it were your own #### Bonus Activities *If you have the time to look around the corner, here's a little more for you.* - [Scavenger Hunt Challenge #1](https://hackmd.io/DiDr80wrT1ugS7iSVJiZ8Q) - [Scavenger Hunt Challenge #2](https://hackmd.io/HA390FYeRBKieLvL5dK64Q) #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - review all [core-contracts](https://github.com/near/core-contracts) and watch related [Live Contract Reviews](https://www.youtube.com/watch?v=BA7VeUS_RAA&list=PL9tzQn_TEuFXnYksuNJwrl1l_AuWzn6eF) - review [Eugene's workshop](https://github.com/evgenykuzyakov/workshop) and related [berryclub](https://berryclub.io) [contracts](https://github.com/evgenykuzyakov/berryclub) - review [Illia's contract repo](https://github.com/ilblackdragon/contracts) - review all [Rainbow Hackathon contract submissions](https://docs.google.com/spreadsheets/d/19By6mCBnfCO076plLitF-S1MeTpVLgISF_aAlZ5I2-4/edit#gid=0) --- > _**smart**_ > _adj. Having or showing intelligence; bright. synonym: intelligent._ > _adj. Canny and shrewd in dealings with others._ --- ![airtable entries for smart contracts ready for review](https://i.imgur.com/OY4yyWN.png) --- ### Day 2 -- Writing web 3 > *To interface or not to interface, that is the question* :construction: *Learn to write contracts that control money, identity, ownership among other data types.* #### Core Activities Complete two challenges here: http://bit.ly/near-sdk-as `#1`. a scavenger hunt through several AssemblyScript projects to get you quickly oriented `#2`. a debugging challenge to fix a few failing unit tests with broken contracts #### Bonus Activities *If you have the time to look around the corner, here's a little more for you.* - [Scavenger Hunt Challenge #3](https://hackmd.io/RlvUkBbMSVWXueI8Tvs15w) #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - abc - def --- > _To call methods, and methods, and methods, Signing transactions in this petty pace from day to day, To the last token of recorded crypto; And all our ledgers have hard forked On their way to a dusty death. Out, out, brief blockchain! web 3's but a walking shadow, a poor player, That struts and frets his hour upon the internet, And then is heard no more. It is a tale Told by a hodler, full of sound and fury, Signifying nothing._ > > *-- Willmoon Shakeschain* --- ### Day 3 -- Testing web 3 > *We don't need no stinkin' tests!* :construction: *Learn to write unit and simulation tests for smart contracts.* #### Core Activities Complete two challenges here: https://bit.ly/near-xcc `#1`. basic simulation tests `#2`. intermediate simulation tests #### Bonus Activities *If you have the time to look around the corner, here's a little more for you.* - [Scavenger Hunt Challenge #4](https://hackmd.io/fNDtnAjMQHGx3eKCvMO4PA) #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - abc - def --- ### Day 4 -- Deploying web 3 > *Cry havoc and let slip the dogs of DLT* :construction: *Learn to deploy your contracts to LocalNet and TestNet* #### Core Activities Complete one challenge here: http://bit.ly/near-sdk-as `#3`. a development lifecycle challenge to guide you through NEAR platform tools for testing #### Bonus Activities *If you have the time to look around the corner, here's a little more for you.* - [Scavenger Hunt Challenge #5](https://hackmd.io/1pWn7lnYQhaBmktrvGCL9g) #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - abc - def --- ### Day 5 -- Demoing web 3 > *May the demo gods be with you* :construction: *Demonstrate your group project in 5-10 minutes* #### Core Activities Complete one challenge here: http://bit.ly/near-sdk-as `#4`. a design challenge to create new contracts and related models that satisfy a set of requirements #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - abc - def --- ### Day 6+ -- Building web 3 > *So what now?* :construction: *The adventure continues* In this section we will organize opt-in activities for attendees of the program to remain engaged with the learning community after the course completes. Participants who earn the NEAR Certified Developer (L1) certificate are encouraged to spend some time supporting future students of the program to improve the experience for all incoming students. - Did something not work well for you? Fix it. - Do you have some advice for new students? Give it. - Do you want to learn more with this community? Bring it. - Are you planning on pursuing the opportunity of a career in this space? Take it. #### Going Deeper *If you're feeling fearless, here's about as far as you might take this road in a day* - abc - def Here are some examples of follow-on activities for the community, including but not limited to, group games, book clubs, interest groups, hackathons, etc. ![](https://i.imgur.com/dUl5MjK.png) ![](https://i.imgur.com/AURKLCH.png) # FAQ ### 1. How much does this cost? Nothing, in fact *we pay you* to complete this course. ### 2. Do I need to be a software developer to take this course? No, you do not, but it won't be easy and you should budget 10 hours per day, no joke. If you are a **junior software developer** who recently graduated from a bootcamp or has less than 3 years professional experience, you should budget 4-6 hours per day. If you are an **senior software developer** with 5 years of professional experience or more, you should budget about 2 hours per day. If you are an **experienced blockchain developer** then you will likely be able to complete this course with less than 1 hour per day of work. ### 3. Do I need a Mac? MacOS and Linux will be the easiest operating systems to use. Windows may prove challenging but if you're ok with that, please join us. ### 4. How do I know if I'm winning? There's no such thing as winning here because we're all lost. Welcome, friend. ### 5. When moon?! Please don't. ### 6. Do you care if I cheat? No, in fact cheating is encouraged. Let's get one thing straight: if you're serious about learning, the fastest way from here to there is to meet people, ask questions, look at some answers, look at even more answers, copy some examples, break things and finally, if you're lucky, learn something new. As long as you're honest about what you're doing, you're always welcome here. Just don't take credit for others people's work because that's lame. ### 7. WEN MOOON?! Srsly? ### 8. I have zero time for all this, can I just binge on some deep work right now? Hell yes! Here you go: - [NEAR in a Nutshell](https://docs.google.com/document/d/1fG3PNTKw727Z5SVyUbJ2nnxn5MZNSGYEZIU2Y7XtlYY) covers everything that is NEAR on a single page - [NEAR Live Contract Review](https://www.youtube.com/watch?v=BA7VeUS_RAA&list=PL9tzQn_TEuFXnYksuNJwrl1l_AuWzn6eF) covers our [core contracts](https://github.com/near/core-contracts), among others - [NEAR Live App Review](https://www.youtube.com/watch?v=dT99JLpO2Q8&list=PL9tzQn_TEuFXnHlfh00etU57IjpRlQGpY) covers app development patterns - [NEAR Core Overview](https://www.youtube.com/watch?v=Xi_8PapFCjo&list=PL9tzQn_TEuFV4qlts0tVgndnytFs4QSYo) covers the `nearcore` code base