



























Hi everybody - in my latest technical-focused article, I wrote about the ubiquitous Bloom filter data structure. If you prefer watching (for a thrilling 33 minutes!) my explanation as opposed to reading, then I got you covered there as well:
The big takeaway about bloom filters is that they are used in most situations where we have a large amount of data and need to quickly know if something we are looking for exists in that large amount of data.
Taking a step back, this touches upon a bigger question that many of us are grappling with. In a world of AI, what is the point of learning about these technical concepts?
The chances of you and I having to implement a data structure like a Bloom filter have always been quite low. Outside of programming or system design interviews, the time we would spend even thinking about Bloom filters and how they work is close to zero. With the rise of AI assistants that handle a lot of this system design thinking for us, does it even make sense to know about Bloom filters at all?
From the earliest days, working with computers has always revolved around abstractions. Most of us do not write logic in 0’s and 1’s. We write in higher-order languages that make it easier to express ideas in casual English-like phrases:
The many years of optimizations used to make programs work at a low level are lost to us. Our assumption is that when our higher-level code is compiled/transpiled, those optimizations come along for free. Knowing about their existence or not is a moot point. For many of us, we don’t even know what we don’t know when we dig deeper down into the lower-levels of how computers work.
Just like we no longer need to think about how memory is managed behind the scenes when creating a loop in JavaScript, with AI assistants, we are fast reaching a moment where we no longer need to know how the overall system is built. We describe the idea using natural language (text, visuals, voice, etc.) and iterate at the level of results:
AI becomes yet another abstraction to the many layers of abstractions we have been adding over the decades since the first computers were invented. As abstractions go, it is natural for us to lose awareness of crucial details lower layers may provide. What makes AI a bit different is the depth of abstraction it provides. We could argue that each abstraction we added over the years was incremental, but the abstraction provided by AI is a giant leap. By relying on AI, more of us are becoming quite successful in building apps without knowing the computing fundamentals that we would have needed in the past. Forget about Bloom filters and all the other famous data structures and algorithms! Even programming basics may no longer be needed.
When learning to read and write, we don’t really learn Latin or Sanskrit or Greek or any of the more ancient languages first. Why should app building be any different? Today, relying exclusively on an AI assistant to help us build apps that are scalable, performant, and secure is still a bit iffy. It is still important for us to be able to spot potential trouble areas and guiding the AI assistant appropriately. This is a moment-in-time problem, though. As the underlying AI models get more sophisticated, their ability to do the right thing without any human guidance on the implementation will only increase. We can assume that in the near future when AI generates an app, the app will have implemented all the right details and safeguards that would be on par with the most experienced app developers.
When we get to that point, knowing the details of how underlying computing primitives work won’t really be needed. To take it further, there would be no need for a site like KIRUPA or a book like my Algorithms: Absolute Beginner's Guide to exist, at least not catering to a large audience as it aims to today.
What are your thoughts? Feel free to chime in on the forums, on Twitter / X, or in the comments below with your thoughts.
Cheers,
Kirupa 😅
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。