142 karma · joined October 27, 2010
Abstration can take many forms. But can often be described as "seperating things that change and/or repeat from those that don't", or something like that.
The last paragraph may be a joke, or based on one of the Principles in the O'Reilly Design Patterns [2] book.
[1] https://mitpress.mit.edu/sicp/ [2] http://shop.oreilly.com/product/mobile/9780596007126.do
Recommended reading: https://www.reddit.com/r/programming/comments/9nipa/joel_on_... ( https://www.joelonsoftware.com/items/2009/09/23.html )
http://www.paulgraham.com/avg.html
http://www.lessonsoffailure.com/tag/paul-graham/ <-- note "flamewar" in the title!
Dictionaries, sets and lists can be nice though.
Go here( https://www.thecodingforums.com/threads/performance-sets-vs-... ) and search-find "Terry Reedy".
The idea of "Software Engineering" was born with the Software Crisis report in the 1960's.
Later on practicing SE's would study things like Design Patterns so things evolved over time.
EDIT: Software Engineers probably should know some relevant basics, but programmers could never come up with a "body of knowledge" like real engineers have.
It all depends what you work on and what new developments keep coming out...
Admitting mistakes to move on, failing fast, should prevent prolonging arguements though (if you can pull it off).
Now you have me thinking about how to plan that long! You would need an architecture easy to port and good documentation...
Or become so important that old platforms are maintained for your sake!
I've actually used formulas for trig functions before with IEEE double floating-point until the accuracy didn't improve.
(think it was a continued fraction or or some other technique I didn't understand, didn't -lm or something for builtin functions and worked around it lol...)
It was very slow! Makes your computer's fan spin faster, even changes the smell in the room while grinding away!
I didn't know Tim O'Reilly was on G+ but ALL these recent posts are pop-politics and ugly at that! I thought you were referring to all Google services being tied in.
If you use a table for trigonometry functions then interpolation is generally used... So it doesn't have to be all-or-nothing.
Compression generally works by removing redundancy via some means or another according to some scheme... But compressed data can take up more space if it goes against the grain (i.e. RLE when the repeated byte is the same as escape byte). Randon number generators with simple seeds (not a hidden entropy pool) can be thought of as disrupting simple patterns in a sequence.
EDIT: just thought of this. http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html
EDIT: Someone says "If you can't get past nature's paywall,"
Logic functions can be composed using any one of: NAND, NOR, XOR, IMPLY, or other units like full-adders etc.
All memory depends on some form of persistance and/or refreshing.
Sometimes this is a physical phenomenon like magnetism or electrical compatence or after-glow in a willian's tube. Short-lived effects need to be refreshed.
Sometimes there is a feedback loop that continuously sustains latching, such as flip-flops.
Magnetic core memory could be less transient than say, a mercury delay line, but needed to be rewriten after being read.
But regarding your question, I think so. If it is possible to impliment one with the other (but memory usually has internal indexing).
All general computation needs either a direct or convoluted means of achieving conditions too. A tricky formula exploiting abs(x) could be used to produce {0, 1} but...
[1] http://my.safaribooksonline.com/book/work-relationships/9781...
Nevertheless, for as long as you do grow out of it and move on... Why not! Don't forget to move on, that's important.
It's possible to find really old books with like scientific/financial calculations in BASIC, but don't get under the illusion that you can easily do anything "practical". For play/practice, go ahead! But please do move on it you keep at it.