Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Books

Do Coders Crave a Sense of Control? (stackoverflow.blog) 103

This week Stack Overflow's CEO/founder Joel Spolsky spoke to Clive Thompson, the tech journalist who just published the new book Coders: the Making of a New Tribe and the Remaking of the World . "It's a sort of ethnographic history of this particular tribe," explains a blog post at Stack Overflow, "examining how software developers fit into the world of business and culture and how their role in society has shifted in recent decades.

"The official conversation kicked off after a 15-minute tangent on Joel's collection of Omni magazine and the formative role this publication had for both men." Some excerpts: Clive: The question in my mind is, who is interested in this? What gets them bit by the bug so they are willing to crawl over all the broken glass that is the daily work.

Joel: In my time, it was the absolute control. Whatever code you wrote, that's what executed. There was no translation. It wasn't like, well the flour was kind of old, and I tried to make the souffle but it collapsed. Unlike so many things you will try to accomplish as a child or an adult, where you work on something but it doesn't turn out as you expect it to, with code it will do exactly what you told it. Even if that's not what you meant. You might suddenly realize you're obeying me to the point of making me angry.

Clive: The monkey's paw thing. I shouldn't have wished for that.

Joel: But the computer is still being completely obedient.

Clive: That thrill is a common thread I found in my research, from the 1960s through today. I will talk to people in their 80s who worked on machines the size of an entire room, and it's the same damn thing talking to a 15-year-old girl at an afterschool program working on a raspberry pi or P5. There is something unique about the micro-world that is inside the machine, qualitatively different from our real world.

Joel: It's sort of utopian. Things behave as they are supposed to. The reason I put a question mark on that, as programmers move higher and higher up the abstraction tree, that kinda goes away.

Clive: I think the rise of machine learning is an interesting challenge to the traditional craft of software development. Some of the people I spoke with for the book aren't interested in it because they don't like the idea of working with these indeterminate training systems... there is something unsettling about not really knowing what's going on with what you're building.

Joel: I just picked up Arduino a year ago and that was enormously fun because it was like going back to C, instead of all these fancy high-level languages where you don't know what they are going to do. It offered a really detailed level of control. If something doesn't work, you can figure it out, because everything is tractable.

They also discussed the future of coding -- and took a fond look back at its past. Spolsky remembers his first exposure to computers was an interactive terminal system connected to a mainframe that ran FORTRAN, BASIC, and PL/I programs. "Many, many years later I realized there was no way they had enough memory for three compilers and in fact what they had was a very simple pre-processsor that made Basic, FORTRAN, and PL/I all look like the same mush.

"It was a very crappy subset of each of those three languages."
This discussion has been archived. No new comments can be posted.

Do Coders Crave a Sense of Control?

