Skip to content

Latest commit

 

History

History
40 lines (21 loc) · 6.3 KB

how-to-learn.org

File metadata and controls

40 lines (21 loc) · 6.3 KB

How to learn these ideas

Learning hard concepts in Computer Science can take a lot of time. Along with reading the literature, grounding these ideas by working with them in an interactive editor would be of great aid to the learning process.

Prerequisites

Learning interactively

One of the steps that helped me was learning to program in a language with recursion. My previous exposure to this was languages where a procedural/iterative mode of organization was preferred like Javascript and Ruby, switching to Scheme by learning HtDP helped me a lot. Once I had a working knowledge of how computational structures can be built up and processed recursively, I got a foundation to ground the abstract ideas I learnt and try them out using a development environment.

Dealing with the barebones concepts

Once this was a strength, the next thing that was of immense help was to learn Lambda Calculus. It is a language with just three primitives (variables, abstraction, combination) that has deep implications for the mathematical side of programming languages. I have put together an (incomplete) guide to learning it here and run a twitter thread that captures the beautiful resources that I find along the way.

Once you have understood Lambda Calculus and is fluent in the notational language that is used to talk about it, you would have a good starting point to explore the literature further. And with enough practice would be able to start understanding about the ideas being talked about and understand what import they have for daily programming practice. I am at this stage and it is leading me to different directions to explore logic, algebra, type theory, geometry, analysis, number theory, category theory, and relevant literature that you see linked here.

On Mathematics required to study the subjects

Mathematics is a scary thing for most programmers, and I think for the right reasons. The dense symbolic paradigm that current mathematics is enmeshed is only accessible to trained experts in this runespeak. And that too, only after a good time of working with them and understanding what the symbols mean and how you can use them together to signify things and make your findings tractable. While symbolic setup has helped us hugely in advancing the sciences, there’s something about the surface structure and deep structure to be said here.

Mathematical symbology can be thought of as the surface structure of what you learn, but they signify the deep structures of various mathematical constructs. When you algebraically denote x = y, interpreted graphically, you just described a line. In a similar fashion most of such mathematical surface descriptions have a semantic counterpart that mathematicians have access to in their mind’s eye. Getting access to this space is what I consider to be the most important stuff.

If this is where you are stuck, I would just like let to know that it’s natural and mathematical notation could do a better job at improving the disemmination by making it interactive. One such great resource is Immersive Math and another one is the terrific videos by 3Blue1Brown

What I think we need is something similar to that but for computing where the abstract algebraic and categorical structures are grounded in an interactive environment that will enable us to explore these structures. But that is something I’m working towards and one of the motives behind starting this study.

So what I can do at this point is to encourage you to go through those resources by keeping the semantic meaning of the ideas you learn in the back of your mind and try to slowly acquire a knowledge of the big picture of how these things fit together. Mathematical symbology can be thought of as a minimal programming syntax in which the ideas under studies are couched. Thus the ideas are stripped away of distracting details and you can focus on inspecting their different properties by working with the notation.

Motivation and deep focus

Motivation is central to learn much amount of stuff. One thing that drives me is the morphism of how one thing changes into another which I think points at a universality of how these concepts share an identity in the way they display manifold vagaries of their appearances. Going beneath the surface, you are able to witness parallels as you go deeper. To really understand this you need to focus deeply on tough math subjects for long periods of time. I have come to realize that mathematics is not just about learning ideas or propositions and then applying them to solve problems; but it is also at the same time working on yourself to improve your focus and get into the flow to explore deeper ideas and form conceptions that make the complex ideas tractable.

There is something to be said about setting up the environment around you to make this easy to achieve, but I need to reflect on this part more to articulate how one might go about setting up a conducive environment to learn tought concepts better.

Getting stuck

A common observation during these studies is that you’ll often become confused, stuck, or even at loss on how to even conceptualize a novel idea that you just come across. It is these points of inquiry that I think are very valuable in the learning process and what you do when you get stuck determines the learning outcome.

A trajectory that I constantly recourse to when coming across a concept that I can’t understand is to refer to other resources on the same material that would give me a different perspective on the subject. This gives multiple view/inspection points to the object of study and it really helps in connecting ideas together and gives you a richer conception for the import of the ideas being studied. This in many cases has given me motivation to explore related material. And then if you go back to the stumbling point, it would make much more sense and you would be able to see it in a richer network of concepts that gives it meaning.

Hope that helps in giving a working base for people who are intrigued about these connections and feel free to touch base with me on Twitter if you come across much difficulty when learning.