109 comments

[ 2.4 ms ] story [ 379 ms ] thread
https://archive.ph/TUmGl

Boils down to: just do the thing, don't be anxious about it.

Doesn't have anything to do with optimization.

Thanks for the TLDR.
Typical clickbait title. Thanks for the tldr
I think anxiety about doing things is very often at the core of self-optimization
Sounds like they weren't 'optimizing' if stopping yielded better results?
"I tried to self optimize and got better" is a more descriptive title. The article is just them discovering that self optimization is more complicated than they initially thought, but they never stopped trying.
Agonizing about optimization =/= optimization. You don't need to "try".
Do or do not, there is no
> =/=

which language does this?

It's a deconstructed ligature: ≠ ⇒ =/=
> ⇒

which language does this?

It's the logical operator "implies".
The headline is misleading and kind of troll-y. Sure, self-optimizers can get in their own way, like everybody else, because there are lots of ways to try to improve, and not all of them work. This guy is basically saying he learned to focus and then he did the task in front of him better. That's also optimization, even self optimization. It's just not visualizing your future in a pink bubble/Tony Robbins stuff. The funny thing is, the headline will attract a lot of people who care about self-optimization and they'll read this and think "yeah that makes sense" and wrap it into their workflow. There's noise in the self-help space, nothing new. People who try to get better make mistakes (experiments), and try again. It worked for this guy!
(comment deleted)
I have found that happiness seems to be inversely proportional to how much time I spend worrying that I'm acceptable or likeable to others. Got a notion early in life that being liked would involve being the way other people are and trying not to be the way I am and that messed everything up for fifteen years or so. It was the realization that 'as myself I will still be appealing to others' that finally dispelled a ton of anxiety, or at least, seems to be dispelling it.

Sounds trite but there you go.

Anyway, the whole time it felt like being driven to optimize.. the wrong stuff. I now believe that the healthiest way to be always seems easy and happens for free, without willpower. But it requires being able to hear your own intuitive preferences, instead of rationally computing what you think they are from from what others seem to think you should be.

“Be yourself; everyone else is already taken.” ― Oscar Wilde
I think what the author describes has a lot to do with relaxation and letting intuition take over (which is how I believe this “flow” state is achieved), instead of thinking too hard or making too much conscious choices and putting the mind under pressure with expectations of success.

It is natural that this “strategy” would lead to more success in the end, which applies to any kind of challenging activity. I like the description as “subtracting”, since you kind-of have to empty your mind before doing the thing. But I believe this does not apply to practicing, where you do have to make conscious efforts and “add to” yourself a lot of stuff in order to internalize it and hopefully build up the intuition required for this flow state to work.

As some here pointed out, doesn’t have to do anything with self-optimization. Although self-optimization may lead someone to believe that a lot of conscious effort is the key to success, when it can actually set them up for failure.

Hear me out here: what if the realization that the conscious effort was in the way of optimization was part of the optimization all along??
Same. I found that the essential floats to the surface if you stop muddling the water. A free schedule, tea on the balcony and a long bicycle ride is how I get my best work done. I let ideas simmer for a while, and tackle them with a relaxed mind.

Sometimes it's also good to just play and experiment. Without play we're just moody machines.

It's just really hard to do things just because they're nice in an hypercompetitive society where it sometimes feels like there just isn't enough to go around. Stepping off the treadmill is a rare privilege.

I think "self-optimize" is the wrong term to focus on. Imo, it's more about self-compassion / a more personal version of "psychological safety."

Anecdotally, a few years ago I made a decision to run with my (ADHD driven) impulses when deciding what to spend my time on. It was difficult to let go, but I decided to let myself just fall behind with projects / work for a year or two (or until I was fired.) Long term, the benefits have far outweighed any downsides. I actually accomplish things without burning out now, and the drastic reduction in burnout has meant that I get much more done in general (work, side projects, life, etc.) Ultimately, worrying about success, failure, self-control, etc, seem to be fairly self-defeating.

