Sunday, 31 March 2013

Written on Easter

Haven't been to the church for quite a few weeks using the same excuse of being too busy with projects, I find myself get far away from the Lord.

This Wednesday when Prof.Tan and other seniors were having the Bible study in MR5, I happened to finish a project meeting. I hesitated for a while before diving into their discussion. Honestly, I'm not a strong believer, neither do I meet the standard of a Christian. "Not everyone who calls out to me, 'Lord! Lord!' will enter the Kingdom of Heaven." Personally, I'm not sure whether there is heaven/hell or not. Say there is heaven, I'm very unlikely to go there. I do sin. I copy homework, watch too many entertainment videos,etc. I doubt about Trinity, whether Jesus is the same as the father. I question about teachings in Church -- If the teachings in different Churches are not consistent and the pastors can possibly teach wrong things, how can we believe in the truth? I cannot even meet the standard of a decent man in this world's standard, how can it be possible to meet God's standard?! Thus it seems that I'm already predetermined to be not in the heaven, everything I do is kind of in vain...

However, besides all the doubts, I do think the Bible is believable.  That's why I read through the new testimony searching for the truth. Unfortunately, I still find it unclear whether Jesus is the same as the father...

"Only those who actually do the will of my Father in heaven will enter." I tend not to call for help from a higher authority if I can solve the problem by myself or a lower authority. That's not productive, but at least I do not bother too much for the higher authorities. I don't ask the Father what I shall do, but I do interpret the steps I move as a pre-determined action.


Back to this week's highlights.

1. I went for the CVWO interview. When I was deciding whether I shall do CVWO voluntarily, I hesitated.  It's not because of the money, but the TIME. I thought carefully on why I try so hard to find a good internship, even in a higher priority than my first job. That's because it is the last chance in the next six years for me to actually work in the workplace in another country before serving the bond.I'm not saying I don't like Singapore. Indeed, I like Singapore a lot. However, I don't want to be settled so early when I am still so young. There are possibly two alternative paths for me besides settling down in Singapore.

  • Be a technician in the USA
  • Be an entrepreneur and grow my business in China.

The latter one is somewhat more favorable. I didn't realize this until coming back from the CVWO interview. Six years of separation would mean a lot. In the past 4 years, I didn't make many new friends who are based in China. Indeed, I'm only in good touch of my high school classmates and less than 5 college friends in Harbin. My high school classmates mostly graduated from various subjects in good universities, lawyers, researchers, businessmen, etc. However, only 1-2 of the high school classmates are doing IT. I have a very good friend in Harbin who get admitted as a product manager in the WeChat department in Tecent, China. One of the seniors in his lab is inventing an instant messaging app. It would be a good collaboration if we can work together to make things out in the summer. Another possibility is to work in a startup team in Beijing. Beijing is going to be a great innovation center in the next few years. Knowing people and teams is so important. In the long run, I might have the chance to work with them again. After realizing this, I posted my resume to some of my favourite Chinese IT companies(douban,etc) based in Beijing.  The problem is that I'm only doing summer internship which may not bring long term value to the company, thus I'm also thinking of doing it voluntarily. I happen to know some contacts in Beijing. One is a journalist in a venture capitalist company, another is an interesting Peking University graduate who started a open university named "One Man University", another software engineer in Wandoujia, which is a tech startup making android market products similar to an iTune for android. There can possibly be some interesting sparks going on .

The USA option is also possible. However, the internship visa is very unlikely to get permitted within the next 1-2months. I should have applied it earlier(so far I only posted Spotify with no news). China is thus more likely to happen.

CVWO is great, just that I cannot confirm about the timing. 3 months would be a bit too much, compared to the opportunity cost for the China option. That's a bit greedy and may not be great to the CVWO people. Considering the long term investment, I think I shall go to China.

2. I went for the concert for the Script. It was awesome!

3. We met Prof.Sim for the CS3217 weekly meeting. We were the first team to show some working demo. He proposed another possibility that we can probably create a wakeup game store for designers to sell game designs. That's interesting. I guess it would even be better if we can open up an interface for developers to develop small games for us. Don't know whether Apple will allow that or not...




Tuesday, 26 March 2013

学而不思则罔,思而不学则殆

Confucius says, "learning without thought is labor lost; thought without learning is perilous". I don't quite agree with the translation, but I do find this sentence true. I personally interpret 罔 as "confused"and I find myself in a state of "confusion" now as a result of not thinking while learning.

When designing the architecture of a software, I didn't find a good clue until creating some viewcontrollers in the project and see how some open sourced projects approach similar questions. The thoughts usually turn out to be incomplete and full of flaws. That's different from very good software engineers. When two of my friends(very good software engineers) design the same software, they think very hard by themselves and draw the architecture on paper without touching the computer at all. Another example is job seeking. some of my friends(very good engineers/scientists) are very targeted. They seem to be more clear about what they like/dislike. In that case, they normally get offers from their desired companies wherever they decide to go. However, my mind is currently stucked with too many things and I'm not so focused. People succeed for some reasons. Though my way of doing things may not be wrong, it is always good to keep an open mind and probably learn some patterns from other successful people.

