HTML means and stands for (HyperText Markup Language) and it's a basic web language and it's easy to understand easy to write.
1-Writing or editing HTML lines.
Maybe a poor Text program will be enough like the notepad in windows. but if you need something more helpful you can use a real time HTML editor like Microsoft Expression Web Designer or just visiting this site http://htmledit.squarefree.com/ .
2-An internet browser or html viewer.
If you have a real-time html editor you won't need this.
To view your lines being translated to the graphical html page :) you will need a browser like internet explorer or chrome, firefox, edge and opera.
3-Learning resources?
Yes you will need a good up to date learning resources like https://www.w3schools.com/html/default.asp they provide good and valuable tutorials.