If you don’t mind, I’d love to hear a bit more. I feel like I’ve been pushing hard against my ADHD tendencies as well, very curious what it means and looks like to give in and flourish.
Working from home really helped me. I use the Tomato/Pomodoro technique, but backwards. I let myself be distracted for 10 minutes first, then I work for 20 mins after. Distractions such as laundry, reading news come first, which relieves the feeling that I need to do something else, calms me down. Then I can do 1 work task for 20 mins. Then when I feel restless again I spend another 10 mins doing what my mind wants (eg. brush dog)… then back to 20 mins of work.

For me the point of the timer is to snap me out of the distraction or I’ll be on Hacker News for an hour.

> For me the point of the timer is to snap me out of the distraction or I’ll be on Hacker News for an hour.

Timers are such a big deal with ADHD. It's not news to anyone that people with ADHD suffer from time blindness, but even knowing that I'm constantly underestimating how much it affects me. Even if I'm not doing a scheduled task, having something that regularly beeps or vibrates to shake me out of whatever I'm focusing on so I can ask, "how am I feeling, what am I doing, when was the last time I drank water, have I eaten today, what should I be doing right now" is very helpful -- at least until the brain learns to tune out the beep and you have to find a new sound.

I highly recommend people having trouble with focusing or distracting to get a cheap wristwatch or some kind of timer and setting it to beep or vibrate every 10-30 minutes. Doesn't solve every problem, but helps a lot with staying just a bit more rooted in reality.

I live and die by the timers on my watch (whenever I can remember to set them).
I set the Calendar from Simple Mobile Tools to repeat Notification till discarded. That way i have to switch it off and look what needs to be done.
I've been reflecting on how the last few years have been going for me, regarding my tendency to have no structure, no consistency, plenty of burnout, and no job lasting longer than a year and a half, and have consequently been reversing course on what you describe, especially now that I have medication. Long, long before I had an ADHD diagnosis, I struggled with the same pattern of working intensely for whatever amount of time it took to get any arbitrary thing done, and with the impulse to get up and do something else, watch a video, or check the news. Naturally I came across similar suggestions, just embrace the impulses a bit. But there are too many traps and too many addictions that we all just take for granted, and don't take seriously enough.

So, I've been going in the opposite direction, and prioritizing the things that I feel are important, including finite but not periodic windows of arbitrary entertainment, and a cutoff to my work day; I'm essentially experimenting with aspects of deep work and systems thinking. The phone stays out of sight or completely off unless I'm expecting a call, or it's scheduled downtime, and the rest of most days are spent deliberately on things I get the most value out of.

For things like laundry and basic chores, I just don't consider those distracting, and have been batching them at the beginning or between periods of focus during the day. They're not distracting because they don't necessarily take me out of any state of immersion. I'm still thinking about the code or decision or whatever, whereas an email or text message or internet argument fully put my brain resources somewhere else.

Any videos I need are mostly downloaded for offline viewing beforehand, articles saved to pocket, but realistically I never read them anymore, and most break time during focus periods is an actual book or silence, not for the purpose of productivity, but because I want to read books and the way I've been living hasn't enabled me to have the space to focus on them. One chapter at a time. Any random ideas or searches I try to just note for later. Sometimes I revisit them, sometimes not, it usually doesn't matter.

It's also not worthwhile in my opinion to measure short term progress, so in terms of how these systems work for me, I'll see where I am in a few months or years, assuming the specifics will change gradually.

I see what you are saying. You can indulge too much. There is a certain amount of discipline required. In my method, I have to work for the 20 mins. Essentially practice focusing, work through the restlessness.

I also have things during the 20 mins to help me stretch it out - such as sitting outside while working (or have window wide open) or TV and music on for the background noise.

For the 10 mins of distractions, definitely have to be strict about it. Can't stretch that. It goes by very fast. Can't go out to do errands just because I feel like it.

