I have the book Conceptual Mathematics on my shelf that is good for beginners but I found it was too advanced for me at the time. As someone with a math degree the book would probably be excellent for you.
I don't claim to know Category Theory, but I came across it when doing exercises in the beginning part of Chapter 0 by Aluffi. It was very terse, but still understandable. The video seems to be much more relaxed in comparison. It is even more relaxed than Awodey's book which is a much better intro to CT than Aluffi's Chapter 0. In short, it reminds me of Conceptual Mathematics: A First Introduction to Categories by Lawvere/Schnauel a little.
I will try and sell you on this.
Group theory, as you probably know, is where we start with algebra. The study of how an operation works at its most basic level and how to combine these very basic operations together. This literally is arithmetic, and creating arithmetic out of everyday relationships is the basis of a numerical processing of the world around us. As Maclane said, adjoint functors arise everywhere. Adjoints are monods. Groups are essentially monoids. Groups are the introduction to this categorical study and this is the foundation of how we approach everything algebraically. We can measure everything that happens in the universe and apply analysis to estimate 'things/relationships', but algebraic understanding gives us the qualitative description of how these 'things/relationships' interact. I consider group theory to be the single most basic and important subject that every educated person should study and incorporate into their reflections about life.
A pity about this book that it is written as a dialog with children.
Conceptual Mathematics by Lawvere (the inventory (or discoverer, whatever philosophy people) of Categorical Logic) is a pretty good introduction to thinking about life categorically.
On reflection of this post I don't think I sold this very well. Fuck, saturday night drunk commenting on group theory on the internet. Shitballs. This stuff is badass mofo.
I haven't read this book, but I have read a more advanced book with a common coauthor that was extremely good. The book I linked to is actually intended to be accessible to someone of your level. I won't make promises that it will be worth your time, but I think it's worth looking into.
I've always wanted to recommend this book to someone who knows no math. I find the writing infuriating. It is a dialog but this approach to dialog totally sucks. On the other hand, this is a stunning introduction to categorical logic. It will not help you solve problems etc. but I can guarantee that this book will change your entire outlook on the world.
There are two fairly disparate angles on what I'm doing here, the prolog-ish egraph side and the category theory side. I've just absorbed the little bits I know via osmosis over time so I don't feel like I have a cogent single thing to point you to, but here we go.
For prolog, there are many books. I like https://www.metalevel.at/prolog as one source but what I'm doing here is a bizarro prolog anyway, so an in depth discussion of prolog perhaps isn't that relevant.
For egraphs, you can check out the egg paper https://arxiv.org/abs/2004.03082 and some of the other posts on my blog which are more explanatory than this post.
For category theory, I'd suggest https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/. I might also suggest https://www.amazon.com/Conceptual-Mathematics-First-Introduction-Categories/dp/052171916X https://www.amazon.com/Topoi-Categorial-Analysis-Logic-Mathematics/dp/0486450260
Yeah, I've just never been shown a problem where this stuff gives deep insight, and until I see one and understand it these are just gonna be arbitrary definitions that slide right out of my brain when I'm done reading them. I'll definitely give the book a look - is it motivated with examples?
The only book I have on category theory is Conceptual Mathematics: A First Introduction to Categories, and I must say, I'm not a fan of it - too intuitive, not detailed enough, not well organized, not formal enough - should have gone for MacLane instead.
what is your math background? bachelor's, master's, ph.d.?
as someone with bachelor's and master's degrees in math who has been successful in their, still very young, career, i feel like i can offer some advice. note that i also have taken a decent amount of courses in physics and electrical engineering as well, and i've worked professional for about 3.5 years.
my first general advice is to not pigeon hole what you consider to be using mathematics in the workplace. depending on your background, the applications of math will often look nothing like what they did in a pure program. but that's okay! in my opinion, if you take a step back and look at mathematics as the science of structures and patterns, then you have suddenly widened the field of what it means to use mathematics in application and in a job. mathematics teaches you about composition, things acting on other things, inputs and outputs, looking at the extremal situations (i.e., finding boundary conditions and behavior at the extreme ends of your input space), defining things (this is more important than you think in the work place), categorizing or characterizing systems, etc. so you might not be taking derivatives, doing proofs, mapping things to manifolds, and other more math things (some rare jobs have these things though), but if you are using any of the techniques and skills i just listed in the broader sense, then in my opinion, you are applying mathematics.
for example, defining things. this is something mathematicians put a lot of work into, as not only is the act of defining is important, finding the right definition is equally if not more important. this is something that people from other areas struggle with, and it causes problems in the workplace. you'll have people talking about similar things in different ways, and the mere act of writing a definition down will help tremendously. i did this once (well more than once). as simple as it may seem, i put some thought into defining a concept. i literally wrote down a definition that THIS SET OF WORDS means THIS. no matter how pedantic or semantic you think this may have been, it helped tremendously because we began to construct software and a process centered around this definition, allowing us to build up our system using this definition as the foundation. it worked because when we saw THIS SET OF WORDS in software, documentation, process, we all knew what it meant in a strict way. there are tons more examples of using this type of mathematical thinking in the workplace. i recommend reading something conceptual mathematics: a first introduction to categories to educate yourself on thinking in terms of structures and things acting on other things and the art of insight in science and engineering: mastering complexity to get some very concrete ways to apply scientific thinking to complex problems.
secondly, i can only say that learning how to program and develop software will take you a long way. i can guarantee that the experience will pay off. software engineering is not the most diverse are of work, but i don't know of a scientific field beyond biology that isn't male dominated. also, there is a difference between software engineering and using programming. i mentioned this in another post here, but software engineering, like other engineering disciplines, sort of defines your output as software. in software engineering you are engineering software to be robust, maintainable, usable, flexible to additions or modifications, etc. using programming as a tool, just like using other outputs of engineering disciplines, does not necessarily make you a software engineering. it's a fine line that obviously breaks down in some cases though.
i would recommend learning to program. i highly recommend learning C#/F#/.NET in that this casts your net very wide. not to mention these are easy programming languages to learn in the short term, are very powerful in the long term, and are used in a wide variety of ways. they also have massive toolchains, a world-class IDE (visual studio community is free), and so you aren't left to worry about bullshit you don't have to like you will with other languages. they help you get the job done. python is another one i would learn. it's used in many, many scientific applications. in my opinion, you would not want to build a large, complex software system in python compared to C#/F#, but it gets you going fast and is very easy to learn at a basic level. then i would recommend taking a look into languages like LabVIEW and MATLAB. these languages are getting you more into the application side of things and outside of more traditional programming languages. but the thing is, these areas typically lack strong software engineers because most people learned them on the fly and on the side. if you learn to treat them as general purpose programming languages, then you can have a very powerful combo. also, these two languages and environments will get you very close to scientific and engineering applications, as that is their sole purpose.
i will mention though that the software engineering world tends to be very, very conservative in their hiring processes. they do not typically value high-level, conceptual thinking in programming interviews. they want you to know a language very well and want you to be able to solve specific, algorithmic type problems on the fly. if you can't, then they think you can't write software and do the job. i highly disagree with this approach, but it's the facts. so i recommend trying to get industrial experience somehow. get internships. apply like mad because you have to get this experience as a mathematician. people don't understand high-level mathematics and the truth is that engineers get a little intimidated by it, which can hurt your prospects. you have to convince people that you can get the job done and not deviate into "math wonderland".
even if you want to go into more business oriented fields like actuarial work, quantitative analysis, business analysis, data analysis, etc., knowing how to program and, even better, how to develop/engineer good software will take you much further in those careers. software is a powerful tool. software development doesn't mean you have to develop iOS apps. however, taking the hit in a traditional software engineering environment for a few years can really help you leap towards more scientific jobs once you get that experience. people really value people with backgrounds in math and physics with professional experience in software development. these people fit the mold of what it means to be a systems engineer. systems are all around us, are becoming more complex every day, and are difficult to understand. if you are able to throw a strong math/physics background and software at these problems, it's a very powerful combo that people need.
and wouldn't you know it, systems work is very rewarding. you have to integrate multiple pieces of the puzzle, which means you have to talk with the people providing these pieces.
hopefully this helps. i've rambled a bit, so hopefully it's coherent in a way. feel free to ask me any questions or to clarify something.
https://drive.google.com/file/d/1jZDkhZlOCuaAq2ILjMzVQiv4vOufK4WO/view
Also like this but this is more of a middle school/ highschool audience https://www.amazon.com/dp/052171916X
Category theory seems easy enough. I have been reading this book: https://www.amazon.com/Conceptual-Mathematics-First-Introduction-Categories/dp/052171916X
Conceptual Mathematics: A First Introduction to Categories https://www.amazon.com/dp/052171916X/
I love this book, personally.
as a general answer, you gain mathematical maturity just like you do in life: try things, take some chances, make mistakes, learn, and then rinse and repeat.
more specifically, i disagree with your teacher, as set theory is based upon logic and requires little mathematical knowledge. that being said, it's also incredibly boring and tedious. i would recommend taking a look at the book conceptual mathematics: a first introduction to categories. it will be a challenge, in a good way, but it will show you the type of thinking that is much closer to how mathematicians think.
there's also a book creative mathematics by h.s. wall that will also teach you how mathematics is done.
both of these books are treasure troves, attackable through some effort by a dedicated high school student since they require very little knowledge (algebra is all that is truly required), and are great examples of what it means to do mathematics and gain mathematical maturity.
no problem. enjoy the journey! :)
as i mentioned in another reply, it's easily my favorite area of math, and i am frustrated that these books were never recommended by anyone (or didn't exist in some cases) while i was in my undergraduate studies.
i feel i should also at least mention conceptual mathematics: a first introduction to categories. it is very approachable for an undergraduate, and having knowledge of basic category theory and the intuitions it provides would provide exceedingly helpful for the very "functional" experience that is modern differential geometry. a primer of infinitesimal analysis could also provide a unique viewpoint when learning the traditional material, as it really explores the idea of what we mean by infinitesimal or differential and the continuum of the real line. it's less approachable than the conceptual mathematics book (which is extremely approachable and excellent), but you have high potential of gaining some very unique insights.
i feel like all i do is recommend these books on here, but that's really because they are excellent and unique.