I like note taking because it augments my thinking. Specifically, it helps me store knowledge for later and organize my thoughts when I'm thinking.
I think what makes it obsessive for me is that I always want to improve my thinking, even if it's a tiny increase. That's why I always check out other people's note taking methods and software, in the hopes of finding a little nugget of optimization.
As for my method, I use plain text and vim to store my notes. If I need to think deeply about a problem, I use a paper notebook and pencil. This is because that combination is good for visualizing a problem.
Having a food journal, i.e writing down what food you’re about to eat before you eat it. For me it helped me understand the difference between a craving and legitimate hunger, which decreased my daily calories.
It’s a simple habit, but it has had a dramatic effect on my weight loss journey. Level 2 of this habit is to check out the nutritional information of everything before you eat it, but that’s a discussion for another day.
That diet is more important than exercise. I wasted so much time in my younger years working out hard and eating like crap. This lead to an unbalanced body, i.e. a muscular outer frame paired with a fatty belly.
When covid hit and going to the gym was out of the question, I was forced to optimize my diet in order to stay “healthy”. The result of this is that I lost 20lbs of hard-to-lose weight, putting me squarely in the median weight for my height.
Now when the gym opened back up, I had the foundation of a solid diet paired with consistent exercise, which lead to me being in the best shape of my life.
I’m still tweaking my health strategy, since there is no such thing as perfect, but now I always start with improving my diet.
1) How long did it take to become proficient in Rust compared to Golang?
A long time, probably a couple months to get productive, and a couple more to learn the foundation pretty well. And this is with a steady supply of side projects to help me solidify my learnings.
2) Which did you learn to appreciate over time over the other, if at all?
I chose Rust over Go because for my side projects (at the time) Rust was faster and had a better package manager. Since most of my side projects are command line tools, Rust fit in quite well in this domain.
A side note. I think it's more helpful to choose a language based on how well it solves your problems rather than its amount of shortcomings. If Go has the right packages and tools, go with that. If Rust does, choose that one instead. For me, the ability to quickly pick up the best language for the job is IMO more valuable than picking a language with less 'edge cases'.
I use two 15 pound dumbbells and perform a full body workout with them, using exercises I learned a while back. You'll be surprised how far you can go with just a pair of dumbbells and good lifting form.
Old mathematics books are also interesting. Really cool to see how notation has evolved over centuries of mathematical inquiry. Right now I'm reading "The World of Mathematics, Volume One" and it is quite a relaxing read when starting the day with a good coffee.
I read some of google's patent mentioned in the text and thought it was interesting. They basically want a connected network of devices that communicate with each other and with google. Most of the devices follow the following algorithm: watch -> think -> act -> report. What is interesting is the 'report' phase of the algorithm.
I think there is a battle between two competing AI philosophies. One philosophy thinks AI should be central: all devices need to talk to the overmind for learning. The other philosophy thinks AI should be local: the device should learn on its own, kind of like a biological agent. I think the 'biological agent' form of AI is interesting when it comes to privacy of information. Only you and the device have the data.
The future of AI should be interesting with these two philosophies in mind.
I really enjoy all the music from Ultimae Records. The albums are reasonably priced in Bandcamp and you can preview the full albums if you are unsure about buying.
I really hope he doesn't fall into the trap I did when starting out with rust. I came into it with the perspective of an application programmer and I quickly became salty when my knowledge didn't translate smoothly into rust code. "Fighting the borrow checker", for me, was simply a clash of philosophies. My way of thinking versus the rust way of thinking.
The central issue, for me, is that with rust you MUST understand the memory model completely in order to be productive. You cannot wing this, you cannot assume anything. I was not used to this being an application programmer and this lead to the root of all my suffering. Once I wrote down all the borrowing rules and deeply thought about it, I finally became productive in the language.
I see the author shows symptoms of not understanding the memory model. His code proves it. Instead of being angry, he should try to view rust with an open mind and ask "why did they design it this way?". Be curious, create experiments, probe the rust semantics, master the borrow checker. There are rewards to be had for those willing to push through the pain of integrating new knowledge.
This post reminded me when I started programming, very nostalgic. I started out with C as my first programming language simply because the language rankings at the time said it was the most popular. Looking back, I don't think C helped me out as much as I wanted it too.
Now to answer your question by looking at your goals. "Knows no programming language" lets me know that you are starting from scratch. In my opinion, this means you need to answer the following question first: do I even like programming? The best way to answer this is to not abuse yourself with C but instead start with python to get a real feel for what programming is.
"Learn coding for building with best design principles" means you want to learn good habits early on. Python has a stable style guide (pip8) and the zen of python, so at least some good habits can be learned quickly. I don't think there is a comparable zen of C, but maybe that's because I haven't looked.
"Gaining efficiency of data structures" means understanding why data structures are important in program design. Python has some pretty solid built-in data structures (i.e lists, sets, dicts, tuples) that are good for beginners who want to experiment with data structures. C doesn't have lists, sets, dicts, or tuples, but you can implement them if you try hard enough.
"Thinking abstractedly in algorithmic rollercoaster of fun"...I think what you meant is the freedom to think about an algorithm and to implement it with ease. Python is fantastic for this, while C requires a lot more thinking to get a thought manifested to code.
This post kinda struck a chord with me because I wrestled with the same question when I started 4 years ago. Python helped me more than C because I was more creation oriented. I wanted to implement a useful tool as fast as possible. With your questions in mind, I think python would be better choice than C as a beginner.
I think what makes it obsessive for me is that I always want to improve my thinking, even if it's a tiny increase. That's why I always check out other people's note taking methods and software, in the hopes of finding a little nugget of optimization.
As for my method, I use plain text and vim to store my notes. If I need to think deeply about a problem, I use a paper notebook and pencil. This is because that combination is good for visualizing a problem.