1. 28
    1. 27

      I suggested a rant tag since this feels like a super vague long form subtweet that likely has a specific story/example behind it. I don’t understand what dhh actually complains about there and whether it’s genuine without knowing that context.

      1. 11

        Pretty sure he’s railing against the /r/programmerhumor style “software development is just copy-and-pasting from stack overflow right guiz!” meme. I’m sympathetic to his frustration because this joke (which was never that funny in the first place) has leaked into non-technical circles. I’ve had non techies say to me semi-seriously “programming, that’s just copying code from the internet, right?” and it galls a bit. Obviously we all copied code when we were starting out but it’s not something that proficient developers do often and to assert otherwise is a little demeaning.

        1. 9

          Obviously we all copied code when we were starting out

          Well no, I copied examples from a book. Manually, line by line.

        2. 6

          I have 20 years experience and I regularly copy paste code rather than memorize apis or painstakingly figure out the api from its docs. I do the latter too, but if I can copy paste some code as a start all the better.

        3. 4

          The meme starts being a bit more condescending now though. I frequently come across tweets saying things like « lol no one of us has any idea what we are doing we just copy paste stuff ». The copy pasting stuff is kinda true in a way (although a bit more complicated, even as a senior dev I copy paste snippets but know how to adapt them to my use case and test them), but the incompetence part is not. But it sadly starts to feel like there are tons of incompetent OR self deprecating people in the field. That’s pretty bad.

          This blog post resonates with me, it really pinpoints something.

        4. 3

          It’s cool if that’s what he wanted to say, but the inclusion of impostor syndrome and gatekeeping made me think otherwise.

          1. 3

            That was probably just him hedging against expected criticism

        5. 2

          Why am I paying this exorbitant salary, to attract people like you with a fancy degree and years of experience when all you ever do is a four-second copy-and-paste job?

          You pay it because it because I spent a long time achieving my degree and accumulating years of experience to be able to judge which code to copy and paste where, and why and in only four seconds at that.

          No matter the context these reductions are always boiled down to the easy to perform operation, never the understanding behind the operation.

      2. 5

        It absolutely feels like a subtweet, but I have no idea what the context was. Did someone at Basecamp just post the no idea dog one time too often?

    2. 22

      From my perspective the assumption that “copy pasta pirates” are the result of combating imposter syndrome and imposter syndrome being the result of being self taught is wrong. Well maybe not wrong, but I don’t think it’s the only or major contributor.

      I’ve seen both imposter syndrome and copy pasta pirates who had bachelor’s and master’s degrees. Far too often to see that as exception, even though I’m not completely sure how that can be, cause to my understanding they came from good universities, but that’s its own topic.

      I think a big cause is actually that either intentionally or unintentionally copy pasts pirates are what companies look for. Another reason is that technique and technologies are being replaced by products.

      To give an example for the latter. GitHub is happy when people don’t really know Git. It profits even GitHub and Git are considered to be synonymous. The same is true for buzzwords. Think of cloud computing, compute instances. Could providers don’t want you to think of vservers behind HTTP APIs, they don’t want you to think about outsourcing your infrastructure, even when that’s what you do. Another more anecdotal example is a master’s degree computer scientist not knowing the difference between socket.io, websocket and socket in the context of computer science, randomly using either word. This isn’t to make fun, but to give an example of why I don’t think being self taught or not necessarily makes a difference.

      But while these examples might show symptoms I don’t think companies wanting to profit from “magical thinking” and people not knowing differences between products and technologies are the cause. Even when they profit and have incentives i don’t think they are a major cause.

      I think a bigger cause is that many employers ask for something like a full stack developer (don’t feel attacked, just an example) and their performance indicator is whether they quickly can hack something together that on the surface looks good and in most situation with semi standard requests being a copy pasta pirate is the perfect way to go about this. Building quick and dirty prototype, proof of concept solutions, “MVPs”.

      Does that mean that the outcome is stable, secure, flexible, issues can be fixed quickly, changing requirement can be met or the next employee will be able to clean up that mess without outages? Most likely not. But that’s okay, because customers are used to stuff not always working, companies being “hacked” (which mostly is sensitive customer data being publicly available). Also managers expect something to be torn down and remade with a new team anyways.

      Morover in many situations having a lot of people that only can copy and paste can stabilize the position of ones who can do more. They either have special perks, like heing left alone, being famous in the company, earning more, or they work as consultants or similar.

      What I want to say is that even when it’s not a concious choice the industry has arranged itself with and even incentivised the copy pasta pirate.

      These are just some surface, shallow examples and very subjektive ones too. One could dig deeper, but the point I want to make is that right now they are in an integral part of how large parts of the tech industry work and that I don’t think it’s likely to change if only the way to counter gatekeeping and imposter syndrome are handled.

    3. 12

      The magic of programming is largely just things you don’t know yet.

      That was basically the theme of my presentation to the local Ruby group a few years ago.

      https://gitlab.com/duncan-bayne/presentations/-/blob/master/magic/magic.org

        everyone has a magic level
           “the music is … inside the phone”
           “the chip … switches the electricity”
           “the electricity … comes from the power company”
      
      1. 4

        Cool presentation! I think this is a much nicer way of putting it than OP

    4. 17

      Not sure where DHH is coming from here.

      Is it his faux hacker-bro persona, “I’m with you in the trenches” schtick? Is it the dude that races endurance cars on his days off? Is it the businessman who decided that “politics” was off-topic and lost 1/3 of his employees?

      Borderline off-topic and flagged as such.

      1. 13

        Are you more focused on the messenger than the message?

        1. 14

          If you can extract any message from this ill-formed rant, please let us know what it is.

          If this had been written by anyone other than DHH it would have been laughed out of the room.

          1. 9

            The message I took away was that we should treat the programming profession as the serious field that it is, and not let ourselves diminish the skills we’ve learned by resorting to snide comments about how we all copy and paste.

            1. 14

              Yes, that would be important if anyone outside programming humor subreddits and DHH’s fevered imagination acted that way.

              1. 6

                I’ve seen and heard senior engineers say this, so people definitely use the phrase outside of the limited scope you listed.

                I don’t necessarily agree with DHH’s analysis that it’s a real problem, but it’s interesting to consider.

            2. 2

              I don’t see a problem with both being true. At the beginning you copy to learn from examples. The higher you go, the more you copy things that either save you time or come from areas you don’t deal with all the time. It doesn’t make programming not serious. It’s a relatively unique thing we’re able to do in our field. I’m a senior engineer and I copy things all the time. Some are actually more accessible through SO than otherwise (I’ll go back to the question about getting the current username in c# every few weeks for example - and it’s completely fine) It’s great we can do that and as long as you understand what you’re copying, I don’t care if you write the whole app that way - this will only get more common/legitimate now with copilot.

          2. 4

            I didn’t really have any difficulty in parsing out (what I believe to be) his point:

            • At some point in time the majority of vocational programming switched over to this weird “it’s okay to talk about how much you suck” culture…
            • …This change was probably an attempt to reduce gatekeeping and imposter syndrome
            • Everybody does indeed start out by sucking
            • …but people in this career need to attempt to reduce their amount of suckage…
            • …and it’s even okay to say “I accept that I will suck at X so that I can double-down on Y”…
            • …but it’s not okay to give up any pretense of improving or to normalize such a behavior (for whatever well-intentioned reason)
            • People who have succeeded in reducing their suckage need to stop acting like they still suck at the same level as a novice

            Other than the initial assertion of “hey, this is a widespread phenomena in our culture”–and poor organization on DHH’s part–this all seems like something any of us should be able to say “okay, yeah, I buy it”. Even if the original assertion isn’t true, the rest of this is still a laudable take.

          3. 5

            The message I’m getting is “I alienated a huge swath of my company, they left, I went on right wing media to talk about how I’m actually not mad about how I drove a bunch of people to quit, and it’s also everyone else’s fault that we aren’t getting many qualified applicants.”

        2. 6

          A message does not have meaning without a context. Assuming a context with an anonymous programmer author, the message has far less meaning than that which can be interpreted with the addition of this specific well-known author into the interpretive context. This message is simply a different message without knowledge of this well-known author who wrote it. There’s no use asking whether this message should actually be a different message. It’s not the situation at-hand.

    5. 9

      What an embarrassing thing to publish. What not-strawmen/ real world programmers is DHH referring to?

      1. 3

        This was my reaction as well. I was looking for some content or impassioned speech about being our best selves with some philosophical underpinnings. Instead we ended up with a tweet and a meme at the end.

    6. 4

      I think some developers should also keep in mind that people have different personalities and sometimes have a different focus, without there being anything wrong in that.

      Striving to appear like a “big brain person” is not for everyone, if it’s a hindrance for social interaction.

    7. 4

      I suspect that the author is badly misreading the ironic humour that folks use to deal with the overwhelming amount of information in our field (eg: the “no idea dog” meme), and assuming that it’s meant seriously.

      Not to mention the fact that as others have said, various forces (eg: deadlines) might mean that perfectly competent folks turn out code that’s harder to understand, or is less well tested than it should have been.

    8. 3

      I’m going to come out for the opposite view: copy pasting is a legitimate form of research and GitHub copilot automates completely blindly pasting code snippets which turns out to be an effective way to rapidly throw together the slow, buggy code which businesses want.

      It’s quite similar in many parts of legal practice, and I imagine other professions: a minority of practitioners actually care about the knowledge and skill beyond the minimum to perform. The technically inclined minority are essential to a well functioning organization; the people who crank out work based on precedents need to understand what they’re working with and when their materials might not be applicable; and the technical lawyers need to not harp on their personal preferences lest they lose influence.

      Given the plight of the legal profession, this model may in fact not be good for practitioners as a whole and possibly is a race to the bottom, but it’s very good for the people with high paid jobs (a minority), even better for the partners who scale out their business on this model. It’s sometimes good for the technically-not-lawyers people - paralegals and legal secretaries - whose work isn’t much different from those non-technical lawyers and also earn a decent wage without a lot of educational debt.

      As I write the prior paragraph, it occurs to me that there are already certain parallel groups in our profession - people cranking routine code at high pay at faang, engineers in India able to live handsomely on pay much lower than in the US.

      The plight of the legal profession though is that there are a lot of lawyers barely getting by, a lot who can’t find jobs at all, and a large contingent doing very boring work for not very much pay (notably document review, which is reading large mundane files and flagging them as relevant for the people doing the less boring work). And, there are more lawyers graduating every year with educational debt. And a lot of those who are making decent money are very overworked.

      I’m not sure how we avoid that, but telling people to stop doing something that makes them more productive isn’t it. Something something new business models something something unionization is my vague bet.

    9. 2

      This is an interesting response to pq1yly and should be folded into that submission.