There’s a growing problem in the IT world: a massive flattening of content.
Especially on LinkedIn, I keep seeing posts like:
“The 10 best books to become an architect”.
“The 10 newsletters you must subscribe to about topic X”.
The truth? Most of these lists don’t add much value.
Ten different books on software architecture are unlikely to say truly different things. And honestly, who has the time to read ten different newsletters every week?
It feels like our industry is turning into the Netflix of content: you have to read book X, subscribe to Alice & Bob’s newsletter… or you’re not “cool.”
I’d love to see more posts that break away from the mainstream. Content that brings fresh ideas, original insights, and new perspectives.
Instead of being the world of innovation, we risk becoming the world of homogenization.
The Ai Con
For irony, yesterday I finished reading The AI Con, on the same day ChatGPT 5 was presented.
As the title says, the book talks about the cons of AI: environmental issues, exploitation of people, copyright, educational problems, political problems, and so on.
I understood that a book like this can feel anachronistic nowadays (especially for AI fanboys — not for the people who really study the topic and are actual experts, but they are few), but I still recommend reading it.
One advantage of the book compared to AI is that you can hear different perspectives.
Tech needs a new counter-culture
Maybe I’m getting older. I’ve started looking back.
While rediscovering – “Terence Trent D’Arby” – now known as “Sananda Maitreya” – I found out he stepped away from the show business to produce music independently, in the name of creative freedom.
It got me thinking: isn’t something similar happening in the software world?
A field that increasingly feels like a show business, where some of the original dreams and values seem to have faded away.
Hacking is often confused with cracking.
Projects are considered “interesting” only if they translate into dollars.
(Did we really just invent AI the day ChatGPT came out?)
I’d love to see new charismatic figures emerge in tech.
A new counterculture and not these pathetic start-up founders of the null.
A technical blog is not a waste of time.
Often lately I thought (and maybe not only me) that maybe writing tech blog posts or newsletters is not helpful anymore (I’m talking about posts that should have some value, not clickbait ones).
This book, one of the best tech books I’ve read this year, changed my mind and gave me back the enthusiasm to keep writing.
The authors explain how to write different types of posts, using theory and real examples.
They also give some suggestions on how to use AI to check mistakes in your posts, not just grammar, but also to investigate if the post is unclear, and so on.
But they clearly say: “don’t use AI to write the post” – it must be personal, your idea, your style.
It’s not easy nowadays, and that’s exactly why it’s more beautiful.
Order map in Go
As you may know, it’s not possible to order a map in Go (just like in any language where maps are implemented as hash maps). However, we can achieve the same result by working with the map’s keys.
The approach is to extract the keys into a slice, sort them, and then retrieve the corresponding values from the map using the sorted keys.
Let’s take a common example: given a list of strings, return the list of strings sorted in decreasing order of their frequency.
func orderByFrequency(slice []string) []string {
occurrenceMap := make(map[string]int, len(slice))
for _, elem := range slice {
occurrenceMap[elem]++
}
keys := make([]string, 0, len(occurrenceMap))
for key := range occurrenceMap {
keys = append(keys, key)
}
sort.SliceStable(keys, func(i, j int) bool {
return occurrenceMap[keys[i]] > occurrenceMap[keys[j]]
})
return keys
}
In this approach, we first create a map to count the occurrences, then create a slice of the keys and sort them.
But what happens if we want to add another sorting criterion? For example, if two strings have the same occurrence count, we want to sort them in decreasing order by their string value.
In this case, we modify the sorting function as follows:
sort.SliceStable(keys, func(i, j int) bool {
if occurrenceMap[keys[i]] > occurrenceMap[keys[j]] {
return true
}
if occurrenceMap[keys[i]] == occurrenceMap[keys[j]] && keys[i] > keys[j] {
return true
}
return false
})
Try to create an exercise yourself.