Skip to main content

Command Palette

Search for a command to run...

01. Lygometry. Figuring out what I don't know, yet

Filling gaps in knowledge and addressing deficiencies.

Published
9 min read
01. Lygometry. Figuring out what I don't know, yet
J

I like programming and learning about stuff I find interesting. Particularly interested in functional programming and typing systems.

I have a background in Cognitive Science/Psychology and Mathematics. Sadly halted due to physical and mental health issues arising from getting Covid. Which unfortunately hit me quite hard back on 2020. I'm still dealing with some sequels so I would prefer working from home.

I find it fun trying to find insights that cut across disciplines. I tend to favor the "theoretical" side of things. But I also try to get as much hands-on experience as possible.

I am writing a blog. Trying to share what I learn, and that others might find useful. I try to focus on the unique things I can bring to the table. Hoping to add value to the life of other developers. I always have a thousand ideas racing through my mind, so I don't have any trouble coming up with ideas on what to write. If any, I have a hard time cutting down on the number of things I want to write about :D

On a personal note. I have always been quite solitary and introverted. But I don't think I'm shy. I love videogames and started programming because I wanted to make my own.

Since October last year I'm taking software development seriously. Almost a year since I got a bad case of Covid.

Here's what I started with.

  • Basic knowledge of Python and Data Science libraries like Pandas.
  • Some knowledge of the Processing language.
  • Only faintest idea of how HTML and CSS work. I was aware that JavaScript existed and was somehow used in the browser.
  • Passing knowledge of algorithms, from math class. Never wrote a line of code though.
  • A lot of experience, but no expertise (here's an explanation) with C# and Unity. Mostly useless as it is very Unity-specific.

I have a long love-hate relationship with C# and Unity. But that is a story for another time ;)

So there's me...

I had absolutely no Idea about software engineering. Nay, software. As programming is just not enough to build software.

But I have one thing going on for me.

Come on Jorch! Don't be so dramatic!

I know, I know. But, hey. I have to sell myself, right?

something, something ... personal branding, something... storytelling... whatever... Hire me!

A scientifically-minded approach to what-you-don't-know

Well, the only thing I know how to do is research. Dry, academic, please-just-end-my-suffering research.

So what if I research what I don't know?

Research to figure out what it is that I am ignorant of.

Research to learn what I didn't know I didn't know. But should know.

Of course, I could just watch tutorials. But then I have no guarantees that they will cover everything I will need. And I would place my bets that they don't. We could mull over the economics behind those bets... another time. Let's not get sidetracked.

Besides. If I have to place the completeness of my skill in the hands of someone. I'd rather that someone be me.

Lygometry

The term "lygometry" was proposed by Amin Toufani. To mean the process of measuring "what we know we don't know". You should watch this TEDx talk where he introduces the idea. Here. I'll just embed it in my post

Here's the executive summary.

  • Instead on trying to learn what is already there. Throw yourself at open problems. Either things you know you don't know. Or things everybody knows nobody knows.
  • Solving already-solved problems is for the most part, a waste of time.
  • Don't mistake abundance of information with sufficiency of knowledge.
  • There's an epidemic of knowledge inflation, specially in industry.
  • We have failed to create environments where it is both safe and encouraged to openly say "I don't know".
  • And we have failed to create a culture where people are encouraged to figure out what it is that they don't know.
  • But who does lygometry well? AI and Children.
  • Children keep track of the things that don't make sense to them. They don't hesistate to ask. Their egos don't get in the way. Nor does the fear of being shamed for not knowing. As we grow up we get "educated" to avoid behaving like that.
  • Some of the most sophisticated AI models keep track of hypothesis that don't map the data they are given. That is, they keep track of the difference between what they know and what they don't know. Then use methodical lygometry to home-in into the open questions.

Lygometry: reprise for a software dev.

Let me elaborate a little about what I think this means specifically for software development.

Do you reeeally need that 10 hr video tutorial to learn the basics of Python? Don't get me wrong, FreeCodeCamp is great and an amazing resource. But really?

With regards to following step-by-step project tutorials. You can only get yourself to the level of millions others just-as-inexperienced-as-you developers by spending your time building that "portfolio-worthy" instagram clone app.

At best!

At worst, you are just wasting time. Ask me how I know!

What is knowledge, even.

Traditionally philosophers working in Epistemology (the philosophy of what-we-know and how-we-know-it) have this definition of knowledge:

Knowledge is justified, true, belief

That is. Knowledge is having information which satisfies certain characteristics. But having information nonetheless. I bet It matches pretty closely with what you think knowledge is. Do you search for "memorization" apps? Do images of a brain spring to your mind when you read the word learning?

Well, often times so do I. And with just reason. This notion of knowledge is ingrained in the assumptions of the cognitivist or classical school of cognitive science. Whose ideas are by far the most well-known among the general public.

But you would be wrong to think that that's it. Let me reframe "knowledge" with the help of the philosophy of action (check its entry on the Stanford Encyclopedia of Philosophy if you are curious).

For now, let us arbitrarily change what we think knowledge is. From "having X information" to "being able to perform Y task efficiently and on demand".

Simply. Knowledge is being able to do stuff. Why? Because regardless of whether you have infomation, being able to do stuff implies that you have "stored in your brain" whatever it is required to do the thing!

Be pragmatic, programmer!

...

If you are curious, these ideas of action-orientedness are ingrained on the 'embodied cognition' movement in cognitive science. Here's a general-public-friendly introduction. And here's the Stanford's Encyclopedia entry.

There are roughly three broad approaches to cognition in cognitive science. Representational, Dynamical Systems-based and Evolutionary. All three have important things to say about what cognition is.

Don't, even for a moment, think that knowledge is not "having information". I am NOT claiming that. I am just introducing an additional perspective on knowledge.

With this post I am introducing just a smudge of the perspective of the (very) broad "systems" view. ...

Go even deeper

Then we can go a little bit more into meta-knowledge. What if, the thing that you are able to perform efficiently and on demand is "figuring stuff out"? And what if the "stuff to figure out" is what no one knows. Or what very little people are able to do?

The plot thickens...

That's certainly an ambitious goal. And it is something you will have to figure out for yourself. There's no guide. Obviously.

But we have some pointers towards that goal. Thats what lygometry is for!

I will attempt to show you the way I try to do this myself. Hoping you find value in it.

Here it is In a nutshell.

  • How to research: Turn yourself into a "why" machine. Asking why implies multiple 'whats' along with the relationships they hold with each other.
  • What to research for: Relations between things and between ideas are what actually matters. Not so much the individual ideas, nor what things are. This is an insight I learned by studying category theory. In which you shift the focus from asking what is X, intrinsically, to asking what is X, given the way it relates to the rest of the things in its context. In fact, that change in perspective is the whole point of category theory!
  • How to figure out what to research: Use lygometry!
  • Aquire knowledge from your research: Become able to explain those relations and those why's you uncovered. Remember that we framed knowledge as performance of actions. Also, become able to build that cool instagram clone. Why not!

The plot is now so thick you may choke on it...

None of these steps proceed by use of hard rational deduction. But they are not irrational either. Instead. I go hunch by hunch.

If you have read some of my other posts your mind may be converging into an idea at this moment.

That there is this kind of soft reasoning. That is at the heart of creative exploration. That is very much the type of reasoning that both scientists and children use to satisfy their curiosity. And perhaps, the kind of reasoning some AIs do.

;)

