I’m interested in more of a universal design patterns but moving data around is my prevailing interest.

Stuff like copy on like classes vs structures, how data gets passed around, copied, deleted, etc I think

  • socsa@piefed.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    18 days ago

    It sounds like you want electrical and computer engineering which will take you from the stochastic representation of information as physical phenomenon all the way up to protocols and APId.

  • lennybird@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    19 days ago

    Can you elaborate?

    Are you discussing API calls? Remote Procedure Calls?

    My initial assumption was you wanted info on Data Marshaling — utilizing the likes of JSON or XML to communicate data between different programs.

    But then maybe you mean data allocation in memory, how the heap and stack work, etc.? References and pointers, and deep and shallow copies, etc.?

  • sbv@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    0
    ·
    19 days ago

    It sounds like you’re asking about algorithms, which are (sort of) language-agnostic.

    You’ll find some neat stuff if you search for bubble sort, Dijkstra’s algorithm, tree sort, hashing, complexity theory, and number theory. The last two are more theoretical.

    To my knowledge, Introduction to Algorithms is the standard textbook used to teach university students about them. When I was in uni, it seemed to be the standard. Some people find it accessible. I did not.

  • solrize@lemmy.ml
    link
    fedilink
    arrow-up
    0
    ·
    19 days ago

    What? No that would be an aspect of the programming language. Ok, maybe if you study compilers. I know there are also books about garbage collection so maybe there are courses about that too.

    When I first saw the question I thought you meant bulk transfers, like in data communication or parallel programming. There is a topic called “the data center as a computer” that could be relevant. Like if you’re trying to split a problem across 1000 computers, a lot of the planning will be shovelling data around between them, in addition to the computation itself. You could look for Hadoop books and docs.

  • DominusOfMegadeus@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    18 days ago

    This could be all kinds of things. I literally oversee one of these flows for a living, and there’s multiple databases, several data engines, a couple three programming languages, EFT, and numerous UIs involved.

  • Windex007@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    18 days ago

    As others have mentioned, your description is maybe too vague to get a good answer. You might need to elaborate more about “moving data” means for your purposes.

    I don’t know if anyone has yet asked if you mean how data is stored in RAM vs a “hard drive”… How it’s allocated. Things that are much closer to hardware and a kernel? How a CPU fetches instructions/“data”?

  • Lasherz@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    18 days ago

    Classes and structures implies the moving around you’re talking about is in memory? You’d probably be looking at computer engineering courses there, or more likely OS design. OS classes get deep into kernel stuff. Advanced programming being in C++ lets you see how memory is tracked. I myself hated doing my own memory management, but if that interests you, then you’ll get a taste of that and more with anything to do with the kernel layer. That’d be DRM, worms, drivers, OS, and anti-virus. Could offer more, but it’s a little vague what you’re after specifically.

  • Sunsofold@lemmings.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    18 days ago

    The high level view of ‘copying’ is purely abstracted, and not very useful. It’s a layperson’s understanding. Copy A and call it B makes a thing called B that contains the same data as A. Anything deeper than that will be completely language dependent. Whether a copy is a copy or a reference depends on language and implementation.

    Unless you mean how data physically is copied/recalled at the hardware level… that’s language agnostic and happens in mostly just a few ways.