8 ms·
It should be noted that programmers are not automating themselves out of programming jobs. They're automating themselves out of data entry, or testing, or any
by wvenable 8y ago
It should be noted that programmers are not automating themselves out of programming jobs. They're automating themselves out of data entry, or testing, or any number of other mindless tasks easily done by computers.
- thaumaturgy 8y agoWe may not (yet) be able to automate ourselves out of programming jobs, but we can certainly leverage smart development practices into making the job a lot less labor-intensive. I'm experiencing a shift in that thinking right now. I write reusable, modular, tested code. My co-workers don't. I use a project management system (Phabricator, on my own personal server, which I maintain); the company doesn't. For most of the last year, I've used these to produce more and better code than others have, but my responsibilities have only expanded while my pay hasn't. I've vocally evangelized these practices and I'd love nothing more than to see them get adopted by the other developers, but so far it's not getting any traction. So I'm shifting towards logging the value of the work I produce -- regardless of whether I'm just copying in a file from my extensive library -- rather than the time it took me to accomplish the task. And starting to look for a new job.
- dropit_sphere 8y agoHopping or starting a company to sell your work are becoming the fastest ways to get "promoted."
- kradroy 8y agoI was going to suggest this from my experience. I hate to burst GP's bubble, but the attitude and environment at his next job probably won't be any better in regard to "best practices." It's extremely difficult to gauge how your attitude toward development compares with a prospective team's after an hour of chatting. I became a manager last year and quickly discovered that changing others' behavior and habits is next to impossible. And if he does happen to find a new team that matches his work ethic he can be certain that 1 or 2 years down the line it won't any longer. I think the only two ways to avoid this is to become a contractor and switch gigs every 2 years, or start your own company and hope the people you hire share your attitude.
- hobs 8y agoUnfortunately yes, though another path is making a lot of friends so that you can network for the decent jobs, temporary though they might be.
- hinkley 8y agoI've had very good luck changing the behavior of junior developers and moderate luck changing the behavior of mid level developers that are hungry for a promotion. I can count on my fingers (couldn't say if that's one hand or two) how many senior devs I've gotten to come around. If you're interested in progress and growth, I can say with a high degree of certainty that what you don't want to do is apply to work on a very stable team. These people are always confident that they know what they're doing - even when they agree that the outcomes aren't great. They've had lots of time to practice their rationalizations and that kind of cognitive dissonance can be pretty jarring/aggravating. By definition, starting your own company or contracting will avoid that situation, but you don't need to take your ball and go home just to get the right kind of environment.
- pvarangot 8y agoI had senior people change habits and practices but at the expense of huge failures or years of leading by example. The patience and the effort are humongous and almost ridiculous when you compare them to how quarterly or even bi-quarterly planing cycles look.
- hinkley 8y agoEarly in my career, the concept that someone might know of a showstopping problem and chose to do nothing left me appalled and feeling rather betrayed. Fifteen years later I sit in meetings telling people (some of them still older than me) not to touch the stove because it will hurt, and I have to patiently wait until someone gets hurt before we can discuss the proverbial oven mitts. The problem with doing something right the first time is nobody appreciates how hard it was.
- deleted 8y ago
- dgcoffman 8y ago> leverage smart development practices into making the job a lot less labor-intensive. I think we instead do the same amount of labor, but accomplish more.
- deleted 8y ago[deleted]
- buboard 8y ago> of programming jobs They do that to and have always done so. It's barely remarkable because it is expected and part of the job. The problem is you can't benefit from that, as soon as you automate one part, you are given other tasks.
- wheelie_boy 8y agoAbsolutely. I don't hand-create machine code. I don't write assembly. I write in the highest-level language that still lets me fully specify everything I care about, and then all of the lower levels of code generation are completely automated. Programmers have always automated programming jobs as much as possible.
- empath75 8y agoIf you think about it, the existence of programming languages and compilers is due to programmers automating their jobs away. They no longer had to tediously translate higher level algorithms to machine code. And really, the existence of computers is the result of automating the job of human computers away. The entire history of computer science is this. The difference is that these guys hit a local maxima, and just ... stop. Instead of moving up to the next level and making more money.
- deathanatos 8y ago> The entire history of computer science is this. CS encompasses way more than automation. Graph theory, ADTs, complexity analysis (just by way of example) are all very relevant, even if the computation is done manually, by hand. A lot of computer science presumes a very abstract computer; a human and a modern machine apply equally well.
- auxym 8y ago> Instead of moving up to the next level and making more money. That's assuming your employer will "move you up" and you'll make more money. Or that a future employer will see value in you automating your job. Then there's this story from TFA: > a user posting as AcceptableLosses wrote, “They took what I had developed, replaced me with an idiot that they showed how to work it, and promptly fired me for ‘insubordination.’ I had taken a business asset that was making them $30 grand a year profit and turned it into a million dollar a year program for the company, and they fired me for it to save ~30 grand a year on my salary. Job creators my ass.” Which sounds so entirely stupid as to be almost incredible. Why not just take this guy and move him, even sideways, to another role he can automate? But I believe him, because I've seen a lot of stupidity in Big Companies, especially the old school ones.
- michaelbuckbee 8y agoDevelopment jobs are shifting as more and more towards "plugging APIs together" and much less end to end development. Modern web dev is fantastically more productive and efficient than it was 10 or 15 years ago. Most/many SAAS apps are substitutes for aspects of what previously would have been part of a developers job to put into place.
- chooseaname 8y agoSome. Some development jobs. We sometimes forget that the world of development isn't just the WWW.
- tomjen3 8y agoCareful, that is only true if you look at a very small subsection of programming. And perhaps even then not so much: at a minimum you probably need to write unit tests.
- tabtab 8y agoRe: Modern web dev is fantastically more productive and efficient than it was 10 or 15 years ago. I have to disagree. The esthetical expectations of the user/customer are higher now. If it's not "in style" they think you are sticking them with old tech. And you have the desktop/mobile split that frameworks only get half right and require days of black-box fiddling to get working right on all devices. And JavaScript gizmos often "break" as new browser versions or related components come out. It's almost as bad as the "DLL hell" that desktop applications used to face. From a purely utility standpoint, I was much more productive back then because I only had to make it work and be easy to use, not "pretty" and animated with toys or the latest style fad.
- bradknowles 8y agoI submit that having ten thousand node.js/npm dependencies is far worse than any DLL Hell that has ever been experienced to date.
- tokyodude 8y ago
- just_myles 8y agoI agree. I see nothing wrong with anyone making their job easier.
- ohopton 8y agoBluntly put, smarter programmers than you are automating you out of a programming job. Not pretending for a second I'm safe.
- DennisP 8y agoThat's been happening ever since the first computers. The first programmers hand-entered machine code, then someone automated that with an assembler. Then the first compiler automated much of the work in writing assembly code. Since then we've gotten ever more powerful languages, libraries, and all sorts of tools. None of this has reduced the demand for programmers.
- ohopton 8y agoCouldn't agree more, that doesn't mean it's always going to be the same. A lot of programming jobs these days are putting information from a database on a screen, then updating it in the database after it's been edited. Doesn't feel like that should be an impossible thing to automate in a fairly sophisticated way. Though that's been true for a long time and we don't seem to have made much progress.
- DennisP 8y agoI spent a lot of my career doing that. There was usually a fairly large gap between what made sense in relational database design, and what was convenient and sensible for users.
- CamTin 8y agoMore importantly, "what is convenient for users" will frequently change and be expressed only vaguely by those users in natural language bug reports or feature requests. Converting that natural language into something machine-readable is programming, whether it involves typing cryptic strings into emacs or hooking together components graphically a la LabVIEW.
- flewkey 8y ago
- forinti 8y agoExactly. I wonder how their bosses don't realise that these tasks can be automated.
- bradknowles 8y agoIt is hard to make someone understand some fact when their continued existence depends on ignoring the fact in question.
- alistairSH 8y agoExactly. Automate away the mundane tasks, so you can spend more time on the interesting tasks. In some regards, programmers are fortunate to have this ability; many careers do not have the skills to automate away the boring parts of their own jobs.
- suyash 8y agoThat may be true in some cases like testing, build automation etc however when CS engineers are developing AI services and Bots, in the long run they will be automating programmers who used to do those things by hand. So Technology will eventually disrupt Coders as well and they will have to skill up or find a new job.
- onion2k 8y agoPlenty of developers automate the code writing too; toolkits, boilerplates, generators, code mods, etc are very popular.
- ummonk 8y agoI think the story of the Indian IT crisis is that good programmers have been automating them out of jobs. Good programmers in India are doing fine at modern tech companies there, but the code-monkeys at Infosys et. al. are struggling.
- tabtab 8y agoRe: programmers are not automating themselves out of programming jobs. They're automating themselves out of data entry... That's not always true. In at least 2 different organizations I worked at they were creating a combinatorial mess of search screens and/or reports. Using a little bit of meta programming, query-by-example forms, data dictionaries, click-able drill-downs, and modular design; such "reporting stacks" could often be simplified into either a fewer number of screens and/or designed in such a way that a non-programming power user could configure most reports on their own. Allowing CSV exports of query results also reduces the number of "paper" report requests because Excel users can then format their own. The result is something that needs roughly 1/3 as many programming hours to update and maintain. One caveat is that you have to know the domain fairly well for it to be practical. You have to learn the domain patterns and habits in order to factor those patterns into meta-patterns. When I tried it as a newbie to the org, I usually did it wrong.
- ratsimihah 8y agoPrecisely. Programmers can only automate that much of their programming jobs.
- kbenson 8y agoYes. In programming, laziness is a virtue. To some degree, so is the desire to work on interesting problems instead of boring problems. Those generally intersect to provide an enormous benefit to everyone.
- Wwhite 8y agoA Perl reference, I think :) http://wiki.c2.com/?LazinessImpatienceHubris http://wiki.c2.com/?LazinessImpatienceHubris As a sysadmin who started out replacing power supplies as a datacenter tech, and nowadays wrangles AWS auto-scaling groups, the idea of _not_ automating away the tedious parts of my job is pretty hilarious. I had one operations/support job where this was the case, and thankfully, I quit after one month. If anyone out there has the gumption to cobble together a dev environment and automate away their BS job, yet can't get recognition from your employer; it is time to seek out a new job, you've certainly got the skills for something better!
- bmj 8y agoWhat about programmers automating other programmers out of jobs? My employer's core product line is designed in such a way that it can be configured for specific customers via an API. Much of that work is done by "operations developers." The complexity of their work varies based on the customer's needs. We are currently developing a designer tool that will allow the configuration to be developed via a graphical interface that will allow much of the work to be done by non-programmers (and eventually the customers themselves). As the tool matures, it will generate the code necessary to handle more complex requirements.
- honopu 8y agoThat’s creating efficiency, that’s what we do. Or am I missing something?
- zwkrt 8y agoThink about the cottage industry of programmers who produce and maintain Wordpress websites for their clients. I think just like any other industry, there is need for products on many points of the [mass produced <--> bespoke] spectrum.
- ambicapter 8y agoThose "operations" engineers can be moved to making sure Ops are running well at home (you apparently have an API) or into Technical Sales if they'd rather stay in the field. Informing the customer of all the configuration that is available to them, for example. Just because there's a nice graphical configuration tool, doesn't mean any clients are actually going to look at it when they have an issue. They'd much rather call you up and bitch about it. Operations guy's job is safe, but he might be able to address more customers than he could before.
- bradknowles 8y agoNope. Operations is a pure cost center. Cost centers only exist for the express purpose of being compressed twice as much this month as they were last month, so that you can make them half as expensive. Developers are valuable. They create value. When all the good Operations staff has left because they're tired of being treated like mushrooms, all the Operations stuff gets thrown over the wall and then the Developers get told that they are now DevOps.
- GFischer 8y agoSome companies do try, they end up building higher level languages / code generation tools that still require programmers. One such tool is very popular here in South America: https://www.genexus.com/en/global/products/genexus https://www.genexus.com/en/global/products/genexus GeneXus™ streamlines application development by automatically generating everything from databases to code, frontend to backend, and server-side to client-side services. It’s not magic — just a smarter way to create smart technology. It ends up being a kind of DSL.