As an aside note, doing 10 mins of house chores multiple times a day really adds up. Lot of satisfaction, and more importantly focus gained!, when the house is tidy.

> As an aside note, doing 10 mins of house chores multiple times a day really adds up. Lot of satisfaction, and more importantly focus gained!, when the house is tidy.

Agreed. Most chores only take 10 mins if you're going for it.

I think our approaches aren't entirely dissimilar, despite the language around "impulses." e.g., I've had trouble letting myself take breaks when I feel like I'm behind at work, and it often turns into a feedback loop. For me, "following my impulses" here means letting myself off the hook for long enough to recharge. I have a cutoff for work hours (or at least, I let myself give up for the day after a certain time.) I try to spend time on things I think are valuable, but in a way that avoids constantly fighting with myself.

When I've tried Pomodoros / structured time management, the task paralysis has always shifted to encompass the techniques themselves, and I tend to easily tune out alarms.

I think it ultimately comes down to having that space for experimentation and failure

For me, the more I'm able to avoid productivity related guilt / shame / "catch up" behaviors, the more energy I've had for addressing underlying issues.

Some things have just sort of worked themselves out. I've ended up with what I think of as a "procrastination ouroboros." Most of the projects I rotate through have various interesting parts that are in various states of completion. The big difference for me, though, is that it _is_ a rotation. I actually return to projects now, because I don't completely burn through all of my enthusiasm in the first go. One of these is a project that I've been working on for several years now, which is a first for me.

I still don't love losing days on something nonsensical because I hyperfocused. I still end up stuck on boring tasks, and it's hard to not feel like it's all laziness, etc. After years of that, though, it feels like pushing _directly_ against those impulses isn't really sustainable. It's pointless wasting extra time on self-flagellation.

I don't know that this level of granularity will actually apply to anyone else, but I think it's worthwhile to at least give yourself the space to explore things like this when you can.

