As a programming student i feel sometimes we go a bit too technical and we lose the philosophy and the main point of what we are doing.

What are some great books (classics and none) to read on programming?

I’m interested to the topic of programming and computer science in general but especially to the cypherpunk philosophy and to concepts like the story of internet, the philosophy that led to the beginning of it etc…

  • Johnny@feddit.de
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 year ago

    The Wizard Book is a classic that basically “builds” programming as a concept.

    (it is very technical though. So not sure it’s something you’re looking for)

    • BougieBirdie@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      In a similar vein of perhaps too technical but ultimately very informative, there’s The Secret Life of Programs. The author introduces you to how a bit works, and then walks through how to build a computer and web browser and such from it.

      I had more of a boot camp education for computers, I find this stuff fascinating even if I don’t really ‘get’ it

    • cr1cket@sopuli.xyz
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Excellent book. Got me to rethink a lot of my approach to software and systemy design.

  • Haus@kbin.social
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    Weinberg boiled it down to a single axiom for me: “If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization.” I’m not sure if they’re still in fashion, but two other things that inspired me were The Cathedral and the Bazaar and the front material of the original Gang of Four book *Design Patterns."

    • OmnipotentEntity@beehaw.org
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Although I also read and was influenced by The Cathedral and The Bazaar shortly after it was published, I find it difficult to recommend, given that ESR went off the deep end. The book is a good interesting read, just get a PDF of it and don’t go digging.

      • vent@beehaw.org
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        I was curious about what you meant by “went off the deep end”, so I digged and… ooof… His Political Beliefs and Activism section in his wiki is not good, that’s all I’ll say.

  • bahmanm@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Not a direct answer to your question but here’s what I’ve learned and am learning:

    It all boils down to “finding the right balance between the costs of implementation, the value the implementation offers given the circumstances and constraint.” Essentially, the foundational guideline of engineering across all engineering principles.

    Usually every decision brings about about a series of advantages/improvement but it’s important to remember that “one must lose in order to gain.”[1] That is, every improvement (value) comes at a price (cost). Unlike other principles of engineering (which are closer to bare maths), software engineering more closely resembles something intuition-based like art. That is what makes it difficult to see the values and costs and measure them. It takes lots of practice and introspective and extrospective (!) effort; doing things and potentially making mistakes and learning from them is as important as observing others do things and make mistakes.

    In other words, it boils down to honing your intuition to “do the right thing, at the right time, the right way.”

    PS: Please note that I used the word “right” and not “correct.”

    [1] Dialectically speaking, every material good contains w/i itself its own seeds of destruction 😆