Friday, November 14, 2014

NOTES:
  week1-  learn from multiple sources (sociocultural learning?)
-  working memory vs. long term memory (did I really develop any long term memory of this stuff?)
-  The Robbie Case stuff "that just because a person is a certain age doesn't mean that they will have the same success at abstract manipulation of information. In my case I felt like a bit child-like in my inability to fully work through the hypothetical situations in my mind. I couldn't see many of the end results. I don't have the automaticity or fixed schemes to allow my mind to work at full speed yet, where I can think of several children who have taken some programming classes who could probably work through the hypothetical situations better than I am able to at this point."

  week2- How much did the reading effect my experience?  How much did my experience effect my reading?
-  I inherently recognized the power of situated learning even before I knew what it was exactly, "These tutorials are much easier to follow, and rely less on PhP comparisons.  They're more project oriented as well, which is helpful to me because it allows me to see how the concepts fit into the execution."
-  cognitive miser
-  Is there a cultural motivation to knowing programming?  How does that relate to what Vygotsky said about language as the basis of cultural learning?
- expectancy-value theory- "great aversion to negative consequences umbrella
- incremental theory= Am I cut out to program?  What stops anyone from learning stuff?  Is it all lack of effort or are our individual minds geared one way or another?  How does enjoyment play into it?

week3- experts!  Does expertise take time?  Yes!  Do you have to love something to become and expert or does developing an expertise foster a love of it?  Or can you be an expert in something you have an aversion?  I feel like programming is not naturally something I love, and I don't think 8 weeks of practicing it have persuaded me to continue.  My unanswerable question is if a love can develop with work and practice.  I have a feeling that if I could beef up my schema for programming and connect some of the knowledge a bit better I'd like it a whole lot more.  If I could get to a point of practical application I might actually enjoy it... Ignorant incapable?

week4- memory is dynamic, constantly restructuring (making connections, relationships, addendums and cross references).
- What was my mind connecting this stuff to if not to prior programming knowledge?
- procedural memory--  I saw a hint of this at work during the last tutorial!!!  I sorta just got some programming right without having to destroy my sanity to do it!!!!
- declarative memory--  Still disparate, but maybe building cohesivness?

week5- situated learning!  I still have a hard time including others in my learning even though I understand and agree that it's an important and effective way to learn.  I definitely do not feel encultured yet in the ranks of the codemonkeys. 
- cognitive apprenticeship- I wonder if I'd pursued this approach.  If I'd just asked my buddy to help me make a website and worked with him.... I think I would have the tools to make a website.

week6- my zone of proximal development is still wide open!  There is simply never a way I'll close the gap, but I don't think anyone's completely filled the gap in any regard to any subject ever.  There is always more to learn/discover/do!  The potential of human learning is more vast than the ability to fill it.  Is that good?  
-  Internalizing this stuff?  I guess I have a little bit, but not nearly as much as I thought I'd have done by now.  The strange thing is that usually I'd have quit by now... but I've stuck to it and put in diligent effort... 

week7- muddling of a new way to look at Ruby.  Maybe this could be a good thing!  
- Learning things the hard way has a function when it comes to more complicated problems or situations

Learning Blog Week 8