(Also, I take an SSRI, a prescription stim, working from home helps, and I'm sure there are a myriad of other things / factors. I think, if nothing else, "giving in" would have helped me try some of those things earlier, and it has helped me avoid short circuiting thought processes that prevent attempts at actual change.)

I think there’s a healthy balance of following the ADHD that can be found. I try not to beat myself up for abandoning projects after the fun part is over. Who cares? They’re just projects for me. But when it’s a project for someone else, it’s important to fight through and finish things
The funny thing about ADHD is that the "topic" of ADHD is a trap for ADHD people in itself.

Being aware of ADHD might initially seem like a good thing, but then it becomes a constant thing to "optimize" for. It becomes ever-present. "Could this behavior/issue/problem be my ADHD?".

Trouble with executive function / working memory are issues that affect every facet of your life. It's already ever-present, regardless of whether or not you put a name to it.
Being aware of ADHD is unequivocally a good thing, because it gives you the vocabulary to talk about what you are experiencing. It helps you find workaround & tools for your issues. You might even be able to treat it. (given you work in a functioning society that doesn't randomly restricts manufacturing of the meds you need because other folks like to abuse it and develop addictions)

The idea that awareness of your medical issues is somehow an affliction in itself is an incredibly condescending idea.

One of the important points in this essay is letting go of the outcome, and focusing on th process. This is something which I’ve discovered has helped me lately. When you are focused on the outcome, whatever your goal is, you will be anxious because you’re not there yet. But when you focus on the process, which is the way to get there, you become more forgiving of mistakes, and adopt a more resilient attitude.
Over the past year, I’ve made a deliberate effort to improve my “personal computing”, which for me is about how I use the shell. I start by trying to notice when I’m doing the same task multiple times and getting tripped up on the specific syntax or sequence of commands (i.e. what’s the Git command again to split certain files out of a previous commit into a separate one?) I will then create an alias, a shell script or maybe a larger program to start addressing it, solving my initial use case first, and gradually revisiting things over time to make improvements.

Through this process I’ve created a whole idiom of commands for myself. I have no pretense that they would be useful to anyone else, and I don’t sweat them beyond their ability to make my life easier. From these incremental efforts, I find I have access to a new kind of language in my mind. Especially with Git, I find myself seeing it as an extension of my mental process, integral to how I even think about solving problems, not just a VCS I use to push code around.

By noticing how I was working, I didn’t seek to optimize where I was at, I sought to graduate to levels where what previously needed optimization just doesn’t exist.

Everyone does this. Otherwise you'd go bat sh*t crazy trying to remember every intricate details of common tools.

also using ctrl+r and filter through older commands (ctrl+r to cycle) is also necessary for good mental health.

for example

    alias ll="lsd --icon never -l"
    alias lla="lsd --icon never -l -a" # all
    alias llr="lsd --icon never -l -r -a" # reversed
    alias lls="lsd --icon never -l -r -a -S" #by size
    alias llt="lsd --icon never -l --tree" #tree
    alias lld="lsd --icon never -l -d -a --tree" #directories tree

    alias m='micro'
    alias ss="git status"
    alias diff="git diff --color | cat"
    alias log="git log --graph --pretty=oneline --abbrev-commit"
    alias lz="lazygit"
    alias dc="docker-compose"

    # rust
    alias cr='RUST_BACKTRACE=1 cargo run'
    alias clippy='cargo clippy'
    ... many others
Soon enough, when you start piping these, you end up with your own bash language, cca. of that time you thought it was a good idea to augment C with macros (sic!)
(comment deleted)
I actually find it easier to memorize the flags than to memorize the commands I created myself, because they're a lot more descriptive than short commands like in your examples.

The few times I do come up with my own stuff, it's a 2+ line function (or full shell script) that can't be duplicated in a single command and can't be done as an alias.

The problem is some stuff I just don’t do often enough to remember. Like clean up my old git branches.
I memorize the flags because it means I'm comfortable on any machine. Issue in production, and your aliases aren't there? No problem.
I'm curious, how much time would you say you spend on a set of personal machines, versus connecting to random hosts?

My conceptualization of "personal computing" is something more akin to a home or a garden. It's a place where I should feel comfortable and relaxed. Familiar. It's a refuge of sorts, a place where I will inevitably spend an inordinate amount of time, and actually have a lot of real life experiences reflected (through the form of personal writing). Whether working, reading or writing, I tend to think of these machine contexts really as extensions of and foils for my mind. A discoverable mind palace, if you will.

I'm not the OP, but I'm on the same boat with the OP.

For me it's 50/50. The good thing is, when you memorize the commands, and not customize your "base stations" extensively, the difference melts away.

My brain works in "contexts". I remember my native keyboard layout and US one, and I operate in one of these contexts. Same for the spoken/written language. When I switch completely, the mental load disappears, however it's not completely free in terms of brainpower.

So, removing a context is highly beneficial. When I connect to a remote system, I don't care about the commands, aliases, even the place I'm in. Look to the hostname, remember the task I need to do and let my brain loose on the subject.

There are no roadblocks, errors or anything to think about while working. As a result the whole fleet is my home base. I change machines like I change directories. Completely effortless, invisible in fact.

Also, extensive aliasing is limiting. When I know the flags to a command, I can compose and flex on the fly, which I do a lot, as the circumstances and needs arise.

One could see it as the opposite:

Forcing yourself to memorize flags, means you're just equally uncomfortable on any machine: that is, you haven't optimized any particular machine, especially the 1-2-3 machines you use 90% of the time with your aliases.

Not to mention in 2023 on doesn't have to memorize anything to have aliases on "any machine". Have your aliases on a file (or GitHub) and just download it and source it to whether you are.

Optimising the addition of a few flags to a command is alin to optimising the length of variable names. I find that typing out flags gives me plenty of time to think about what I am doing anyway.
Yes, nothing says productivity like spending half and hour to find the right flags every time you need to use something outside the most common unix userland...

or getting them subtly wrong in some production shell script...

So what you're saying that you're putting your own home-grown script wrappers from local machine to production deployment scripts?
Eshell in Emacs let's you use TRAMP to access remote systems as simply as cd'ing to the remote directory. By doing that, you have all of the features of your local shell to work on the remote system.
Awww, you can put the aliases inside your script and source it, then you can keep the aliases in prod!

You could even have your script automatically add the line to source itself to the profile, so you source it once and then it happens automatically!

  alias lsa=“grep ^alias $HOME/.zshrc | sort”
Just the “alias” command will list all your aliases, there’s no need to define a separate alias apart from convenience.
Except for tar. But there I use the mnemonic “xtrackt ze files”
That may work, but I can never for the life of me remember what on earth each flag was for.

Doesn't help that '-a' basically means 'all the flags', meaning you have to know them all to figure out what on earth it's doing. Or just hope it is enough.

For tar, I have memorized: x, c, z, j, v, f

The trick with tar that people seem to have issues with is the ordering with "f" - since it takes an argument, if you're using the combined short form it has to be last with the filename immediately following.

Fish's autocomplete makes life a lot easier, too. It's delightfully well designed.
I head great things about Fish but I never took the dive.
I recommend it! Fish, starship.rs and `fzf` with the Ctrl+R and Alt+C keybindings continue to be my personal 80/20 for feeling comfy at the shell. Installing nvim and reloading my ~/.config using `chezmoi` gets me like 95% of the way there.

Being very obviously not Bash is a feature, not a bug, imo. It's usually pretty easy to turn Bash commands into Fish commands with the help of ChatGPT if you get stuck.

My Fish shell is pretty indistinguishable from my Zsh one but it has 5% of the config. You get amazing completion, themes, highlighting, etc out of the box.

The only plugin I use is for fzf integration because I can't live without it.

How did I not know about ctrl+r? Feeling slightly more optimized
Wait until you try the `fzf` style Ctrl+R ;) total game changer for me.
Ctrl+R is insane but sometimes I have a hard time remembering flags due to overusing it. Especially when crafting new pipelines/solving new problems.

But I'd always alias some uncommon tasks and usages. Especially my quirky git ones:

  # get default branch
  alias gdefault='git remote show origin|grep -E HEAD|cut -d" " -f5'

  # cd to git root
  alias groot='cd "$(git rev-parse --show-toplevel)"'

  # Revert last unpushed commit to the state before commiting
  alias uncommit="git reset HEAD~1 --soft"

  # Show all commits between head and main as one-liner
  alias gl1="git log --reverse --oneline HEAD...\`gdefault\`"
Funny, I was just learning about Git revision ranges the other day, to get to something like the last one! Thanks for sharing.
I used to do this, but with fish shell unless I have very similar commands, I just type part of the whole line to something I (personally) associate it with and that’s it, that’s the command.

I press a space before commands with sensitive information so they don’t stay in my history or throwaway commands that I’m 99% sure I won’t use again.

Complicated ones I create a function for it, but I no longer carry aliases on my shell configuration, and I prefer the legibility of my commands/history.

history | grep in regular bash
Or ^Rpartofcommand to do an interactive history search.

This is a priceless feature, which, as I keep finding out, too many people do not know about, and they waste time faffing about pressing up and down, trying to find that one command their entered ten minutes ago. :)

