This is a list of resources that I used in my journey towards learning about Ethereum, Solidity and its security landscape:
If you are like me and want to begin by learning about blockchain fundamentals then start with this intro:
For a deep dive into Ethereum, read the first 6 chapters of the Mastering Ethereum book: https://github.com/ethereumbook/ethereumbook
This is the book I used to learn about the general structure and patterns of the Solidity programming language. It is by no means comprehensive but can help you get started, specially if you come from an OOP (Object-oriented programming) background: https://www.amazon.ca/Solidity-Programming-Essentials-beginners-blockchain/dp/1788831381
Solidity is simple to understand but you need to have some OOP programming experience beforehand. I would recommend Python programming language if you have no programming experience and are looking for a good place to start.
Remix is an excellent online IDE to experiment with Solidity.
Once you are comfortable with Remix, follow all the walk-through videos in this excellent playlist. Better yet, understand what the author is trying to build, code it yourself and then compare your approach.
Now you are ready to learn the Smart Contract security principles. Head over to this excellent post by Sigma Prime: https://github.com/sigp/solidity-security-blog. This post is a bit dated and some of the vulnerabilities have since been fixed but it still has a lot of relevant information.
At this point you may want to upgrade from using Remix to a more feature rich development environment like Hardhat. Here are some resources that helped me:
Now that we have a good understanding of Solidity, Smart contract security principles and Hardhat, it is time to head over to https://cmichel.io/how-to-become-a-smart-contract-auditor/ for solid advice on how to become a smart contract auditor. Christoph Michel is a prominent whitehat in the Ethereum community and his blog is fascinating if you wish to dive deeper into blockchain security.