Before seeing any problem
The first lesson on my #CSChallenge is with CS50 by David J.Malan of Havard University on EdX. But before I start learning, I took the course’s survey, more like self-review, and the questions were like:
Q: How many online courses you attend this year?
Q: How many of them you have finished?
Makes me think that I have NEVER arrived at the end of ANY courses. There are two classes that I almost completed — one is Creative coding (I dropped out in the middle due to the struggle), and another is WP by Cris Coyer which I choose to learn on 80% of lessons. Said that I learned just what I need on client projects.
CS50 also asked:
Q: How many people you told you have joined this course
Thought this through, it was ZERO.
What is the matter with that? Yes, it does matter. We could leave everything easily if we told no one, without feel guilty or need to be more responsible.
So I decided to let my friends know about my activities and asked for fun collaborations on assignments. Make my record transparent to keep me going in a positive way.
Tear the problem to half
The CS50 track starts by helping me understand how the computer thinks.
Defined by mathematical methods. I went through Binary system and then ASCII.
The way computer tears the problem to half and a half and a half (…) is dividing logN as binary search step. When I went through this, I said “Aww…”. It is nice to know the possibilities or the value of what we are learning right now.
Well, at lease, now I could understand this joke;
There are only 10 types of people in the world: those who understand binary and those who don’t.
— Mathematical Jokes, Unknown.
And by learning ASCII (American Standard Code for Information Interchange), CS50x does lighten me up a few things, including this:
Convert case is done by shifting one bit!
Anyone can build
The first assignment encourages us to create our first game via Scratch — specific open-source by MIT. In Scratch, we can create games, interactive art, and animation projects. Structure the rules from puzzles which will help us focus on the desired results and how to arrive there in term of computational thinking.
Then I’ve discovered — I’ve lacked sense in game development.
When I was a child, I was an insane gamer. Until I have serious myopia and I thought I need to stop. It took me away from the sense of game development. However, I tried to create this game as an assignment for week 0, and it looks like this.
I encourage anyone to make fun things from Scratch platform. You can even recreate now project by remixing from mine or others to make them even more exciting.
My Sweet attack game might not arrive at the best result, but it is fun to walk through. It leads me to these following valuable lessons:
Sprite is all I like (to play around with)
There are nothing to afraid at the start. I end up enjoying create all sprites, have fun while recording voices from friends, exciting to gather feedbacks from people. Have fun along the way is the best way to go.
Nobody is perfect, but the community can be
The power of open-source and community, where we can learn from the other’s success or failure and build the alternative executions. Such an idealistic concept.
Code is not syntax
I now understand that its core was all about logical statements. To be precise and avoid misunderstandable commands. Like language-learning, at the start, we should better not to concentrate on alphabets or grammars but rather focus on messages and the way we want the others to understand. We can not communicate clearly without clear thoughts.
CS50x: on Linux, C, Compiling, Libraries, Types, and Standard output.
I already acquire this book to get ready for next week :)