Important things to take notes.
1. I attended the Harbin Institute of Technology(HIT) Singapore Alumni Gathering on Tuesday. The president of HIT came to PGP for a short talk. Though I don't have a strong identity of that school, I do feel proud of its continuous progress. The president is humble and practical. His speech was full of intelligence. It's not the hardware that builds a school, but the Alumni.Many alumni already become Singapore PR/Citizens. Quite a large percentage are civil engineers, implementing projects like Gardens By the Bay and some strange-looking skyscrapers. Some are doing research in schools. It is also great to know that HIT is building up a world-class national space center to be the world's frontier in space engineering research.

2. I had the Mid-Term test on Graphics Rendering Technics. Thanks to Xiangyun who generously helped me understand some of the concepts, the test didn't go too bad. Honestly, I'm not quite interested in that course. I took this course purely because of the degree requirement. That's the only technical elective course I can pick that doesn't conflict with more important courses. Two of my preferred technical electives both conflict with CS3217, one of which is sound and music computing. As long as it won't downgrade my degree, that's fair enough.

3. I attended the Ruby workshop brought by NEO Singapore in the Saturday. It was a nice experience. I formed pairs with three different people to code Ruby together. I worked with a year one CS student(Minqi) on the last Ruby Challenge and we became the top three pairs who finished up the challenge.




Tuesday, 19 March 2013

A Less Intensive Week

This week is less intensive after the five CS3217 problem sets are over.I polished the ORC project to make it a splitView in iPad as a potencial application for my FYP. I also reviewed the Ray Tracing lecture notes and started to think about my career after graduation.

Honestly, I'm still unclear about my future. I sent out three copies of CVs in the NUS career fair one month ago. Two of which are EE companies,Micron and ABB, whose automation products look quite appealing to me but don't really fit my skill sets. The other one is Garena,which is a gaming platform company. I was mainly attracted by their company culture and talented developers. No news from Micron or ABB, but I did get a chance to go for interview in Garena the next day after sending the CV. The interviewer was a C++ geek and I became nobody when he asked me about detailed C++ questions.

In the SOC career fair few weeks ago, I also sent out three CVs. One Japanese game company(Tecmo Koei),one Silicon Valley Startup(NEO)and another Singapore health care company(iHis). For Tecmo Koei, they sent out a lot of examine papers to test the potential employees and focus less on the actual skills, which destroyed my passion for gaming and the company. I went for their final interview and thankfully, I didn't get it. For iHis, they will not be recruiting until late march.

This Wednesday, I went for a pair coding exercise with NEO. It's a really interesting startup company where I find my skill sets relavent. They make web apps as well as mobile apps. The company comes from Silicon Valley and the Singapore office now has around 10 employees, mostly software engineers. The one-hour pair coding exercise aims for test-driven development. One developer writes the testing functions and the other writes the actual class method implementation. We are taught about testing in school, however, this is my first time to be demoed about the actual process. The young programmer from CMU guided me through the implementation of a SET data structure from a scratch.  That was a good experience. However, the company doesn't seem to have enough vacancies at this moment. I may need to apply again some other day.

Besides these companies, I also applied for a digital publishing startup, where I happened to meet one of my friends, Aldrian who is a very programmer&scientist. The company is not that great, but at least Aldrian got the chance to do research on NLP without worrying about salary. Good for him.
The CEO is a NUS PHD. We had a short chat and he found it not a good match.

The job seeking process is really not fun. It's also a bit discouraging. What's worse, I have more important things to work on and I don't have enough time for the interviews. Well, I guess I'll eventually find one before August, but it's certainly not worth spending so much time on it. To make a better use of this coming summer vocation seems to be a more important task at hand. I may do CVWO,intern in China, or work on my own projects... Actually, I also sent out a CV to Spotify NYC, however, I don't think that's going to happen. Thanks to Prof.Ben who introduced Spotify's asian director to me. I get to know that technology is only part of an entrepreneurial innovation, a lot more need to be done to make things really work.

Another good thing about this week: I bought a ticket to the Script's concert. I got to know the Irish band via Spotify and I like their music.

Bad thing: Better go&review graphics rendering technics, otherwise,I'll cry next week.

Tuesday, 12 March 2013

Have Fun

One major difference between Geeks and Nerds is that geeks enjoy breaking/creating things while nerds enjoy understand existing things in a deeper level. Nothing good or bad about that. It's just personality. I guess I'm more nerdy than geeky in that sense.

This week, I joined the 2 day Hackathon organised by Labgoo,Singapore. The company consists of two young passionate people-- Sha and Raymond. Its main branch is an interesting Israeli startup known for its voice control game-Pah!  I knew this company half a year ago when Sharon, my friendly NOC coordinator found it quite a good match for me to go Labgoo for internship through the NOC Israel programme. It's a pity that I didn't make it in the end. However, it is great to have the chance to know the company better in the Hackathon.

