Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Best way to get into blockchain development?
42 points by bitcoin01 on June 2, 2022 | hide | past | favorite | 32 comments
Hi HN, I'm a software dev with 10yrs XP. Mostly mobile and gaming.

I'm interested to take the leap and go fully into blockchain/solidity.

I'm looking for some bootcamps, or online learning platform that can guide me towards landing a position as a solidity developer.

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:

Blockchain Fundamentals: https://github.com/ethereumbook/ethereumbook

Practical Solidity: https://solidity-by-example.org/

Crypto Zombies is an amazing beginner step by step course to build a blockchain game: https://cryptozombies.io/

Finally, ethernaut is a series of increasingly difficult security challenges to learn about risks, exploits, info sec for blockchain dev: https://ethernaut.openzeppelin.com/

Oh, and any Patrick Collins tutorial video on YouTube (solidity, chainlink, hardhat, truffle, brownie, so much more)


Crypto Zombies is excellent and I highly recommend it, but keep in mind that it was built using an older version of Solidity and if you try to do some things the same way in newer versions of Solidity your code will break.

Like I think one thing it has in there, for example, is when you push an item onto an array it returns that item, so they have you initialize a variable to that push. The very next version of Solidity changed push so it's a void return, so you can't do that outside of the Crypto Zombies tutorials.

Most of the changes are small enough to not be a big deal, just keep in mind that some things you're being taught are probably not the way things are done now.

Best practices have changed a lot since Crypto Zombies too, especially if you want to support new ideas like Omnichain or save gas using contracts like ERC-721A.


Ilove Crypto Zombies


Solid advice! and to add, 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.


No, you just made an account spamming this. I hope this gets removed.


From a traditional Dev perspective, blockchain programming can seem really weird.

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.

But this is what I have found to be the strangest part:

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.

This produces two weird side effects:

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!

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.


> 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.

That makes me think of the game Shenzhen I/O: each component cost money, each executed line of code draw power, you have to optimize your circuit to match your assigned power and price goals.


Another side effect is that you have to now think of separating the expensive parts of the code from the non expensive parts because that code has to be offloaded from the blockchain itself into side chains or something else.

Security is another aspect that has to be brutally evaluated, even at the OPCODE level. This is really strange.

TL;DR it's almost like writing assembly level code with a 1000% emphasis on security, despite writing code in a high level language.


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.

Then decide wether you want to jump on the blockchain/infrastructure bandwagon (Go, Rust, etc.) or the smart contract/app bandwagon (Solidity, etc.).

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.

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.

Some repos:

https://github.com/OpenZeppelin

https://github.com/ConsenSys

https://github.com/ethereum

https://github.com/input-output-hk

https://github.com/solana-labs


why should a dev become a blockhain developer tho?


I’ve enjoyed the challenges of learning about distributed systems, consensus, formal methods… Whatever one might say about crypto in general, blockchain projects can let you work on some things that are fairly hard to find otherwise.


Because it is fun and full of exciting opportunities?


As is machine learning, cryptography, learning Cantonese and snorting cocaine. Is it special in any way though?


You do know that most faang employees work on methods to maximize ad revenue right, because last I checked google or Facebook weren't in the business of trying to cure cancer? What about Lockheed-martin or other companies making missiles that kill civilians for their oil?

Blockchain is just a technology, one shouldn't have such strong feelings against it just because one is a contrarian and lots of idiots are shouting that it'll end world hunger or building scams using it.

You speak of machine learning and cryptography, both are tools, some use ML techniques to discover tumors in medical images before humans can spot them, and others use it to analyze your data to know which product should be advertised to you to make you spend more money on useless things.


> Blockchain is just a technology

I am definitely a cryptocurrency contrarian, so I was going to stay out of this thread - it wouldn't help OP to have people questioning his fairly straight-forward request.

But I don't think there is such a thing as "just a technology". Technology comes out of people's desires, and you can't disentangle it from the context it's created in. You can argue that blockchain is just an append-only database, but that ignores all sorts of externalities its adoption is causing.


This would be true if cultures didn't change, but they do. Switch your argument to something else, say splashing water on fires using tools. By your logic the technology can't ever be disentangled with the purpose of extortion, a bad purpose. Yet time passed and now firefighting isn't an extortion in which your house burns down unless you pay the firefighters. In that case, splashing water on fires really is just splashing water on fires. It also isn't like the business model was without perverse incentive - start a fire and you potentially get paid for putting it out.

This isn't me saying you're wrong that people are making a mistake in ignoring externalities, but more that the reason why it is a mistake isn't that they correctly articulated one component in the problem they were thinking about - its because they ignored the other stuff which interacts with it.


Not everyone needs to have interests, I guess...


Two things really helped me. First was the series "Ethereum from scratch" by Matt Thomas on YouTube.

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.


Are you working in the blockchain space now? If yes, can you share how your experience is like? Type of projects, pay, opportunities etc


I've been out of it for a couple of years. Not because I disliked it, just had other opportunities come up. I expect some things are very different today and some the same. Pay was great, it has only gone up since. Projects are people are extremely varied; some of the most talented people on the planet working on compelling ideas to scams and more general time wasters. Sometimes all together in the same company.



I can recommend these bootcamps:

- https://buildspace.so/ - https://www.learnweb3.io/

If you need a complete introduction, then look at:

- https://github.com/ethereumbook/ethereumbook

If you want to get started quickly with Solidity:

- https://solidity-by-example.org/


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.


Find some grifters who need a coder to get going. The coding itself is like anything else.

Make sure you are paid in actual dollars or euros.


Many great recommendations already. What I found the hardest was to know _which_ tech stack to learn. Are focussing on Ethereum, Bitcoin, Polkadot etc.

Want to work on the chain itself, on an application that communicates with different chains, Smart contracts etc.

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.

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.


Princeton have a MOOC where you build a basic blockchain from scratch, maybe on EDx. I recommend that course but can’t find it on my phone right now!


There are so many well documented open source projects in solidity just start making your own.

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.

https://developer.algorand.org/


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.


ethereum.org excellent source for all sorts of information for all skill levels. great place to start your journey down the rabbit hole.


If you look at the web3 docs and solidity docs, that gets you 95% of the way! An course can be nice to ease into it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: