I would argue that humans are quite easy to hack although perhaps not in the way you were thinking. Our perceptions are quite easily and reliably hacked even when we know it is happening, as demonstrated by the success of stage magic and optical illusions[1]. At one point, there was a great deal of fear that companies and adversaries could influence large groups of people with subliminal messages[2]. Although the efficacy of these techniques are somewhat in doubt, on a more mundane level, most people are used to attempts by advertisers and marketers to subvert our desires and preferences to buy certain products. A great deal of research and money has been spent on essentially hacking our desires and exploiting our brain's response to intermittent reward and social cues. This has brought us product placement in movies, celebrity endorsements and video games that produce changes in the brain not much different from those found in drug addicts. Scientists have engineered fast food to exploit our evolutionary desire for sugars and fats -- something that was good at one point but now serves only to make us and fast food executives' wallets fat. I would consider all of these a type of human hacking simply due to the reliability of their effect, if not on an individual level, certainly on groups of people.
Optical illusions are neat, but I don't think it rises to the level of a "hack" in the sense that anyone is talking about here. Subliminal stimuli is, as the massive warnings on the article suggest, utterly unproven. There is a difference between being swayed or marketed to, or just too lazy to disengage from the onslaught of marketing... and "hacking". If hacking humans worked, the marketing wouldn't be necessary in the first place.
Although some of my analogies were a stretch, I think it might be valuable to regard these types of manipulation as hacking. If nothing else, to make us aware of our own susceptibilty to con artists, fake news and government influence. The reason these techniques are effective are very similar to the reasons hacking methods of computers are effective; they take advantage of systems that evolved or were built for one purpose in order to use them for another, often to the detriment of the victim.
For example, the existence of optical illusions and stage magic are a necessary consequence of particular limitations of our visual system and attention. One could predict the existence of new, never before seen optical illusions purely from knowledge of the way the brain processes visual stimuli. For more information on this, see the works of Roger Shepard[1][2] who did a lot of research into the psychology of perception and mental representations.
This has ramifications for not just human psychology but artificial intelligence. If we want to build a computer system or robot that can process visual information quickly like humans and animals do, then we may very well have to program them with the same simplifying assumptions that humans and animals use to make rapid visual processing tractable[3][4]. A consequence of this may be that these computer systems will be subject to the same optical illusions as humans as a necessary consequence of limited attention and computational resources. Furthermore, the misperceptions that make stage magic possible may be possible to induce in any system that can only pay attention to a subset of the visual stimuli given and that must make assumptions about the intentions of the subject being viewed. These assumptions and inferences are usually accurate under ordinary circumstances when the subject is not trying to deceive the observer, but a clever subject could engineer circumstances where the observer has no choice but to be either deceived or accept that their perceptions have no logical explanation -- hence the woman appears to be sawed in half even though we know this is unlikely; there is no visual information to disprove that she was (the lack of blood is evidence that she wasn't sawed in half but this is only evidence from our past experience with people being cut by blades).
We are susceptible to influence by fake news and celebrity product endorsement due to our evolved preference for information coming from "authority figures" and sources that agree with our existing views[5]. Now, normally one may hesitate to call exploiting these systems "hacking" because the exploiter often doesn't know that that is what they are doing just as someone may stumble upon a new computer exploit without knowing exactly why it works.
Again, I would argue that it may be to our advantage to think of the targeted exploitation of these innate tendencies as a type of "hacking" if only to make it more likely that we can avoid being influenced to beliefs and behaviors that may not be in our long term best interest.
Again, yup! To this day I can remember that warp coil plasma injectors work their way up to a maximum frequency of 50Hz at about Warp 8 and then merely keep increasing warp plasma flow. ;)
Getting Started with Electronics -- wow! I think I read that one as a kid, as well. I grew up in the eighties so Radio Shack was still (I think) a good place to buy electronic components and equipment. I remember the electronics kits and educational books that they had. A lot of the Radio Shack electronics books were printed on graph paper and looked like they were taken directly from an engineer's lab notes, informal font style and all. As a kid, I remember being bemused by this style since I had not seen it used anywhere else.
I still have quite a few of those smaller books printed on the graph paper. I had a lot more fun building circuits compared to seeing kids today stuck on mobile phone.
It's just so sad. I like gadgets as much as anyone and consider myself a technology enthusiast, but there's got to be a way to engage kids on smartphones other than games. One of my on-again-off-again side projects has been to create an Android app that allows kids to create their own simple programs and games for their smartphones without needing a computer.
I'll start by posting my own list of influential technical books:
The Paradoxicon [1] by Nicholas Falletta. As described in question above.
Computers and the Imagination by Clifford A. Pickover [2] - This book is filled with mathematical and computer related curiousities! I learned about fractals, and chaos, computer generated art and poetry and a whole bunch of, at time, interesting mathematical trivia. This is probably the first book that got me seriously interested in computer programming. This was basically an activity book for mathematics and computers.
Methods of Logic by W.V. Quine[3] - This stimulated my interest in symbolic logic and symbolic computation. I didn't read the whole book but I read enough to write a program on my HP-48 GX graphicing calculator to simplify symbolic propositional logic statements.
Artificial Life: A Report from the Frontier Where Computers Meet Biology by Steven Levy [4] - This was my first exposure to celluar automata in the form of John Conway's Game of Life. This books also inspired me to write a Game of Life program on my HP-48 GX.
God and the New Physics by Paul Davies [5] - I learned about the big bang theory and singularities and how the universe could exist without being created from this book. This may be the single most influential book I've ever read. It spurted my interest in physics and cosmology and was probably single-handedly responsible for my loss of religion.
Flim-Flam! by James Randi [6] - This is the book that made me a skeptic. Before reading this book around 6th grade, I was a hardcore believer in the occult. In fact, I had already read the Uri Geller book by Puharich [7] and happened to find this book in the same occult section of the library.
The Mind by John Rowan Wilson [8] - My 5th grade teacher happened to have this book in her classroom and let me borrow it. I had a hard time giving it back and decades (well, maybe one decade) later I somehow managed to track it down and buy it again. The book is from the 1960s, but there are some really good illustrations in it and I learned about Grey Walter and his robot tortoises from this book.
Creative Sciencing: Ideas and Activities for Teachers and Children by Alfred Devito [9] - This book is just awesome! My mom was a teacher when I was growing up and I remember finding this on the bookshelf that we had at home. There are lots of very fun science projects in this book. I won't claim to have done very many of them, but my favorite was the "rubber-band mobile" [10]. Although I love technology and gadgets and computers, it still saddens me that the desire for physical experimentation has waned in kids these days.
There were definitely other technical books that I loved but these are the ones that I think were the most influential as far as my career choices and outlook on life. They are not necessarily the best in their class and most are outdated now.
[10] - take a spool of thread and push a rubber band through the hole in its center, allowing the ends of the rubber band to protrude from both ends of the spool. On one end, slide a short matchstick through the rubber band loop, thus preventing the rubber from being pulled all the way through the spool. Create a washer out of hard bar soap or candle wax and carve a grove along its flat disk side. On the other end of the spool, thread the remainig rubber band loop through the soap washer and hold it in place with another match stick, allowing the match stick to settle into the grove that was cut in the soap washer. You now have a spool of thread with a rubber band threaded through the middle and held in place by a matchstick on one end and a soap washer and another match stick on the other. The matchstick on the soap washer acts as a key for winding up the rubber band, which itself acts like a spring. After winding the key up for 10 or 20 turns, place it on a table or any other flat surface. As the tension unwinds the rubber band, it also rotates the spool, causing the entire contraption to move.
I think the semantics of "map" are quite a bit more specific than "for". For one thing, "map" functions have a return value which is usually the same length as its argument, which is usually a sequential data-structure. On the other hand, "for"-like functions or statements cannot or do not return values. True, if you ignore the return value from "map", it usually works the same as a "for" loop but the opposite is not true. The return value from 'map' is all the difference in the world and allows chaining of transformations amongst other things.
Putting aside languages in which loops may be expressions, you (and also village-idiot) are talking about how a program does things, not what it does, and what I am saying is that the case for map, etc. improving readability, reliability or productivity over the equivalent loop-based code is not made through simple examples. I am inclined to believe that functional programming is a better paradigm, but I did not arrive at that opinion from simple examples.
Read Complex Worlds from Simpler Nervous Systems[1] if you want more information on how very complex behavior can emerge from jumping spiders and bees. After reading that book, it seemed to me that AI researchers should focus much more time on duplicating the feats of these simpler animals (in similarly computationally limited contexts) rather than focusing on duplicating extremely high level human faculties like reasoning and even playing Go. I mean, imagine a robot with the intelligence of a parrot or the smartest birds in the corvidae family[2]. I think people would probably be afraid of autonomous robots of this level of intelligence.
I would also suggest anyone that is interested in BEAM robotics to take a look at Braitenberg Vehicles[1]. These are simple reflex-based robots that can exhibit complex behaviors due to their interaction with their environment. Originally, they were thought experiments by the psychologist Valentino Braitenberg who showed in his book, Vehicles[2], how one might ascribe complex emotional and mental states to a simple automaton if one only observed its external behavior. For a fascinating earlier example of analog robotics, (and the first example of true autonomous robotics to my knowledge) one has the work of Grey Walter and his "tortoise" robots[3].
Basically, you just wrote nearly (exactly?) what I wanted to write. I'm good at algorithm problems. I LIKE algorithm problems, but having someone watching me on a whiteboard in a high pressure situation diminishes my abilities. At a minimum, it is a distraction. If it is an easy or familiar problem then it usually doesn't matter and we can discuss the solution and I might even want to talk about it. But if it is a tricky problem -- and a lot of tech companies intentionally give problems that are tricky or vague or superficially easy -- then I need to use my natural process for systematically and rigorously tackling tricky problems. I'll still probably finish it in a half hour and we can still talk about the solution and discuss improvements but let me work on it alone first.
One thing I've found from technical interviews is that, due to the pressure to speak and communicate and "show my thoughts", I'm more susceptible to falling prey to trick and vague questions that I would otherwise treat more carefully. This is consistent with scientific results on the way people respond the pressure situations[1]. They tend to fall back on what is familiar instead of trying approaches that may be better. Working alone, there is no fear of judgement if I need to try an unusual strategy[2] that may not work or if I need to backtrack. Let me dabble and doodle on my own sheet of paper and iterate rapidly over whatever comes to mind freely.
Furthermore, turning problem solving into a theatrical event unavoidably increases the cognitive load on an interviewee simply due to the fact that you have to make more decisions. You have the technical decisions like data structures and algorithms which are normal and expected, but on top of that, there are all these non-engineering decisions that you have to make because they want you to talk about how you're solving the problem in real time. Should you mention some fancy algorithm or approach that you are considering? You must choose your words carefully since anything you say can be used against you.
I'm not claiming that everyone works better alone or even that I don't like working with others. I just think that the interviewee should have the option of working on the problem alone for up to 30 minutes. As suggested by parent, we can discuss the solution or non-solution after I've become familiar and comfortable with the problem. One of the worst feelings is when I fail to solve a problem during an interview, only to have the solution come easily when I'm able to tackle the problem in a pressure-free environment. Expecting some kind of portal into someone's mind while they solve an unfamiliar and maybe tricky problem strikes me as overindulgent and voyeuristic. It is a flaw in the current technical interview process and the only way to mitigate its effects is to just get more comfortable interviewing.
[2] - For tough problems, tend to use my own idiosyncratic variant of Z-Notation. I have a very high success rate solving algorithm puzzles when I use it but it is easy to forgot to use it under pressure of an interview.
> Furthermore, turning problem solving into a theatrical event
That's a very interesting perspective actually.
If this process prevails then only a certain personality types will be able to work at companies which conduct such interviews.
The danger is that when the biggest and most successful companies (who's founding members didn't go through the same process, on the contrary were most likely solitary coders) conduct such interviews, the smaller and actually very nice places to work tend to copy the same.
I am somewhat in favor of the likes of Google and Facebook who need to filter an ocean full of applicants following this process.
But I have seen smaller companies copying the same process assuming they will find the similar hires as G and Fb. The funniest/hilarious part is when the recruiters start saying "we have a very bar" with so much conviction. Yes, you are a startup, you have a "very high bar" and you need to hire people who will scour the internet and integrate the various bits they find because they need to take the product from A to B YESTERDAY !!!
Although having said that, I think I may be a bit different from what you described. I actually don't mind whiteboarding or coding with pen and paper and I noticed for me it is a lot easier to "talk my thoughts" while whiteboarding. On the contrary, I get seriously annoyed if I have to talk while actually writing code and if it is during a job interview, I just choke.
> Expecting some kind of portal into someone's mind while they solve an unfamiliar and maybe tricky problem strikes me as overindulgent and voyeuristic. It is a flaw in the current technical interview process and the only way to mitigate its effects is to just get more comfortable interviewing.
Yes. We are problem solvers after all. A way shall be found.
I think this is consistent with your earlier point that more people should visit some of the less well known national parks and scenic sites. It spreads the tourists and visitors over a much larger area. This should reduce crowding in the major attractions and destinations, which should make them more enjoyable to those who do visit. The smaller national parks will see more traffic but perhaps this will create more awareness and build support for preservation and/or cleanup. The communities around these locations may also benefit from the increased business.
[1] - https://en.wikipedia.org/wiki/Optical_illusion [2] - https://en.wikipedia.org/wiki/Subliminal_stimuli