Honestly, I love the company. Yosi is passionate and inspiring.  Sha jie is fascinating. Raymond works hard. They make interesting things. Recently, they are selling a tablet teaching app and just finished developing a voip iOS app. In this Hackathon, Sha jie and the girl power team (Xialin, Yin Yue, Eugene,one another) developed a whole product in a night, which is really amazing. This app gamifies the medicine taking process and provides data analysis for doctors to better monitor the patients. They executed the idea so well that the whole thing is actually working for real. Yosi also showed great interests in this app, especially for the data analysis part developed by Sha jie. I will have to say Sha jie is really amazing and unbelievable! Technical wise, Sha jie used the CodeIgniter which is a open sourced MVC framework for PHP. I happened to develop my app in CodeIgniter during this Hackathon, too. It is really good to use. I am also astonished by myself to master the framework so quickly. I'm also amazed by my teammate, Yangfan, who's an EE student and mastered HTML and CSS  quickly in a night. We two delivered a clean supermarket website and a rough iOS app to help housewives to better save time and money before going to the supermarkets. Though it is not completed yet, learning itself is so much more important than anything else.

There are quite a lot of interesting ideas showing around in the Hackathon, one of which is a music app developed by two of my CS3217 friends. The UX is interesting, probably inspired by a Chinese music discovery app, named Jing.fm. Another one is a social alarm clock which takes in other people's voices and customise the ring tones. Well, this idea is not new, there is another app in China which does the exact same thing. In the final CS3217 project, my team is also going to make a social alarm clock but the approach is totally different. The user will have to pass our game(up&down morning exercises/physical engine games,etc)before set the alarm off. Otherwise, we'll post a status on facebook. The other teams are OK interesting lah. Some use Unity game engine, some use PhoneGap, another startup using iOS gesture recogniser to migrate their facebook app to iOS platform.

One pity of this activity is that I didn't take the good chance to socialize with the people around.  It is actually a very good chance to get to know more people. I was again too shy to talk to Yosi and the others. After the Hackathon, I went for the CS3217 meeting and missed a second chance to mingle around with people. On Wednesday, I also missed the chance to meet them in N-house due to another project meeting. Well, technically, I am getting better, but still not good enough compared to VERY good ones like Wang Sha. However, I have the passion and determination to be a good software engineer in 10000 hours' time. One plan comes to my mind--  Maybe I shall work in Labgoo as an intern after graduation and train the skills more before meeting the standard of a VERY good programmer.

Some other good things of last week:
I worked out a small iOS app for my FYP and the Prof seems to be quite happy about that.
I submitted a summer internship application in Spotify, NY. Though I may not get approved as a fresh graduate, I shall at least take a try for my most interested company.

Bad things:
Didn't review the Image Rendering class. Dying on that module.

I recently find myself not confident enough and not satisfied with the work I have delivered. Maybe a shall give myself a more positive feedback and move forward with less burden. Have fun!



Monday, 4 March 2013

What you value most

Haven't really got enough time for a good rest in the past three days. I slept in the school lab@6:50am on Friday, 5:30am on Saturday and 3:00am on Sunday, rushing for the Angry Bird Clone individual iOS project. It turned out to be OK. Indeed, I guess I'm going to survive in the highly-stressed course, STRONGLY.

One of my friends, Jingping, shared a thought yesterday evening when we walked back together from lab to the hostel. "Everything is about trade off. It depends on what you value most." This is very true. When he shared about this thought, he actually meant that software engineering is not really that appealing to him any more. What he values most is "Health" and software engineering is not as important. Personally, I'm not as strong as him in software development, however, I seem to be more passionate of what I am doing. I consider software engineering as a tool to open up my dreams and a way to create values with my hands. It would be great if I can use the software engineering skills to make a difference in some of my most interested fields. e.g.,music,etc.

As for health, it is very important. I went for swimming on Friday and Saturday before the brain got short-circuited. It worked well and I felt less stressed out. However, if I were asked to spend another endless night to develop something great, I will still go for it.

However, the danger is sometimes people get blind of what they are doing when they get too stressful. Another danger is sometimes people are unable to take the consequence of the trade offs. This morning, I wake up late and missed the FYP meeting. Though my Prof didn't blame me for this, he proposed a question "What is more important to you, your FYP or CS3217?".  Honestly, I values CS3217 more, although it contributes nothing to the degree on paper. The problem is you will need to responsible to others when you start something(projects/relationships/whatever) with them. FYP is a responsibility/obligation, so is my another web checkin app. One can handle multiple tasks, but not that many responsibilities. It is not the problem with the courses, but the problem with my time management skills. I'm definitely overwhelmed.

I didn't went to the church these two weeks. It's not a good sign. Very likely that I'm already lost in the jungle:(