In case of a blog with 3-4 main categories and each of them have 3-4 sub-categories. To avoid duplicate content should the child categories use rel=canonical to their parent category?
Neither, just use canonicals on the posts and pages. That way categories and author pages are never duplicate, but even without canonical Google has the ability to establish what is what. I recommend you install something like Yoast SEO. I also recommend you get more familiar with canonical links.