--- tags: ncd-L2 title: NCD L2 - Overview description: This course is an opportunity for developers who have completed NCD L1 to earn an L2 Certificate of Completion that represents the ability to design, develop, test and deploy smart contracts on the NEAR platform. image: https://near.org/wp-content/themes/near-19/assets/downloads/near_logo.svg --- # NEAR Certified Developer (L2) This course is an opportunity for developers who have completed NCD L1 to earn an L2 Certificate of Completion that represents the ability to design, develop, test, deploy and upgrade smart contracts on the NEAR platform. ## Welcome So you've completed the NCD L1 and are wondering what's next. Well, this is the next level of learning that will take you from the basics of the NEAR platform to deploying a fully upgradable application on TestNet that can support up to 100 concurrent users. **NCD L1 is a prerequisite** to this course. See [here for more information](https://hackmd.io/@nearly-learning/ncd) This is a NEAR L2E (Learn-to-Earn) course, meaning: **we pay you** to complete the course. <!-- ## First Steps **Please complete the following** as soon as possible and before the first day of the course. It is essential for the success of this program to coordinate our activities and this will help us do just that. ### Immediately :fire: 1. Please **join us** on a dedicated Discord server. - [ **[ USE this invitation link ]**](https://discord.gg/HfPAdMhKAn) 2. Please **share your availability** to help us coordinate a few meetings. - [watch this 90 second intro](https://www.loom.com/share/68dfb3a398be443cbfd2389bcb138ce6) to see how this works - [**[ ADD your availability here ]**](https://lettucemeet.com/l/AEoPY) ### Before Day 1 3. Please **complete the pre-work**, it will likely take between 1 and 4 hours. - [**[ COMPLETE the pre-work ]**](#Schedule) --> ## Overview During this course we will practice: - **recognizing best practices** of web 3 application development - **defining the architecture** of a web 3 application - **developing upgradable contracts** for web 3 applications - **developing user-friendly frontends** for web 3 applications - **full lifecycle testing** for web 3 applications 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 *Please make sure to share your availability as soon as possible, as per [first steps](#First-Steps) above, so that we can properly coordinate the following details **before Day 1*** - 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-X` (small-group-a, small-group-b, etc) *pairing requests, comments on progress, encouragement, cries for help and mercy, etc* - `#day-#` (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-#` - 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-#` so that others may review your work and learn from it, especially if they're struggling. --> ## Schedule ### Pre-work - Some Days Before -- Recognizing best practices *Learn to recognize patterns and anti-patterns of application development on the NEAR platform.* --- ### Remote-first Online Course - Day 1 -- Defining the architecture *Learn to design blockchain-powered application architectures that involve contract orchestration and take full advantage of the NEAR account model and access keys.* - Day 2 -- Developing upgradable contracts *Learn to design, develop and upgrade contracts that communicate with each other and survive in an adversarial environment while managing valuable assets and ownership.* - Day 3 -- Developing user-friendly frontends *Learn to design and develop web-based frontends for web 3 applications that elegantly hide the complexities of typical blockchain onboarding behind a familiar web 2 experience.* - Day 4 -- Full lifecycle testing *Learn to write production grade unit, simulation and integration tests in preparation for launch to TestNet.* - Day 5 -- Demonstrating web 3 *Demonstrate your group project in 5-10 minutes* --- ### Next Steps - Some Days After -- Building web 3 *The adventure continues with a live application on TestNet* --- <!-- ## Recordings All publicly available recordings will be posted here within 24-48 hours of the event. **Cohort 1: Feb 22 - Feb 26, 2021** - Day 1 - Welcome and Kickoff [slides](http://bit.ly/near-ncd-c1) and [recording](https://youtu.be/U14NNm6GHp8) - Day 5 - Demos **Cohort 2: Mar 8 - Mar 12, 2021** - Day 1 - Welcome and Kickoff [slides](http://bit.ly/near-ncd-c2) and [recording](https://youtu.be/ZM7TCONx9BI) - Day 5 - Demos --- ## 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-4 hours per day. - If you are an **experienced blockchain developer** then you will likely be able to keep up with this course with about 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. I have zero time for all this. Can I just binge on some deep work on my own? 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 - [Learn NEAR](near.org/learn) landing page for educational content ### 8. I have one hundred more questions. That's awesome. Here is [**a real FAQ**](https://hackmd.io/@nearly-learning/faq) -->