It's a long one this week but there was also a lot of old things wrapping up and new things starting, I'm hoping the efforts will be more centralized going forward which should help reduce the bulkiness of the weekly recap articles. This week I graduated from Coding Dojo's bootcamp, wrapped up my first hackathon along with a couple of open projects, and started focusing the vast majority of my growth materials specifically on web3 stuff.
I've also been tracking my hours dedicated to learning programming & web3, reading programming articles, participating in class, and actively coding over the last 16 weeks to help keep myself accountable, and throughout the course of the bootcamp I've managed to accrue a total of 691.75 hours or 43.25 averaged per week. I can say that without a doubt the only other thing I've ever grinded this hard for was Halo 3 multiplayer way back when.
It's been a crazy week for me and after completing all the items that I have, I'm very fired up for what's coming next (see the bottom of this article).
Oh and I'm moving away from the dual-post method in favor of the single-post recap. This is because with the foundational knowledge now built in both the technical and non-technical side, the materials I’m now covering have converged and the distinction between the two is not necessary anymore.
<usual_enterance> If you're new here I'm creating this blog series as I go from coding newbie to working in web3. I'm creating this to reflect on the technical and non-technical growth and to leave it behind for others who might be interested in how they can follow a similar path. </usual_enterance>
In this week's non-technical recap:
- Daily Articles, focused on the Metaverse
- Projects & Algorithms
- CryptoZombies
- Alchemy's Road to Web3
- Learn Web3 DAO
- FCC Solidity & Javascript Blockchain Course.
- Chainlink Spring Hackathon
- Projects
- Job Search Prep
- What's Next?
Articles
This was the second week of the metaverse bi-week.
I tweet every day about at least one web3 article, here are the biggest takeaways from those articles this week:
- Moving an avatar b/n worlds is one of the hardest metaverse problems
- There are dichotomies to be dealt with when it comes to the metaverse (data vs code, ownership vs possession)
- Object functionality b/n worlds becomes a social problem
- “Digital stuff challenges the notion of ownership itself”
- Tech of the metaverse include: AI, IoT, blockchain, AR/VR, and 3d reconstruction
- Not enough professional game makers designing the metaverse
- Proactive regulation to protect against some primary risks (monitoring, manipulation, and monetization) is necessary
And you can find my sources here:
- How Virtual Worlds Work, part two
- How Virtual Worlds Work, part three
- How Virtual Worlds Work, part four
- How Virtual Worlds Work, part five
- Metaverse Technology – A Definitive Guide
- Virtual worlds are still more Minecraft than metaverse
- Fixing the metaverse: Augmented reality pioneer shares ideas for avoiding dystopia
Projects & Algorithms
Projects & Algorithms is the final course for the Coding Dojo and encompasses four weeks of reviews, algorithm practice, interview prep, and building two projects that are meant to reflect what we have learned and showcase something new we are attempting to learn.
This was week 4, the final week.
Trees
Binary Search Tree (BST)
These are optimized for finding and retrieving elements and are similar to linked lists in that they store data elements in node objects. A node can have subtrees, but for every node in the left subtree the values must be smaller.
Binary Tree Depth
Depth refers to the tree’s shape and is the length from root to farthest leaf.
Binary Search Tree Traversal
Pre-order and post-order methods are when a node is enumerated, compared to its children. In-order is enumerating a left child, the node itself, and then the right child in order.
Full Trees
Perfectly balanced rees, where each leaf node has the same length as the root. A full tree is the strictest balanced tree type.
Complete Trees
Similar to full trees, with the exception that the bottom layer does not have to be entirely filled as long as the nodes in that layer are as leftmost as possible.
Breadth-First Search
In this search method, we go to the root node and search each node that is only one step away, looking for the desired information, rather than depth-first-search where you explore as far as possible on each branch first.
AVL Trees
These are self-balancing trees; for every node, the heights of the child subtrees must differ by at most 1.
--
Some additional information on BST was provided but the above snapshot captures what I believe to be some of the most important information covered.
CryptoZombies
Finished up the “Solidity Path: Beginner to Intermediate Smart Contracts” course which is the foundational component I was looking to complete from this resource. These materials covered all of the basics I would need to write smart contracts, understanding how to write functions, and recognizing the difference between Solidity and other programming languages. With the knowledge from this first path, I’m going to move beyond CryptoZombies and focus on the other learning modules I’ve started. I've reviewed the other courses offered and I ultimately decided to focus time and energy on other inputs that are more focused on the tools I want to be using (the advanced Solidity path focuses on Truffle, I want to use Hardhat).
Alchemy's Road to Web3
Alchemy's Road to Web3 is a 10-week program, with a new challenge each week. I'm starting a few weeks late and playing catch-up because of all the other work I've had going on like the bootcamp and the hackathon. Upon completion of each week's challenge, your materials will be reviewed and a Proof of Knowledge (PoK) NFT will be awarded to you. You can find more information on the program here. This week I managed to complete both week 1 and 2, learning smart contract and dApp development; the material covered popular frameworks and tools like Alchemy, Remix IDE, Open Zepplin, Hardhat, Replit, and more.
Week 1: ERC721 Smart Contract | Tutorial | My Repo
Week 2: Buy Me a Coffee DeFi dApp | Turorial | My Repo
Learn Web3 DAO
The freshman course was deprioritized this week and little progress was made, I completed the recommended Learn Javascript for free course with Scrimba, the guided projects for that course can be found here, here, and here.
FCC Solidity & Javascript Blockchain Course.
Patrick Collin's much anticipated Solidity & Javascript Blockchain Course on Free Code Camp has finally released, and it's perfectly timed with where I'm at in my learning plan. It's a full 32 hours of content covering blockchain basics, Remix, Ethers.js, Hardhat, security, and so much more.
Relevant links for the course:
This week, I was able to complete lessons 1 and 2.
"Lesson 1: Blockchain Basics" covered:
- Blockchain Basics & Fundamentals
- The Purpose of Smart Contracts & what they've done so far
- Blockchain Benefits & how they work
- Making Your First Transaction & Signing
- Introduction to Gas
"Lesson 2: Welcome to Remix! Simple Storage" covered:
- Remix IDE
- Writing and deploying a simple contract
- Solidity; types, functions, arrays, structs, compiler errors and warnings, memory, storage, calldata, mappings
For lesson 2, I wrote a simple storage contract, the repo for that can be found here.
Chainlinks Spring Hackathon
The project is turned into the judges, and you can find the repo for it here. After 6 weeks, our dNFT Character Creator is still far from completion. We have pushed through many challenges in getting this project to where it is today, and given everything I’ve learned since it was started, if I had to do it again I would make it very differently. Ultimately, the project was a success to me as we all learned a lot from its development and participating in the Chainlink Spring 2022 Hackathon. The team is fully committed to putting in continued efforts to improve the project to a workable demo as we had originally planned. Once the judges have reviewed, we plan to revisit the project and pick up the work again.
If you’d like to know more about the project or are interested in a more in-depth review of my first Hackathon and the state of the project, I’m working on finalizing an article, so keep an eye out for it on this blog!
Projects
Bootcamp Algorithms
Tagline: This is a collection of code for the Coding Dojo Bootcamp, Algorithm course assignments. This course is the final component in conjunction with two projects to graduate from the boot camp.
Last week, I finished all of the required assignments. This week, I followed up with a final optional algo for trees and uploaded. The Bootcamp Algorithms project is now officially closed, any future algorithm practice questions will very likely come from Code Wars although the content on the Dojo platform does still have several other sections of learning/practice algorithm areas we were not able to get to like tries and double linked lists.
The repo.
Group Project
Tagline: The group project for the Coding Dojo's final course. Application to help you research and save your favorite stocks. API pulls in current stock information and you rank your top stocks accordingly.
All wrapped up and presented. The final component of the Coding Dojo Bootcamp is done with.
The repo.
--
Additional GitHub uploads included projects that were previously mentioned included; JavaScript projects for Scrimba (found here, here, and here), CryptoZombie game (here), Road to Web3 Week one and two, FCC Simple Storage Contract (here), and dNFT Character Builder (the hackathon project)
Job Search Prep
My list of protocols and orgs that I would like to work for has been finalized, and will continue to grow as I am exposed to new groups every day. I’ve decided that I won’t be reaching for the moon and only applying for jobs, rather I will also focus on finding opportunities for internships, assistantships, or advocate programs (for only a couple of protocols that I hardcore believe in).
I’ll be securing an opportunity like this all while continuing to hone my knowledge and proficiency with smart contract engineering by continuing the web3 growth efforts and building projects.
What's Next?
Now that I've graduated from the bootcamp, and have a solid foundational understanding of programming (at least with Python) and web development, it's time to double down on web3 materials. I've got a schedule worked out covering when I'm working on the big 3 (FCC, Road to Web3, and Learn Web3) for the coming weeks while job/internship searching.
While continuing to learn with these materials this week I'll be looking for an internship, networking in Discord communities, and reading Mastering Ethereum. The Mastering Ethereum book is from a list of resources that were recommended to me from an internship rejection email, I've got a long list of other reading materials collected during the bi-weeks but I want to prioritize getting through this lengthy list before continuing to work on those.
There's an endless amount of work ahead of me but I truthfully couldn't be more excited about it all.
I'm looking to start a squad of others trying to become web3 developers, this group would work closely together helping each other to become better developers, share resources, build projects, and participate in hackathons. If you would like to join me in this, lets talk!
You can find me here:
LinkedIn | GitHub | Twitter | My Website