3 ms·
Ultimately it all comes to cybernetics. Understanding how systems work, understanding how to change systems, and how to design new systems. Not about programmi
by mantrax5 12y ago
Ultimately it all comes to cybernetics. Understanding how systems work, understanding how to change systems, and how to design new systems.
Not about programming itself.
We were designing systems for millennia before computers existed. All the basic algorithms we use in programming today were invented before computers.
Computers just happen to make systems a lot more reliable, performant and scalable (if designed right), since computers have evolved to complement us (i.e. we're bad at what computers are good at and vice versa).
I don't think programming is the new literacy, I think understanding the common principles that tie system behavior together has always been the highest form of skill for any human to possess.
As for turning a system design into code, if you know how to design the system on a higher level, you can always delegate the "boring" act of coding itself.
I'm a programmer, but I understand that the act of programming by itself, even though I find it enjoyable, isn't that interesting on its own. It's only interesting in terms of how the program I'm writing connects to a system where the real world and real people are involved. All programs, with no exception, either interface directly with people, or interface with other programs that do interface with people.
Currently we conflate programming with the act of designing systems (algorithms, design patterns etc.), but I expect sooner or later system design and programming will split into separate "trades". Would it be a resurgence of cybernetics, or a brand new branch of science, I don't know.
But it'll happen. And it'll be good, because many programmers use computers as their golden hammer of system design, and it's hardly the only component of a good system.
- graycat 12y agoYou have unusually good insight. > Not about programming itself. Basically correct. So, the grades 1-8 or so work in 'computer science' will be of questionable value. E.g., my wife had no background in computing at all. I taught her programming at the level of if-then-else, do-while, allocate-free, call-return, try-catch, plus quite a lot in about a week. Then I gave her a lecture on 'rule-based', 'expert system', 'artificial intelligence' (AI) programming, and right away she wrote a nice, first program. I gave her a second lecture, and right away she wrote the best, early AI program I and my research group ever saw. No biggie. For 'computer science' in grades 1-8, looks like mostly a waste of time. > All the basic algorithms we use in programming today were invented before computers. Not really. E.g., there are books with collections of algorithms by, say, Knuth, Sedgewick, and others, and more on, say, error correcting codes and how transactions work in relational database, that really are "basic" but were invented just for the world of computing and digital communications.
- mantrax5 12y agoError correction codes and transaction models have existed before computers have, of course the schemes people have settled with before computers were designed to fit within the limits of what people could work with back then, with no computers to do the quick math for them. People have used a simple form of error detection checksum when copying books manually (like the Bible) thousands of years ago. Retransmission requests based on error detection like the above have been use over various pre-electronic communication channels, like telegraphs, which is a form of error correction scheme. Of course anything that requires a modern CPU to compute wouldn't be feasible, but the basics of it, the seed, was. Transaction protocols can be observed before computers especially in military protocols where "distributed coordination" and consistency of command are crucial for carrying out a military mission. Their channels of communications were slow and unreliable. I suppose I don't have to also point out same military protocols often required a log where every formal exchange is written down in order, for later review if needed. Here are your modern day database transaction logs. I can also cite famous examples of encryption schemes going back to the Roman empire, before computers existed, but we all know those. We assign names to various inventions and we tend to think no one before had any idea like that, but truth is good ideas keep getting "reinvented" over and over, and the only difference is the level of sophistication that computers afford us in combining such concepts and building upon them into more complex schemes. By the way in ancient Egypt, every person would be registered and written down in a set of books, books would be split and sorted by a hash of their name for easy look up. Yup. Ancient Egypt had a hash-based index for their database of people (and books are the hashmap buckets).
- graycat 12y ago> Of course anything that requires a modern CPU to compute wouldn't be feasible, but the basics of it, the seed, was. I still believe that what Hamming did in coding theory and the Reed-Solomon codes, etc., are 'basic' and new since computers. But, you are correct that transmission error detection and correction were old needs with old solutions. E.g., there was parity with teletypewriters and old paper tape for error detection and then retransmission for error correction. Yes, and the improvements Hamming, etc., made for computers were not feasible before computers, but I still believe that, while the problem was old and had old solutions, the work of Hamming, etc. was new and 'basic'. Yes, heap sort doesn't really work as a sorting technique before computers, but trying to dream up heap sort is not easy -- just for the heck of it, once I set aside reading how heap sort worked and tried to dream up such a thing for about two weeks and couldn't do it. Heap sort's darned clever.