List of texts / podcast that caught my attention this year (2024 edition).

FEB 2024

Mastering Programming - by Kent Beck

  • https://tidyfirst.substack.com/p/mastering-programming
  • Returning to the chronicling of my readings. The insistence on analysis as part of growth is also in SICP. Here, it is about the problem as well as about the time. Slicing seems to be the most important skill masters possess. As well as singletasking. Minimalism. Elegance. There are many words for the same thing.

    The theme here is scaling your brain. The journeyman learns to solve bigger problems by solving more problems at once. The master learns to solve even bigger problems than that by solving fewer problems at once. Part of the wisdom is subdividing so that integrating the separate solutions will be a smaller problem than just solving them together.

Why you should never retire

  • https://www.economist.com/business/2024/01/25/why-you-should-never-retire
  • exactly right; the only problem is that you may develop a disability and one should think about that option. Surely no way I would ever enter the state social system to be taken care of. The horror stories make me cry.

    In an episode of “The Sopranos”, a popular television series which started airing in the 1990s, a gangster tells Tony, from the titular family, that he wants to retire. “What are you, a hockey player?” Tony snaps back. Non-fictional non-criminals who are considering an end to their working lives need not worry about broken fingers or other bodily harm. But they must still contend with other potentially painful losses: of income, purpose or, most poignantly, relevance. Some simply won’t quit. Giorgio Armani refuses to relinquish his role as chief executive of his fashion house at the age of 89. Being Italy’s second-richest man has not dampened his work ethic. Charlie Munger, Warren Buffett’s sidekick at Berkshire Hathaway, worked for the investment powerhouse until he died late last year at the age of 99. Mr Buffett himself is going strong at 93.

Where are Europe’s most expensive cities for renters?

After 14 years in the industry, I still find programming difficult

  • https://www.piglei.com/articles/en-programming-is-still-hard-after-14-years/
  • The note on creation and the reference to the Pragmatic Programmer’s big picture/cathedral view of the world is important.

    While there are many benefits to “creating”, and programmers have plenty of opportunities to engage in it, many often lack the awareness of being a “creator.” This is similar to the widely told story about a philosopher who asked bricklayers what they were doing. Some were clearly aware they were building a cathedral, while others thought they were merely laying bricks. Many programmers are like the latter, seeing only the bricks, not the cathedral.

SE Radio 604: Karl Wiegers and Candase Hokanson on Software Requirements Essentials – Software Engineering Radio

  • https://se-radio.net/2024/02/se-radio-604-karl-wiegers-and-candase-hokanson-on-software-requirements-essentials/
  • Requirement eliciting is an interesting concept.

    The first thing we have to do regarding requirements is to get some, and people often talk about gathering requirements, but that’s a little restrictive. The term requirements elicitation is broader and more accurate. I mean, of course there’s an aspect of gathering or collecting requirements out of people’s brains and documents and existing products and all other sources, but elicitation goes beyond that because there’s also a lot of discovery and invention that takes place during requirements elicitation. So you can’t just ask people what their requirements are and expect to get a useful or very complete answer. The business analyst is really a guide, or the requirements engineer, if we’re being optimistic, they’re a guide that leads this requirements exploration. And people also need to understand that elicitation, like the rest of the stuff that we’re talking about in this general broad category of requirements development, that’s an incremental and iterative process. Y

Gemini and Google’s Culture – Stratechery by Ben Thompson

  • https://stratechery.com/2024/gemini-and-googles-culture/
  • Critical suggestion that Google must learn from Microsoft and undergo culture change which usually means leadership change.

    Those of us who don’t want to tell everyone else what to think, do, paradoxically, need to say so.

Change statusline color to show insert or normal mode

