The Little Printf
October 12, 2015 3:33 PM   Subscribe

So I lived my life flying around the world, telling people how to do things I had sometimes never done myself, while everyone suddenly seemed to believe I was a real programmer because of things I did that were mostly not related to programming in the first place. One day, I was stuck in an airport coming back from a conference, furiously typing at a terminal, when an odd, gentle voice asked me: If you please, design me a system!
posted by modernserf (38 comments total) 49 users marked this as a favorite
 
Here it is in video form, with delightful French-Canadian-accented narration.
posted by Space Coyote at 3:48 PM on October 12, 2015 [6 favorites]


"I see", added little printf, pensively. "What problems do you solve with all of these frameworks?"

"Oh, I make sure we don't use something that is not going to be big, so that this company doesn't get to bet on technologies that have no future. It's very important work, because if you don't do that, you can't find anyone to hire except old grey beards behind the times, and you want self-motivated go-getters, who are also early adopters.", said the man.

"That is funny", chimed our friend.

"It is very hard! in the startup world, if you want a-players, you need good technology to bring them in! Otherwise you're stuck with inflexible laggards. Nobody wants to be an inflexible laggard."

The little printf interjected: "No, that's not what I mean," and he then added "I mean it's funny that tools are meant to solve problems for us, but for you, the tools themselves have become a problem."

I recognized so many of my colleagues in this passage.
posted by potch at 3:48 PM on October 12, 2015 [5 favorites]


It is; and because you're the most familiar person with these fires, you get to only work on them more and more, until your employer hires someone else to cover your old job, the one you loved. If you care hard enough about your work to be the one doing the stuff everyone else hates, you're thanked by doing more and more of that work you don't like, until that's all you do. And then there's nothing left for you to enjoy.

At my job we have a cynical saying "The reward for good work is more work". Granted my work environment is full of perverse incentives.
posted by zabuni at 3:53 PM on October 12, 2015 [6 favorites]


Wow. Yeah. I think I need to go and ruminate on this for a while.
posted by CrystalDave at 3:54 PM on October 12, 2015 [1 favorite]


"The reward for good work is more work".

My favourite way of describing this that I've heard is that it's a pie-eating contest where the prize is more pie.
posted by Space Coyote at 3:54 PM on October 12, 2015 [15 favorites]


SICP is the bible not because it teaches some set of programming abstractions, but because of its educational philosophy: by its rigorous emphasis on the fundamentals, in order to show and develop for the student a clear understanding of what matters. This a style of learning that extends to programming as a profession, and life in general.
posted by polymodus at 4:05 PM on October 12, 2015 [5 favorites]


I know way too many programmers who would not understand the reference.
posted by still_wears_a_hat at 4:07 PM on October 12, 2015 [2 favorites]


"The reward for good work is more work"

As I heard it, "If you're good you get all the work...if you're really good, you get out of all the work."
posted by Greg_Ace at 4:15 PM on October 12, 2015


I recognized so many of my colleagues in this passage.

I recognized so much of myself in all of it :-/
posted by Annika Cicada at 4:54 PM on October 12, 2015 [6 favorites]


I'm oddly pleased that Dev Ops (my current job - ish) is a depressed heavy drinker.
posted by poe at 5:04 PM on October 12, 2015 [3 favorites]


"The reward for good work is more work"

As I heard it, "If you're good you get all the work...if you're really good, you get out of all the work."


I've learned the wisdom of the following: Never get good at something you don't want to do.

It was a cute parable with a good life lesson, but in terms of programming I was less clear on the message, unless it's that development is optimal when you can clearly see the human problem it could solve.
posted by Artful Codger at 5:05 PM on October 12, 2015 [6 favorites]


I see myself in some of these too. And the worst part is, I'm not sure I know better answers to many of the questions. But at least I think it's OK for a system to always be at least partly broken as long as it also produces something of use?
posted by RustyBrooks at 5:15 PM on October 12, 2015


"The reward for good work is more work"

The way I always say it is: Sometimes the worst thing you can do is succeed.
posted by Billiken at 5:39 PM on October 12, 2015 [2 favorites]


This is sort of my life, but I didn't know I was a pilot downed in the desert. Now I know. It all makes sense now.

I'm shit at drawing roses, though.
posted by clvrmnky at 6:02 PM on October 12, 2015 [3 favorites]


It occurs to me that "Learn you.." and that crazy Ruby book by Why and "Starting Forth" are sort of cut from the same cloth.
posted by clvrmnky at 6:08 PM on October 12, 2015 [6 favorites]


The Good Work>More Work thing puts me in mind of that line from The Horse And His Boy: "He had not yet learned that if you do one good deed your reward usually is to do another and harder and better one."
posted by comealongpole at 6:11 PM on October 12, 2015 [4 favorites]


It occurs to me that "Learn you.." and that crazy Ruby book by Why and "Starting Forth" are sort of cut from the same cloth.

Not to mention Learn You A Haskell For Great Good.

Does anybody know where this whimsical-programming-tutorial trend started?
posted by acb at 6:15 PM on October 12, 2015 [3 favorites]


Learn You Some Erlang for Great Good was inspired by Learn You A Haskell For Great Good. I don't know if the others are related.
posted by dilaudid at 6:16 PM on October 12, 2015 [3 favorites]


Does anybody know where this whimsical-programming-tutorial trend started?

I know this has been around since 1987...
posted by Greg_Ace at 6:34 PM on October 12, 2015 [3 favorites]


I remember thinking that Learn You a Haskell was inspired by why's Poignant Guide back in the mists of time when this things were coming out.
posted by chrchr at 6:45 PM on October 12, 2015


