Harmful? No. Good rule of thumb? Yeah. Like any rule of thumb, if followed dogmatically, it loses the nuance that makes it a good "rule of thumb".
add-sub-mul-div · 3h ago
Right. Almost nothing should be followed dogmatically, but a major theme of this site is to act like all advice was meant to be taken as gospel and then counter it with mundane exceptions.
dontreact · 3h ago
The flip side of this is that for some tasks (especially in ml/ai), doing it manually at least a few times gives you a sense of what is correct and a better sense of detail.
For example, spending the time to label a few examples yourself instead of just blindly sending it out to labeling.
(Not always the case, but another thing to keep in mind besides total time saved and value of learning)
jjk166 · 4h ago
XKCD's comic is a very simple graphic that tells you whether your automation efforts will reduce the total amount of time for a task.
If your goal is not to reduce time spent, why would you be looking at a chart to determine how much time you're reducing?
Learning is a very good use of time. Choosing to spend extra time to automate something for the sake of learning is a perfectly rational decision. But it's never harmful to know what your choice is costing you. If you wouldn't be willing to automate something in the full knowledge that it's going to take longer than just doing it manually, then the comic is succeeding in stopping you from making a choice you wouldn't want to make.
arcfour · 3h ago
My boss would probably prefer—thinking short-term—that I work by that chart. I would prefer to learn something new, and it usually pays off in the long-term, possibly years from now in unexpected and unforeseeable ways.
patrakov · 4h ago
Key sentence from the article:
> Automating the easy things is how you build the skills, mindset, and muscle-memory to automate the hard things.
hicksyfern · 2h ago
The counter to that is that going and looking at the call sites to that function would have given the author a better understanding of what those call sites were, why they called the function, etc, thus learning more about the codebase.
al_borland · 2h ago
There is also the situation where if it doesn’t get automated, it won’t be done at all. Some things are just too annoying to manually do, especially if it would be nice if they were done more than once.
There is also an aspect of repeatability without mistakes. Assuming the code is good, it removes the human error from the equation, which has value.
karmakaze · 3h ago
> ...updating the order of arguments to a function [...] was only in about 10 spots, so it would have only taken a minute to search and fix manually, but instead I spent an hour automating the fix using sed and xargs. And I think that was the right choice.
Spending an hour to learn and use sed/xargs is good use of time. Bringing in the xkcd formula has nothing to do with that. It could/should have been done as a one-off whether manually or scripted. Automation doesn't make sense unless you plan to keep putting me function arguments in an undesired order.
I would have put in time sooner to use a static typed language the can reliably reactor in the IDE with a click.
phendrenad2 · 2h ago
I agree. The author spent an hour of trying to use 'sed', and the next time, they thought better and used Python! That's a valuable lesson right there! ;)
more_corn · 3h ago
“Considered harmful” is considered harmful
V__ · 2h ago
> Automating the easy things is how you build the skills, mindset, and muscle-memory to automate the hard things.
I agree with the statement, yet I think it misses the point. Hyperbole: Pressing play on a mp3 robs you of the experience of learning to play all instruments yourself. They key question is whether automating is a task one wants to improve in at all.
atoav · 1h ago
This is about tasks you automate to save time, that however isn't the only reason to automate a task.
A big one for me is to ensure consistency of data, intervals, etc.
abc-1 · 4h ago
The goal to automate is to reduce suffering. Full stop. It’s not to “save time”. STEM types like to pretend they’re stoic cold calculating robots and everything is objective and they don’t mind doing some repetitive 5 minute task every day, because they saw some xkcd comic about efficiency. Maybe they pretend they don’t mind simply so they can smugly post the xkcd comic every time someone new asks why they’re suffering through some repetitive slog.
For example, spending the time to label a few examples yourself instead of just blindly sending it out to labeling.
(Not always the case, but another thing to keep in mind besides total time saved and value of learning)
If your goal is not to reduce time spent, why would you be looking at a chart to determine how much time you're reducing?
Learning is a very good use of time. Choosing to spend extra time to automate something for the sake of learning is a perfectly rational decision. But it's never harmful to know what your choice is costing you. If you wouldn't be willing to automate something in the full knowledge that it's going to take longer than just doing it manually, then the comic is succeeding in stopping you from making a choice you wouldn't want to make.
> Automating the easy things is how you build the skills, mindset, and muscle-memory to automate the hard things.
There is also an aspect of repeatability without mistakes. Assuming the code is good, it removes the human error from the equation, which has value.
Spending an hour to learn and use sed/xargs is good use of time. Bringing in the xkcd formula has nothing to do with that. It could/should have been done as a one-off whether manually or scripted. Automation doesn't make sense unless you plan to keep putting me function arguments in an undesired order.
I would have put in time sooner to use a static typed language the can reliably reactor in the IDE with a click.
I agree with the statement, yet I think it misses the point. Hyperbole: Pressing play on a mp3 robs you of the experience of learning to play all instruments yourself. They key question is whether automating is a task one wants to improve in at all.
A big one for me is to ensure consistency of data, intervals, etc.