My recommendation is the NAND2Tetris coursera course. You start with a single NAND gate and put together more complex gates building upon the previous abstraction. Part 1 covers things like creating Muxes, RAM, and an ALU in a stripped down HDL. Part 2 covers the software stack picking up after having created an assembler but I haven't taken it yet. Perhaps this is isn't tailor-made for jumping into FPGA fast but it helped fill in a lot of blanks for me coming from mostly software world.