Wednesday, April 11, 2012

Learning Computer Coding - a "final" conclusion

Well, now it's been 7 weeks (a bit less for me as I was a so called "late starter") that I had started this online course on coding in Python. Udacity Course CS 101 - Building an Search Engine
The way this course had been done suited me well - short steps with a quiz to check if you understood it; after a week some homework to solve, and at any time I can fit into my regular schedule - this is really "educating the (and in the) 21st century"!! 

And what some awesome weeks these have been.
Not only learning to code in Python, but learning a lot more too. About time management, logic (or not so logic) thinking, learning to learn like a student again, sticking to strict (computer language) rules and still be free to be creative, a deeper understanding of what computer and Internet is all about (past, present and future - referring here to the last Unit mainly), and making new contacts through taking this course. I met all sorts of people (virtually) and communicated with them about coding and problem solving in a way that I before never had thought I would do.
It was fun and a win-win for me!! I do not regret it at all - though it wasn't easy to get all things organized and I'm sure I've been neglecting some things I would and could have done in that time as well.


The turning point of "being obsessed" about going through this course (and wanting to "achieve the best grade") was when I had to jump in at work (real life) for sick co-workers. It meant being away from home (and the computer) more often than assumed when enrolling for the course.
Now responsibility in daily life (real life - not virtual one) kicked in and took over - I had to set priorities. 
At this point I felt I needed to write about this in the Udactiy forum. I had been visiting it sporadically before to find hints on solving some homework questions. And found very nice and helpful people there. And I also saw that I was not the only one having problems with the fast speed new information was presented and juggling the normal life to it as well. 
Here is what I wrote:
As much "fun" all this is and truly helps me to understand computers and their programs better
I will have to downgrade myself from "student status" to just watching the video and doing the quizzes and do some of the homework but fail at most of them
due to my "normal" offline life getting into the way of my "online" life ;).
Cheers and heads up for all that are still managing this.
I'm not saying goodbye or farewell at all. I'm only stating that I now know that this type of course is not made for me at the phase of life I'm in. Not that I feel too old or stupid to learn this. I just can't spend as much time on it as I would want and need to.
3 hours a week is not enough to watch the videos, understand what is being explained and answer the quizzes and do the homework (correct of course).
If you feel the same way - just add your comment. and, like last week, I am writing a blog entry too on this (www.michafire.blogspot.com)
edit: this has now been posted:
http://michafire.blogspot.com/2012/03/learning-computer-coding-update.html
Feel free to read it and even comment there (or here) I LOVE to get feedback - not just a "incorrect" or "correct" lol
and for those still interested in my experience of learning computer coding - here the direct link to the first blog entry as well:
http://michafire.blogspot.com/2012/03/learning-computer-coding.html
(And if there was a way to make some posts sticky this one I would suggest to be one of them -- it might help those that are frustrated for not being able to keep up with the course. You learn something for sure, no matter if it is coding or something else. I say this is a win:win situation.)
I had quite a lot response to this, all giving me a "heads up" and keep going and telling me that they were in similar situations at that moment. I felt "at home" and being cared about. 

So, I continued whenever I could - but, with nearly a week pause, it was as if I had forgotten all that I had assumed I had learned. It took me a bit time to remember how I had done it before - but once I was back "in" all fell into place and I could solve the questions. "Eureka"!!
What a downfall this was when I came back after the homework had been graded only to see that it was once more marked as "incorrect". I went over to the forum. And many were lamenting there about the incorrect grading of a correct homework. It was a tiny bug in the grading system: i.e. leaving indented lines (empty) at the end of the code, having forgotten colons, leaving in print statements instead of putting the "#" in front of them to mark them out again.
And the "teachers" and "assistant teachers" read those posts and soon we were informed of this bug and that the grading would be revised as well as to the hints on what to avoid before submitting.
I "struggled" along; not as euphoric as at the beginning of the course, but still eager to keep at it until the end. Then this happened:
And now it happened: my Internet was "gone" poof for over three days. I couldn't continue with Unit 5 and latest now I would have to "downgrade" myself as I'm "running out of time" to catch up.
I had added this to my previous post about "downgrading". And again the response was quite unexpected good. Some more "heads up" and "I am in the same situation"; but also some "thank you for showing I'm not the only one having problems with keeping up" answers and comments!
OK!! This only confirmed the feeling I already had before: my "strength" is not coding in itself, but writing about my experiences.
So I kept bumping and adding a bit to this post for all the ones that felt like me - and for the many newcomers and late starters too. As well as working my way through the units and keeping on learning more about coding.
At the beginning of the final exam I still had not finished Unit 5 and 6. We had a week for the exam - so I deiced to give it a try anyway and whiler I move through the last units solve the exam questions in a parallel way. And I was quite surprised that a few of the questions already could be solved after having watched ONLY the first three units. (Well, after Unit 3 we had been told that "now we know all that we need to know to code" although it might not look nice or be in an effective way. )

Though I guess at my first look at the exam questions my face must have looked similar to this:

I did recognize what I was supposed to do - but I was at a loss at how to start it. My brain went blank. For a few moments until I dived into it. I also headed back over to the forum and asked for a few hints. 
For the exam the help policy was stricter than before for the homework but even the tiniest hint (and often enough not for the actual problem I was working at) helped me along. Also to mention three out of many that "tutored" me more or less already before the exam (and, if I ask them, surely even after the course is over, going through some of my wrong answers to understand why they were wrong):

Then there was a scare for all about half way through the exam time: running codes AND submitting them didn't work "on site". It took about 24 hours to resolve this issue -- and those hours were added to the end date of the exam. While the on site program didn't run (with links given in the forum) I could work on my answers with another Python interpreter (it too had been posted in the forum sometime before but I had negelcted it): Online Python Tutor (remove the start code - type in your own and then see on the next page how it works step by step). This visual was awesome for me - for the first time I could actually SEE the steps my code went through until it printed the output.
From this point on (and by repeating a few lessons in the units) I could answers ALL the regular questions. (And hopefully correct this time -- results are not officially out at this point of writing.)

Overall I can say (and did so in one of the numerous questions after the exam):
The "coolest" thing I learned is not the coding as such, but how with the help of asking the right questions and giving answers that can be understood well, all (in the forum) helped together to go through this course with more than just the videos, quizzes, homework -- a team effort not to be neglected.
And that my main field will never be coding and that I'm gratefull for all those that do it so I can simply use the systems, sites etc.
And checking "my" post I was amazed at the response:
WOW -- close to the deadline of the course/exam and I have 656 (or more) views on this "question" and also around 235 views on the frist mentioned link of my blog.
Thank you all very much - this is really amazing for me.
Yes, by now these numbers have grown again. They do "push my ego" a bit - and confirm once more that with writing and sharing it I (personally) can reach more people than but just writing some code. As I sadi above I'm thankful for all that do the coding so I can spread my wriring.it goes hand in hand - all working on this global network.

MANY, MANY THANKS that I had the opertunity to take this course (no matter what final result I will have) it is a win-win thing I did. A great expereince I do not regret at all. (And who knows, maybe I will enrole into one the upcoming courses at Udacity too. Two sound rather interesting for me!!)

So, to all "Udacians" I can say - maybe we'll see each other in the next hexamester. If not, keep on going and "good luck".

Or as I would code it: 
if "I do" + "you do":
    return True
else:
    return False
We have grown to feel like a community. I hope this will last longer than the course. ANd that it can reach out to other parts in life - virtual and real. "All for one and one for all." -- there is a deeper meaning behind it, it seems.