Sunday, January 23, 2011

Week 2? Sure or not?

It's hard to believe that we're only in the second week of this semester. I've always stayed back until late at the Mac lab for the last two weekend. This week I spent around 12-14 hours on the problem set. First week it was around 8 hours. I'm not sure how much others are spending on them, but it's not likely to be a lot less than that -- the psets are really long.

I'm not whining though; it is actually very interesting. It has been long I haven't felt I am learning so much about software engineering (and feel excited about it). Yet it's just the second week of school! I'm excited about the remaining 11 weeks (worried at the same time lol).

Objective-C is a very cool programming language. I love the way method can be defined; it's very descriptive and clear. It makes functions pretty intuitive and easy to remember. Property (dot notation) is cool and flexible. I haven't really made (real) use of its features though. Memory management turns out to be not as daunting as it seemed at first. Most of the time we don't really have to care about it because everything is auto-released. (It got me twice though... Never mind, I've understood it better!).

The coolest thing of problem set 2 is actually the testing thing. Never I seen writing unit test can be achieved so easily. And all the tests are automatically run at the compile time! It'll be very convenience for regression test. It encouraged me to do incremental testing and write test case early too! After writing few function(s), I would process to write test for them and start debugging immediately. Haha, I've never tested my program so systematically. I think we can do the same thing (creating testing suites) in Visual Studio, but too bad I didn't know that last semester, and stuck with lots of regression test.

And writing good code is always rewarding. Sometimes I feel excited & impressed when looking at a piece of well written code. Especially when it's mine =)) (sorry for bluffing=P).

By the way, it's a big mistake if I don't mention the awesomeness of the 27'' iMac. Wow. It's really really cool. You're immersed by the really big screen in front of you. It occupied your mind easily. And it's beautiful. You feel very different when you stare at the desktop filled by a great photo (esp, when it's a landscape photo -- you can feel and appreciate the vastness of the scene). My screen is usually divided to host 3 files at a time, it made switching between files no longer a pain. It really helps keep your concentration to a really high level. I'm not really used to it yet though. (and working with the Interface builder was a pain when its windows spread all over the screen, mixing up with other apps easily. (It's suggested to give Interface builder 1 desktop on its own, but we don't have "Spaces" installed). As long as people don't chit chat too much and too loudly, the lab is a perfect place!

Oh and the ipad! It deserves it own post! I will write about it later.

On a side note, I still remember that I'm taking other modules as well. And luckily, the professors are all very funny (humorous) and interesting. Still, I must be more proactive / active / prepared..

So far so good. It's still yet to see if I can survive this semester!

Thursday, January 20, 2011

Practice

A striking thought come to me when I think about the running yesterday, and about practice in general. It was very different from my belief so far.

In doing heavy, harsh practice (or training), one shouldn't have to resort to too much pure willpower to finish it (ie continue because of pure determination, with no interest at all). If one reaches the state that he has lost all his interest, he should continue, but not for too long. He better takes a break soon, have some reflections or so, rather than continue just because he has to complete it! The reason is that if you relied on will power alone, without interest, you might be discouraged to repeat the training in the long run. It's like you win the current round but lose your interest, and lose the big game. Practice should be used to foster interest, not destroy it.

An analogy to this is that you don't want to eat your favorite dish repeatedly for too long. It's gonna become your hate dish. You better have it once in awhile, and the rest of the time your mind will dreaming about having it again!

However, certainly without harsh training you're not gonna be able to improve your skill. Ideally you should exceed your current limit, yet refrain from using up all your willpower. That's knowing you limit and your real limit.

That's tricky. It might not work for me, because if I stopped before I completed the training, I might feel like a loser. Also, I'm not sure how much of it is true, and to what extend or what situation should it be applied. Please feel free to give me your thoughts on this.

Thursday, January 13, 2011

New semester has started!

*.. and it's gonna be really really long!

It's been a long time I haven't written anything. There were a lot of things I wanted to write about. However, you think you need sometimes for reflection after some days. Then after a few days, things became less relevant and you didn't have the urge feeling to write about them anymore.  You probably even forgot about them already.

In fact, that might be an attribute of Martians? I don't mean I'm a Martian but you sure know the analogy between men and Mars, women and Venus. It is said that men has a tendency to solve his problems by himself.  For awhile I tried to express my thoughts about different stuff, but then I still couldn't resist the men's tendency to hide in my cave and think about things on my own. Probably... Actually it's just a lame introduction about that I am taking a writing module named WP2201C Mars and Venus (Mis)Communication. Throughout the semester I will keep blogging the topic in this blog: http://justanearthling.blogspot.com/ Please follow it!

Another module I want to mention is CS3217, iPad Programming. Yes! I've loaned a brand new iPad for the whole semester! Com'on, how cool is that? (Does it sound like any particular person?) I'm planning to blog diligently about the learning experience during the course of the module. (Hopefully more often than how I blogged during CS3216 course). One thing I want to hight light about the course so far is how prof (prof == prof Ben Leong) appreciated writing good documentation. You probably think that it's a waste of time, or you tend to skip it. But it's NOT about you! It's about the ones that have to read and maintain your code. It's about that poor fellow, not you! Give him some mercy. In case you haven't read it, you probably want to read my old blog post about this matter: http://manhhung741.blogspot.com/2010/09/one-day-of-programmer.html. After the experience I've determined to write good comments and documentations of my code. I am carrying it out really seriously!

That's it for today! Stay tuned for more updates.