Monday, January 25, 2010

CS3216 Reflection after two weeks

Now I understand why everyone should take a new post for every week, cos after one week, my feeling has become very different than it was one week ago. Anyway, I think it's still enough for a new entry.

First lesson.
The lesson was indeed quite familiar. I once experience it during the last lecture in CS1101S, very meaningful, and I was very happy back then, that I was able to be in this wonderful class. Some meaningful key ideas in the lecture:
Learning is hard, but learning is fun. But one thing to remember, it it ain't hard, it ain't worth doing. Truly, I must admit. Learning seriously is never easy. It's challenging that makes people better and better. And seriously, if something is hard, it's very, very boring. When I was in high grade 12, learning in class suddenly become so boring, I think, don't quite know. But normal class, unlike Maths, didn't require much brain thinking, and to me, it's somewhat boring. But I couldn't be playing around, I must have something to do. And then I knew about NUS, and it was just a few months. And I thought: 'hey, this looks interesting, this looks hard, this seems worth doing to kill the time'. People told me that the exam is very hard, some even told me that it was impossible for me to pass the exam. But who cared, people of the same type as me, when someone tells them that something is hard, it not only don't discourage them to do but also makes them try and try harder, the harder something is, the more interesting is. I'm sick of 'normal life'. Almost all people in my high school just took the university exam in Vietnam as the first priority. I was not, I wanted to do something different, and I was sick of things that were very ordinary. Kind of like that. And my first semester here, Maths module were very boring. I finished reading and understanding and even could take a short rest before the lecturer finished explaining about a problem. Maths is like that. Idea is important, details is not. With a basic foundation of Maths, give one an idea and he can figure out the rest of the solution. Same here. Memorize the details and you can solve tens of problem, catch the idea and you can solve a thousand ones. That's the key thing that I very like in Maths, idea, is the most important thing :-). A little off topic, I was sick of Maths module, it was very boring that even I skipped lecture for the whole semester but still can score high finally. They were ways too easy. I just saw the latest final exam, and could easily figure what the final would be, what I should do. While in CS1101S, I saw the latest midterm test, anticipated how the midterm test would be, and was trapped in the real test. For practical test, a very sharp increase in the difficulty of problem 3 makes me standing there, shocked for a while. And lastly, the final test, while it took me only a little bit more than 1 hour to solve most of the final tests before, the real test, 2 hour and 15 minutes, was not enough for me to finish, and partly due to my mental, my shock. Truly, it's hard to read the evil prof's mind, but actually, it's very good to know so.
Learning how to learn. True, this is a very new idea in my opinion. Instead of giving me the answer, he show me how can I find the way to the answer. It's my prof who makes me realize how dependent I am, and how lazy I am to find out more, to be active, all the time. Those now have already become my characteristic. I had some very wonderful friends in high school. They are truly strong, very strong. And I partly rely on them very much. Hard Maths, problem? Ask them. Hard things to find out, ask them. Another example is that, I am here now, not because I seriously found out things about NUS, but I just asked a friend of mine, he suggested NUS, and some of my friends was also going to take the entrance examination to NUS, and so, I decided to take the entrance examination as well. And many many other case as well. Consequently, now I have become rather dependent, rather lazy to find out new things, to read information. However, prof has shown me very clearly about that, and now, I'm trying to change myself, to become better :-).
Execution matter. True, very true. Realized that after many things prof told about. The idea is expensive and unique, but it will become very cheap without execution I really, really think.


Second lesson.
Many interesting and useful ideas in this lecture, indeed. It's about project work. No, not about project work, it's about programming project work, which is a must in the module, and a must for me to know, to learn and to do as I had very little programming and project experience in the past. Don't know how to say or state clearly about this lecture, but it did clear my mind in many ways. My facebook application group started before this lecture, and there were many things not so smooth about the programming as well as the project. And this lecture is one solution, or one direction to solve the problem. And indeed, after the lecture, many things went easier and more smoothly than that. The lecture is about how to create an app in an efficient way, and there're something I think very important.

Programming is long term, and one efficient way is the software development life circle. The world is changing everyday, and there's no guarantee that the app can catch up with the pace of life everytime, so designing the software development in a circle to fix, mainternance, improve on the go is a must have thing.

More thinking, less coding. Think properly first, then do. This is about thinking to the most possible extent what you want you program do, and rank them, and then design and coding so that changes is easily even after a long time. Last vacation, I coded something for my friends to help them learn with the computer. At first, I only thought of a very simple idea, and simply thought that "nah, why need to think harder, it's just that, start coding now". And then, after successful coding, I realized that the UI (not exacly UI, but kind of) is very ugly, not comfortable and convenient. Also, I recognised that if I included some more functions, things will be easier and the app (not an app in fact) is of higher value, can help my friend more. But then, the fixing process was a pain, I was too lazy that I didn't even thought ahead of time, didn't create abstract barriers for the app, and also not predict that the app would have some more function. The code became more and more messy after I added some more things inside it. What a pain. Come to this lecture, I realized how important the thinking process is at the beginning. Very important. We need to think hard, list all possible functions, design for changes, ranking,... and coding is the last thing. Otherwise, the app will go boom after sometime as it cannot catch up with the speed of the modern life.

1 comment:

  1. Oops! I once promised myself to keep up with every new post on ur blog, but it appears now that I have missed a lot of them :(. I dont know why my gmail has not received any notification of ur new posts. However, I'm sorry, U know :(.
    So far quite many posts I've read, I like this one best. The lessons are true to me too. I think I do them :D.But I'll put them in my own way:p. Hi. U know, There're indeed many things we have to learn before learning to fly ^^. Hi:p.
    Thank you :). U know, for the straightforward sharing :). I love the way U wrote it, honestly and sincerely.
    Though things're getting harder, keep trying. I'm in it with u :D

    ReplyDelete