Friday, October 24, 2014

Learning Blog Week 5

Sociocultural Coding


   This week my computer's video card died.  It's very sad, he was so young!  So, this created some excitement as I have used that computer to do my learning blog.  I had to change a few things from the first four weeks, and it made this week feel particularly frustrating.  First, I had to use my laptop which has a screen half the size of my regular computer (and then take into consideration that I have two monitors hooked up to it and my work space feels very cluttered indeed!)  Second, my laptop is older and slower than my desktop computer.  It can get the job done, but when you're rushing to finish something and have to wait for loading/refreshing/rebooting it can be a bit frustrating.  Third, I'm on a weird work schedule this week and I was forced to do some of my code tutorials from work (which I suppose I'd be using my laptop for anyhow!)  And finally, my laptop does not have all the same programs my desktop did.  So my text program I used to write my codes looked and felt a little different.  All these things are minor in the grand scheme of things (compared to say, the premature death of a video card) but they added up.

The Experience 

   This week I was learning Methods, Blocks, and Sorting.  It was a bit different this week as I didn't have a "final project" per se.  No histograms or redacting program to show for my work.  It just sort of ended abruptly.  So, I took it upon myself this morning to use my new knowledge to create my own sort of "final project" for the week.  I endeavored to make a program that would take a list of titles (any words really) and alphabetize them.  My impetus for this activity was my fascination with the Brown, Collins, Duguid article.  I have often considered myself a poor test taker.  I do not thrive in a silent room full of anxious people with scantrons and essay books.  I have felt as though part of my problem is that I do not study in silent rooms, nor do I use a scantron.  Sometimes I'll write an essay, but it's never all in one go, or by hand.  So, it just has always felt unnatural for me.  This relates to my learning of Ruby in one terrifying way.  My precious and comfortable CodeAcademy templates are not how I will one day be forced to use Ruby to create the website which will house the final installment of this very blog.  Perhaps this fear is why I have tried to use other platforms like Textmate and Terminal to recreate the programs I learn in CodeAcademy.  I am worried that left to my own devices outside of the CodeAcademy website I'll have poor recall of what I've learned.  Here is how CodeAcademy looks:

and here is what Textmate looks like, which is one way you can write Ruby code:

  It's the same code in both, but the CodeAcademy helps you know what you're looking at by giving it a color coding scheme and also adds the indentations to where they're supposed to be, which Textmate does not.  While this is very helpful scaffolding while a beginner learns Ruby and all it's complexity (the indentations and line spacings and word spacings aren't necessary, but they are part of enculturation into the Ruby community.  It makes sense for everyone to adopt the same standards, even if they language doesn't insist on them, so that it's easier to look at each others code.)

  I was asked to add a social/expert element to my original proposal for this learning blog.  After last week, and even more so after this week I see why.  Programming really is a culture, and I've tried to learn it largely from outside that culture.  I have been speaking with my expert friend, and also another friend of mine who doesn't know Ruby but knows just about every other programming language.  When we all chat together (we usually have a Tuesday skype chat just to catch up) they can sometimes lose me with their insider talk.  I've become better at understanding what they talk about though over the past month.  Brown et al talked about the enculturation process in their article.  I think my experience learning Ruby could benefit from more frequent practice in situ with other programmers in person.  I think it could be very helpful to go to my expert friend's house and look at some of his code, and maybe work on something with him.

  This brings me back to my original thought... my website I'm supposed to build in 3 weeks.  I have a sinking feeling about my Ruby abilities, and I feel like the gulf between where I am (firmly scaffolded in CodeAcademy) and where I need to be (free as a lark in the sun!) are more than three weeks apart.  I may need to call in the big guns and get some learning that is geared specifically toward website design/creation.  I need to step outside the CodeAcademy classroom and into an apprenticeship.  I think I'll ask my friend to help me make the website and I can act as his cognitive apprentice.  I can get some authentic activity working with him on websites, and in that way figure out how all this stuff I've been learning actually applies to "the real world". 

  A final note:  I really liked the example of the apprentice tailors being given ironing duty, and yet by doing that seemingly mundane and useless (instruction wise) activity they learned so many of the basics of what tailoring is about.  I hope my coding thus far is more like ironing pants than reading the dictionary.

No comments:

Post a Comment