Ad

Tuesday, February 26, 2013

Code Speak and the Metaphors

We frequently have to remind those around us that we are all beginners once. As women, we often are very apologetic and somewhat nervous to ask for patience from others, though we generously give much patience.

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
  • Ruby, Python, Javascript, Php: flips sides of the same coin, different programming languages trying to achieve similar messages, i.e. like dialects or just different languages
  • 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
  • jQuery: a simple library of javascript that makes interactive web design easy


No comments:

Post a Comment