Lead Educator @ Blockgeeks
About the Instructor
Haseeb is a software engineer and blockchain evangelist from the University of Waterloo. When not thinking about the future of Đapps, you can find him sharing his love of food, art and traveling. Haseeb brings several years of web and mobile development experience working with companies like Amazon and Viacom.
Join us as we dive headfirst into writing smart contracts and building Đapps using Ethereum. In this course, we bring you up to speed on Solidity, before we explore the intricacies of building decentralized applications. New content available every week!
This course prepares you to design, construct and manage enduring systems of smart contracts entrusted with significant value. We unfold essential knowledge and patterns you can use to confidently design and build your signature system.
Using hands-on examples, video lectures, and the evolving code, you will learn:
- Widely applicable patterns for everyday use
- Industry recognized best practices
- Known attack vectors, how they work and how to prevent them
- Anti-patterns, why you should avoid them, and proven alternative approaches.
You will gain valuable insights into common mistakes Solidity developers make. You’ll be able to spot errors, security issues and oversights in unfamiliar code quickly and effortlessly because you’ll know exactly what patterns to look for; patterns that should always be present, and patterns that should never be present.
What Should You Know Before Starting This Course?
The following are helpful:
- Survival-level Linux skills
No previous experience with Ethereum smart contracts is required. Every line of code is explained: what it does, how it does it, and more importantly, the underlying principles behind the structure of the examples. The concepts presented are supported by curated suggested reading. Easily digestible principles and practices with hands-on application in a realistic project provides context for curated reference materials.
Each lesson is presented with hands-on demonstration and explanation:
- A recorded lecture - what it does, the problem it solves and how it works
- A hands-on coding demonstration with line-by-line commentary
- Links to carefully vetted reference materials supporting the points raised in the lesson, and the latest developments
- Reference application code to compare with your own
Who is This Course Targeted Toward?
- Even if Ethereum is completely new, developers should be able to learn by example. We go immediately to the weird parts that illustrate how Ethereum differs from other platforms. The critical new thinking and well-solved patterns developers need to effectively plan and use this unique platform and language.
What Will You Achieve By Enrolling In This Course?
- Align your thinking with the unique properties of this platform
- Clearly, understand common design patterns and recognize when to use them
- Habitually and effortlessly observe best practices in your code, by deeply understanding how the patterns work and the protection they offer
- Learn how to quickly and easily recognize security risks in unfamiliar source code
- Understand precise implications of the Ethereum Virtual Machine, instantly recognize feasible use-cases and confidently design scalable applications
- Learn how to address long-term operational and maintenance concerns including administrative control and software upgrades.
- Understand the competing objectives inherent in all smart contract projects, understand the options available and know how to clearly communicate the choices to both technical and non-technical stakeholders.
What Do I Need?
This is self-paced training using recorded video and hands-on “try it yourself” coding. You will need:
- A computer with 8GB of RAM (recommended minimum). An SSD is recommended but not essential.
- When you enroll for the course, you will be given access to a virtual machine image and instructions for installing Virtual Box (free) on Windows, Linux or Mac.
- You will need an internet connection capable of downloading the video content.