So does this means don't take courses, don't follow tutorials?

Of course not. I am only asking you to reframe knowledge. And to make it a point to get knowledge about acquiring knowledge.

I use courses and tutorials. But with two goals, thanks to this reframing.

  • I should end up being able to perform after that experience.
  • It should shed light into open questions.

That is. I care very little about "acquiring" information. Or remembering stuff...

...

Here's one of the most useful tips I have: invest your time in materials that are just uncomfortably above your level. That way, even attempting to understand will make you grow. I really like Manning Publication's books because they tend to be above my level.

Well then. Where am I now?

So, let me paint a picture of where the "edge" of my knowledge is right now.

  • I am able to write my own abstract data structures.
  • I have a working knowledge of algorithms and data structures.
  • I have some knowledge of theoretical Computer Science (complexity, grammars, languages)
  • I learned how to use Linux and bash
  • I learned what's the deal with NoSQL. I also learned what SQL even is XD
  • I am learning about REST-style architectures and system design.
  • I learned to use Node and Express with considerations towards architecture.
  • I learned about React, SPAs and how to use JavaScript in a "functional" style.
  • I learned about automated software testing, from unit test to E2E

...

  • I'm halfway through the University of Helsinki FullStack MOOC
  • I'm halfway through the University of Helsinki Haskell MOOC

