Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

>programmers hunt for un-automated stuff to automate

Yup. This is pretty much how I describe my work to my wife. I find hard things and make them simple (using computers) - that makes "impossible things" hard, and inturn (eventually), I will make those things simple



sort by: page size:

> The hard part of programming is building and maintaining a useful mental model of a complex system. The easy part is writing code.

This expresses something I've felt when exploring the tech quite well.


> Now, programming feels a lot like woodworking: a deliberately inefficient way to do something, just because it's fun.

Now that is a standout line right there. It perfectly describes some of my own personal projects. Sometimes—oftentimes—they go nowhere but I had fun.

One such task was developing a secret Santa system in python with an auto mailer and “paper” backup while in Hawaii last year. It took me part of a morning during breakfast before we went out for the day. I refined it when we got home. There were others already out there and it did nothing more then putting names in a hat, but it was fun. And it’s reusable. And it had the added benefit of needing no moderator—nobody in on the secret.

The metaphor of a wood working project just seems to fit so well. Nice one.


> You can be brainy and do menial work.

Yes, it's called "programming".

At least 80% of programming is menial. At least. The interesting bit where you understand the problem and find the best solution virtually always takes far less time than actually banging through the code. nevermind documenting it, testing it, etc. The hardest part is simply not screwing up.

I feel blessed if 5% of my day involves actual critical thinking.


> always figuring out ways to have his computer do the work for him

One of my earliest programming mentors mused that the reason I might well become a decent programmer was because I was both extremely stubborn and horrifically lazy. He'd observed that I would re-write code until it was the most efficient possible to automate a needed task that could save me time/effort in the future.


> The truth is, there are no easy problems in programming.

I've come to think of my work as figuring out ways to think about problems so they become easy.

Not quite the same thing, I know.


> Most of the time, what programming really is - is just a lot of trial and error

I am not the best programmer ... but I have always felt like an imposter with how many times I googled the next expression.


"I am here to say that things that programmers do are not mundane (or they would be automated out quite quickly)."

And they have been automated out, and so we are all working to solve other things now, which will then be automated, leaving us to solve other things...until the Singularity.


> There is one thing that developers like more than building things — and that is breaking things built by other people.

Haha. This is not as universal as the author thinks. Every time I need to reverse-engineer something obscured on purpose, I wish we could just get along.

Every time I have to reverse-engineer something obscured by accident, I call it debugging.

But even if I solve the puzzle, it's like solving crosswords: I just defeated a human mind, the victory is transient, and will soon be forgotten. I'd prefer my victories to be against the frontier of knowledge, and to win universal truths. That means building things rather than tearing down those humans built.

I just wish there was more mathematical certainty and less human vices in programming.


> You dig into the code. It’s an exercise in archaeology.

Reminds me of the "programmer-archaeologists" from A Fire Upon The Deep.


> Nothing is simple — every step of the project presents some unique problem that you have to work around carefully.

I dunno dude, that sounds just like software to me, lol


> and avoiding complexity

God it's refreshing to see someone actually put that as one of the primary, principal activities of software development.

Figuring out how to do a hard thing in a simple way is not simple, it's actually really hard!


> Programming shouldn't be (just) thought of as engineering, but also as simply giving the computer complex instructions.

I really like this phrasing. I'm not really an engineer. My code is mostly rough, but it is functional and does what I need it to. I don't program to build a skyscraper, I program so my computer can do a thing I need it to do.


> A lot of coding is simply banging your head against the wall, search SO over and over, changing things around, until it does what you want.

I don't find myself in these situations nearly as often as I did back when I was a junior engineer. But damn, I'm sure I looked busier (and more stressed out) back then.


> No matter what "no-code" tool is invented, the world keeps inventing new tasks for human programmers to do that today's no-code tool can't do. There's always a delta in capabilities.

And by that logic always an opportunity to make something that was once hard to do, easy.


>>> What we do is not that difficult

Somethings are not, but some are. Just like everything else, software work also ranges from easy to hard.


"... and sometimes i know what to program but it's such grunt work that i can't get myself to do it".

> We don't like writing code on the whiteboard, we don't like mind teasers, we don't like programming puzzles, and so on.

I love all of those things. In fact, dare I say I like them more than the job itself:

(0) The given task is usually short, self-contained, and has a single best solution that can be found purely by logical reasoning.

(1) There are no requirements of the form “you have to use this obviously misdesigned technology”. All one has to do is come up with data structures and algorithms.

(2) I won't piss anyone off for trying to do things in the most elegant way possible.

What's not to love?


> I think programming is easy. When I sit down to code something, it feels deterministic, and everything falls into place

this is something i've always felt and was always confused by when I saw others coding. Nothing was ever "hard," coding just made sense to me. So logical, so easy to do, concepts may be difficult to grasp at first, but it never took long to grasp and commit it to memory.


> What I learned was that programming is not really about knowledge or skill but simply about patience, or maybe obsession.

Damn, the secret is out.

next

Legal | privacy