> alias ss="git status"

ss is actually a 'socket stats' and will list all active connections while resolving their reverse dns name, be careful

thanks, I know :)
This is why I prefer community standard aliases like Oh-my-zsh. All the conflicts get caught sooner by multiple people.
Is there any harm in that?
If you're not a sysadmin or debugging your netork, no. However if you're using it for any reason, you lose a command. This is why I start my local commands with a comma (,) [0].

[0]: https://rhodesmill.org/brandon/2009/commands-with-comma/

/bin/ss will still work.
Why should I need to write a longer command for something I routinely use, while ",[tab][tab]" would bring all my aliases/custom commands?
... then don't use the alias.

You said:

> you lose a command

I showed you how you do not lose a command. That is all.

This is what I do. I don't use aliases.

> I showed you how you do not lose a command. That is all.

I know. I understand your point, but yours is a very pedantic (sorry, was unable to find a gentler word) take on the issue.

In the heat of debugging some prod problems, the need to remember which commands are overridden by aliases and the effort required to remember full paths is an extra mental load. This is why it's better to not use aliases or be super careful, or at least prefix them with a common character is useful.

There's something called scaling cost. It's not only valid for infrastructure or software architecture. The customization you do, or the procedures you follow need to be able to scale too. I recently had to abandon Tiddly Wiki for Obsidian, because the work required to maintain that corpus of information became accidentally quadratic, and started to eat into my productivity and time. Aliases and terminal customization are also affected by this phenomena.

