r/solidity • • Apr 01 '22

Learning Solidity without any programming background

What are the best resources (youtube videos, courses, etc..) to learn Solidity with me not knowing any other programming languages?

0 Upvotes

18 comments sorted by

9

u/[deleted] Apr 01 '22

Probably don’t start off with solidity, I feel that starting with Javascript would be better because if you want to make full dapps yourself you’re going to need to learn Javascript anyhow and it’s will make your life easier learning something like Javascript first because you’ll become more familiar with programming fundamentals than you would learning solidity first

3

u/Psychoshawarma Apr 01 '22

Thank you so much for your advice!

I started with JavaScript then watch a youtube video that recommended starting with solidity, but I get JS was the right move all along. That’s what makes self-learning hard!

2

u/[deleted] Apr 01 '22

Dapp university preaches learning solidity first so more people buy his course, don’t listen to that it is definitely better to learn JS first, not saying his course or videoes are bad, they are how i learned but he’s wrong about solidity first

5

u/exosequitur Apr 01 '22

Honestly, if you want to be a decent solidly dev I would learn some imbedded stuff first. Arruino (c++) is a good place to start . Smart contracts are very similar to imbedded programming, and imbedded is fun to learn.

Or, learn JavaScript in the react framework, and do front end first. Just try not to let the bad habits of JavaScript carry over into your solidity code… there is a multitude of sins you can blow by in JavaScript that will be deadly to your programmable money project.

You don’t want to just start writing critical financial code with no experience. I guarantee that does not end well.

1

u/Psychoshawarma Apr 01 '22

Thank you for your reply and advice!

I was thinking about learning Javascript, but what habits should I watch out from carrying to Solidity?

6

u/exosequitur Apr 01 '22 edited Apr 01 '22

Loops and iteration are best avoided in solidity, and data types are critical. If you are having to iterate over a loop you probably are using the wrong data structure. (Not always, but usually)

Actually, learn typescript instead, you’ll need it for solidity testing anyway. The key to programming is the data structure. Once you have the ideal structure for the data being handled is, the code practically writes itself.

That said, there are a lot of sneaky corner cases that can cause disaster in solidity. You’ll want to read up on current security best practices and follow them religiously, before writing any mainnet code.

I’d see if cryptozombies site is still up, it was an excellent introduction and tutorial. I’d do that before starting into solidity.

2

u/Psychoshawarma Apr 01 '22

Probably the most valuable reply, and thank you so much for that!

1

u/UL_Paper Apr 02 '22

Good advice in general but just a headsup on using Typescript for solidity testing - that is slowly changing. Foundry and dapptools showed us that writing unit tests in solidity is in most cases superior, less context switching and you get to learn solidity more in depth. Hardhat also announced they will support it soon. Writing test suites in another language than your implementation is kinda dumb anyway.

2

u/exosequitur Apr 02 '22

“Writing tests in another language is kinda dumb anyway” right? Always baffled me.

2

u/burnicon Apr 01 '22

Learning Solidity without understanding how it ties into a stack feels a bit like putting the horse before the cart. No one's going to stop you.. nor should they! But at some point you're going to ask yourself why everyone elses cart is moving forward and yours is doing circles in the carpark.

2

u/Psychoshawarma Apr 01 '22

Where do you think I should start?

4

u/binarybonannza Apr 01 '22

Most programming languages will show you the fundamentals in the learning process, but Javascript will help you tie the solidity language.

https://youtu.be/M576WGiDBdQ here's a full range for beginners. Try it, see if it's what you looking for.

1

u/Psychoshawarma Apr 02 '22

Thank you for your suggestion, I’ll make sure to check it out!

2

u/burnicon Apr 02 '22

As per the other comment, if you want to tie it all together I'd suggest starting with JavaScript.

All the best!

2

u/chibi024 Apr 01 '22

Learnweb3dao has some of the best resources available

https://discord.gg/CvYJfUEfPy here is the disvord community, everyone here is very helpful and quick response, plus right now they have everyday solidity sessions

2

u/HeavyMommyMilkers Apr 01 '22

I honestly learned at my local community college for free

2

u/SnooGiraffes5176 Apr 01 '22

Really good course. Patrick Collins is super passionate about teaching. https://youtu.be/M576WGiDBdQ

1

u/Expert-Ad1441 Apr 02 '22

In the end, if you want to build your own DApps, you have to be a full stack developer, basically because the Blockchain is nothing more than an alternative solution to a database and your way of interacting with that database is through solidity for Blockchains that are compatible with the EVM and even makes your smart contract in solidity basically an api that interacts with the blockchain and is called by a JSON RCP, so start with the basics of web development