Comments Filter:
  • As if coders aren't human, come on people, aren't there real problems we should be talking about?? See ~ http://changingminds.org/expla... [changingminds.org]

    It must be a really freakin slow news day, eh?

  • Programmers don't crave for control, programmers need control.

    How you, as programmer, will make a machine or system do something in the expected way if you have no control over what the machine or system is doing?
    • It's like any other creation, code, mechanical, electrical, etc. You create a contraption to serve a purpose, and you compose it from discrete elements that work together in specific ways. You don't crave control, you expect it, you demand it, you need it. If you don't have control the thing you build very likely won't work, and at worst may be actively dangerous or lethal.

      Building things. [dilbert.com]

    • Programmers (and engineers in general) need control over the things they are building, whether these are software artifacts or bridges or circuits or nuclear reactors.

      The problem is that those same programmers then tend to believe they need to control EVERY THING in their lives, including the people around them. Lack of ability to control very quickly leads to the whole syndrome of programmers who look down on everyone around them. And the whole thing of all software that is not OSS that I can control is ba

      • Comment removed based on user account deletion
      • "Actually Microsoft and Apple and Adobe and Autodesk and Oracle and what have you makes good, useful stuff."

        Some of those things are not like the others
        Some of those things are not fucking remotely the same

        Microsoft and Adobe in particular have been writing fragile, holey software since time was time, and show no signs of giving that up

      • Have you used Oracle? Good? LOL. Useful? Maybe.
      • Seriously? MS Windows has improved, but it took several decades to get where it is now and it still sucks. I remember when they didn't even support real tcp/ip, it was tcp/up over netbeui. Have you ever dealt with Oracle or db2 support? There are a lot of database competitors out there and if IBM and Oracle don't wake up, they'll be tier 2.
      • This is the main reason why I am rapidly leaving the Software Industry. I have grown very tired of Nerds whining and bitching about everyone else and then wasting zillions of bucks of other people's time and money to replace stuff that they could get much faster.

        Good point. Don't let the door hit your ass on the way out.

    • It comes from getting all those wedgies in high school.
    • > programmers need control.

      Within this container, and within my home directory, I am master of everything as far out as the ls -la can see!
  • by Rick Schumann ( 4662797 ) on Sunday September 22, 2019 @10:09PM (#59225264) Journal
    Think about it: when you write code for just about anything, the aspect of it that is just as important as the code performing it's primary function is it's ability to handle errors competently, am I right? Without some innate need to control things, to think about controlling what might happen, can you really do the job properly? It's easy to write something that does what it's supposed to do, but totally ignore what might go wrong. A need to control the machine and how it responds to various situations is necessary, I'd think. Just my opinion, by the way. I'm a hardware guy, mainly.
    • the aspect of it that is just as important as the code performing it's primary function is it's ability to handle errors competently, am I right?

      That's next level ability these days. First level is getting the happy path to work, and not many programmers ever graduate above that.

      So good job, you made it to the next level.

      • by Bengie ( 1121981 )
        I wish most people could get the happy path to even work. Seemingly, most can only get a simplistic version of the happy path to work, but they don't fully understand the happy path or their own design and implementation. Even senior programmers think the happy path is getting a single request at a time to work on their box. That is not the happy path, that is a glorified proof of concept.
    • It's easy to write something that does what it's supposed to do, but totally ignore what might go wrong.

      I found that mostly "the code that actually does the job" is a small stanza, while the guard code surrounding it handling errors ends up being an entire Shakespearean Opera.

      • Sometimes it has to be that way, but if you find that the error handling code is repetitive, you likely will be able to sluff it off into some kind of function/macro/whatever. Computers are good at handling the repetitive stuff.
    • I agree - to the extent that I don't see most of it as error handling. It is just about taking into account the states outside the happy path. And those states tend to be more numerous and often more complex than those inside.

    • by fermion ( 181285 )
      The difference between a developer and other people is that developers need to think about how to constrain the situation and develop processes so that a task is controlled and predictable. It is the same in any technical job. If you are building a car, you need to design it so it responds in a controlled and predictable way. If you are designing a building, there are patterns and engineering that are required so that people can use the building safely.

      If is not so much that we are in control, but that

    • Suppose you have a really awesome piece of code, but it doesn't handle errors correctly and the only way to do it is with another four months of development and an extra $200k.

      Would you hold things up to deal with problems the users were creating?

      Agile says to lean away from this (don't hold up everyone because it isn't 100% perfect). Enterprise software says don't do this either because employees should be expected to take of some things themselves.

      There isn't a user out there that says, "I just w
  • Oh great (Score:5, Insightful)

    by phantomfive ( 622387 ) on Sunday September 22, 2019 @10:17PM (#59225276) Journal
    I can see it now, in addition to all the other [medium.com] psychological issues [reddit.com] programmers are alleged to have, now some bloggers are going to accuse us of having control issues. Those jerk, brogramming control freaks.
    • by AmiMoJo ( 196126 )

      It's funny what different people consider to be control too. TFS talks about how the Arduino offered a greater level of control than they were used to, but actually Arduino is heavily insulated through the use of libraries which tend to railroad you in to doing things a particular way.

      For real control you just hit the special function registers directly and don't bother with libraries (or make your own), and you have a good understanding of exactly how every line of C translates into assembler.

      It took me a

      • TFS talks about how the Arduino offered a greater level of control than they were used to, but actually Arduino is heavily insulated through the use of libraries which tend to railroad you in to doing things a particular way.

        Yeah that's a true point.

        It took me a long time to get used to modern desktop programming in languages like C# where most stuff is a black box and you just have to accept that it works,

        Someone recently asked me in an interview, "What sorting algorithm does the Java standard library use?" And at that moment I realized I had no idea.

    • Yup, it appears to be yet another hatchet job, defaming our profession with stereotypes and pseudo-psychological bullshit. And of course the very title of the book contains a pejorative epithet.

      I wonder who pays for all this defamation we're seeing lately?

      • I wonder who pays for all this defamation we're seeing lately?

        Oh no doubt it's the people who are befuddled that they've reduced everyone else's salaries to peanuts but we've had the fucking nerve to reject shitty job offers. Just the other day my house bitch down in HR was crying because she'd spent the whole quarter improving our recruiting numbers and then not a single fucking college student managed to successfully create a talos account or complete the 300 question personality test!! These fucking people think I'm just going to give them 60k/year when they won'

    • The planet is ran by lawyers and greedy finance fucks. It's not even notable when one of these guys puts themselves well above the interests of everyone else. But tech workers show up to work and do their jobs and usually don't dox or steal from people though they could do it all day long.
      We're a bunch of meanie jerks, we're all sexist and homophobic, probably bad for the environment and we hate minorities. We're practically everything wrong with the world really. The real problem is we want to be left

      • Yeah. If you want to look at an industry that is sexist, then it's not programmers at all. Even in Silicon Valley the salespeople, financiers and lawyers are worse by an order of magnitude (although the lawyers know how to stay inside the rules and be quiet about things). I don't know why programmers have been singled-out.
  • by SuperKendall ( 25149 ) on Sunday September 22, 2019 @10:19PM (#59225286)

    At the core of things as a developer, I would say having a sense of control is almost exactly the very last thing I have.

    Lets go way way back to my very first programming, on a Timex-Sinclair ZX-81. I needed more RAM (same story until the end of time) so I had a RAM pack...

    Sure, maybe that code I wrote would do whatever I said... right up until I bumped the RAM pack, then it was dust in the wind and back to the cassette tape to restore code from hours ago. Did that really give me a sense of "control"?

    Fast forward to today, when we have powerful pretty reliable computers, and advanced tools for dealing with code. Except maybe all those layers means that I update a tool and suddenly the size of something in a UI is different now, for no valid reason.

    Does that give me a sense of "control"? Does any of it? Hell no!

    I would say what draws programmers in is not at all control, is is in fact the rush you get for when something works the way you expected it do. Not because of any desire or expectation of control, but because it's like tapping into a magical but capricious power source that when it hits right, does amazing things... but you are never in control of that, you are just holding on to a firehose as long as you can and watching what happens, knowing at some time the magic will fade and you must do something new to bring back whatever it was into being.

    That's another point against control, how can you say you have any control when with time all things electronic fade without a ton of effort. The code is controlling YOU to paraphrase that old Russia chestnut.

  • by burtosis ( 1124179 ) on Sunday September 22, 2019 @10:20PM (#59225288)

    Whatever code you wrote, that's what executed

    Sounds like they never had the fun of a non-deterministic compiler. Build -> errors... Build -> errors... Build -> no errors?!? Success!

  • by UnknownSoldier ( 67820 ) on Sunday September 22, 2019 @10:21PM (#59225294)

    Articles like these are partially bullshit fluff pieces.

    ANY creative person has to follow a process in order to produce (deterministic) results. And while programming is a blend of Art and Science there is still a logical order to it.

    i.e. Programmers call this process "algorithms", chefs call them "recipes", carpenters call them "blueprints", etc.

    If you deviate too much from "the script" you (probably) don't get the results you want.

    --
    You can tell how free a society is by what they don't discuss.

  • Everyone who programs, wants to control what the program does. What makes really good software engineers is the drive to make code efficient, safe, and robust. Any ordinary coder can write some code that gives you the correct result in the simple case. An excellent engineer is one who is not satisfied until a function does it as efficiently as possible; doesn't crash when you feed it some unexpected input; and can adapt to things like different types of input. This is what makes a program really useful inst
    • Control is exactly why I was drawn to programming. Unlike any other form of engineering, 1s and 0s do exactly what they promise to do. (Hardware glitches are sufficiently rare now that they don't have an appreciable impact on the fun.)

      In other forms of engineering, there is always slop, always one more aspect of real physics that will eventually bite you (less than 100% pure ingredients, thermal noise, quantum-level effects, cosmic rays, static, stress fatigue--you get the idea).

      Once I discovered that des

      • by Bengie ( 1121981 )
        Exactly this. As a child, when I first saw a computer, I wasn't fascinated by what things it could do, I was fascinated by the things I could make it do, only limited by my own reasoning.
  • 10x programmers (Score:3, Insightful)

    by phantomfive ( 622387 ) on Sunday September 22, 2019 @10:25PM (#59225306) Journal
    From the article:

    Speaking to everyone from revered “10X” elites to neophytes, back-end engineers and front-end designers, Thompson explores the distinctive psychology of this vocation–which combines a love of logic, an obsession with efficiency, the joy of puzzle-solving, and a superhuman tolerance for mind-bending frustration.

    It's not that hard to be a 10x programmer. If you turn of your phone, close the distracting websites, and focus then you are a good 40% of the way there. If you learn "DRY" that will take you another 20% of the way there. Finally, if you learn error handling and how to organize code so people (including yourself) can find it again in the future, then you are easily 10x compared to the average modern coder.

    Learn to read documentation and you're basically super-human. The bar for "good programmer" is really low these days.

    • Funny, I thought it was just being good at searching github. /s
      • My goodness I don't know why I overlooked such an obvious option! Of course! If I copy code from Github, I can paste at 10x the speed I can type. You thought of that before me, that is why you are truly a 10x programmer and I am just a copycat.
        • You thought of that before me

          Woah there Tex, I didn't have to think, that's why I'm so much faster. You're just burning up useless CPU cycles failing to not apply logic, that's the real difference between us here...

        • Your not supposed to copy and paste it. You are supposed to just git pull it!

    • 10x programmers are members of professional societies, read academic papers and have a rough idea of trends in industry and research. And they understand the business around the stuff they write and, in particular, know that they are just building tools for other people to use. And the other people are paying them to make THEIR lives easier.

      Just because other people do not understand the details of the stuff that programmers are writing does not make them stupid. Just because they use MS Excel and Photoshop

      • Well that's a fantasy. That is, you described what you *want* a 10x developer to be, not what one actually is.
        • No, he described what the people with the money want, and in the end, the best reason to be a programmer, in this world, is to earn a lot of money.

          • I don't even know what you are thinking......people with the money want a product built. If they can get that without programmers at all, even better.
    • how to organize code so people (including yourself) can find it again in the future

      That's probably the hardest part. We tend to assume others think like ourselves because we only have our own head to directly examine. But you'll find others may think very different from you. One needs experience coding for others to hone that skill.

      And remember, legibility trumps "clever", such as killing 5 birds with one line of code. Make it clear even if it's more code.

    • It's not that hard to be a 10x programmer. If you turn of your phone, close the distracting websites, and focus then you are a good 40% of the way there. If you learn "DRY" that will take you another 20% of the way there. Finally, if you learn error handling and how to organize code so people (including yourself) can find it again in the future, then you are easily 10x compared to the average modern coder.

      And learn how to test your code, including building testability into the architecture, design and implementation. This will make you slower up front but when you're done, you'll be done, rather than having to fight a long tail of bugs for months when you're supposed to be starting the next project. And it will make you 10X faster at making changes later because you'll have confidence that your automated test suite will catch any errors.

      • I like automated tests, so I support you there. But I've seen people and teams who are able to work really well together and produce high quality code without them, so I don't want to say they are essential. (Also my last project was cleaning up a project that had nearly 100% code coverage, and was buggy enough that it had to be mostly rewritten. The design was poorly defined.) In terms of avoiding bugs, I read a survey of CTOs that said code review is more effective than unit tests. When I think of the ti
        • by imidan ( 559239 )

          I read a survey of CTOs that said code review is more effective than unit tests.

          That's interesting, and something I've been thinking about for a while. I worked on a project with a guy who was all about test-driven development, and everything he wrote had tests for various conditions. But it was crappy code, and it completely fell apart when users didn't behave exactly as he'd expected, and it was full of serious (and dead simple to exploit) security vulnerabilities.

          The problem I originally had with his tes

          • Sounds like he had great testing coverage of the errors.
            • by imidan ( 559239 )
              I mean... I guess? You can write crummy tests and crummy code, and the code can pass the tests, but it doesn't mean it does what it's supposed to. Don't get me wrong, I generally like the idea of test-driven programming, but it's no guarantee that code produced by that method will be any good.
        • I've seen people and teams who are able to work really well together and produce high quality code without them, so I don't want to say they are essential.

          I think they're essential in the long run, if the code is going to undergo substantial maintenance/improvement. So I suppose it depends on the type of code. Code that is written and then left largely untouched is probably fine if well-tested manually, but I think that's not what the lifecycle of most codebases looks like.

          I read a survey of CTOs that said code review is more effective than unit tests.

          Perhaps. It depends a lot on the quality of the code review and the quality of the unit tests. Also, unit testing is not enough. Integration and system tests are also essential.

    • by Bengie ( 1121981 )
      Being a 10x programmer isn't what you get done, it's other people not having to waste their time because of your janky crap, directly or indirectly, and making others more productive. And it's just not how buggy something is, it's how well it lends itself to being used correctly. A lot of projects technically don't have bugs, but they seem to no only encourage poor design for callers, but sometimes demand it.

      Some people's simple projects get bug fixes weekly to monthly until they're replaced. Other people
      • Getting along with other people is good and not doing so can make you a -X programmer. If you want to be a 10x developer though, you actually need to write code, it's not good enough to just get along with people.
  • I wouldn't say it's a need for control, exactly. It's more that it's fun to build what you have in mind, and you can build so much with such a flexible tool.

    The machine is also almost always entirely fair. If your program doesn't work, it's because you made a mistake. You screwed up. The computer won't judge you for your failure. It doesn't care. Go back and understand what you told it. There is some thrill of mastery with learning and understanding.

  • Coders neither have control, want control, nor get control. They are merely glorified keypunch operators doing what they have been told to do by some else who *IS* in control.

    Programmers, however, *require* control and determinism and refuse to use things which do not have that quality. This is entirely different from *craving* control and is entirely independent of whether or not one is a good programmer.

  • Comment removed based on user account deletion
  • by v1 ( 525388 )

    not really, but their left and right pinkies are a different story entirely!

  • ... is all about?

    I don't crave a sense of control, I crave actual control. I'm a programmer. Controlling stuff is what my job is all about.

  • by Tablizer ( 95088 ) on Monday September 23, 2019 @01:14AM (#59225522) Journal

    Too many parts of a typical stack have become dark grey boxes (DGB). Technically you can read their code, but it's usually thousands of lines and poorly documented. A few "speed readers" can plow through that, but it's not realistic for us muggles & mortals.

    ORM's, Bootstrap, UI template engines, URL route mappers, etc. are all DGB. When they work as planned, they are nice, but when they don't, you can spend days twiddling and fiddling until they work (or fudge it with goofy workarounds).

    Many shops specialize so that one can master a specific set of DGB's in order to tame their complexity, meaning the days of full-stack developers are shrinking. I enjoyed being a full-stack developer because I got to see the full life-cycle and got to know the domain and domain users pretty well. They liked the close relationship because I could "become one" with their needs.

    But the specialized team structure needed for DGB's ruins a lot of this, forcing centralized development that makes development slow and bureaucratic and just barely fits user needs.

    I'm not sure we need so many DGB's for small internal applications. Everybody wants to copy Google or Netflix to be "in", but their needs are different. If you are not Conglomerate Inc, then practice some K.I.S.S. in your stack.

    For example, instead of a screwy ORM, what about mini-routines or sub-API's that help one build SQL but don't necessarily try to be everything to everybody for every need. Help with the grunt work but don't get overbearing. Each mini-routine can be say no more than 100 lines so we can fix or debug it ourselves. Trying to automate all the edge cases or covering all bases makes it bloat up to several thousands.

    • btw, have you checked out Squeak? [squeak.org] It's smalltalk, but if you figure out what function calls look like, you should be able to read it ok and it's nice.
      • by Tablizer ( 95088 )

        Most shops won't accept Smalltalk because it's not common enough. It has to be fairly common in order to find experienced developers on a timely basis. It's not a dig on Smalltalk itself, but rather just the realities of supply and demand.

        By the way, I still don't view microservices as a form of OOP. They have no inherent inheritance and state. They are like a "flat" function call or stored procedure.

        • Most shops won't accept Smalltalk because it's not common enough. It has to be fairly common in order to find experienced developers on a timely basis. It's not a dig on Smalltalk itself, but rather just the realities of supply and demand.

          Don't look at it for a job, look at it. because it's beautiful.

          • by Tablizer ( 95088 )

            I get it, we should stop and smell the e-roses sometimes. But my focus here is on work and productivity in a typical organization. Why are typical organizations accepting so many DBG's and their side-effects?

            • The reason organizations accept DGB is because they don't have the skills to build things themselves. I've seen it happen when they've tried: it's just a buggy mess. If that's the level of your skill, it makes sense to use something built by someone else and just paste it together. Even though it will end up rather crappy, it's less crappy than the stuff you write yourself. If that describes a programmer, that programmer should focus on improving their skill.
              • by Tablizer ( 95088 )

                I don't think they should expect to build everything themselves. I envision there would be "levels" to each part.

                Let's take ORM's as an example. A kit could have a simple one and a fancy one. The simple one could do most of the work of constructing SQL and/or queries from entity models, but a developer would still put the final touches on it. And there would be sub-components to mix and match as needed for different tasks. The fancy one would use all the sub-components (AKA, "eating its own dogfood"). But

                • I'm not entirely sure what you are trying to say, though.
                  • by Tablizer ( 95088 )

                    I suppose I'd need code samples to better explain it. Most SQL has repetitious parts/clauses to it and non-repetitive parts. One could automate the generation of the repetitive parts with relatively little code and hand roll the non-repetitive parts. In other words, automate the low-hanging-fruit instead of everything.

                    In general, without the DGB, one does need to know more about the underlying technology or protocol, such as SQL. This doesn't mean it's more to learn, since learning complex DGB well also tak

    • And it's getting worse. What the "new generation" don't understand is that these gray boxes end up dictating what they can and can't do (a big no no for a good programmer) and if any of it have any obscure bugs good luck trying to isolate it. I have seen some frameworks that seem to try really hard to hide how they do things, such that they seem to have been made in a code obfuscation competition. I find it really frustrating when I am parsing one of these codes it often comes up with points in the code tha
      • by Tablizer ( 95088 )

        I don't know if it's the general trend, or just a fad to rely so much on these big DGB's. We want our software to do more things, but it's also growing resource-intensive to make relatively simple internal CRUD applications.

        There has been general centralization/decentralization cycles in software development over the decades, and now we seem to be in a centralization phase, where technology specialists are required to manage these bloated & screwy DGB's, and this is regardless of project size.

        Part of it

  • by chthon ( 580889 )

    As a programmer, being married to a bit of a control freak with an economic degree, I can definitely say, NO, I don't crave control.

    Tinkering is my business.

  • by petes_PoV ( 912422 ) on Monday September 23, 2019 @04:18AM (#59225730)

    with code it will do exactly what you told it. ...
    But the computer is still being completely obedient.

    That only works if you are programming the bare metal. Once there is an operating system, you are forced to comply with the API it provides. And the same applies to libraries that a coder might use. As soon you work at a higher level than 100% programming the device with nothing between your code and the hardware, then the illusion of complete control breaks down.

    • ... yes, especially if you add in multiple threads, then accidentally run those threads through code that you originally wrote as single threaded. The strange behavior you may observe can almost be spooky. With experience, when you observe such behavior in a program, you know instantly there's some sort of multithreading problem.

      -- Quantum mechanics is the observed multiple thread bug in the simulation we're in

    • with code it will do exactly what you told it. ...
      But the computer is still being completely obedient.

      That only works if you are programming the bare metal. Once there is an operating system, you are forced to comply with the API it provides. And the same applies to libraries that a coder might use. As soon you work at a higher level than 100% programming the device with nothing between your code and the hardware, then the illusion of complete control breaks down.

      Though those libraries still behave exactly as they were programmed to. A computer always does exactly what it is told to, it has no intelligence to do otherwise. The problem is we don't always understand, or carry preconceptions about, what other developers decided to tell the computer to do. Don't blame the computer for doing exactly what it was told to do.

  • I'd say that what I like about programming is that I can make things that work and require some technical understanding, research and structured thinking. It's problem solving and intellectual creativity. I'm not sure it's the best description, but it kind of covers it.

    Does it have to be low level? Not at all. Quite the opposite, in fact. I find it quite rewarding to find something that enables me to get to my vision more easily, be it a library or a programming language. I did enjoy assembly programming, a

  • Master Control Program: I've got a little challenge for you, Sark - a new recruit. He's a tough case, but I want him treated in the usual manner. Train him for the games, let him hope for a while, then blow him away.
    Sark: You got it. I've been hoping you'd send me somebody with a little bit of guts. What kind of Program is he?
    Master Control Program: He's not any kind of Program, Sark. He's a User.
    Sark: [surprised] A User?
    Master Control Program: That's right. He pushed me in the real world. Someone pushes me

  • Just one look at Paul Graham's Hacker News tells you all you need to know about programmers and 'control' (or lack thereof, resulting in them trying to be control freaks over everyone else.)

  • It isn't that programmers crave control (more than most people) or that computers allow for greater control, it is that computers allow for EASY control. Every tool does what you tell it to do, computers just reduce the amount of skill and the number of variable at play. But go into any machine shop, any artist's workspace, any glassblowing shop, for that matter any place doing analog circuit work, they all want to control as much as they can and make their tools do what they tell them, and the tools obey
  • No, I'd say he is absolutely wrong, well certainly about the very best geeks anyway, control is an illusion. What he is advocating is disempowering, trying to control the micro environment because of the lack of influence of the meta-world.

    I do not want control, I want meta flexibility, agility, I want to tear down all the broken things, what we need more acceptance of Red Team thinking, not a straight jacket.

  • You now know Joel Spolsky's attraction to coding... control.

    I'm sure that desire would in no way entice him to superimpose his personal experience and motivations on to other people.

  • I'm a second generation programmer. I may very well be a programmer just because it felt easiest to me. I grew up around it and that's all there is. I don't particularly feel in control all the time, and I certainly don't crave absolute control. I'm just trying to get something done.

    But am I really any different than any other artisan (and I use that word reservedly)? Carpenters, engineers, sculptors, painters—they're all creating something. They create things for different reasons, some artistic, som

  • Programmers are 80%+ more likely to drive manual transmissions than automatics.
  • Do Auto Mechanics and Gearheads Crave a Sense of Control?

    This week Stack Overflow's CEO/founder Joel Spolsky spoke to Clive Thompson, the tech journalist who just published the new book Auto Mechanics: the Making of a New Tribe and the Remaking of the World . "It's a sort of ethnographic history of this particular tribe," explains a blog post at Stack Overflow, "examining how auto mechanics fit into the world of business and culture and how their role in society has shifted in recent decades.

    "The official c

  • a) I create software like Bob Ross makes a painting, it does whatever little fancy thing I feel like at the time; and
    b) The fact the machine will only do exactly what I instruct it to do, means I must be fully aware of what I want it to do.

  • The joy of software development, for me, is getting to spend time in "flow", where productivity is high and time passes in a blink. The control I seek is to avoid interruptions.

    I hate meetings.

  • That's where you still actually have control over the hardware. On contemporary PCs, it's long gone. Even if you do get direct access to the CPU (something you usually don't unless forgoing anything resembling an OS), the damn thing doesn't even understand its own asm code anymore.

    It's more fun with small ICs. Total control, no abstraction (if you want to), and it's amazing just how much you can accomplish with a few MHz if there's not a baggage of OS to lug around.

  • I think it all depends on you see the world and your place within it. I see the world as chaotic and myself as an agent of change. Control is nice to have, but wholly unnecessary. At least for me.

  • Oh, yes we do. However we rarely achieve it. When we do, it is an illusion.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...