Showing posts with label Progress Report. Show all posts
Showing posts with label Progress Report. Show all posts

Saturday, May 25, 2013

Grading as concentration practice

Grading exams is, as I have mentioned before, a mind-numbingly boring task. I am of the belief, though, that doing boring stuff can be good for you from time to time, especially if you use it for the right purposes.

I, for instance, have a slight problem concentrating on the task at hand. I'm surely not alone in this, even if I sometimes get the feeling that everyone else is much better at focusing than I am. My brain offers virtually zero resistance when being hijacked by the urge to check some social medium for updates. I need to teach my brain self-defense.

So far I haven't been very structured about it. I just learned about the Pomodoro technique, which I might try if I'm unable to hack this on my own.

But as of now, I am trying to hack this problem on my own - so I decided to use the grading process, in which I was stuck anyway, as a means to this end.

The first couple of days grading I didn't do this, and it basically degenerated to the point where after each exam I graded I would watch a YouTube video. Since every exam took about ten minutes to grade once I got up to speed, this made for a very attention-decifit-enhancing technique.

After that, though, I started setting limits, as in "no YouTube or social media before lunchtime, and do constant grading until then". Yes, I told myself to grade for two-three hours straight with no breaks. I think for a task which requires no creative input such as this, this is defensible (you don't need a break to mull over what you're currently doing) and it promotes concentration for extended periods of time, which currently is my major weak spot when it comes to productivity. And another thing - many programmers talk about being in "the zone". I cannot understand how you can get in the zone with only 25 minutes (as per the Pomodoro technique) available at a time?

So how did the concentration practice go? I would very often slip, though I did notice an increased resistance from my brain when the impulse to check on social media came. However, the slips lasted shorter than usual, and I did find myself forcing my brain to accept that there would be no break after this exam, just another exam to grade. I was basically telling my brain to shut up and suck it up, because it would get no external stimuli, no rewards until the time was up.

You little scumbag! I got your name! I got your ass! You will not laugh! You will not cry!
All in all, I found it a good exercise. I imagine now that I am better at focusing. I have taken no breaks, for example, during the writing of this blog post. I found the method of mentally allocating time for a task a good thing, and I will try to combine this with another zen-like technique which I'll write about later.

Hopefully, this has been an important step in making my brain less addicted to outer stimuli, which I think is the basic problem I have. God willing, I'll be able to keep this up!

Thursday, May 16, 2013

Learning Scheme

I am currently in the process of learning Lisp, more specifically the Scheme dialect of it. I was in doubt over whether to start with Scheme, Common Lisp or Clojure, but eventually I found a random internet comment essentially saying "rather than spending a lot of time figuring that out, you should just start". So I chose Scheme because I also have an ambition to read SICP at some point.

I have heard a lot of good things about the Lisp family and how it can change your perspective on programming if you're coming from an OO/procedural background. So far I haven't had the motivation to spend time on something that only seems tangentially relevant to numerical programming, but I find myself more willing to prioritize learning new programming-related stuff of whichever type presently.

As I'm writing this post, I am also researching whether what I'm writing is actually true. I was about to write that lazy evaluation was one of the ways in which Scheme could shine in some numerical applications (iterative schemes etc.). However, now I see that Scheme also does eager evaluation. So as of now, there is nothing that suggests to me that the Lisp family will be of use in a way that Fortran or C cannot do better, numerically speaking.

Wait a minute! Now I see that Scheme indeed supports lazy evaluation, just not as thoroughly as Haskell... much to learn here!

Learning Scheme definitely is making me think. At first I was mostly thinking "this is just a really illegible way of writing a program" but it's starting to grow on me. Now I am working on learning about continuations, which is a hard concept to grasp, and I don't fully understand its implications yet. Hopefully, soon I will, and it seems like this is one of those concepts that can be mind-expanding. For example, the yield statement in Python seems to be closely related to the continuation concept.

There will probably be more on this later. I thought this should be a 'useful' post with a 'quantity' tag.. but now reading through I cannot see how this post is useful for anyone but myself. Brain Sputter it is!

EDIT: This last comment prompted a post about the need for another label. Thus, the label for this shall be "Progress Report"!