the swath of dns-requests from calling ss on a machine with a lot of connections can trigger rate-limiting from the dns-server which in turn can disrupt other things.

i wish this was hypothetical

> Everyone does this. Otherwise you'd go bat sh*t crazy trying to remember every intricate details of common tools.

I've got some bad news for you...

Everyone is definitely not doing this. I would say the vast majority doesn't even know how to set up an alias.
Ctrl+R is nice, and was a big quality of life improvement when I first found out about it.

Recently I've found a similar improvement going from "plain old" ctrl+r for history to a set of zsh extensions plus fzf - my current set of extensions is zsh-autocomplete, zsh-autosuggestions, zsh-syntax-highlighting, zsh-history-substring-search, zsh-histdb, and fzf-histdb.

That sounds super similar my setup ( https://github.com/bbkane/dotfiles/tree/master/zsh ). I'll check out a few of those I haven't yet.
Some interesting ones there and sounds like you have a similar philosophy to me - don't customize to the point that context-switching to bash is a pain.

For tab-completion I actually prefer the builtin zsh completer set to use the menu mode - this is one of the big improvements you get with zsh over bash / etc to my mind. I have in .zshrc

  zstyle ':completion:*' menu select=2 select=long interactive
You can set it to use your ls colors with something like

  zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}"
> Everyone does this