The Science of Learning to Code Debunking Myths and Exploring the Science - CoRecursive Podcast

  • https://corecursive.com/the-science-of-learning-to-code/
  • The science behind tutoring and mentoring helps me understand my son’s (under)perforamce in some extra-curricular classes he’s been taking and I am moving to 121 instructions. Also, “Camel has 2 humps” is rather an interesting story.
  • Adam: So there’s this guy, Benjamin Bloom. He’s a famous educational psychologist, not a computer programmer at all, but he did an experiment that shocked the world. Shocked the world of education that is. I’m not sure how much anyone else cared. But it became known as the Two Sigma problem.
  • So picture it, it’s Chicago in the 1980s, and Bloom and his team of grad students have set up an experiment with students at different Chicago public schools. They took a group of average students randomly selected, and they had them learn a curriculum through conventional teaching methods, which is like lecturing, testing, some group work, et cetera. Standard classroom stuff.
  • Another randomly selected group from the same pool of students learned the exact same curriculum, but with one-on-one tutoring. Each student worked through problems on their own, but with a tutor who gave them immediate feedback and then advanced them to the next problem set when they had demonstrated that they had mastered that concept. The results, the students with tutoring vastly outperformed the others by two standard deviations, hence Two Sigma.

A Small Matter of Programming by Bonnie Nardi - Future of Coding - Omny.fm

  • https://omny.fm/shows/future-of-coding/a-small-matter-of-programming-by-bonnie-nardi
  • Watching my son having a same relationship to computers as I have to electricity, i.e. reified taken for granted stuff, I am skeptical about end user programming . It’s fight-club hacker’s club where this goes. Besides, part of the job description.
  • https://en.wikipedia.org/wiki/Small_matter_of_programming
  • https://mitpress.mit.edu/9780262140539/

MAR 2024

The Perils of Audience Capture - by Gurwinder - The Prism

What Monks Know about Focus - by Joel J Miller

  • https://www.millersbookreview.com/p/jamie-kreiner-how-to-focus
  • Adventure described is more interesting than proposed methods.

    In his twenties, he and his friend Germanus joined a monastery in Bethlehem. The two became fast friends, “inseparable bunkmates,” of such shared intensity and interest “everyone remarked on the equality of our companionship and our sense of purpose. They said that we were one mind and soul in two bodies.” The pair wanted to know all the ins and outs of their discipline and decided to travel beyond their local confines to hear from reputed monastic masters. So, for the next decade and a half they traveled the Nile Delta, interviewing the men known as the Desert Fathers, those in monasteries as well as hermits living on their own.

Rise of Worse Is Better

  • https://www.dreamsongs.com/RiseOfWorseIsBetter.html
  • An example when content and idea wins over clarity and form. The difference between design styles that the essay opens with is really not clear. One wishes for a diff editor. Yet, one of the most famous piece of writings in the field. And cool, too.

    Let me start out by retelling a story that shows that the MIT/New-Jersey distinction is valid and that proponents of each philosophy actually believe their philosophy is better. Two famous people, one from MIT and another from Berkeley (but working on Unix) once met to discuss operating system issues. The person from MIT was knowledgeable about ITS (the MIT AI Lab operating system) and had been reading the Unix sources. He was interested in how Unix solved the PC loser-ing problem. The PC loser-ing problem occurs when a user program invokes a system routine to perform a lengthy operation that might have significant state, such as IO buffers. If an interrupt occurs during the operation, the state of the user program must be saved. Because the invocation of the system routine is usually a single instruction, the PC of the user program does not adequately capture the state of the process. The system routine must either back out or press forward. The right thing is to back out and restore the user program PC to the instruction that invoked the system routine so that resumption of the user program after the interrupt, for example, re-enters the system routine. It is called PC loser-ing because the PC is being coerced into loser mode, where loser is the affectionate name for user at MIT. The MIT guy did not see any code that handled this case and asked the New Jersey guy how the problem was handled. The New Jersey guy said that the Unix folks were aware of the problem, but the solution was for the system routine to always finish, but sometimes an error code would be returned that signaled that the system routine had failed to complete its action. A correct user program, then, had to check the error code to determine whether to simply try the system routine again. The MIT guy did not like this solution because it was not the right thing. The New Jersey guy said that the Unix solution was right because the design philosophy of Unix was simplicity and that the right thing was too complex. Besides, programmers could easily insert this extra test and loop. The MIT guy pointed out that the implementation was simple but the interface to the functionality was complex. The New Jersey guy said that the right tradeoff has been selected in Unix – namely, implementation simplicity was more important than interface simplicity. The MIT guy then muttered that sometimes it takes a tough man to make a tender chicken, but the New Jersey guy didn’t understand (I’m not sure I do either).

The subprocess Module: Wrapping Programs With Python – Real Python

Vim Checkbox Toggle - VimTricks

How to replace a character by a newline in Vim - Stack Overflow

