|
Some years ago, I took over my class and started explaining how those things work.
People took notes, and they wrote down each word. I panicked
Explaining isn't teaching. Duh.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Eddy Vluggen wrote: People took notes, and they wrote down each word. I panicked
I saw a similar problem when teaching about 30 years ago: I had explained CPU caches (they were all single level at that time), calculating effective memory access time depending on hit rate etc. - really simple calculations. In my discussions and calculations, I used a cache of 256 lines - like those of the minicomputers we used for programming exercises.
For the finals exam, the students were asked to calculate the access time given a 512 line cache (plus other details required to do the calculation). One of the candidates returned a blank reply for that problem, indicating that "This problem cannot be solved properly, as it is incorrectly phrased: A cache has 256 lines." If this candidate was an obvious flunker, it might be an attempt to evade a question he was unable to answer. But all the other answers were reasonably good, the student passed the exam. Apparently, this student seriously believed that caches by definition had 256 lines and could have provided a perfect answer if only the line count had been changed.
After that, whenever I gave specific examples, I always made sure to emphasize that sizes, amounts, counts, ... are "for example so-and-so - it may vary from xxx to yyy or more", so that the students wouldn't think that the sample value was carved in stone.
|
|
|
|
|
some people can get it. Others there is no hope for. Seriously. There are basically 3 or 4 different ways people learn. Visually, verbally and/or by examples etc.. You can deliver the content in all three and some of the people will understand what you are talking about. Others will just keep asking questions and asking and asking. Patience eventually wears thin for them usually.
That being said there is a huge issue with simplification. You over simplified something and someone made an assumption that they worked from for years and suddenly it doesn't work and they just buggered something awfully badly. Seen it happen at least twice from people I was mentoring. the afterwards conversation was why did you do that? because you said this acted like that. So I assumed it would work because it works with the thing I can touch.
shake my head and move on. It was a great learning experience for both of them.
To err is human to really elephant it up you need a computer
|
|
|
|
|
Nope, no confidence explaining those to a non-programmer (or a fellow programmer!)
|
|
|
|
|
Back in the last century I was at an IBM server class. The subject of memory cache came up and I used this to explain the concept of cache levels.
Beer in your mouth is data in the CPU registers.
Beer in your hand is the CPU (L1) cache.
Beer in your little portable cooler next to your seat is the secondary (L2) cache.
Beer in your refrigerator is the RAM (L3) cache.
Beer in your warm garage is in RAM.
Beer at the store is on the hard disk.
|
|
|
|
|
Now I'm thirsty
|
|
|
|
|
source to machine code - yeah, I just press this triangle button 😒 on the top line.
Disk storage maybe, ssd, well there another computer on the disk so it doesn't wear, yes I know ssd does not have moving parts, but its another type of wear because english
RAM: I don't know, I don't do languages without garbage collection.
GC: again, I don't do lagnuages without garbage collection, someone smarter then me figured that out, program just works.
buffer overrun: 🤫thats hax0r stuff, I mean hacker 🤐
AI - it doesn't. Machine learning however is something with nets, so fish I think involved
database: ah, yes, done some work on those... nosql 😯, document db 😭, magic
|
|
|
|
|
AI and quantum computing are hard to explain, but the rest have everyday counterparts that can be used for analogies.
|
|
|
|
|
For example:
The journey from source code, through compiler/interpreter to machine execution
I'm a high level chef: I tell you (a sous chef) to make me a Black Forest Gateaux.
You grab a recipe book, and translate my request into a set of ingredients, and a set of instructions which you hand to a Commis Chef who does the work.
He hands the cake to you, you hand it to me.
"Make me a Black Forest Gateaux" is a source code instruction, which you compile into data (ingredients) and machine code (instructions) which the poor beleaguered Commi (processor) can understand and execute.
Keep an eye open for them glazing over, and be prepared to back-up and explain differently at any time!
That's why when we get a confused question which shows they don;t understand objects or instances I start with cars - because everybody knows about "my car" / "your car" / "this car" / "that car" and that they are all separate instances of the generic class - even if at the moment they don't think that way.
The difficult ones are "quantum computing" because anything that needs a set of spanners that small is going to be difficult for anyone to understand; and "AI" because while it's pretty artificial, it's not actually intelligent, and should really be called "heuristic pattern processing" instead ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: "AI" because while it's pretty artificial, it's not actually intelligent, and should really be called "heuristic pattern processing" instead ... ..which is how the brain works.
I didn't find it hard to explain databases or storage formats, because they familiar. And no, it's not like cooking, where I can simply adjust salt, sour, sweet or umami to taste.
Imagine that for a sweet moment; "add integers to taste."
--edit
The part you got right, is that it is not intelligence. It's arrogance. Makes me wonder how Artificial Arrogance performs; could it be as toxic as a MS AI chatbot?
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
1. The target audience - who are you trying to teach, how intelligent they are, how much they know about the subject being taught.
2. Why you are trying to teach them something. For example teaching someone about How data is stored on a HDD will be very different for someone asking about how to organise files to someone asking how to create a clock recovery circuit for a MFM signal.
Either way I would probably confuse them more than they were to start with.
|
|
|
|
|
Who said anything about teaching? The operative term in the survey title is "explain". The goal of teaching is that the one being taught learns something. You can confidently explain something to someone and have it sail right over their head and still be confident in your explanation. There is no mention of comprehension in the survey title either. I'm being picky here, but that is what the question asks. But I get it, the title could have consumed an entire paragraph but it would take up too much space. As developers we should all know the importance of good requirements.
|
|
|
|
|
How to write "Hello World" in a couple of languages.
Unfortunately, this doesn't find place in the poll list 
|
|
|
|
|
I have through my profession as a techno dork unto the people I have on many occasions used the cereal bowl vs cereal box to depict ram vs hdd but it often leave them still scratching their heads.
So anymore I just let them go on smiling big and wide.
|
|
|
|
|
I'm not surprised.
I can see how you'd get the cereal bowl spinning, but getting the box to rotate at 7200 rpm is going to be a stretch ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Or is it only required for me to be confident I am right?
|
|
|
|
|
I know because I tried. Most non-programmers don't even understand the concept of a file - how am I going to explain them the compilation process?
|
|
|
|
|
I would explain that one using natural language, adding that computer languages are unambiguous. So if I want to translate from English to French, I can parse the English sentence to derive its meaning, and then convert it to French, which can be "executed" by a French speaker.
|
|
|
|
|
Use a filing cabinet metaphor. This works for explaining compilation/linking (add multiple human languages to explain transformations), data storage in HDD/SDD/DB, and RAM. A desk with a bunch of stuff on the top and in the drawers works for garbage collection.
My wife (medical professional) is non-techy, so I use things she can see and touch as metaphors.
|
|
|
|
|
How well do you want it explained?
I once explained AI as "statistics that are too big for humans to compute."
Most people will get that description, but it's hugely oversimplified.
You could explain garbage collection as "the cleanup of memory from code that's no longer executing."
That should give people a few pointers* as to what garbage collection is, but again, oversimplification that's not entirely correct either.
Do you want it explained better, like how a programming for dummies book would explain it, then no, I can't explain it.
* pun intended.
|
|
|
|
|
The survey reads:
"Confidently explain" meaning "explain well enough that they get the gist and could, more or less, explain it to someone else to your satisfaction" I take this to mean the recipient needs to get the concept, not how it really works.
Honestly -- how well do any of US know what the survey items really mean? Unless we actually work in the technology, it's very likely that we don't -- we are using mental metaphors to represent what we think we understand. In most cases this is sufficient.
Sander -- as I said in a previous post, use real world objects, such as a filing cabinet or desk to represent the pieces, things the recipient can see and touch. That takes it out of a hazy mental picture and makes it real for them.
Professionally, one of my best skills is that I'm bilingual -- I speak both English and Geek, and can translate in both directions. 
|
|
|
|
|