I’m also new to Hugo but I’ll give it a bash at answering your question.
A tip to start with. When you run the local hugo server, make use of the verbose switch which will give you a lot of information about what is going wrong:
hugo server --watch --verbose
Firstly, in your site wide config.toml file you need to include the following:
[Taxonomies]
tag = "tags"
category = "categories"
...any other desired taxonomies...
Then in your blog post front matter (toml format) you could have the following category and tag listings:
If you want an index.html file listing all categories at {baseurl}/categories/, you should place a template html file in the following directory:
<root>/indexes/indexes.html
And finally, in order to display all the blog posts within a particular category, in your layout folder you could have one of the following template files (listed in the order of priority - order obtained from a warning message generated by the verbose flag mentioned above):