Why we 💚 Vim (Changelog Interviews #450)

  • https://changelog.com/podcast/450
  • Much better than 2011 episode, you see how the podcast progressed. Preparaed. Dramarturgy working. Even bad sides of vim mentioned.

Vim round table discussion with Drew Neil, Tim Pope, and Yehuda Katz (Changelog Interviews #56)

  • https://changelog.com/podcast/56
  • As mentioned above, the worse of the two Changelog episodes. However Drew Neil is still great and Tim Pope makes a mysterious short apppearane.

How to Make ‘Vim Editor’ as Bash-IDE in Linux

Slashing Data Transfer Costs in AWS by 99% · Bits and Cloud

Summarizing ‘The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations’

BashFAQ/031 - Greg’s Wiki

Cut and Download Youtube Videos

  • https://ytcutter.cc/
  • Great. Sometimes I make a short clip and send to my lovely wife via imessage.

Advent of Computing: Episode 96 - What Exactly IS A Database? Part I

Martin Luther: The Man Who Changed The World - YouTube

The rise of the remote husband

Never Wish For Less Time - The Daily Dad

  • https://dailydad.com/never-wish-for-less-time/
  • Same insigt during meditative practice and reading a bit of Heidegger. Interesting.

    I have a new rule in my life,” ​John Mayer said during a recent show​, “and the rule is: Never wish for less time. Waiting for things to be over is just wishing for less time. Waiting for this to be over to get to the next thing—that’s just wishing for less time.” Wishing for less time with our kids, that’s what we’re doing. Wishing for their childhood to be over, that’s what we’re doing. “I’ve realized,” he adds, “Everything you love and hate leaves at the same speed: Done. Done. Done. The thing you hate that you have to do tomorrow will be over before you know it, and the thing you’re looking forward to tomorrow will be over before you know it…So wherever you go, just make a home right there and do that thing…Wherever you are, go, ‘this is where it’s all at right now.’ I’ve been having the time of my life because I figured that out.”

John Mayer New Rule in Life Never

He had a routine…

which is, he’d get up about 6:00 a.m. He’d go down to the basement of his townhouse, and at 6:30, he would start writing or working on whatever his next big research project was. He’d do that, uninterrupted, for three hours at least, sometimes four. Then, at about 9:30, 10:00, he would take the subway to Harvard. His point was, you got to start the day by doing the important work of academia, which is producing knowledge. All the rest of it — teaching, committee meetings, all that — you can do later. He was so disciplined about that, that every five years or so, he put out another major piece of work, another major book. I looked at that, and I said to myself, I do not have the self-discipline to perform at that level. I need to go into something that has deadlines, that has structure, that has more feedback because, as you know well, Tyler, there’s a very lonely aspect to being an academic. There’s a lot of fun, and there’s lots of interesting things, but a lot of it is just sitting by yourself

Fareed Zakaria on the Age of Revolutions, the Power of Ideas, and the Rewards of Intellectual Curiosity (Ep. 208)

  • https://conversationswithtyler.com/episodes/fareed-zakaria/
  • On priorities and asset building. Professionalism.

    Sam Huntington was quite an extraordinary character, probably the most important social scientist in the second half of the 20th century. Huge contributions to several fields of political science. He lived next to me. Me, obviously in a tiny graduate student apartment, but he in a townhouse on Beacon Hill. I would sometimes talk to him. We’d have coffee in the mornings. He had a routine, which is, he’d get up about 6:00 a.m. He’d go down to the basement of his townhouse, and at 6:30, he would start writing or working on whatever his next big research project was. He’d do that, uninterrupted, for three hours at least, sometimes four. Then, at about 9:30, 10:00, he would take the subway to Harvard. His point was, you got to start the day by doing the important work of academia, which is producing knowledge. All the rest of it — teaching, committee meetings, all that — you can do later. He was so disciplined about that, that every five years or so, he put out another major piece of work, another major book.

What does connection reset by peer mean

Opinion

Anger is eliminated with the disposal of a paper written because of provocation

  • https://www.nature.com/articles/s41598-024-57916-z
  • A bit ezoteric, but perhaps a cool life hack.

    Anger suppression is important in our daily life, as its failure can sometimes lead to the breaking down of relationships in families. Thus, effective strategies to suppress or neutralise anger have been examined. This study shows that physical disposal of a piece of paper containing one’s written thoughts on the cause of a provocative event neutralises anger, while holding the paper did not.

Jonathan Haidt on Adjusting to Smartphones and Social Media (Ep. 209)

  • https://conversationswithtyler.com/episodes/jonathan-haidt-anxious-generation/
  • Sociologist talking about natural needs of humans. Finally someone. Human children play a lot. All mammal children do. They have to play to wire up their brains. They have to do that a lot, and we all did that. Everyone over 40 did that. We did that during a crime wave, when there were flashers and perverts and drunk drivers. We didn’t use to lock them up. Now we do. It’s gotten much safer since the ’90s. We went out when life had some danger in it. We played and played and played. We loved TV. We probably watched two or three hours a day of that, but we had a lot of time unsupervised to play.

The problem with screens is that they’re so attractive. They came in, the whole virtual world opened up just as we were freaking out about child abduction in the ’80s and ’90s. The main argument in the book is that we have taken the healthy, normal, play-based childhood that all mammals need, and we swapped it out and gave them a phone-based childhood, once we gave them an iPhone.

The issue isn’t like, “Oh, you have a screen. Let’s have AI get rid of the screen.” No. The issue is, you are on this thing, which we can call an experience blocker. A phone is an experience blocker. That means you spend a lot less time talking to other people, in the presence of other people. You’re not with your friends. You are sleeping less. You’re out in nature less. You have less of almost everything. You don’t read books. You have no time for anything else.

APR 2024

Gemini 1.5 and Google’s Nature – Stratechery by Ben Thompson

media.vimcasts.org/videos/39/profiling.m4v

Tips on Adding JSON Output to Your CLI App - Brazil’s Blog

  • https://blog.kellybrazil.com/2021/12/03/tips-on-adding-json-output-to-your-cli-app/
  • JSON output used the most with AWS CLI. +1 A couple of years ago I wrote a somewhat controversial article on the topic of Bringing the Unix Philosophy to the 21st Century by adding a JSON output option to CLI tools. This allows easier parsing in scripts by using JSON parsing tools like jq, jello, jp, etc. without arcane awk, sed, cut, tr, reverse, etc. incantations.

It was controversial because there seem to be a lot of folks who don’t think writing bespoke parsers for each task is a big deal. Others think JSON is evil.

Foreword to The Art of Doing Science and Engineering

  • https://worrydream.com/HammingForeword/
  • Linking to https://corecursive.com/brian-kernighan-unix-bell-labs1/#thinking-great-thoughts-with-richard-hamming Hamming’s own career reflects this contradiction. He was employed essentially as a kind of internal mathematical consultant; he spent his days helping other people with their problems, often problems of a practical and mundane nature. Rather than begrudging this work, he saw it as the “interaction with harsh reality” necessary to keep his head out of the clouds, and at best, the continuous production of “micro-Nobel Prizes.” And most critically, all of his “great” work, his many celebrated inventions, grew directly out of these problems he was solving for other people.

Throughout, Hamming insisted on an open door, lunched with anyone he could learn from or argue with, stormed in and out of colleagues’ offices, and otherwise made indisputable the social dimensions of advancing a field.

Bringing the Unix Philosophy to the 21st Century - Brazil’s Blog

  • https://blog.kellybrazil.com/2019/11/26/bringing-the-unix-philosophy-to-the-21st-century/
  • Ambitious writing supported by heaps of engineering effort. +1 The Unix philosophy of using compact expert tools that do one thing well and pipelining them together to manipulate data is a great idea and has worked well for the past few decades. This philosophy was outlined in the 1978 Foreward to the Bell System Technical Journal describing the UNIX Time-Sharing System

This Conversation made me a Better Editor - Ezra Klein Show

Laws of Software Evolution

  • https://two-wrongs.com/laws-of-software-evolution
  • Sober voice against woke, it seems. Andrew Kelly has written a thoughtful article on why we can’t have nice software. He acknowledges that software often gets continuous maintenance, and notes that this is curious, since “bits don’t actually rot” on their own, i.e. software should not get worse just by existing. He searches for another explanation for this maintenance effort, and settles on it being a manufactured demand. Andrew Kelly says continuous maintenance is a corporate conspiracy where in order to make profits companies make changes that are not necessary.

Keynote by NVIDIA CEO Jensen Huang at 2024 SIEPR Economic Summit

Agile Otter Blog: Programming Is Mostly Thinking

Other people’s problems

  • https://seths.blog/2024/04/other-peoples-problems/zz It’s surprisingly easy to be generous and find solutions to our friend’s problems. Much easier than it is to do it for ourselves. Why? There are two useful reasons, I think. FIRST, because we’re unaware of all the real and imaginary boundaries our friends have set up. If it were easy to solve the problem, they probably would have. But they’re making it hard because they have decided that there are people or systems that aren’t worth challenging.

Elephant in the Room - Future of Coding - Omny.fm

Cal Newport’s Planning System (In Detail) - YouTube

Albín Polášek – Wikipedie

Advanced Vim registers

python - How to copy files - Stack Overflow

vim - Redefine tab as 4 spaces - Stack Overflow

Chapter I: The birth of Parquet

The defensive arrogance of TL;DR

  • https://seths.blog/2024/05/the-defensive-arrogance-of-tldr/
  • TL;DR is defensive. Not simply because it defends our time, but because it defends us from change and from lived experience. A joke isn’t funny because it has a punchline. It’s funny because something happens to us as the joke unfolds, and the punch line is simply a punctuation of that experience.

Professional corner-cutting : Havoc’s Blog

Brad DeLong on Intellectual and Technical Progress (Ep. 172)

Quality First and Other Advice

A simple illustration of the benefits of feminization - Marginal REVOLUTION

How I quadrupled my typing speed. Using deliberate practice to improve…

What I think about when I edit — Eva Parish

Senior Engineer Fatigue - Blog

Ultra-Processed People: Why Do We All Eat Stuff That Isn’t Food … and Why Can’t We Stop? : Tulleken, Chris van: Amazon.co.uk: Books

Early websites.

In the beginning, website HTML was crafted by hand. Your average personal — or corporate — website might consist of hand-edited HTML subsequently uploaded, probably via FTP, to a web server which knew only how to serve static files. Since web pages in a set often include shared elements like headers and footers, maintaining this was obviously troublesome. I have no doubt each and every person charged with maintaining such a website found their own solutions. Maybe they wrote simple Perl scripts to generate pages with common headers. If they weren’t programmers, maybe they used some tool like Frontpage, Dreamweaver or Hotdog that (possibly) offered some useful functionality in this regard. Or maybe they just stuck it out and edited every page manually when they wanted to change the header or footer. You might think that sounds nuts, but I’m fairly sure it was quite common. At some point “Server Side Includes” (SSI) came along, offering extremely basic file inclusion functionality to allow common headers and footers. CGI was developed, allowing web pages to be produced from dynamic scripts. While groundbreaking for enabling dynamic web applications, I got the impression most ordinary websites did not make use of it for serving pages. Many web servers required or at least recommended CGI scripts to be placed in a special cgi-bin directory, making URLs rather cumbersome. One major CGI application was the blogging platform Movable Type, which featured a CGI and Perl-based administration webapp which automatically regenerated static files from a database whenever changes were made.

The Demise of the Mildly Dynamic Website

Start all of your commands with a comma

Comparing buffers with vimdiff

Where DOESN’T curl run with curl BDFL Daniel Stenberg (Changelog & Friends #49)

Marcus’ Blog - Programming Advice to Younger Self

Use A Work Journal To Recover Focus Faster And Clarify Your Thoughts

Docs as Code — Write the Docs

A Git story: Not so fun this time

The changes in vibes - why did they happen? - Marginal REVOLUTION

Display the Search Count in Vim’s Status Bar — Nick Janetakis

We’re Not Balanced Right - The Daily Dad

AUG 2024

Crashes and Competition – Stratechery by Ben Thompson

A gambler’s guide to giving talks - by Benn Stancil

OODA and You - Robert Greene

Practices of Reliable Software Design

Lidl’s Cloud Gambit: Europe’s Shift to Sovereign Computing

The Most Important Question of Your Life

Evolving JavaScript with Douglas Crockford - The Transcript

  • https://softwareengineeringdaily.com/wp-content/uploads/2024/08/SED1722-Douglas-Crockford.txt ne day, I was out bicycling and I had this realization that JavaScript had lambdas in it, which nobody ever told us that it had that, and it doesn’t really say so in the standard, but you put it together and that completely changed my understanding of the language. That this is really a functional language with dynamic objects. We’ve never seen a language like this. It’s brilliant that it’s incredibly expressive and wonderful, and that changed my life. That epiphany put me down this road, which has served me really well.

Eric S. Raymond - Wikipedia

SEP 2024

Getting away with it - by Benn Stancil - benn.substack

David Chang on the long, hard, stupid way – Herbert Lui

The Rise of Open Source Time Series Databases

Words on Founder Mode – Rands in Repose

Borg, Omega and Kubernetes

It’s not always DNS with Paul Vixie (contributor to DNS protocol design) (Changelog Interviews #581)

The Data Stack Show-70: The Difference Between Data Lakes and Data Warehouses with Vinoth Chandar of Apache Hudi

The Changelog: Software Development, Open Source-It’s not always DNS (Interview)

TDSS 103: Everyone Is Invited to the Data Lakehouse - YouTube

It’s hard to write code for computers, but it’s even harder to write code for humans · Erik Bernhardsson

Size of top-level domain (TLD) servers? Especially .com? - Server Fault

Leveling up JavaScript with Deno 2 featuring Ryan Dahl, creator of Node.js & Deno (Changelog Interviews #610)

  • https://changelog.com/podcast/610 And I think this idea of striving for simplicity is – well, let’s put it this way. JavaScript I continue to believe is not like other programming languages. It is something like the default programming language, because so much of human infrastructure is built on the web. And because JavaScript is like HTTP or CSS or HTML, it is one of the protocols of the web. It has a future that you can’t necessarily say about Swift. Lots of people use Swift, a lot of infrastructure is built on Swift, but it’s not like JavaScript. JavaScript will be here five years from now, if not 10, if not 20, if not forever. This may be really deeply embedded in humanity at this point.

50 Years of Queries – Communications of the ACM

Advent of Computing: Episode 97 - What Exactly IS A Database? Part II

(26) Exploring the Various Gateways in AWS

The Untold Story of SQLite With Richard Hipp - CoRecursive Podcast

Elon Dreams and Bitter Lessons – Stratechery by Ben Thompson

Is ArgoCd an alternative to jenkins? : r/devops

OCT 2024

Advent of Computing: Episode 97 - What Exactly IS A Database? Part II

Lessons Learnt From Supporting Modern Data Lake Formats at Snowplow - YouTube

The Primeagen on Developer

Focus on decisions, not tasks

Informix - Wikipedia

How Developers Stop Learning: Rise of the Expert Beginner - DaedTech

You need a different ball, a different style of throwing it, and you need to put your fingers in it like a big boy. And the worst part is that you’re going to get way worse before you get better, and it will be a good bit of time before you get back to and surpass your current average.

GitOps - Operations by Pull Request [B] - Alexis Richardson, Weaveworks & William Denniss, Google - YouTube

Warren Buffett’s GEICO repatriates work from the cloud

the essence of love is… annoyance? - by Ava

29 Lessons From 150 Million Podcast Downloads - RyanHoliday.net

  • https://ryanholiday.net/29-lessons-from-150-million-podcast-downloads/ Find your reps. Lacrosse legend Paul Rabil had a coach tell him that the key to making it in lacrosse was simple: take one hundred shots a day. The caveat? Holidays, bad weather, sickness–none of that can get in the way. “You can’t miss a day,” the coach said. And that’s what Paul did. Every single day from high school through his professional career–for twenty years. Everywhere he went, he found a wall to throw against, a goal to shoot on. One hundred shots a day, no exception.

I like that idea because it translates to almost everything in life. Whatever sport, business, or field you’re in: figure out what your reps are. Something you can commit to, every single day, that’s completely in your control. The key is: never miss a day. (​Listen to the full interview with Paul here​, and check out his book ​The Way of the Champion​.)

Be an ‘everyday guy’. ​Buzz Williams​, the basketball coach for Texas A&M, brought up a similar point. He talked about the idea of being an everyday guy: “Whatever it is that you’re trying to do, are you tough enough to do that every day?” he asks. “If you’re basing it on talent, well at some point in time it might prevail, but not always. And so if you remove talent, then it comes down to consistency, discipline, and how you are spending your time.”

NOV 2024

Learning to learn

Blog Writing for Developers