I switched to linux when i was already a programmer and comfortable with terminal use, so my experience probably wasn't the same. But the most efficient way to "learn" linux is to just start using it (option 2: doing projects and learning on the way). Get comfy installing packages from the terminal (apt, pacman, whatever) and reading man pages, and everything else will fall into place as you try new things and learn how theyre done. these things take time.
The Arch Wiki wiki.archlinux.org is the greatest thing ever created and will be indispensable no matter what OS you use, though all commands and tips assume the reader uses Arch.