Maintaining Software Correctness

Test-induced design damage in Clojure

A look at search engines with their own indexes

Issue #243



Sorry again for the delay today; went down the rabbit hole for some interesting data and curating the last article took ages.
If you've been a subscriber for a while, you'll have noticed that this newsletter covers a very large range of topics. Some people find the amount of topics and information overwhelming, which I totally understand, and is one of the reasons why I wanted to share a bit about how I go about digesting it all.
At this point, it's pretty rare for me to find an article where I absolutely don't understand anything in regards to concepts or jargon, but in the beginning that wasn't the case. When I first started out on Morning Cup, Pek would sometimes send me articles that left me scratching my head after the first read through. Abstract syntax tree? I'm more of an oak kind of guy.
I found that a common reason for articles leaving me in this state was because of the tech communities love for jargon and abbreviations. A lot of technical articles assume some prior knowledge, and that's something I didn't really have. So my first step was to always scan through the article and make a list of any jargon/abbreviations I didn't understand. Following that, I'd search up the terms and try to find a layman explanation of what they meant. Wikipedia is generally ok for this, but I found that sometimes I had to find simpler articles because the wikipedia posts were pretty technically heavy too.
Going back to the article armed with the newly acquired knowledge always made a huge difference. I could somewhat grasp the ideas being presented in the paragraph (whereas before it felt like reading it made nothing stick in my head). At this point, for especially difficult to understand concepts, I'd reread the sentences out-loud and try to visualize what they meant. Simplifying the words or rephrasing the concept and tying it to something I already knew also helped (it doesn't have to be 100% accurate, just the gist). Abstract syntax tree? A data structure that holds the elements of a command. Ok so I guess kind of like what you would store the HTML elements in if you were trying to do something with them.
This would definitely take a while, but with practice, it becomes a lot faster. Also everyone stores information differently, but in general, I think the more senses it's tied to the better you retain the information. That's why I would read out-loud and visualize.
When I finished the article, I'd have to write a short summary for it, and I found that this was a very powerful test for testing your understanding. The keyword is short. You can tell when you don't really understand something because explaining it in a sentence or two becomes VERY difficult. Writing a longer summary is much easier because you can just mostly regurgitate what you read.
After that I would just forget about it for a couple of days, to give it some time to settle in my brain, then come back to the article later and give it another read, focusing on the parts that were previously difficult to understand. If you know someone familiar with the topic, this is a good time to try to have a conversation with them about it and ask questions to clarify things. I can't remember exactly where I read or heard this, I think it might have been Richard Feynman or my semiconductors professor in college, but someone said that they test and grow their understanding by trying to solve edge cases. That approach has stuck with me, and I've found it to be very powerful when you have an expert to bounce ideas off of.
Anyway, maybe that'll help some of you. Have a lovely weekend and here's the issue.


Maintaining Software Correctness

Published: 22 June 2022
Tags: philosophy

Dan Lew discusses the different approaches one can take towards making sure the code that is written is "correct".


Test-induced design damage in Clojure

Published: 22 June 2022
Tags: clojure, testing

Matthew Davidson demonstrates how you can minimize the amount of issues caused by using tests in your code for Clojure.


A look at search engines with their own indexes

Published: 10 March 2021
Tags: web

Rohan Kumar does a wide-dive on search engines and divulges his findings.

How did I do?

1 2 3 4 5

Want to help and get cool stuff?

Thank you for reading! If you enjoy the newsletter, I would really appreciate you helping me spread the word by forwarding this to your friends and colleagues or sharing it on social media! Get cool stuff for your referrals using your link or the buttons below.

Your referrals:

If you want to discuss or comment on this issue, head on over to this page at A Byte of Coding. You can also subscribe there if you're new!

Have comments or feedback? Just reply to this email or hit me up on Twitter @AByteOfCoding.

Email landed in your promotions tab? Please move it over to primary so you don't miss the latest issues in the future.
Thanks for your Support! 

Thanks to sponsors and supporters like Євген Грицай, Scott Munro, zturak, pek, Emil Hannesbo, Joe Hill, Astrid Sapphire, Gregory Mazzola, moki scott, Michael, Matt Braun, Tim Nash, Christoffer, and Mike Rhodes this newsletter is provided to you for free. If you'd like to also show your support and buy me a monthly meal, you can donate on the Patreon page. It's not necessary, but it lets me know that I'm doing a good job and that you're finding value in the content.

Stats (updated daily)

Sent: 2902

Opens: 1361

Clicks: 478

Link Clicks Clicks % Unique Clicks Unique Clicks %
Maintaining Software Correctness 190 52.49% 203 52.73
Test-induced design damage in Clojure 57 15.75% 61 15.84
A look at search engines with their own indexes 115 31.77% 121 31.43


Back to Issues