-
Go DOES NOT have references!
As a beginner, I found it a bit confusing to work with slices in Go. Even now, I sometimes forget this. When reviewing code, I often see that colleagues pass pointers to slices in an attempt to optimize performance. Or people might be hesitant to slice a slice because they’re concerned it could affect performance.…
-
Practicing Coding Problems with Go (I)
It’s been two weeks since I started practicing coding problems to get ready for technical interviews. I’ve been solving questions like C and D on Codeforces. I have chosen Go to practice as well. So far, I’ve had a great experience with Go; I believe Go is even more intuitive than Python, at least for…
-
Go Docs are good, but not enough!
I believe programming language standard library documentation should mention the time and space complexity of every operation. Currently, Go docs only explain how to use data structures, but nothing more. This is unacceptable. I need to know how much time it takes to initialize an array of size n without reading the source code. One…
-
Can’t agree with this MORE!
I wanted to see how hard it was to implement this sort of thing in Go, with as nice an API as I could manage. It wasn’t hard.Having written it a couple of years ago, I haven’t had occasion to use it once. Instead, I just use “for” loops.You shouldn’t use it either. Rob Pike
-
Story of a Different Type of Cache!
In the company I work for, there was a campaign running for a group of users. Our task was to show some information to the user when they logged into our app if they were in the selected group for the campaign. The group was maintained by operators. When a user joined the campaign, they…
-
Trying Out GitHub Copilot: One Week In
My first experience with GitHub Copilot last week was surprisingly positive. It quickly adapted to the coding style of our project, which was a great help. The chat feature powered by GPT-4 engine proved to be incredibly useful for generating boilerplate code, such as file handling, setting up Redis connections, writing database transactions, and making…
-
A look into Go Scheduler’s Design
Go is a relatively recent language designed with concurrency first in mind (from introduction to Go byRob Pike). Its standard library is state of the art code written by coders who worked on Unix. My focus in my grad studies, from general to specific was Distributed Computing -> Concurrent Algorithms -> Shared Data Structures. I…
-
Java is HUGE!
The first time I learned Java was during the first semester of my undergraduate studies. My perception of Java at that time was that Java is essentially C with some object-oriented principles. It was challenging for me to grasp the concept of everything being an object. It felt strange; I thought they were aiming for…
-
About Writing
During my undergraduate studies in the mathematics department at Sharif University, there was a math professor who emphatically urged us to practice good writing. She advised that if we spent one hour solving a problem, it was reasonable to invest an additional two hours in crafting a well-structured proof. I recall her words: “If you…
-
About Creating State-of-the-Art Software
Android phones are receiving more RAM with each passing year, but guess what? It’s never enough! Android itself consumes it voraciously. The same holds true for Google Chrome. It seems that despite having better hardware, software quality is deteriorating each year. How did we go from the software that sent men to the moon with…