Progress through projects

Reading about Solidity is... boring. Like any other programming language, the most efficient way to learn is arguably through projects.

Truffle pet shop

The Truffle team has a great tutorial which walks you through setting up their development tool to writing actual contract code.

This seems like a logical good first project.

In-browser development

Just to expose you to different development tooling, this tutorial has you work right from your browser.

(There was supposed to be a third part but as of this writing it doesn't exist)

Afterward you'll hopefully have a good idea of what tooling you prefer.

Your own "Cryptokitties" game

Finally, another fun project could be writing your own Ethereum game.