1. 19
  1. 9

    It is pretty much never possible to read and understand the entire source code of a project you are working on. That’s not how software development works

    It’s … it’s not?

    1. 17

      The entire source code of a project makes sense to somebody, so that quote is not literally true. However, many beginning programmers have only worked with programs they wrote themselves from scratch (so they understand the entire thing) or small puzzle-box programs carefully crafted to have one problem which has exactly one solution, and which must be studied in their entirety to solve.

      For people with that background, it’s a reasonable assumption that the first step of modifying a real-world program is to sit down and read it from top to bottom until they completely understand it. However, it turns out that human brains do not work like this, and anyone attempting it will almost immediately get tired and frustrated. Beginning programmers might therefore conclude that they are unable to work with programs the way (apparently) everybody else does, when in reality they’re just trying the wrong things.

      Since this is an article aimed at beginning programmers, it’s reasonable to tell people that not only do you not need to read and understand the entire source code of a project you are working on before you make a modification, it’s generally not possible, so don’t feel bad about not trying, or trying and failing.

      1. 7

        Depends on the project. To give a couple of extremes from open source projects that I work on. The BSD-licensed dtc is small and is 99% code that I wrote myself, so at least one person could read the entire code and probably more than one can. At the other end, I’ve been contributing to the LLVM project since 2008 and I doubt I’ve even skim read more than 10% of the code and read 1% in detail. The same is probably true of https://github.com/freebsd/freebsd-src, even excluding contrib. I think LLVM probably has enough active contributors now that even reading the new code going into the tree would be a full-time job.

        1. 2

          For various definitions of “project”. A large portion of software engineering as a science is devoted to minimizing this problem.

        2. 2

          Not going to touch this. Especially since it’s in CVS

          😂

          1. -1

            Not going to touch this. Especially since it’s in CVS

            😂