I disagree, experienced *nix users probably remember a TON of commands outright, after going through multiple distros/*nixes over the years.

Personally I have maybe ~30 aliases that are actually used. There's almost no point in inventing aliases that will go unused or be rapidly forgotten etc.

git has it's own alias config which I prefer to use instead. some examples: st=status, co=checkout, ci=commit, cp = cherry-pick, mod=add -u.

so that means I do 'g st' instead of 'ss', yeah, a couple extra keypresses but I'm okay with that.

Welcome to Unix! :)
Thanks, 25 years in and I'm still learning new things. But I don't think I was specifically shouting out the Unix philosophy. My comment was more in response to the OP article, that rather than "trying" to optimize in the sense that you already know what you need to optimize for and towards, instead thinking of self-improvement as being a by-product of being able to think new thoughts, thus the upfront emphasis on the acquisition of new language (with a big nod to the Sapir-Whorf hypothesis). This could be through collecting good terminology, best practise and patterns, and learning the philosophies of systems such as Unix and languages like Go and Python. However, with aliases and scripts, it becomes something you can actually "speak" in an effective sense, which ultimately can lead to improvements over earlier capabilities that go beyond what you could have envisioned as possible from the start.

I took a handful of math courses in school, and what I didn't realize till later was that learning how to rigourously prove things mathematically had dramatically reshaped my mind. I am left wondering what it must be like for the minds of those who have traversed that tower far higher than I ever have or will.

That's an interesting idea. Did you write a script to identify commands that you use repeatedly? I wonder how that could best be done?
I have not tried that yet, no. For me the goal isn't just about shortening often repeated commands, as though the limitation were purely about character input speed, it's more of a contemplative practise of learning how to notice and respond to that internal prompt that says "I wish I could say that more succinctly" or "There has to be a better way to do this". And then either telling my mind work on those questions, or being open and receptive to coming across something relevant on the topic, or seizing a moment of inspiration to write a time-saving script or come up with a meaningful (to me) alias.
(comment deleted)
Must be nice being able to work in the same shell every day, and one you have complete control over no less. For those of us ssh-ing into uncountable remote servers all day with unprivileged accounts, it's not really a practical option unfortunately.
If your utilities are written as self-contained exported Bash functions, you could concatenate them all in a single file (say, `utils.sh`), with a single line at the end:

    exec /bin/bash
Then you could do something like:

    ssh hostname@address -tt bash -s < /path/to/utils.sh
And have all your utilities available on the remote machine :)
Does this work for aliases?
(comment deleted)
(comment deleted)
By "personal computing" I guess I do mean machines that I have full root on, so usually either a laptop/desktop or a local headless server.

Out of curiousity, these servers that you're dealing with, do you have to use them for long/focused work like writing or software development, or are these more like sysadmin interactions? Have you noticed any repeated commands or sequences you find yourself running over and over? Is there any opportunity for you to write local scripts that then SSH into the targets and run those commands on your behalf? Or locally use sshfs and manipulate files like they were local.

Would love a system that analyses my shell command usage and recommend when I should link commands I often use in series and turn them into one line.

It’s more than just frequency analysis because it helps to remember what commands happened before or after. It also needs to be smart about when two commands are actually “the same thing” but with different flags or input filenames.

Maybe something like an N-gram model.

I don't like being this guy, but maybe throwing your history at a GPT, asking it exactly that, would work fairly well?
For me, personally, I’ve never been particularly interested in self-metering.

It does have its place, though. Each morning, I do a 5K walk, and am constantly glancing at my Apple Watch, to ensure I maintain a pace of <10 min/K. If I find myself slowing, I put on a bit of mainsail, but I don’t insist on beating my personal best.

As for my software development, I just enjoy the work, and have dealt with CRS[0], since I was about 17. It’s always been a basic challenge, and isn’t something I can control.

It’s made me very good at finding information quickly and relevantly. I’m really good at googling answers; even embarrassingly basic ones.

My work speaks for itself. I definitely perform at a pretty high level. There are many folks that are better than me, but many, many more that can’t do as well.

[0] https://www.urbandictionary.com/define.php?term=CRS

Seems the subeditor put a really confusing title on this.
I'm sure the scenery near the cliff is beautiful, and climbing can be a good experience. But then I don't really think failing the first few tries is a lost.

Funny enough, the first few things that I want to learn before a "self-optimize" includes what could happen if I failed (and how to recover from it). The combined knowledge makes the process safer (for your time and effort).

The first time I tried to drive a car, the first thing I asked the teacher even before I started the engine was "what should I do in order to make it stop?", because I expect mess ups, the knowledge on how to react to it might be valuable later.

BTW: Another thing that I've learned in my life so far is don't get too fixated on something. Life is short, putting your effort on one thing removes it from another. Not all optimization is required, which is true in software development as well as in life.

The city where I live got a few cliffs from mining operations, almost 90 degrees up down and very tall. I lived under one of them when I was little, but I never developed any passion for it. If I try to climb it base on my none-existing skills, I'll probably end up as a missing-person record and food for mountain rats. But I never feel any lost in my life for not able to climb those cliffs.

There are so many struggles we can commit our lives to fight against, the act of picking a good one is equally important as the fight itself.

I've always been most successful at work in places where I don't care about the result and I'm just enjoying myself.
I see that art at the top of the page and I reflexively close the window.