The following represents the views of my brother with occasional commentary added by me. None of this necessarily expresses the views of my employer or colleagues.
Formal Schooling
Background: My brother and I are very similar but couldn't be more different. He grew up struggling all through school while I chose to "play the game" as my mom called it. I chose to study science and math, where he focused on music and art. While many struggle to find work in the arts, he is lucky enough to tour the world playing music.
Phil: Can you share about your learning experience when you were in school?
Mike: It's hard for me to pinpoint exactly what the cause of my resentment for the educational system stemmed from when I was younger. There were many outside influences that acted upon me and surely had their own respective consequences. As our father is a cinematographer (blog), I had seen the world from the traveling circus mentality and was under the impression that I could lead a full and successful life without any formal schooling.
I recall when I was in second grade, we moved to Vancouver, British Columbia and subsequently went to school there for that period. The system they had in place at that school had the second graders in the same classroom as the third graders. This put me ahead of the learning curve when I eventually returned home to our school in America. I became immensely bored and unchallenged with the material presented to me, and as Jurassic Park had just come out in the theaters, I became obsessed with the works of Michael Crichton and began to read his entire catalogue. I won't pretend that I understood everything he wrote, because much of his stories deal with complex ideas and science, however in this way I began my journey of self-reliant learning.
As the years went on, I continued on with the mentality that school was a tedious exercise of frivolous trivia and acted accordingly. That isn't to say that I was still unchallenged by the material presented to me, on the contrary actually. I fell far behind and by the grace of kind and understanding teachers was coddled and gently prodded to pass classes. I grew frustrated with the books assigned in English classes and would prefer to read my own diverse selections, often in class, to the chagrin of my teachers. I remember being scolded for this, and I would reply, "this is an English class, wouldn't you prefer I read, rather than listen to your opinions?".
Phil: What did you think about math and science back then?
Mike: Math was always a challenge for me and it seemed trivial and obtuse. I needed some sort of tangible way to relate to the material which, by either my frustration or the style of teaching presented to me, I could not find. I adopted the mentality, learned no doubt from a punk rock song, that if I never tried, I couldn't fail. Clearly this logic was flawed, because I consistently failed my math classes. Science, on the other hand, fascinated me, and I worked hard to navigate my way through the lectures and textbooks. I was, however, constantly undercut by the formulas and would end up squeaking by.
The MOOC Experience
Background: Almost a year ago, my brother and I were talking at Thanksgiving and he mentioned he was thinking about learning how to program. A few months later, he calls me up and asks me for some help with a programming challenge. After hearing a little of the code he was wrangling with I said, "Wait this sounds like C?" After hearing his reasoning for preferring C to other languages he had tried, I could tell that my brother was getting serious about learning how to program.
A few months later he told me he signed up for the edX 6.00x Introduction to Computer Science MOOC. He and I had some wonderful conversations over the following months. I would receive a phone call almost every week, then every day. These conversations could last for a few minutes or a couple of hours. My advice would always end with, take a break, take a walk, and write some pseudocode. After a while I would get an email every couple of weeks if at all, and when he did call, the conversations had shifted from tutoring to discussion and feedback. From my perspective, he was quickly picking up the terminology and the skills.
Phil: Why did you decide to sign up for the edX Intro to CS course?
Mike: I have always had a strong desire to understand what makes things work. I often would take apart my toys and gadgets to understand their cogs and mechanics. Computers have always interested me and the fact that I couldn't justifiably open one up or see its underpinnings bothered me, especially because of their intrinsic nature in our society. On a whim, I began teaching myself the basics of C and then upon your recommendation, Processing, but was still longing to learn more.
As a touring musician, I have, should I choose not to spend it in the thrall of a drunken stupor or the following hangover, an inordinate amount of free time and I made a conscious effort to utilize it to the fullest. The drummer in my band, who has also dabbled with programming since studying CS in college, had told me about the edX course MIT was offering on the Python language and I decided to sign up for it, even though it had already started a week prior. I felt that with the support of a friend in the class as well, I could possibly pull it off, even with the distractions of tour-life.
Phil: Why a class on computer science / Python?
Mike: As I stated before, the subject matter was very interesting to me, but beyond that, I felt that with enough time and dedication I could begin to earn an income from coding and possibly even supplement my income while I was on the road. After much time and consideration, I see how lofty an ambition this was, especially without a formal education in the subject, but I have always had perseverant spirit, and work towards this goal with daily strides and small victories. The more I learned about Python, the more I liked what it stands for. Aside from being a huge Monty Python fan, I really admire the Pythonic ideals and its desire to be readable. I am constantly amazed at how powerful this language can be.
Phil: What worked for you in this class / what did you do to succeed?
Mike: I feel that the weekly deadlines and set course schedule helped promote the stability and drive I needed to succeed. I was constantly pushing myself to get assignments in on time or in the few cases where I would finish early, reward myself with some hang-time with the band. The forums were a reliable source for help and a sounding board for ideas, examples, venting, site issues, and most importantly, interaction with peers and TAs. In my darkest hours, when no solutions seemed available, I leaned heavily on you, Phil. I am very grateful for your kind insistence and guidance, never giving me the answers directly but helping me to find them on my own. I think having someone to discuss coding with or problem solving in general, without fear of judgement, has been immensely beneficial to my learning experience.
Note: I emphasized the previous point, because I know how this type of pedagogy has helped students who often struggle with school. The best part is, they end up understanding it better than those who absorb it via other means.
Phil: In general how do you learn something new (e.g. new software, new instrument, etc)?
Mike: By exposing myself to this constant stream of information over the past few years, I've come to learn a great deal about how I absorb content. Typically for me, I learn best the old fashioned way - empirically. When learning a new instrument, I would practice constantly, consuming books on scales, patterns and theory until eventually it would all click. Now, 'eventually' is a nice way of saying a really long time, because I'm still in the process of growing, and it is my belief that when you stop striving to get better, you stop being an artist. I have directly applied that philosophy to coding.
It starts with reading, and although my whole life I've been an avid fiction reader, I am now consistently in the middle of several technical books at any given time (right now the subjects are: Python, open-source, Django, problem solving, Java, and Vim). I am also concurrently taking a few casually paced MOOCs which keep me pretty busy all the time. I have been blessed to have all the downtime that being a musician has afforded me and am so grateful to my fiancé for giving me the support and pep talks, without which, I could never have come this far. As I traverse new paths, I know I must be carefully aware of where I've been and to consistently apply what I've already learned. I like to analogize it with the old expression - If you don't use it, you lose it.
Note: My entire family have benefited from this method of learning new things, and I've captured some ideas about this in How to Learn Anything - Lessons in Neuroscience from Dad.
Phil: What did you like about the course and the environment?
Mike: Once I started with the lectures, I was immediately drawn to Professor Grimson's assured and kind demeanor. His style of teaching and the simple ways he had of breaking down complex ideas such as recursion were very comforting, considering the stress the weekly class assignments had on me. Having now taken courses on other MOOC platforms, I have a greater appreciation for the layout and format of edX. First off, I've always been attracted to clean design, and the website and information presented never felt cluttered. Everything was always easily accessible. The Python interpreter they used for quizzes and assignments has a simple interface and gives back informative tracebacks and error messages, which were very helpful in debugging my flawed code.
6.00x definitely felt very organized in a way that I haven't experienced with any other MOOC yet.
Phil: What didn't work for you? What could have been improved about the course?
Mike: The few bugs that would pop up occasionally, would quickly be addressed in the forum and corrected. There was one time that the grader for a assignment became so overloaded that it crashed the system. They kindly gave us another day to turn in our assignments, "and there was much rejoicing". In hindsight, and though I understand their reasons for doing so, I wish they would have taught us to program in Terminal instead of using a GUI like Enthought EPD. I feel like this would have made my skills more translatable to the real world. It is a very user friendly interpreter however, and gives the user instant gratification and comforts galore, especially when it came to plotting graphs with pylab.
Now I have begun weening myself off of Enthought and am doing my best to become one with the way of the Terminal and Vim (I am writing this on it right now).
Phil: Why didn't you give up?
Mike: It would have been very easy to, actually. My friend who had joined the class with me ended up dropping it, due to the restrictions it imposed on his lifestyle. Everyday it was a constant effort to continue and keep prodding through. In order to make the time necessary to complete the course, I imposed a strict regimen on my daily life. I would wake at 6AM every morning (much to the annoyance of everyone who had to hear me snoozing or not hearing my alarm for an hour) and then make a pot of coffee, all while the tourbus was still rolling to the next city.
Then I would listen to lectures and work on the quizzes till my brain was sufficiently fried, and by that time we would hopefully have arrived at our destination where I would proceed to take a much needed head-clearing walk through town. After soundcheck I would sneak in some more time at the computer till it was time to play the show, and after the show (and after several drinks had been consumed) I would work in my bunk till the wee hours of the morning only to repeat again the next day. This was my life. I felt like I was isolating myself from my friends and they would constantly remark with amazement at my will to continue on in this way.
When I was home, there were many times when I would say goodnight to my fiancé, only for her to wake up for work the next morning and see me in the exact same place. There was one time, I recall, where I didn't sleep for three days from being completely consumed by an assignment. She couldn't believe it and she coerced me into taking a much needed break, whereupon I returned and found a solution shortly thereafter. I quickly learned the value of stepping away from a problem. In many respects, I think that having everyone constantly seeing me endure this lifestyle gave me a certain gratification. I think they were a bit perplexed at why I would put myself through this and ultimately, to answer you question in my very long-winded fashion - the reason I continued on was the amazing satisfaction and pride I would feel when a program would run without error or when I would solve a problem, after countless efforts, only to find the simplest answer coming from changing the way I looked at the problem.
Phil: Do you feel like you understand the topics taught well enough to teach them to someone else?
Mike: Yes and no; I feel there are many things that I have learned repeatedly enough, that are intrinsic and fundamental to all coding languages, which I could easily teach to others and find useful anecdotes for. There are many concepts, however, that I struggled with and continue to struggle with daily. While I can explain recursion in theory, finding practical applications where I use it properly is another story. Other concepts that I find myself struggling with still, and perhaps through lack off consistent application are: search algorithms, pylab graphing and statistical analysis. I really did enjoy learning about Random walks and Monte Carlo Simulations, though.
Phil: In addition to Python skills, what other skills did you gain?
I've absorbed many algorithms, discovered the world of Object Oriented Programming, used memoization and hashing to optimize designs, and learned big O notation just to name a few. It was a lot to take in all at once, to be honest, but I feel that the pressure and constant application made me retain a great deal more than I would have expected.
Phil: What advice would you give someone else thinking about taking a course like this and those who are frustrated?
Mike: I would tell them to make sure they set aside enough time to really do justice to the material. Honestly, there were many times when I felt like giving up and just going back to bed with my fiancé or going out to party with my band. I won't pretend to be any sort of genius because I finished this course, it was a combination of sheer will-power and the understanding and support from my family and friends who propped me up when I was literally exhausted and through. I began to realize that taking breaks wasn't giving in, but allowing the mind to wander and explore more possibilities than a screen filled with code and error messages can provide (emphasis by Phil).
I believe that anyone who sticks with it, through the pain and mind-numbing frustration the intensity this course can provide, will succeed. Use the forums, they are your allies, reach out to friends who are willing to lend an ear or put up with some occasional venting, and definitely get the book the class follows. They lead you to believe that you don't need it, and they do provide an online version (I didn't buy it until halfway through the class), but for me it was so much better to have the book to follow along with in my Kindle.
Phil: Did your experience as a musician play a role in your ability to learn in this course?
Mike: I have always thought about music in numbers, and for someone who was as bad at math as I considered myself to be, that system works very well for me. I realized during a class on Orchestration that I was adept and quick at making transpositions because of this system, and it still proves very useful to me when reading full scores or changing keys on the fly. When I was younger and teaching myself different instruments, I would work at it day and night and was obsessed with everything I could hear. I think that same passion to learn has helped me with this class and programming in general.
I would definitely say I'm obsessed, and though I'm not yet the hacker I long to be, it has helped redefine the way I see the world. I think in code, I look for solutions to problems and enjoy the process of learning and challenging myself. It's hard to say whether being on tour while taking this class helped or hurt me, but however difficult, stressful, and painful it could be, upon reflection it was one of the most rewarding things I have ever done and I wouldn't change it. I'd like to think it has made me a better man.
Phil's final thoughts: The transformation I saw in my brother was amazing. It's difficult to convey how big an impact this has had on his life. I had not seen him apply himself this much except with music and now he can't stop studying CS. It's worth mentioning that throughout his educational career, many teachers expressed their concerns about Mike's study habits and grades and yet about a decade after high school he is studying complex technical subjects. With all of the criticisms about MOOCs, we should not discard experiences that make a huge impact on people like my brother.
I just want to thank my brother for sharing his experience with me and allowing me to publish it here. I could not be more proud of his work and what he accomplished and learned!