A quitter never wins and a winner never quits. —Napoleon Hill
In 2018, at the age of 32, I moved from Paris (France) to Madrid (Spain) to live with this beautiful Spanish woman who became my wife.
I realized that if I wanted not to screw up this relationship I had to change. I couldn't continue to start working on a subject somewhere and stop after a while to try something new.
I decided that I would make money in the tech world and build my career in that area. The next day I started programming.
And guess what?
I love it. I love every aspect of programming. I've never felt like this before. You know what I mean, this feeling when you do something and it feels supernatural to do it. I didn't expect that, but I found my passion.
First, I wrote my own keyboard layout (I got a RSI when I played guitar, I didn't want to repeat the experience).
Then I spent some time writing buggy programs and asking Google to solve them. Often, someone on Stackoverflow had already given the answer I was looking for.
Then I gave the talk Using PyPi and docopt to create and share command lines at PyConEs 2019 and the talk Don't wait! Write your own (ya)snippet at EmacsConf 2019.
Then, I grew tired of seeing this phrase on Stackoverflow: go read this part of the documentation. So, I started to systematically read the documentation of the programs I use. Often, I would end up reading the whole documentation. I remember the first documentation I read entirely was Pro Git. Really worth it.
Over time, I started to notice that the best documentation
cannot rival the accuracy and detail of the source code.
I know that we don't always have access to the source code, but when we do, I
go there and read it. And if you use
grep wisely you can
get some important insights about a codebase really quickly.
(Although, I must qualify this statement, because sometimes running programs have functions and variables that have been generated at runtime by macros, and you won't find those functions and variables in the code base.)
Anyway, now my workflow is:
READ, READ, READ, WRITE and LOOP until it works.
As it is really comforting to write code instead of taking the time to read (because when you're writing code you feel you are doing something important to solve your problem), I always remind myself that a normal reader can read 150 words/minute and a good reader up to 450 words/minute. And I compare it with a really great typer that can type up to 80 words/minute. No comparison. The good reader that knows how to write will always produce better code and sytems than the good writer but poor reader.
I really believe that good programmers (as good athletes, good engineers, good artists, …) know how to get the best of their tools. It took me quite a while to get control over my programming environment. During that process, I gathered some notes on Linux that you can browse at tricks.tonyaldon.com.
Most of the code I've written so far is in
emacs-lisp and in 2020 I started
sharing some knowledge about Emacs with the video series Inside
It's hard for everybody, the only thing you have to do is sit and play your guitar. —Jean-Yves Casala
During this period I tried to be and to do too many things.
While I gave my best in everything I did, I switched too many times to be a good coworker and teammate.
It was just about me, me and what I want to do for me and not where can I be helpful to an organization, to a project, to a team, where can I be helpful to people!
I taught teenagers mathematics in high school which I really enjoyed.
Then I went back to college to specialize in statistics and data
science for one year. Then I worked on the
R package CLR (Curve Linear
Regression via Dimension Reduction) at EDF. Then I quit. Then I did
python in a startup. Then I quit.
If we had been colleagues at that time, you could have said that I was a cool guy and a hard worker but also that I left to work on something totally different.
Then I realized my teenage dream of being a musician. I wanted to play guitar for people, I wanted people to be happy listening to me. I don't know if you've ever thought about that before, but the fastest way to get an audience is to go out and play in the street. So, I started playing in the street and then in the subway.
The best moments to play in the subway are early in the morning when people go to work and late at night when people go to parties. It was hard, but I really enjoyed the contact I had with people.
When you play with your heart, people give you ten times more back.
Once, it was the evening, it was cold, and a couple of musicians stopped to listen to me. They were in love. I thought: I'll give you the best interpretation ever. I played. They listened to me. They hugged each other. They kissed. They both gave me money. And they asked me: can we play something for you? They played for me. It was a special moment.
If you want to listen to what I was playing at the time, there are still 3 songs available on Soundcloud (Tony Martin).
Since there is no better way to understand, there can be no better way to teach. —Henri Lebesgue
I went to Pierre et Marie Curie university (now part of Sorbonne University) where I graduated with a masters degree in mathematics and passed the competitive examination to be a high school mathematics teacher (Agrégation).
Algebra and cryptography were the domains I enjoyed the most. One day
you learn that
1 + 1 might sum to
0. Another day, you learn that in
projective spaces parallel lines have the
infinity point in common. And without realizing it, one day you learn
that on top of elliptic curves you can define a group structure
(ie. you can define a
+ operation that applies to the points
of the curve: each time you add two points of the curve, the
resulting point belongs to the same curve).
This was just amazing. I had a really great time.
If you had wanted to meet me then, you should have looked for me at the library, I spent all my time there. Reading, struggling, solving… Again and again and again.