Here is an excellent book if you want to start coding smart contracts on ETH:
It explains the core concepts to start coding smart contracts using truffle. What I like most is how it starts with testing the contract even before writing the contracts.
At the moment Im trying to have a testing node running in arm64 (raspberrypi 8Gb). Setting a testing node in Mac is just one line, I believe is equally simple in linux with common architectures, but it will be good to have it running in a PI for testing.