Would be willing to lay out the criteria of your developer class?
To get the most out of this course, it’s assumed that attendees are confident in general programming abilities. Familiarity with data structures and networking is required. Basic knowledge of cryptography and distributed systems is helpful but not assumed.
If you are not a programmer, e.g., a customer support professional, and want to elevate your knowledge to be able to talk intelligently about blockchain technology, understand digital currencies, peer to peer distributed networking, etc. this class will be of benefit.
This class will be a journey, those that choose to do the reading assignments and work through all the lab assignments will be the ones that benefit the most.
What does the course outline look like?
Yes. Here's the Agenda for each class:
- History of Digital Currencies, Cypherpunks and the Precursors to Bitcoin
- Public-key Cryptography, Hashing and Merkle trees
- Decentralized P2P Networking and Gossip Protocols
- Blockchains, Consensus Protocols and Building Our First Cryptocurrency
- Incentive Design and CryptoEconomics
- The World Computer: Ethereum Blockchain, EVM and Smart Contracts
- Solidity: Smart Contract Development on the Ethereum Blockchain
- Smart Contract Security and the Future of Cryptocurrencies
See Schedule page or Course Outline in the main menu for details.
Sounds like you are choosing to focus on Ethereum, right?
Yes. That is correct.
The course will take us from bartering to digital currencies; we’ll focus on Bitcoin to begin with and then Ethereum blockchain.
What programming language is required?
The lab assignments are like design documents that do not predicate any particular programming language. Use any language you feel most comfortable working with.
I will provide a working implementation of each assignment in Ruby and can offer assistance with that code.
I have also implemented most of the assignments in Go, but since Ruby is generally easier to learn than Go, the completed-assignment implementations are in Ruby.
The language we'll use for Ethereum Smart Contracts is Solidity.
What makes you qualified to teach this class?
- Industry experience
- Cryptocurrency training
- Teaching experience
- Published author
I spent an entire April in San Francisco focused solely on building my own cryptocurrency and building Ethereum contracts. I trained under the guidance of Haseeb Qureshi and took his class: https://bradfieldcs.com/courses/cryptocurrencies/
I completed all the labs (in Ruby and Go).
For the better part of this year, I worked with a cryptocurrency production studio with some of the smartest people in the cryptocurrency industry. I wrote a lot of code and learned a ton. The access to these talented individuals was invaluable. I implemented a number of Ethereum smart contracts and have seen true masters crank out the best Solidity implementations and integrate it with a Go libp2p-based, peer-to-peer network.
After that, I've been focused on developing a cryptocurrency payment solution.
Additionally, I created a 50 page Glossary of Terms that covers virtually every new vocabulary word in crypto/blockchain.
A colleague of mine said, “You’ll be my hero if you can make me understand cryptocurrency.” That lit a fire that is still burning.
Check out some of my recent articles on Medium:
And an Ethereum/Solidity project on Github:
Hope to see you in class.