4 ms·
You are so right from a business standpoint. But what about personal development? This is one of the ways developers are born. Sure the first one or ten attempt
by dougmwne 8y ago
You are so right from a business standpoint. But what about personal development? This is one of the ways developers are born. Sure the first one or ten attempts to automate something might be a net loss to the business, but eventually that junior employee has leveled up their programming skills and developed an estimating sense of when to automate and when to suck it up. It's easy to sit at our place of knowledge and tut at the beginers but we were all beginers once.
- shostack 8y agoI'm an "early" programmer and still poking my way around various toy side projects to learn concepts and such. Ubuntu and Bash had been somewhat of a mystery to me previously, but I eventually got a virtual dev environment setup and was comfortable getting in with navigating to my Vagrant folder, then executing 'vagrant up', 'vagrant ssh', etc. and then navigating to my project. That comfort turned to annoyance as I realized how unnecessary those few keystrokes were. And despite how little time they took, I found myself getting angry at the repetition of having to enter them. So I decided to conquer my Bash scripting fears, and wrote what many would consider to be a trivial script to navigate to the Vagrant folder on my host machine, boot up the VM, and then navigate to the appropriate project folder in the VM. Along the way I learned more about aliases, and also how to pass commands from a host to a guest machine which was one of the roadblocks I encountered. I now can boot up and get into my project folder with a simple three character alias from within any directory on my host machine. Again--any experienced developer would be able to script this in minutes most likely. Back then it took hours. And now those are the most satisfying three characters I type, as every time I enter them, I get reminded of the progress I'm making and that even trivial things may be candidates for automation.
- sgwae 8y agoYou could still save yourself the misery of typing one or two characters if you fix that alias.
- otisfunkmeyer 8y agoyou just blew my mind. im not even kidding.
- Latteland 8y agoDoesn't every developer eventually alias building to 'b' or maybe 'm'? It's like a law of nature. Or you can just rebuild automatically every time you save a file, like js people do.
- shostack 8y agoI know, right? I'm actually leaning in the direction of making it a little less spartan by having it either accept a parameter for a project name to go directly to that folder, or prompt me to enter a number to select from a list of projects gathered from the folder names in my parent project directory.
- jamesb93 8y agoJust in most cases its not necessarily better to have written the script. You could learn the script in a situation in which the time payoff isnt so terrible.
- philipov 8y agoHow can you possibly estimate the time payoff if you've never done it before? In any case, I think it's more than just the time payoff. Getting repetitive tasks automated allows you to reallocate that cognitive overhead to other details, and that's a payoff that's hard to quantify, but is critical for leaving your mind free to focus on more important complexity.
- dmethvin 8y agoQuite often you have to manually do the task at least once to determine how to automate it. That tells you your upper bound on how much time can be saved. If for example it only took 15 minutes of manual work it's highly unlikely that the payback of automation would occur any time soon. That's especially true because the 2nd or 3rd time there may be different special cases and you'd have to go back and change your automation.
- nwatson 8y agoAutomation's payoffs aren't necessarily in time saved. Quality can be a more important consideration. "Did I forget a step?" "Did I forget to verify this aspect of the configuration?" "Oh ... am I sure I typed in the new domain name correctly each of the eight times I needed to type it in in the various contexts?" Automating a task usually means each important parameter is entered only once, that all steps are completed, and that the results are checked.
- lmz 8y agoOf course if we agree programming is not so easy, verifying that the script actually works as intended will take roughly the same time. Not to mention thinking about what it should do when faced with an unusual situation.