Yes learning can be fun! Especially with hands-on learning and lessons that include your interests. In this case, the interests are crypto, gaming, programming and zombies.
Loom Network put together a solidity programming course for free. Not only Ethereums solidity is covered but also many other topics like Ethereum basics, MetaMask and web integration with web3.js The course can be joined on https://cryptozombies.io/
Currently the course consists of 6 lessons, and will be expanded by the Loom Network team. I finished the course and had a lot of fun expanding my programming skills. This was my first approach to learn solidity and now I feel prepared to start creating Ethereum Smart Contracts! In my opinion the course is suitable for both experienced and unexperienced users.
Here is an exact overview of the lessons content:
Lesson 1:
How to write Ethereum smart contracts
Programming in Solidity, Ethereum's smart contract programming language
Building games on Ethereum
Lesson 2:
The basics of making a multi-player game
Interacting with other contracts on the Ethereum network
Organizing larger Solidity projects into multiple contracts
Lesson 3:
How to build updatable smart contracts
Securing contracts with contract ownership
Gas and gas optimization on Ethereum
Function modifiers and security checks
Lesson 4:
Payable functions, and how to earn money from your Ethereum-based games
Withdrawing ETH from smart contracts
Random number generation & security on Ethereum
Lesson 5:
Tokens, the ERC721 standard, and creating tradable tokens / assets
Solidity libraries and how to use them
The SafeMath library and preventing uint overflows and underflows
Commenting your Solidity code and the natspec standard
Lesson 6:
Building web front-ends for Ethereum smart contracts using Web3.js
Using MetaMask and Infura to build user-facing DApps
Listening to smart contract events and showing users real-time updates