Interesting. I'm currently doing graduate school in CS and I'm torn between starting to put in more effort to learn practical stuff for employability reasons and to chase more fun abstract CS concepts. What makes you regret your decision?
@@genericperson8238 well I would probably invest my time on a programming language that can support those things instead on a dummy one. Of course you can change any time but it's much harder (everyone wants you to have experience on the language they request)
@@genericperson8238 I totally agree with Calum Tatum. Do what interests you. There's absolutely nothing wrong with focusing on practical skills that will land you a good job, and you'll learn a lot doing that. The route you take now doesn't have to determine your whole career. If eventually you're not able to pursue your interests through work, then at that point you can make a change and look more into the theory/academic side of things. Have fun!
This is so great that I just want to cry! As a CS student coming from a philosophy background this is a far too rare experience - so much introspective into various sciences. Here is a virtual thank you hug!
I watched this whole lecture series and loved it! If you're tired of the clever metaphors and are ready to cultivate a deeper understanding of Haskell and functional programming, this is a joyful place to start.
Watched this last night, woke up the whole family loling at "Object Oriented programming... you get data races for free." That needs to be a meme if it isn't already.
As a grad student in philosophy with interests in model theory and the philosophy of language, this lecture was really amazing. It was entertaining but also deep and insightful. Also, the speaker has clearly studied some philosophy, which is such a nice treat (given my background). I will share this video to the people I care about, because it is so cool! Seriously, this content is amazing.
Man, just wanted to thank you! English is not my native language, and although nowadays I'm generally good in audio, it is always easier to have subtitles under the eyes.
I asked a popular AI chatbot about online courses on lambda calculus and got a recommendation for your lectures. Who would have thought 7 years ago! Dzięki i pozdrawiam!
I think this lectures deserve to get on the UNESCO immaterial heritage list. Last time I saw something this well presented and inspiring I was reading Godel Escher Bach.
I can't express how much greatful I am for this lecture. It is not only explains the meaning of Cathegory Theory but touches the very root of philosophy. The question on relations of epistemology and onthology is the essential one. That's why there was a very long dispute on reality of universals.
I saw this video in RU-vid and jumped in my chair! Your blog posts about Category Theory and Haskell got me through a semester of introductory Category Theory course. Thank you so much for such excellent resource and high quality delivery!
I went from being frustrated by nested trait bound error in Rust to this channel. Internet is such an amazing place. I watched some other videos but I'm not quite sure its benefit before. Your video pointed them out clearly, thank you. This category theory thingy sounds really interesting but I figure I'd need a couple thousand hours before getting good at it.
Great talk. Do more :) I'm no cat theory expert but your thoughts mirror mine, it's a method for describing patterns, in itself not fundamentally explanatory of any particular field. In that sense it's the most abstract of math yet sort of the least powerful. For example you need to have worked out number theory and logic before finding relationships modelled using categories, I don't think there's much real power in hoping to do it the other way around. However finding relationships between different fields is itself very illuminating in its own right. However, always easy to see patterns when you've first observed and then described particular fields. It's what our brains do best. So you're probably right, it's a tool to help us think and simplify, as much as anything. It's well known our brains love to categorise everything. Often useful, occasionally counterproductive as the nature of reality is not necessarily the one we've evolved to cope with at the classical level.
After this very first motivation lecture I've decided to watch all lectures and learn this amazing theory in deep.Especially after 37:50 the result you got was amazing. Bartosz you are a great talker and you should be an amazing teacher. Amazing stuff, thank you man.
just loved how concepts were broken down to the point of elementary particles. And how the whole universe is unified and follows the same principles which are yet to be discovered as a whole. It’s truely amazing. Thankyou for your lectures :)
At 19:53 functor is on his mind and almost out of his mouth. But he decides to hide this abstraction for now. Making his introduction a functor. Great teaching! Thank you, I'll watch it all!
It seems that you are way more excited while you're teaching than when you posed for your profile photo. I really thought you were going to be boring. Thank you!
21:21 practical motivation of learning category theory in terms of programming 37:23 abstract approach used in most of academic subjects 46:04 meaning of category theory
Hi, I'm a programmer in China. I love your lectures. This is one of the best series of category theory videos! I wonder if I can share them in some video site in China. Because lots of our programmers have some problems in directly accessing them on RU-vid due to the GFW. Of course I will tag the author and the original links.
I think these views about non-composability in nature would fit very well with qbism. Well presented interesting take, and one I completely agree with!
Amazing lecture. I wish my teachers were remotely as passionate about what they teach! I have a question. When we talk about composability, we could think about atoms in the context of time-space as you mentioned and say it's not composable. Or we can talk about the laws of physics that give rise to quantum mechanics and say we have a finite distinct number of laws that explain all systems. So my question is, in this sense, do you have an example of something that is not composable or do you agree that the first principles describing the universe is always by definition composable? . [And maybe saying that there are things that cannot be composed is a moot point because by definition we can only 'think' about logical things that follow cause and effect (and therefore can be broken down into a finite set of first principles). How can we think the unthinkable?...]
There are several examples of non-compositionality in physics. Entangled particles: we try to decompose the so-called two-particle state into two single-particle states and it fails. The result is the "spooky action at a distance." Strong interactions between quarks are only decomposable when they are squished close together (asymptotic freedom, en.wikipedia.org/wiki/Asymptotic_freedom), but when you try to separate them, perturbation theory breaks down. Failed attempts to unify quantum theory with gravity are probably also related to lack of composability (naive quantization of gravity blows up). It's possible that we'll find new theories that will solve these problems, but there is no a priori reason to believe that the Universe is 100% decomposable.
@@DrBartosz Yes, we fail to correctly decompose entangled state into a sum of states, but on the other hand physicist managed to approach the problem from a different angle and decomposed the nature into a set of distinct quantum fields of different types -- electromagnetic field, electron field, gravitational field etc. So in some way they continue what their brains are used to do -- divide and conquer :)
for polyglots out here: "Idris is a general purpose pure functional programming language with dependent types. Dependent types allow types to be predicated on values, meaning that some aspects of a program’s behaviour can be specified precisely in the type. It is compiled, with eager evaluation. Its features are influenced by Haskell and ML [...]" - www.idris-lang.org/
I am a programmer in C/C++/Java/Python as well as software architect. I heard about Category Theory in context of Scala. I have heard about Haskell which is like the holy grail of functional programming with code shortened to mere pseudocode. I have never played with Haskell but played around in Scala (Not an expert).
Problem with OOP is not just concurrency and/or parallel execution, but composability or better said, how rigid OOP behaves in that aspect. We all come out of college with story of Animal>Bird>Chicken examples of inheritance, but in real world it's almost never like that. What you end up is using design patterns to get over some of disadvantages of OOP design. OOP is a bad habit that looks good only on black boards and power point slides. Classical structures, composition and dep. inj. are much simpler and more powerful way of structuring programs.
OOP does not equal inheritance. It doesn't even require classes. Education is always lies to children and it would still have been if it where in FOP. Its nice though to see that you have started to see beyond the those lies, but don't blame your path, it was probably necessary to get you where you are now. To quote Michael Feathers: "Good Object Oriented Programming tends to look like Functional Programming."
So where is this "good" and "correct" OOP language so many of you are talking about? If it's created - please name it. If not - how can you be sure it'll be actually so "good". Facing arguments, OOP propents say "is not about inheritance", "it's not about mutability". What they don't see - if they are right there is no OOP at all because it has no definition. But it's so obvious they just protect their coding habits / career / etc. or justify their inability (either objective or subjective) to learn math. "Good OOP looks like FP" is meaningless phrase just like "Good Assembler looks like Haskell". Funny but meaningless.
It's true that OO doesn't require classes. Prototype-based OO for example, does not use them. It's also true that OO does not *equal* inheritance, but inheritance is one of the defining characteristics of OO, the other two being encapsulation and polymorphism. Whether this is a good way to construct software is another matter, but in terms of definition this is how things are. Now, you may try to emphasize composition instead of inheritance within OO modelling, but this is also another matter. This having been said, I much prefer functional programming to OO...
Evan490BC thanks for the great response! I would still dissagree on what is the defining charecteristics of OOP. if you look across all of the OOP world I would suggest that packaging data (not neccisary mutable data) with behaviure is the one thing they have incoming. also dynamic dispatch is one of the most common, like polymorphism.
Fair enough. Inheritance is not necessarily bad, the problem is that people often use it to capture relations other than "is-a". I agree with what you said about packaging data with behaviour; this is what I meant with "encapsulation". However, this is also the biggest problem with this paradigm, especially in a parallel setting --- Bartosz is an expert in this. Regarding dynamic dispatch, it's great, however, for the field that I am interested in, which is numerical computing, there is a speed penalty, if you use it too often. There are some compiler optimisations (devirtualisation), but they are not mature enough yet, I think...
Thank you Bartosz for an absolutely fantastic lecture referencing diverse branches of science, mathematics and philosophy and drawing them together in such an inspirational and thought-provoking way. Incidentally, I put Dark Side of the Moon on loop in the background, dropped acid and at 22:09 God told me he was a monad in the category of endofunctors, if that helps.
Clearly, category theory is about how it turned out that there is 0. And that he is an existing non-existent, as a category of mind. In the sense that if you have made a section of the cube into two plane parts. Whether you made this section or not, it depends on your choice. Based on the fact that - is there a boundary between two parts of the cube if its thickness is zero? Not to mention that based on the size of the point... you can't even think about it, but you replace it with a certain neighborhood, as a metaphor. Which, based on the declared size of the point, is infinitely larger than the point itself.
If you simply make all your objects immutable at the point of construction, concurrency is not a problem. You can do all your mutability stuff in called methods, instead of instance data.
"Maybe structure is just a proper of our brains" ... I think the answer is that there is structure in the world and our brains adapted to the world, so they recognize some of the world's structure ... "And if we can't find the structure we just give up" ... I would rather say that if we cant find the structure we make it up ... take grammar for example. The real problem then is how can we make sure that we do not delude ourselves too much?
Could the need for decomposition of problems and composition of sub-solutions simply stem from the limited capacity of our minds to comprehend bigger problems in their entirety? If that would be so then the universe is one big system which we can only comprehend by decomposing it. However, as a single system it's not really decomposable as we discover with quantum mechanics for example where division creates new states.
Yup! That's exactly what I'm saying. We might not be able to prove that the Universe isn't decomposable, but it sure seems less and less likely; and quantum mechanics with its entangled states strongly hints at the lack of composability. From that perspective, it would be a miracle if the Universe were comprehensible. Unless there is some kind of anthropic principle that says, life is only possible in those universes that are comprehensible. But I can't think of any reason why that would be so.
Prof Milewski - are you in Sydney today ?? I think I walked past you and very much regret not stopping you to hi and expressing how much I enjoy your lectures !! I hope you enjoy your stay here. If that wasn't you - then you have have a mirror image on the other side of the planet :-)
39:45 Conway's Law: organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations." (Wikipedia) If our Theory of Everything therefore represents our Brain given Conway's Law, is our solution constrained by our Brain's ability to reason over the effectiveness of the solution? a la "Not only is the universe stranger than we imagine, it is stranger than we can imagine." - Sir Arthur Eddington If a Computer presented a Theory of Everything, could we recognize it as such?
Wow! Thank you for all this insight. This stuff rely makes me wonder... Do you have some preferred approach to understanding the universe then? Just this thought - now that we are self aware beings - can we just generate a brand new approach in understanding the universe ? How else could we approach it? What is the 180 degrees approach from what we are doing now ? Like just try to see / try to imagine if there isn't some other way out there :) ? Why not?
Which books do you recommend for category theory, one that it is rigorous mathematical and one that it is more for computer science? (btw great work on putting your videos online, and for your blog)
Aside from Mac Lane's book, there's also Steve Awodey's book, simply titled "Category Theory", which you might find more accessible (though it's still fairly dense). The best text on the subject so far however is the book version of these lectures collected on Bartosz's blog, which uses less mathematical notation and more hand-drawn piggies :)
is it alright if I am 18 and learning this.? It is not a flex or a brag, just need honest opinion because I have just noticed that even though I am loving this stuff more and more, all the people here commenting are almost 30+ at least(judging from their profile pic). Please advice me in this regard. Thank You ...!!
Wow, I just discovered your awesome videos. Do you also publish some of the exercises? That would be really really awesome? Maybe a few weeks behind the actual course? :) Thanks anyway for these great recordings!
The course is based on my blog series, where you can find some exercises as well: bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
Good day Bartosz, would you mind telling if you're going to finish your super-helpful series? Judging from the contents, there's really some awesome and complex stuff left.
If a particle is a point, is the Universe discrete like if it was made of voxels? You say that it cannot be modelled, so did people try discrete models?