Like I mentioned before, this website have the purpose of being converted to a data science portfolio in case I need to show proof of my work in the future. But that's not the only purpose, my other goal is to use it like an excuse to learn more stuff, like a little of web development, more programming languages or skills in general.
Because, I'm a little crazy, and love educational material, I went wild buying books and video courses to learn:
- Algorithms, clean code, refactoring, etc...
- Administration of cloud infrastructure
- Programming in Java
- Programming in JavaScript and Node JS
- Power Bi
- Several weird courses using Python (like... signal processing?)
- Php
- etc.
Ok, I'm a lot crazier than I though first, I just realised after writing down the incomplete list of materials I bought. But disregarding that, now I'm facing the problem that learning all of that will require a lot of applications and tools that could double the things I need to learn. So, I got the idea that I can learn to use Emacs to try to use only one editor to rule them all.
Still, the title of the post come from the funny video Interview with an Emacs Enthusiast in 2023 [Colorized], because learning Emacs is basically learning a new programming language specialized in EDITING TEXT FILES. Editing is a broad definition that englobes all the programming languages and skills I'm trying to learn. So, the past week I was installing Emacs extensions,configuring, checking videos about it, and all of that was pretty satisfying.
The problem at first was that I have the "bad habit" of trying to read/learn of the official documentation or book first before starting to use it. I always forget that it doesn't work for me, specially in the case of Emacs where the authors of the official documentation basically write a novel in the introduction of the manual and then write in cyphers when they explain the practical part of Emacs.
Instead, I did more progress with a good set of videos from System Crafter's (like Basic usable configuration) because he explained to me the initial configuration of Emacs in a very beginner friendly way and I did something useful with my local Emacs right away. Then, slowly, I started to install and configure my first set of packages that will help me in attacking this tasks.
The Emacs IPython Notebook was one of the first I installed because, like I said before, my work now mostly revolves around Python. It was hard to get used to the new key shortcuts to work around notebooks and there were few hiccups in my work/windows set-up of the package, but it still works well enough to substitute the normal web version. I'm very happy with this mode just because it allows me to work with jupyter notebooks and plain python code that the jupyter in the browser normally can't do.
Then, in the nights, I started learning Java again. There is a lot of Java openings in the Linkedin of my country, that's why I was interested in it since a couple of years ago. With Java I stumbled with my "bad habit" of turning to the book Java a Beginner's Guide and a big comprehensive Udemy course but couldn't keep with them. In both materials I needed to filter a lot of information to distill the new knowledge to use Java, after all, I have a lot of experience as an R/Python programmer, so I need to learn only how Java differs from both of those languages.
The distillation was particularly difficult the first time, because usually is recommended to use a full fledged IDE for Java, that I barely understood and, by default, throws my recently written code in an obscure folder in my already bloated linux filesystem. Thus, code recently written was converted to code lost in a few days. Note taking was also awful, because in learning Python I usually save a snippet of code in my note taking app (that uses markdown) with the explanation of what it does for my review and use later. But that's not possible with Java, because is so bloated that each new note needed a separate java file, or else the code could break. I tried sometimes to condense a lot of lessons in 1 java file, but that just delayed the inevitable.
Lucky for me, I knew Emacs could solve my note taking problem with Emacs Org-mode. I knew about literate programming: code that is included in chunks in a org-babel file and then with a command, the code can be separated from the original document in several files. And it has worked pretty good. I even manage to export the org-babel file to markdown and include it in my note taking app. A pleasant solution that now I'm convinced that I could use for almost everything else.
In summary, even if the Emacs joke in the title have so much true on it, I'm still happy of the help that Emacs have given me in a short time and I'm even enthusiast in keep advancing in my crazy goals.