Books for basic HTML and CSS are a waste of time and money. Front-end web is very basic and easy to grasp, but difficult to master. Write websites, look at other people's designs, and complete projects from start to finish with the idea of learning something. YouTube and Stack Overflow are your friends. What many people say is to never go learn a language just to learn a language, but rather to solve a problem you have.
Software is generally pretty opinion-based. I like VS-Code for front-end because I can view images, change color codes with the built in color picker, and make use of the built-in starter templates that it provides. Some other alternatives to VS-Code that many people swear by are: Atom, Dreamweaver, PHPStorm, Notepad++, Brackets, and Sublime. I personally would recommend VS-Code, Brackets, or Atom. Just be sure to pick something that allows you to edit themes so you don't want to pull your eyes out while you're fiddling with code.