“It is only when you solve problems with a human face that you can feel truly right,” repeated little printf to himself, so he would remember.
When I have succeeded in my career, it is because my partner and I set out to help someone we had already come to care about as a human being.
posted by ob1quixote at 6:54 PM on October 12, 2015 [1 favorite]


From 1985: Modula-2: Seafarer's Guide and Shipyard Manual

The original book cover was more colorful.
posted by rfs at 7:05 PM on October 12, 2015


so i'm probably a journeyman at this point in my career; i've been doing it long enough that I can make just about anything I'd want, but not long enough that i have a bush-ass neckbeard and a solid grasp of most of the 'real programmer' fundamental CS concepts that people like to sling around.

The way i keep myself together is trying to remember that everybody in this thing spends all day huddled around their own little trashfire–desperately hoping that they can pull it off–and usually when they fail (if they're not a total asshole), people won't stab them in the back.

My personal goal is to keep my trashfire going and maybe, if i can, minimize the smell whenever I have enough free time to refactor.
posted by thsmchnekllsfascists at 7:50 PM on October 12, 2015 [6 favorites]


Brodie's "Starting Forth" first edition was 1981, if we are keeping score.
posted by clvrmnky at 7:56 PM on October 12, 2015 [1 favorite]


Does anybody know where this whimsical-programming-tutorial trend started?

The Little LISPer dates from 1974. I've only read its much more recent revised version The Little Schemer, but it's really top notch (and also whimsical).
posted by kenko at 8:11 PM on October 12, 2015 [1 favorite]


Yes, I suppose we've always been surrounded by whimsy.
posted by clvrmnky at 8:28 PM on October 12, 2015


My buddy asked me what I've been reading lately. To my horror I could only answer: error.log.
posted by riverlife at 11:40 PM on October 12, 2015 [7 favorites]


In the military we use the phrase "performance punishment".
posted by dangerousdan at 12:42 AM on October 13, 2015 [3 favorites]


I suspect MetaFilter is home to many people to whom this speaks already, so as yet another person who somehow allowed money drag me into more and more technical work despite never really enjoying it, not even a little, all I can really add is... yeah, ouch.
posted by rokusan at 4:26 AM on October 13, 2015 [1 favorite]


Thanks for this. I'm a UX designer, not a developer, and this piece was a great reminder of how important it is to share user feedback with my dev teams, so they can see how their work really does make people's lives measurably easier.
posted by Kilter at 5:56 AM on October 13, 2015


"Competence is its own reward."
posted by AbnerRavenwood at 7:43 AM on October 13, 2015 [1 favorite]


I think the black box needs some holes.
posted by clawsoon at 8:03 AM on October 13, 2015 [1 favorite]


"The FORTRAN Coloring Book" was published in 1978.
posted by rmd1023 at 9:11 AM on October 13, 2015 [1 favorite]


There is a point here, and I think it has been made. Which is all well and good.

But.

If you don't have the underlying understanding of what you are doing and why, if you don't know the proper paterns and structures (or even that they exist), if you don't know the limitations of what you then plan and build, if you don't know the right tools for the job, or that there are now better tools and building blocks to use ...

... you'll taking much longer to build something than you would need to, in an inefficient way which won't work right and might be horrible to work with, and might not work correctly or in the future.

So, yeah, it's nice to be a human programmer, but you also need to be a knowledgable, skilled one, working with others to maintain a skill-level amongst your peers and a quality level in what you create.

Because otherwise you become what the speaker is*: oh-so-wise, but you can't create what you're talking about, because you've never done it and experienced it.
It's only when you have created something which can't be scaled, or something which creates those little fires you have to put out, or planned something and seen how your architecture goes wrong, or seen how proper knowledge can make things faster, more efficient or even possible, that you can be skilled in your craft and more and more usefull to do that which you set out to do.

Software/software architecture is a CRAFT. Builders used to have levels of skill, like the person above mention, he was a journeyman. Like blacksmiths, who can become masters, but only after putting in the work and having been mentored. As the sory implied, only someone who has programmed and seen what can happen, what the consequences are, and who knows how to measure what he tries to implement, can be a good software architect, else he's just guessing, in the exact same way that a real master architect has laid some brick in his life, or at least talked to and observed a master bricklayer, so he knows what is possible and what can just not be done. Only then can he push brickwork to the limit and build something that can be built and can be built on time and on budget.

*I have no idea who the speaker is, I'm just going on how he introduces himself: someone who has never had his code in production. I mean, that's where you see what you did wrong! That's where the learning is.
posted by MacD at 11:17 AM on October 13, 2015 [6 favorites]


That lack of deep underlying knowledge seems to be tightly related to the idea of the "expert beginner".
posted by rmd1023 at 11:33 AM on October 13, 2015


The video telling is great. I'm relieved it doesn't have the sad Little Prince ending. Though, I guess it's a sad ending for programmers.

"They like to talk about how they change the world…The best they do is convert people's jobs to programs."
posted by ignignokt at 1:28 PM on October 13, 2015


No good deed goes unpunished.
posted by double block and bleed at 8:06 PM on October 13, 2015


Maybe I'm weird, but my motivator is to provide for my family. I go to work and work hard to write the best code I can, trying to learn how to do it better and easier as I go along. Writing code isn't a religion for me, it's a relatively enjoyable way to achieve my goal. After having many unpleasant jobs doing hard work in mostly industrial environments (and a short stint as a prison guard), I think I appreciate my job in a way my co-workers often don't. I have a fun job that pays good money that I'm good at. Sometimes it's hard, but in the big scheme of things, it's a piece of cake.
posted by double block and bleed at 8:19 PM on October 13, 2015 [2 favorites]


« Older We can be anything we want to be. Then one day we...   |   Holes in your mind, cold and sharp at the edges. Newer »


This thread has been archived and is closed to new comments