Friday, October 17, 2014

Learning Blog Week 4

My Brain

   This week I had retention in mind.  I have begun to feel as I've worked through several of these tutorials that I've forgotten too much and I fear my future learning may be hindered by the poor retention.  In my first week's blog I casually said that if I felt the need I could go back and write out an index of sorts of terms and definitions.  I did NOT realize how difficult that would be.  I should have done it.  Now, I find myself straining to recall syntax and functions and how to make my code work the way I remember it should work.

The Experience

   This week my programming tutorial was about hashes and arrays.  Basically what I learned was how to manipulate lists of information.  The tutorial began by telling me that I remember how to do something I learned a couple weeks ago and asking me to provide the correct code to get us started.  Usually these tutorials start out pretty much spoon feeding you answers.  I was taken aback, and a little bit disoriented.  I immediately had to engage my mind, and withdraw some information that I had tenuously stored somewhere in my long term memory.  My memory structure in terms of coding is that of a novice, meaning it's not very organized.  I have bits and scraps laying around here and there, but they are only loosely connected.  The reading this week explained that as we learn new things we naturally re-order them to fit our existing knowledge.  I think my problem is that I don't have much existing knowledge in this area.  The information sort of gets put in weird places that are vaguely similar.  I hope as I go along I'll be able to knit it all together in a way that I'm able to access the relevant information at the appropriate time and in a relatively easy manner.
   So, here is an example of an array in the Ruby language: my_array = [1,2,3,4].  It doesn't have to be a sequence of numbers.  It really can be anything.  my_array= ["hi", "hello", "hola"] is an array with workable data.  This is the information I learned two weeks ago, but didn't use last week.  I had to do some serious thinking before I realized I just wasn't going to be able to recall that information.  So, I did what I should have done in the first place, I looked it up.  It came back quickly as I looked it over, but something else happened almost simultaneously.  I thought I remembered another piece of syntax, but I didn't.  I had a clear recollection of how to gather a piece of entered data by using "gets.chomp".  What I missed was that I had to set an object to the information gathered by the command "gets.chomp".  So my code said something like this :
   
When it should have said something like this:



This false memory led to some real frustration.  I remembered clearly that to gather information gathered from the user of the program you simply put gets.chomp and it would collect the text or numbers entered and store them for use.  So I built my whole program, which was a simple Histogram program, with this bad code in it.  The weird thing is that this mistake doesn't make itself know with an error.  What happens is it collects some information and then uses it, but it's not necessarily the write information gathered.  I didn't notice the program doing strange things until many steps later.  I went over the wrong part of my code over and over trying to figure out what I'd done wrong.  The gets.chomp is something I learned on my first day doing Ruby and it was something I recognized and was confident in.  Reading about the people who remembered the word sweet amidst that long string of words which imply sweetness I felt like my brain had played a similar trick, only not quite the same in that I forgot a piece instead of inferred extra data. 

   I have a long way to go, and many many restructurings of my memory in regards to Ruby, but I think knowing that there is a process in place is reassuring.  Knowing that our memories aren't idle recording devices, but are actually dynamic learning machines makes it easier to accept the frailty of the system, because you also learn about the power of the human mind as well.  What an incredible network of knowledge.  It takes work for sure, but I really appreciated this bit from the conclusion to chapter four, "Although children learn readily in some domains, they can learn practically anything by sheer will and effort."  I think this is probably more true of children with the way their brains work but I can see how knowing about learning can aid in even an old person like myself learning a new trick. 

Here are the screen caps of my program this week:

Code in the CodeAcademy tutorial



And when I rebuilt the histogram on my own


  A final thought on memory

  The book explained that there are two kinds of memories, procedural and declarative.  I think in my learning this past month I have accumulated a bunch of disparate pieces of declarative memory in regards to Ruby syntax and functions, but I think I haven't retained much of the procedural memory.  I haven't developed much skill for programming Ruby, nor do I have ready processes to fall back on or build off of.  I'm not sure if this is because it takes more time to develop procedural memory, or if perhaps procedural memory relies on declarative memory to form an effective network, but I feel as though I will not feel like I really know Ruby until I develop some grasp on procedural memory in this regard. 


 

No comments:

Post a Comment