In intensive learning environments, fast-tracked events/conferences/classes, especially concerning the tough topic of learning to program,
I had to learn to embrace my learning styles: I like to have complex concepts explained to me in simple terms, I liked to be offered keywords that I can research, I don't like to hear unnecessary diminishing commentaries even if they are from my mentor/instructor/teaching assistant or anyone offering help.
I *am* sensitive, and I can't help it! For example, I heard comments such as : oh that's super easy, it took me just 15 minutes (that was clearly not true, takes about 15 minutes to set up the work environment). It was super easy for me, I don't know why you took so long... There's no need to go on-and-on about the negativity.
The conclusion of the rant is that: when I ask for an answer, I just need the answer, not some showy commentary or some pointy fingers :) thank you very much.
Many beginner coders (including plenty of ladies) have asked me to explain programming concepts in metaphors. And I thought that was quite interesting! Because it was rather the art of expression, and plenty hard to find the right answer, so I have to constantly refine and look for the most adequate metaphors. It is a writing challenge. The mishap of metaphors is that they are not as perfect as the definitions of the programming language/methods/elements. But sometimes those definitions are so cryptic, using a proxy to gain some level of understanding is definitely better than nothing.
Here are a few metaphors that I have heard, which seem to be working well. What are you favorite code speak metaphors? Comment tweet shoutout and chat about :) This is an initial draft, it will be revised, and augmented with user input.
- Text editor for code: the Word Document of codes
- Git version control: the saving function of Word Document and having multiple versions as backups or variations
- Database: a massive excel file with multiple worksheets (tables) except that DB have them connected one way or another rather than just lining up
- An object: is like a box with some common attributes like height, width, length, but also has some basic functions like storage.
- MVC: putting app files in different folder structures to separate the various components, like putting different clothing accessories in different drawers
- High level programming languages: the programming language sound way more like plain English than machine speaks (codes) XP
- HTML versus CSS: HTML contains the information, but CSS is really the graphics that makes the info pretty and presentable