Week 8

  And now, the conclusion.  I like to think of this 8 week process as a learning journey.  It feels like a long trek across a foreign land with way stations set along the way to reflect on the journey and recalibrate the course.  I've enjoyed the experience, and I think I have a good account of my trip.  This week I completely abandoned the CodeAcademy tutorials for a radical new approach.  I simply asked my friend to help me make a website with Ruby.  Spoiler: we failed.  We sat down and got straight to work.  He quizzed me for a while on what I knew, what I didn't know and showed me some code from the Starfall website, which he curates.  I admit I was mostly lost during this process.
  After a time, we started in on our first bit of code.  That's when he really lost me.  We worked together, mostly me watching him type code and fumblingly explain what he's doing.  I will admit that I was pretty disappointed.  I had hoped that this experience could be like a cognitive apprenticeship, but I hadn't fully thought through the situation.  Cognitive apprenticeships aren't just last minute crash courses with an expert friend.  They require time and patience and a lot of work.  I didn't give myself enough time to learn from my friend's ample store of knowledge.  Indeed, my friend's knowledge of Ruby far exceeded my ability to keep up with, but I wouldn't say that the experience was a waste of time.  I think rather than an ending point for this blog, I should have made this the beginning point.  I wonder if I'd asked my friend if I could just help him as he builds websites if that would have been a more satisfying experience.  Could I have done like the apprentice tailors and picked up enough code by doing menial tasks for my friend to learn to program my own site eventually?  More importantly, would this have made the process more enjoyable? I find nothing gives knowledge as much memorable context as friendly humor.
  The major drawback to my learning journey was that I just didn't enjoy programming.  Each week I'd get a feeling of dread when I thought about having to do my coding activities... though writing the blog was actually quite enjoyable (Maybe I should have learned how to blog for my learning activity?)  I wonder if this is a function of how my brain works, or if it's just that I've always enjoyed writing, and have never programmed before.  Writing is comfortable, there is a level of automaticity.  I don't have to think about the component parts of writing.  I just think of something I want to say, and then my fingers make it appear on the screen (or the page).  Coding required a lot more concentration.  I had to constantly retrieve information to my working memory, and then store it back away.  My schema for programming wasn't very well organized, and the relationships between the ideas and concepts were tenuous and constantly changing in ways I couldn't quite grasp fully.  I know our memories are dynamic learning machines, but it seems that when we have a firm grasp on a subject those changes are exciting and interesting as opposed to when we're still new to a subject and we can become easily confused as our memories expand and make continuous connections to just about every other thing we know.
  Reading through my blog entries I came across this passage in my first entry, "...that just because a person is a certain age doesn't mean that they will have the same success at abstract manipulation of information. In my case I felt like a bit child-like in my inability to fully work through the hypothetical situations in my mind. I couldn't see many of the end results. I don't have the automaticity or fixed schemes to allow my mind to work at full speed yet, where I can think of several children who have taken some programming classes who could probably work through the hypothetical situations better than I am able to at this point." 
  This was in response to Robbie Case's ideas building off Piaget's theories.  I have come a long way these 8 weeks in terms of finally getting a toehold on Ruby.  It's just enough to work through some abstract simulations in my mind, and then being able to manifest them in reality with only a few minor tweaks.  I was thrilled last week when my tutorial asked me to provide some code that would do a certain thing, and I thought about it, came up with something that seemed like it would work, and then wrote the code.  I only had to add one little bit of code that I hadn't thought about in my mind, but everything else worked.  That was maybe my biggest breakthrough during this learning exercise.  I feel like I was able to develop a little bit of procedural memory as well as the cavalcade of disembodied declarative memory fragments that I got throughout the 8 weeks of practice.  Things started to coalesce just a little bit.  I had a tiny little script there for coding a certain thing.  I finally was able to transfer a little bit of my new knowledge.  A near transfer, but a victory to be sure.
  And now the conclusion to the conclusion.  I have learned much about myself, how I learn, how my mind works.  I've come to realize that I have a great aversion to negative consequences and that I can sometimes limit myself because I'm afraid to fail.  I came to the startling realization that I don't even know how much I don't know, and then found myself even more startled to realize that that is a good thing!  It is a wonderful thing to discover the boundless potential of human knowledge.  In this very tiny subsection of all human knowledge, namely computer programming, I realized that what I don't know is the most wonderful discovery of all.  It's wonderful because it means I have the potential to learn so much more and the way to do that (I am coming to find) is to become immersed.  I don't know if I'll ever become encultured into the ranks of the codemonkeys, but I think there is room for me to learn from them.  To observe, to copycat and then allow those experiences to marinate in my mind.  Then, to internalize them and make them my own.  To let them connect to all the other things I've learned.  
  Above all else, I think I've learned that learning is complicated.  It isn't just a response to stimulus, and it isn't just the memory function of the brain.  There is more to learning than just the physical development of the brain, or of the maturing of the mind.  It isn't even fully explained by our interaction with our culture and surroundings.  All of these ideas and concepts can give us insight into a still somewhat mysterious process that happens all the time and without our conscious decision.  We are constantly learning and restructuring what we've learned.  We're constantly sorting out the disequilibrium in our minds, and incorporating what we sense around us.  We are never done learning, and we don't have to strain to do it, but we can focus that learning to be constructive and fun.  We can learn to do almost anything if we muster the motivation and work, work, work, toward it. 

Friday, November 7, 2014

Learning Blog Week 7

Recomplicating the Process

  This week I learned in Ruby how to do a whole bunch of stuff I already knew how to do.  That's right, I relearned how to do a whole bunch of stuff I already learned how to do... only this time I learned how to do it a different way.  I found this weeks tutorials very frustrating as I felt like I was spinning my wheels a little.  I mean, I have a goal to make and I'm relearning stuff I already know?  And further more, now my understanding of certain processes is all muddled up because I can't keep straight the syntax from method 1 and method 2.  