...

  • I'm learning about Content Marketing and Storytelling
  • I'm learning about UX
  • I'm learning about Product Design
  • I'm learning how to Draw (could you guess? XD)

...

  • I'm learning Elm.
  • I'm learning about Algebraic Data Structures and Typing Systems.
  • I'm learning about Functional Programing.
  • I'm learning about software composability, architecture and design patterns.
  • I'm learning Abstract Algebra and Category theory for functional programming. (and for fun :D)

Am I an expert in any of these? No. Not even close. But these are my open questions.

If you ask me to build a full stack app with React, Node, Express and MongoDB I will be able to figure it out.

I you ask me to build a full stack app with deno, oak and Postgres. I may be able to hack my way through it.

I you ask me to build an app with a Yesod backend and an Elm frontend. First of all, I will ask why. But then I will figure it out. You're the boss!

Because, as the title of this new blog series goes...

I Will Code for Food.

...

So, Hire me already? (Epilogue.)

This section will replace the "Epilogue." section of my "writing everyday" series XD

Wait wait wait! You want some book recommendations?

Mind, Body, World: Foundations of Cognitive Science by Michael R. Dawson. A beautiful introduction to cognitive science in a "history of" format. A book everyone interested on the mind should read. And it's available for free!

The Cambridge Handbook of Cognitive Science edited by Keith Frankish and William M. Ramsey. It prresents a broad perspective of cognitive science.

Category theory for programmers by Bartosz Milewski will shift how you think about what programs are. Has surprisingly little math jargon. And is very readable. I linked the book in blog post format. But it is also available on amazon.

...

Please let me know if you are gonna start using lygometry in your own life and work.

See you again... one of these days!


Do you find my stuff useful? Give me some feedback! Getting comments is also very motivating!

Would you like to help me keep doing it? With cash!?

R
RGanga4y ago

This is the first article I took so much time to analyze and contemplate. U must have been really genius to put many of the abstract ideas into this very engaging art. We all have been trained to approach like 'how to get stuff done' rather than concentrating on 'why'. Many of the resources you mentioned are an eye-opening for me (embodied metaphor..haha). Thanks a lot

2
S

First of all, congratulations on being featured! You deserve it. Questions about what we know and what we don't are some of the frequent ones in our minds. If you don't ponder about them, they may create confusion or reluctance to continue doing the work at present.

How do you manage to continue with so many courses simultaneously? Thanks for the book recommendations and it will be better if you can review the courses that you've taken up so far. I am interested to get the review of Full Stack Development MOOC by the University of Helsinki.

4
J

Thanks Swati. I didn't realize this post was featured!

I don't take many courses simultaneously so much as I am stuck on many courses at the same time XD

Those courses from the university of Helsinki are really good. They take some time to explain why and link to many additional resources. And they have you build several projects by yourself. It is completely free and self paced. You don't even need to register. There is also a way to get a certification. But I am still not sure if it is for everyone or just for official students.

I may write a post about the course. But in the mean time, my veredict is: it is really good!

