Hi HN,
I'm a software dev with 10yrs XP. Mostly mobile and gaming.<p>I'm interested to take the leap and go fully into blockchain/solidity.<p>I'm looking for some bootcamps, or online learning platform that can guide me towards landing a position as a solidity developer.<p>I'm actually interested to know any experience from other developers that took a similar leap. What helped you get into so-called web3 development?
Typing from phone but here are some resources that really helped me:<p>Blockchain Fundamentals: <a href="https://github.com/ethereumbook/ethereumbook" rel="nofollow">https://github.com/ethereumbook/ethereumbook</a><p>Practical Solidity: <a href="https://solidity-by-example.org/" rel="nofollow">https://solidity-by-example.org/</a><p>Crypto Zombies is an amazing beginner step by step course to build a blockchain game: <a href="https://cryptozombies.io/" rel="nofollow">https://cryptozombies.io/</a><p>Finally, ethernaut is a series of increasingly difficult security challenges to learn about risks, exploits, info sec for blockchain dev: <a href="https://ethernaut.openzeppelin.com/" rel="nofollow">https://ethernaut.openzeppelin.com/</a><p>Oh, and any Patrick Collins tutorial video on YouTube (solidity, chainlink, hardhat, truffle, brownie, so much more)
From a traditional Dev perspective, blockchain programming can seem really weird.<p>No decimals, no patches or point upgrades to deployed smart contracts (for the most part anyway), constructor event only gets called once during deploy, code implicitly has "owners" with specific execution rights, etc.<p>But this is what I have found to be the strangest part:<p>On most worldwide public blockchains, your programs are deployed to run on servers supplied by other people. They expect to be compensated for supplying this CPU power. Your programs are charged gas and mining fees when they execute. This is usually paid for by the person initiating the transaction with your program.<p>This produces two weird side effects:<p>1) Your development environment (e.g. hardhat, ganache) will "charge" you the same fees, even when you are running entirely on your own laptop. Many times when you hit the deploy button, your own laptop will puke because your dev wallet doesn't have enough coin in it to pay the compile fees. ON YOUR OWN MACHINE!<p>2) When optimizing your code, you no longer refactor to improve speed or code maintainability, but mainly to reduce the fees charged when executing. Solidity even has a "price sheet" of fees for operations like addition, subtraction or allocating memory. This new way of thinking can seem strange to experienced devs because of all the easy fixes you plainly see that have to be left in the code base. Counter-intuitive.
Like with any software engineering field, start looking at OSS. This is especially true with blockchains and web3 projects which are more often than not open sourced.<p>Then decide wether you want to jump on the blockchain/infrastructure bandwagon (Go, Rust, etc.) or the smart contract/app bandwagon (Solidity, etc.).<p>Then start contributing back to the OSS projects that interest you. If you do that, you should have no issue landing a job in the field.<p>Source: I did hire solidity developers a few years ago and I would totally look at their open source contributions as proof of their knowledge since this was/is such a new field.<p>Some repos:<p><a href="https://github.com/OpenZeppelin" rel="nofollow">https://github.com/OpenZeppelin</a><p><a href="https://github.com/ConsenSys" rel="nofollow">https://github.com/ConsenSys</a><p><a href="https://github.com/ethereum" rel="nofollow">https://github.com/ethereum</a><p><a href="https://github.com/input-output-hk" rel="nofollow">https://github.com/input-output-hk</a><p><a href="https://github.com/solana-labs" rel="nofollow">https://github.com/solana-labs</a>
Two things really helped me. First was the series "Ethereum from scratch" by Matt Thomas on YouTube.<p>Second was gitcoin.co. I would pick up random bounties on there, often slightly beyond my skill level so that I would learn faster. You quickly build relevant skills and just as importantly you are building working relationships with companies and peers whilst getting paid to write open source software. To start out I would take on the issues that are entirely writing tests; it's low stakes so you're not going to break the product and you learn as much as if you were writing the code that you are writing tests for.
I can recommend these bootcamps:<p>- <a href="https://buildspace.so/" rel="nofollow">https://buildspace.so/</a>
- <a href="https://www.learnweb3.io/" rel="nofollow">https://www.learnweb3.io/</a><p>If you need a complete introduction, then look at:<p>- <a href="https://github.com/ethereumbook/ethereumbook" rel="nofollow">https://github.com/ethereumbook/ethereumbook</a><p>If you want to get started quickly with Solidity:<p>- <a href="https://solidity-by-example.org/" rel="nofollow">https://solidity-by-example.org/</a>
I just did a udemy course.
Built some side projects. Realised that while technically interesting I can’t think of anything genuinely useful to build in it that isn’t gambling or just a more expensive
and slow version of
using postgresql.
Many great recommendations already. What I found the hardest was to know _which_ tech stack to learn. Are focussing on Ethereum, Bitcoin, Polkadot etc.<p>Want to work on the chain itself, on an application that communicates with different chains, Smart contracts etc.<p>I would approach it from; Which company or product do you find interesting and want to work for? Then I would read the Required section in the job description and start learning these skills.<p>Parity for example has great tutorials for their Substrate framework and this alone is probably a great starting point to venture out and learn concepts you come across you don’t know yet.
There are so many well documented open source projects in solidity just start making your own.<p>However IMO it's kinda like with JavaScript. There are so many people claiming to be solidity kings it's hard to tell who actually is. 1 little oversight can easy cost you millions. IMO you can't bootcamp skills like that. The only thing that makes you actually good is experience.
Well, some of the resources that I've used are:
DApp University(youtube)
Solidity Documentation
Eat the blocks (youtube)
Patrick Collins (youtube)
Mastering Solidity (Udemy)
Cryptozombies.io (E-learning website)
Before committing all your time to solidity, I recommend taking at least a quick look at Algorand as an alternative.<p><a href="https://developer.algorand.org/" rel="nofollow">https://developer.algorand.org/</a>
If you are looking to learn solidity and get a job the best option is metana.io - they will teach solidity comprehensively, help you build your dapp portfolio and also make sure you land a job in web3 development as well.