In a medium sized pan add the dry ingredients: sugar, cocoa powder, cornstarch and salt. Whisk together the ingredients so they are all combined. Move the pot to the stove top.
Measure out 2 cups of milk and whisk it into the dry ingredients. Turn on the stove to medium heat. Add the additional 2 cups milk, butter and vanilla.
With the heat going constantly keep the whisk going. The lumps at the top will eventually disappear so be patient. Keep stirring until the pudding starts to thicken--this takes about 5-8 minutes so be patient as you need to stay and whisk the pudding the whole time so the bottom doesn't burn.
When you can dip a spoon into the pudding and it coats the back of it you can take it off the heat and put into serving bowls.
If eating warm give the pudding at least 10 minutes to cool down and firm up a little.
For no skin: cut wax paper to fit or plastic wrap pressed down on the top to prevent the skin from forming.
If you want cold: put it into the fridge for about half an hour.
Serve warm or chilled. With or without whipped cream. Enjoy!