K

Wow! I have been reading your blogs since past few days and gotta admit, this is one of the best!

Your writing style and abiltiy to express thoughts on paper are great, I was engaged till the last sentence without getting distracted even once.

Keep learning bud, keep writing 🎉

4
J

Thank you Kaushal Joshi that means a lot! Getting comments is really encouraging.

I hope I make it worth your time. And that you find value in what I have to share :D

Regarding the writing style, I write in a way that is easy to read for me. As I have ADHD. Reading is very hard for me if there are long sentences and paragraphs. And if people use the passive voice too often.

Sometimes I use the Hemingway app

4
K

Hemingway is dope. Sometimes i use it myself too.

1
M

Thanks for an interesting blog post!

You may enjoy checking out Karl Popper's theory of knowledge.

Lulie's Thread is a good starting point.

1
J

It is very interesting that you mention Popper's. His approach of scientific-knowledge-as-provisional is one of the starting points of the topic of "logics of discovery". The question of whether we can find a way to scientifically study the process of hypothesis-making, which is the most creative part of science.

Karl Popper was very ambiguous, but mostly negative, about it. While other philosophers, like Peirce, defended it. Peirce had a name for it abductive reasoning

Which is one of the approaches to creativity I was attempting to use in my own research. Here, I just mixed it up with the basic ideas of the "embodied" cognitive science movement :D

I really enjoyed that thread! Thank you for sharing Mathieu Lalonde

1
K

So practically how do you suggest we approach learning.Especially for beginners?

J

Hi Kelvin. Here is the simplest way I can put it: Would you be able to teach whatever you learn? In fact. Here's the practical suggestion: Do teach whatever you learn. Perhaps in blog-format! Even better if you infuse it with what you can uniquely offer.

That is precisely what I am doing with this blog. I am new-ish to software development. But I come from a non-cs academic background, so I decided to share my learning journey along with the things I know from outside the software world.

But let me elaborate a little.

There are only two things of real substance that I suggested

  1. Reframing knowledge. From a theoretical "having information", into a pragmatic "be able to explain and build stuff".

But with a small twist.

  1. Focus on the "why" and the relations between things or ideas. Not so much on the individual ideas themselves.

You can always find a tutorial about making a React app. And you would be able to make a react app. And that's pretty much it.

But after all that effort how would you answer when someone asks you why would you want to use react over vue? why not svelte? why redux over useContext? For example. (I am foolishly assuming you know about react)

If you start with why react exists? (and take a brief history lesson), you are in a much better place than many. why use hooks? why choose functional components?

If your goal is being able to build react apps, having an answer to at least some of those questions will make it much easier to find the answer to any technical questions you may have.

The reason is as simple as it gets. Because all the technical decisions that where made when creating react where made for the purpose of solving a problem. They were not arbitrary (or at least not completely arbitrary).

It is much easier to remember lone technical facts if you have their context than otherwise. Every single aspect of react's api and jsx syntax is there for whatever purpose the people that made it needed it to satisfy.

In a nutshell. Start with "why X" and go all the way to "How X". Instead of starting with "how".

Hopefully that helps :D

2
R
Roshaan4y ago

Omgg this was so fun to read, I can not express how amazing this was. I have been reading your articles and I am literally so inspired by your writing style and the topics you choose, reading your stuff has made me curious about human behaviour and I will surely be reading the books you have suggested. As far as lygometry is concerned I think it is such an interesting concept and the best thing about it is that one can build on top of it. It is extremely flexible and can adapt to a person’s preferences, I will give it a try for sure

2
J

Thanks for the kind words Roshaan

Please let me know how it goes!

1

Will Code 4 Food

Part 7 of 7

I will do it. You are the boss! I will make you hire the sh*t out of me! Well... I'll try...

Start from the beginning

Toying with Deno. Making a ... Game Engine?

Hey! I can dream! ok?

01. Lygometry. Figuring out what I don't know, yet