I'm a Computer Engineering student, with interest in Type Theory and Category Theory and i have a more pedagogical/philosophical question about these areas.
It seems that many researchers in Type theory and Category Theory in general, specially in Homotopy Type Theory, see their areas as a good starting point for any student to learn mathematics. Their philosophical focus point seems to be the complete exclusion of set theory in the beginning of mathematical courses, in favor of the constructivist/type theoretical approach.
From what i have already read, this idea seems also good for computer science courses, but it comes at a cost which is the topic of this question: as a non-mathematician, all tries of bridging the gap between beginners, also called by Terrence Tao "the pre-rigorous stage", and these areas seem infertile.
For example: the only real "beginner friendly" book on category theory is, by far, Category Theory for Programmers by Bartosz Milewski. Steve Awodey's book, even if it states that it is "for everyone else", is, intentionally, filled with examples of higher mathematical structures which complicate rather than simplify its content.
And it does not serve as a beginner book for another reason: it does suppose a more advanced mathematical maturity (what Tao might define as a "rigorous stage" maturity), which is, in many places (like Brazil where i live), developed in more set-focused courses like Analysis, Topology, etc.
I have faith in the intent, so my question is more in the terms of: What books would you recommend on Category Theory and Type Theory that makes one go from "pre-rigorous" to "rigorous", i.e. learn how to prove things while learning mathematics like Analysis does, and suppose no background (at all)? Is there such book?
And more: if you were a professor in an introduction to mathematics course and wanted to teach people that came straight out of school what mathematics is all about using only Category Theory and Type Theory, what book would you use?