The Experience

  I suppose I pretty well launched straight into the experience this time above, but let me begin from the beginning (the place where all great beginnings begin).  I sat down after having read the How People Learn chapter all ready to experience some transfer, and to think about how the knowledge and skills I've gained have transferred thus far.  I figured I'd talk a lot about the final project, as there is usually a final project at the end of each tutorial, and how I'd do a short transfer from the tutorial to the final project.  Unfortunately there was no final project this time.  However, as I went through the tutorials, somewhat perplexed by the repetition and muddling of the exercises, I realized that there was a lot of negative transferring going on.  What I knew previously was becoming hazy through the onslaught of my current re-learning.  It became very confusing when I was asked to write code to do something and then received feedback that I had done it wrong, even though the code I wrote performed the task at hand.  My frustration was tempered when I was suddenly reminded of an episode I'd had with my 9-year-old daughter just the day before.  She had come to me in tears because she couldn't get three stars on her typing test.  She could get two stars, but not the three she needed to pass the test.  I had her show me the test and how she was doing it.  I remembered from previous experience that she did not use the home row method of typing.  I'd told her before that at some point she should try to learn to use the home row keys, but she told me it was just more confusing.  I told her, if you learn it now it will save you having to learn it later when you've developed bad typing habits.  She didn't see the point, she felt like she could get by well enough with her own method.  I told her, in the future you'll need to type faster and the home row method is the fastest way to type because it puts your fingers in the proper position to type fast, and it allows your brain to have a script of which finger will push which keys.  It allows for automaticity.  She scoffed at me then.  I didn't feel it expedient to throw that in her face as she was already frustrated by the situation.  I tried as mildly as I could to urge her to learn home row.  She was resistant, telling me she needed to get the test done as quickly as she could.  She said she didn't have time to learn home row.  I told her the long she waits the harder and more time consuming it would become.  It's better to take the time now and do it properly.  
  Long story, but I was all of the sudden sitting at my computer trying to kick against the pricks, trying to avoid the methods that the Code Academy tutorials were telling me would save me heart ache in the future.  The new ways of doing things I already knew were being taught to me to help me deal with more complicated coding situations in the future.  The first way I learned it was to help me understand what was happening, and then we were going back through and learning how to make it work at it's most efficient.  At this point the transfer seems to be negative, as I'm still much more confused now than I have ever been at any point in my learning journey.  However, I think that with work the negative transfer can bloom into a positive transfer.  If I can link the concepts and just keep the syntax straight I think I'll have a more complete picture of how Ruby works.
  Now, at this point near the end of my learning experience I began to question the effectiveness of the tutorials.  I am not quite finished with them, so I must reserve judgement till the conclusion, but I thought about the most effective way to transfer knowledge, and I think one effective way to do it is by abstracting the information.  Giving overarching concepts that relate and apply to all the various specifics that come down the road.  I feel like I've been given a high volume of minutiae without some of the pillar concepts to give them stability.  I think this may be why I am still lost as to how all of this stuff I've learned over the past two months can come together to create a website, or an app or anything!  How do these nuts and bolts fit together to build the rocketship?  I wonder if the tutorial makers are relying on the learner to have previous experience with a different coding language?  I wonder if perhaps I should study basic computer science, or web design before proceeding.  Perhaps transfer would be easier for me if I had more knowledge for this stuff to latch on to?  I think the vertical transfer issues I'm having, combining all these little coding elements into one great whole,  may stem from not having the broad concepts I need.  
  Finally, I decided that I should go back over some of my old programs I've done for this course and try to apply my new methods.  This went well for some, and horribly horribly wrong for others.  I made a mess of several of my programs, and without the tutorial and forums for help I think they're better left to die quietly and together in my recycle bin than to make another effort.  The few I was able to retcon worked great, and I feel like some of those concepts may have cemented in place a little bit after doing this activity.  The horizontal transfer, short as it might have been from in-tutorial to out-tutorial programming was effective and helpful in understanding what I was learning.  

Sorry, no pictures this time as nothing I did this week was worthy of an image.  

A final note, 
    In the tutorials I've been doing, there are hints you can click on to get some help if you are stuck.  Iv'e always classified these as scaffolding, which I still believe they are.  However, the way they are constructed reminds me of graduated prompting.  They begin by giving you vague, open-ended questions that help you think back to what you've been learning and other instances from previous tutorials where you've learned applicable concepts.  Then, there is usually a link that will take you to the glossary where you can read about whatever it is you're supposed to be using.  There is usually also a link to the forums where you can ask specific feedback from experts and fellow students, and then if all else fails it tells you that you're allowed to peek at the final project to see how your code is flawed.