Ciao!
If the tools you use today disappeared tomorrow, would you be able to transfer your knowledge to different ones?
When I started, I fell into the trap of focusing on the concretion rather than the abstraction. I learned Ruby and not Object-Oriented Programming. I swore by TDD and not by short and copious feedback. I copy-pasted snippets of code without understanding the implications.
In other words, I was all-in on temporary knowledge. Looking backward, I'm not surprised I struggled when context switching. I was lost when I started writing JavaScript, or in situations where TDD was not applicable, or when StackOverflow had the answer but in a different programming language.
Since then, I've been trying to always understand the principles behind the implementations.
This week is all about that, plus a technical article, which, funnily enough, is about laddering up from specifics (jq and XPath) to an abstraction that can be transferred to other data structures.
From Temporary Knowledge to Permanent Knowledge — By disregarding practices and principles, we are condemned to start from scratch and re-learn at every context switch.
Understanding by Design by Avenues: The World School — Grant Wiggins introduces Understanding by Design (UbD), a framework for improving student achievement that helps teachers clarify learning goals, devise assessments that reveal student understanding, and craft effective learning activities. (Riccardo: notice that the student and the teacher don't have to be two different people.)
Expiring vs. Permanent Skills by Morgan Housel — Robert Walter Weir was one of the most popular instructors at West Point in the mid-1800s. Which is odd at a military academy, because he taught painting and drawing. (Riccardo: in my article I focused mostly on technology but there's more to software than code.)
Generalizing 'Jq' And Traversal Systems Using Optics And Standard Monads by Chris Penner — Hi folks! Today I'll be chatting about Traversal Systems like jq and XPath; we're going to discover which properties make them useful, then see how we can replicate their most useful behaviours in Haskell. (Riccardo: when Chris writes, I read.)
What did you learn this week? Would you file it in the permanent or temporary cabinet? Hit reply. Let me know!
Thanks for spending some time reading with me. Talk to you soon.
Yours truly,
Riccardo.