6 ms·
Solving problems is interesting. Repetition is terrible. As programmers many of the things we build are to automate processing that other people would find rep
by garethadams 13y ago
Solving problems is interesting. Repetition is terrible.
As programmers many of the things we build are to automate processing that other people would find repetitive and make errors doing. As a result, our work becomes repetitive and we make errors doing it. As some level we've succeeded – we've added a layer of abstraction and made a lot of people's lives easier – but we've also moved our expectations ahead of us and now we're playing catch up.
The author says
> Sometimes I also think if it would be different if I was born several decades earlier
but I don't think it would. The problems would have been more fundamental and the solutions would be more "pure" computer science, but I imagine you'd still have the same level of tedium with regards to debugging and loose user requirements.
- twic 13y agoI suspect that even back then, there was a lot of tedious grunt work. My dad did some sort of academic goofing about in the late 70s, early 80s. Should be pure and focused, right? Well, at one point, they got a new hard disk for the minicomputer, and he had to write a driver for it. There is always absurd shit you have to do before you get to the good bit.
- bigiain 13y ago"Solving problems is interesting. Repetition is terrible." Most "programming" is just "digital plumbing". No matter how flashy or utilitarian the taps or basin are, underneath the job is pretty much always the same - you hook up hot water to one tap, cold water to the other, and the sink drain to the drainpipe. You can do a great job or a shoddy job - so long as nothing leaks _too_ much, it doesn't make any difference to most people. Almost all of the programming jobs in the world are like that - call it CRUD or MVC or Mobile Apps or Web Apps or websites or SaaS, or PaaS - you're mostly gonna spend your life hooking some user interface up to some data store doing some sort of filtering or data transformation in between - and hopefully having some real-world side effects that generate value for someone, be that entertainment, education, ecommerce, improving the efficiency of some previously manual or tedious process, or often - just releasing a new version of the same old thing because marketing decided it's time for a version number change and a few "new feature" checkboxes for their competitor comparison. Most "day to day programers" _don't_ get to write new 3D renderers or physics engine for exciting games or write the next great crypto system or solve hard computer science problems or software to control new spacecraft or fighter jets - or whatever "interesting programming problem" you can name. But if you're lucky, you might get to solve real world problems your business/clients/customers have – by hooking some fancy new off-the-shelf taps up to some standard boring old digital plumbing in fairly standard ways – occasionally you might even get some new-to-you plumbing job, perhaps plumbing in an espresso machine or a fridge-with-ice-cube-maker-in-the-door, and that'll be fun - the first time. Maybe even the second and third time - then it'll be "just another standard plumbing job", with a different fridge or coffee maker. I saw a presentation a week or so back, that seems to me a lot like the article-writers original "I'll write some code to find Mersenne Primes!" - it was a bunch of local guys presenting (at DorkBot here in Sydney) about the new ASIC USB BitCoin miners they were building - you _can_ find and attempt to solve interesting computer science / math problems, but there's _vanishingly_ few people who'll employ you to do it.
- pnathan 13y agoI'll be honest, this fact in and of itself is driving me to plan for a PhD. I have no interest in being a digital plumber. Zip. Zero. Nada. I want to solve fundamental problems that have never before been solved.
- deleted 13y ago[deleted]
- RogerL 13y agoI don't exactly know the truth of your statements above, but I've spent my life doing all of that cool stuff. I've written code for flight computers, done machine vision for factory inspection, supported cancer research by doing stats and data analytics, written 3D viewers/playback for aircraft black boxes, worked on robots and UAV for several years, and now I'm doing some computer vision + AI work that I can't make public just yet. And I had other opportunities, like working for private space launch, which I declined. How? Mostly (not entirely) by working for a defense contractor. Everyone seems to knock corporate jobs, but I swear to you I've done so much cool stuff because it is only companies that size that can bid on and win this interesting work. Plus, I went to university (another false meme around here - college is just a piece of paper), where I learned the chemistry, physics, electrical engineering, and math to do all this stuff. There is plenty of pain in big government type projects, but there is pain in every thing important. Do you want to wrestle with undocumented CSS behavior, or wrestle with how to program this robot, or how to reduce defect rates in your machine in the factory, or how to make this plane fly. Sentence structure doesn't make it clear, but I consider only the first boring, and the rest extremely interesting. There are a lot of those kinds of jobs. You may not live in SF anymore, and end up at an airbase in Iowa, or in Albuquerque, or Huntsville. OTOH, your pay will be absolutely amazing compared to local property prices, and you can raise a family, go on great vacations, and not worry about living in the crazy bubble we are in right now. I know it won't appeal to everyone, but I swear to you there are tons of extremely interesting, challenging jobs out there that aren't start ups, and aren't corporate internal reporting apps (TPS reports). You will need to be far more than a Ruby on Rails developer, CSS+HTML5 jockey, or what have you. edit: all of the above is written by a US citizen. I don't know what opportunities are like in other countries, and don't mean to imply that any of the above applies to anyone but a US citizen. I don't know.
- jasonlotito 13y ago> Solving problems is interesting. Repetition is terrible. DRY. Solve the problem of repetition.