My philosophy in writing code (and in other facets of life, but that’s for another post) is that I prefer to do some extra work now in order to do much less work later.
This is the motivation for creating a class that holds all my parameters in one place.
Not every function you ever write will have its own
Params class. The time is right when you have multiple parameters in your project, and when your architecture is non-trivial.
Let's ask ourselves two questions to understand if we need this new feature in our project:
This is not a post about acing job interviews or writing an impressive CV. It surely isn’t a post about how to be great at your job. I assume you are already great. I assume the only thing standing between you and your dream job is that you don’t know where it exists. The goal of this post is to overcome precisely that.
Today I want to share with you my method for merging Git branches (no, this is not another post about merge vs. rebase).
Like the first espresso of the day, let’s start by cutting straight to the chase:
After several years of writing code in Matlab and Python, I honestly didn’t think writing a “Hello World” program in C++ would take me more than two hours to complete. But life is full of surprises, right?
My goal in this post is to help the next person have a smoother transition to C++ by troubleshooting some of the surprises.
Note: my OS is Ubuntu 18.04, but from the research I conducted for this post, I suspect that everything here is relevant for other OSs as well.
The steps we are going to cover in this post are:
Researching solutions for a hard problem is a task that holds many challenges. The goal of this post is to eliminate one of those challenges — keeping track of where the heck we are amid all this research.
In this post, I assume you are working on a piece of code that is under construction, that this code is a standalone piece you run from start to finish (what we call “an experiment”), and that your goal is to keep track of the progress of your research.
To that end, we will enrich our code with a few useful logs…
You are here because:
And why am I here?
Because for the gazillionth time I discovered I left an important code snippet somewhere unknown… Therefore, today I have decided that this will be the very last time I will be reinventing the logging wheel.
Well then, let’s get right to it!
I just received my MSc. in math.
Knew nothing of the Real World.
The meetup scene I discovered that spring changed the way I see the industry, and has tremendously contributed to the professional and personal growth I experienced since.
The speaker in me was born with one crazy idea. I was working on my first personal project, and on one inspirational moment I decided to give a talk about this project, thinking that’s how I’m going to find my Dream Job.
Two months later, I indeed finished the project, talked about it in a meetup, and…
It was the evening train ride home. I was haunted by a question that kept bothering me: “Why am I putting so much effort into my many tech-related extracurricular activities?”.
I decided to take my mind off this existential crisis, and instead dedicate the time to learn a new tool that would assist me in my job. Half an hour later, I was angry at the useless and condescending internet, where all the resources I could find assumed I already knew what I actually came to learn.
The Traveling Salesperson Problem (TSP) poses a simple dilemma: you would like to visit a set of places, for example, your errands around town, and would like to do so in the most efficient manner. This problem has been solved in countless different ways, both to optimality and heuristically.
So what are we doing here today, you ask? Well, the fact of life is, there is more than one place to get bread, or pasta, or whatever is on your errands list. …
Mathematician, Algorithmatician, gives meaningful names to variables.