Monday, October 28, 2013

Chinese practice, a beginning

Inspired by my recent trip to China, I've been spending some time learning Chinese. Here are some errors I've made while practicing. Also, to any better Chinese speakers out there, please correct me if I've made any mistakes explaining things below! I'll post some some additional updates as my Chinese gets better (or maybe it doesn't).

Listening practice:

Characters (simplified): 我叫了一份三明治 (wǒ jiàole yī fèn sānmíngzhì)
What I thought I heard: I am called the one minute sandwich.
Actual: I ordered a sandwich.
Comments: I mistook  (fèn) to be 'minute' -- minute is actually 分 (fēn). 份 (fèn) is a measure word for certain portions of things (e.g., sandwiches). Also, I mistook 叫 (jiào) as 'to call' which is correct in some contexts -- in this context, it actually means 'to order.'

Characters (simplified)请给我一杯酒 (qǐng gěi wǒ yī bēi jiǔ)
What I thought I heard: Please give me 109.
Actual: Please give me a glass of wine.
Comments: I misheard 杯 (bēi) for 百 (bǎi). 杯 (bēi) is a measure word for cups and glasses.

Conversation practice:

What I wanted to say: I attended my friend's wedding in San Francisco last week.
What I came up with: 星期前我在旧金山出席我的朋友的婚礼了 (xīngqí qián wǒ zài jiùjīnshān chūxí wǒ de péngyǒu de hūnlǐle)
A better sentence: 上星期我在旧金山参加了我的朋友的婚礼 (shàng xīngqí wǒ zài jiùjīnshān cānjiāle wǒ de péngyǒu de hūnlǐ)
Comments: 星期前 (xīngqí qián) is incorrect; it should be 一个星期前 (yīgè xīngqí qián) or, equivalently, 上星期 (shàng xīngqí) for 'last week.' 出席 (chūxí) is considered too formal in this context; 参加 (cānjiā) is more appropriate.

What I wanted to say: We went to the same college, but we didn't know each other there.

What I came up with: 我们是同学可是在大学我不认识他 (wǒmen shì tóngxué kěshì zài dàxué wǒ bù rènshi tā)
A better sentence: 他是我的校友但是我以前不认识他 (tā shì wǒ de xiàoyǒu dànshì wǒ yǐqián bù rènshi tā)
Comments: 同学 (tóngxué) isn't the best word to use as it seems to be used to describe a student who is in one of your classes; 校友 (xiàoyǒu) is more appropriate as it conveys he was an alumni at your school. There's a few other things that seem to be wrong with the sentence I came up with, but I don't think my Chinese is good enough to understand why it's wrong.

Friday, August 23, 2013

Lightweight Backpacking

It’s possible to travel with a 40L backpack. It’s just small enough to take with you as a carry-on at the airport and large enough to take most of your essentials with you. Admittedly, you can’t fit everything you want into a 40L backpack but you may find out that you don’t need everything to survive.

Downsides of light travel:
  • You can't take everything you want with you (like an external monitor)

Upsides of light travel:
  • Easier on your body
  • No need to check in your backpack at the airport where it can get damaged or lost
  • No need to (but you may want to) put your backpack into the underside luggage compartments when riding a long-distance bus where it can get damaged or stolen
  • Less stuff to worry about losing
Here's what I was able to fit inside a 40L backpack:
  • Wear: 4 shirts, 4 boxers, 3 pairs of socks, 2 shorts, 2 long pants, fleece long-sleeve shirt, swim trunks, belt, contacts, glasses, sunglasses, lightweight shoes, hat
  • Electronics: 11" laptop, smartphone, e-reader, mirrorless camera, large external battery, adapters for the electronics
  • Toiletries: shampoo, soap, toothpaste, toothbrush, floss, contact solution, eye drops, microfiber towel, sunscreen, razer, Purell, toilet paper
  • Safety: traveler's diarrhea medication, Tylenol, Pepto-Bismol tablets, UV water purifier
  • Other: 3L Camelbak, portable pillow, sleeping bag liner, mosquito net, 2 locks, ear plugs, notebook, pen

Note: If you will be buying gifts for yourself or others while traveling, allow extra space in your backpack or realize you may need to carry a separate bag for gifts.


While traveling through China, you may have the opportunity to meet people from different parts of the world. It’s not everyday you’ll be sitting at a table having drinks and talking with a woman from New Zealand, a woman from Trinidad, a British man, a Dutch man, an Israeli, a student from Australia, and a smatter of Chinese students on summer holiday from different parts of China. However, if you’re hosteling through China, this could happen quite often.

At this point, I’ve learned a number of basic Chinese words and phrases. However, trying to understand what Chinese people are saying to me is still near impossible. If I’m lucky, I can make out a word or two like “nǎlǐ” (meaning where) or “jiào” (meaning call), or some numbers. If I hear “ nǎlǐ,” I'm usually being asked where I’m from or where I want to go. If I hear “jiào,” I'm usually being asked what I’m called (i.e., my name). Context usually tells me how I should attempt to respond. Hopefully, my listening skills will improve over time.

Here's a quick rundown of the places I saw after Yuányáng:


I stayed here for two nights. To be honest, I didn't really do anything except walk around the surrounding area near Green Lake and talk to people at the hostel (at Upland).


I also stayed here for two nights. The number of hiking opportunities here surprised me. There are paved roads with railings through most parts of the trails high up in the surrounding hillside around Cángshān. For who's benefit, I don't know because I rarely saw anyone on the trail. I spent about 11 hours on one of the days hiking around Cángshān and the place where I saw the most people was near the cable car drop off point near the top of the mountain. Actual, there are several cable cars running (some may be out of service) through the mountain and I would actually recommend riding them as they offer some of the best views of the surrounding area as well as the nearby lake, ěrhǎi.

View of ěrhǎi lake from hiking around Cángshān

Besides the hiking, I went to a popular bar called "Bad Monkey." There, a small fight broke out between a foreigner and a Chinese guy. It looked serious when, a few minutes later, a few Chinese guys came out of nowhere holding bats behind their backs. Fortunately, nothing further happened.


I only spent 1 night here. If you don't mind the crowds, I would say it's fun for a day.

Tiger Leaping Gorge

According to Lonely Planet, "The gorge trek is not to be taken lightly...even for those in good physical shape, it's a workout." Let me just say that if I can do it, pretty much anyone can. Still, you should keep your wits about you as there are some parts where a steep fall can be quite easy to accomplish. As Lonely Planet also points out, I would recommend doing the hike from Jane's Guesthouse to Tina's Guesthouse over two days of hiking. You can leave most of your stuff at Jane's Guesthouse for ¥5 per item. Then, after you reach Tina's, you can take an afternoon bus back to Jane's. However, you should do the hike down to the gorge near Tina's before you leave.

Going down to the gorge near Tina's Guesthouse


After Tiger Leaping Gorge, I took a minivan from Jane's Guesthouse to Shangri-la. It was quite chilly sitting around 3200 meters above sea level. Altitude sickness can be a real concern here but I didn't seem to feel anything. I ate some form of yak meat with every meal I had here and it was all delicious.

View of the giant prayer wheel in Shangri-la which can be spun (with the help of many)

Wednesday, August 14, 2013

Time sinks of travel

There are some time sinks to consider which can add up while traveling especially if you're moving from place to place quite frequently:
  • Time spent packing and unpacking
  • Time spent on a bus or train
  • Time spent checking in and checking out
The more frequently you hop around, the more time you spend on the above activities and the less time you have to do what you came here to do. Also, consider the additional effects of time spent transporting yourself. If you take a 7-hour bus to your next destination, you may be tired on arrival. If you've taken daytime transportation, many sights may be closed or in the process of closing by the time you arrive. If you've taken overnight transportation, you may not be well-rested. If you don't want to lug your stuff around all day, you will want to check in which will also take additional time. You may also be in an area with no direct transportation to your next planned destination so this may require some backtracking and unexpected days spent in places you've already seen -- not that this would be a particularly terrible thing, just a potentially unexpected addition to your itinerary.


After a 23-hour train from Guìlín to Kūnmíng, a 7-hour bus from Kūnmíng to Yuányáng, and a 1-hour minivan to Duoyishu village, I was able to spend some time walking around the rice terraced mountains which have made this area famous. Weather here is about 10 to 15 degrees Fahrenheit cooler than Guìlín area and it's great to be able to step outside without being drenched in sweat.

Sunrise over Duoyishu village in Yuányáng

While in Yuányáng, I stayed at Jacky's Guesthouse which offered views of the surrounding rice terraces. I can only imagine what it looks like during the winter time when the terraces are flooded with water. Still amazing. However, I may have to come back.

Recently, someone taught me a useful phrase: tīng bù dǒng (听不懂). Roughly, it means, "I hear, but I don't understand." It's my most frequently used phrase here.

Tuesday, August 6, 2013

Getting to Xīngpíng from Hong Kong

I'm finally past the Great Firewall after receiving some help from a fellow hosteller. I'm currently in Xīngpíng, a small city 25 km north of Yángshuò, where I'll be staying for a couple days.

Xīngpíng looking toward the image printed on the 20 yuan

Getting here has been an interesting journey mostly attributed to my inability to read, speak or understand Chinese. I've been trying to spend some time practicing pīnyīn whenever I can and just starting delving into the grammar but it hasn't really helped in any situation yet. When push comes to shove, I degenerate to hand motions and single Chinese words repeated several times with some English mixed in as if it will help the situation. It doesn't help that I'm Korean since the first thing everyone thinks when they approach me is that I'm Chinese so they start speaking in Chinese to me. It also doesn't help that my Korean is terrible. There was one situation where I was trying to get directions to a place from a Chinese person. We couldn't understand each other. However, she told me to wait a moment. After a couple minutes, she brought a Korean person over to me. The conversation started off okay but after the questions got a bit more complicated, I couldn't understand. Sad times.

Here's a great way to get to Xīngpíng from Hong Kong:
  • 2-hour train from Hong Kong to Guǎngzhōu
  • 10-hour bus from Guǎngzhōu to Guìlín
  • 1-hour bus from Guìlín to Yángshuò
  • 1-hour bus from Yángshuò to Yangdi
  • 1-hour boat from Yangdi to Xīngpíng
Of course, this wasn't all in one sitting. It's good to take your time in this area.

Wednesday, July 31, 2013

27,000 steps in Hong Kong

That's approximately how many steps I took (recorded via Jawbone Up) while meandering through Hong Kong for a day. This was enough to take me through Sheung Wan, Central, Kowloon, Tsim Sha Tsui, and Hung Hom areas. Walking around Hong Kong has been quite convenient for the most part with lots of sights close by, and public transportation was very easy to use. Weather is hot (high 89°F) and humid (69%) with a couple bouts of rain lasting for minutes at a time.

Sky Terrace 428 at Victoria Peak, Hong Kong

As a Korean American who speaks primarily English and barely passable Korean, I was worried about the language barrier in China. Even in Hong Kong where nearly half the population are English speakers, that's still more than half the time when I would speak to someone and, unfortunately, we wouldn't be able to understand each other. In one instance, I asked a waitress for the check (in English), and she gave me a piece of paper with her name on it (not sure if I missed something...). Fortunately, there's usually been someone close by -- either a friend or someone passing through -- who speaks English. Unfortunately, the percentage of English speakers in mainland China drops to 0.83%. Next stop: Guǎngzhōu, China.

Saturday, March 30, 2013

Making game development a career

It's been a little over a year since I left my day job as an analyst in the biotech/market research industry. Many things have changed since leaving. I'm now working in the mobile games industry as a software developer. I just wanted to impart some of my thoughts on how I made the change. If you're currently in a different industry but you have an interest in software development, especially mobile game development, read on!


First, some context. Beyond gaining experience developing my own games and applications, many other factors helped me make this transition including support from family and friends, location and a bit of luck. I had a couple friends from college who were non-CS majors but had made a similar transition into software and after speaking with them, I decided it could be possible for me as well. I thought game development would be an interesting area to gain experience in and decided to start with iOS development. Mobile development is a hot industry and I'm sure that also helped my chances later on with finding a job. Living in the San Francisco area also helped.


I spent the next 4 - 5 months developing my programming knowledge and experience full-time on my own. Part of my time was spent with online resources including Google, Stack Overflow, Ray Wenderlich's site on iOS tutorials, but I also did spend time reading through books starting with "Learning Objective-C on the Mac" (Knaster, Dalrymple). From there, I moved onto other books including the following:
  • "Beginning iOS 5 Development" (Mark, Nutter, LaMarche)
  • "Learning Cocos2D" (Strougo, Wenderlich)

Some people learn best through online resources while others learn best through a physical resource. I prefer a combination of the two (leaning a bit towards physical resources). What can be taken away from this is that everyone learns differently and you should do what works for you.

You can only get so far with books and online resources. I believe that starting a major personal project is essential in gaining the necessary experience. Find something you are really interested in implementing and dive right in! I started my first major project a few weeks in. It was a tower defense game. You can read more about that experience in my previous post.

The biggest value I got from the project was the rate at which I was able to learn things. There was the goal of finishing the game which helped me focus. There were a lot of game mechanics I had to figure out how to implement programmatically including how to make images show up and move on the screen and how to save data. There were a lot of issues I had to debug including why my animations weren't working or why my game crashed at certain points. At the end of the day, these issues didn't just disappear. They had to be figured out at some point or the project wouldn't progress. Reading through a book or other materials, you can always say, "Oh, I think that makes sense," or "I don't think I fully understand this, but it probably makes sense," but you may not actually get around to fully understanding the concept. Starting and completing a major project will put you face-to-face with issues you haven't fully fleshed out in your mind. Another great thing about working on a project like this is that, of course, you can talk about it during the interview process!


There is tons of advice and information out there on how to prepare for an interview. My favorite places for interview questions has been Glass Door and Stack Overflow. As I understand it, Glass Door is a site that aggregates information provided by former, current or prospective employees of a company. In addition, contributors, especially at the larger companies such as Google, often provide interview questions that they've encountered and insight on what the interview process is like. Stack Overflow is also a great resource for interview questions.

Starting out, my strategy was to aggregate all the questions I could find and go through them one by one. After a while, you will see common patterns and themes to these questions and you'll have a sense for which questions are likely to be asked at a typical interview, regardless of the particular company. My favorite read (which I would highly recommend) on the interview process and how to prepare is a blog post by Steve Yegge which can be found here:

One of my biggest weaknesses was in not knowing much about data structures and algorithms. A book, which I used, that Steve Yegge's recommends is "The Algorithm Design Manual" (Skiena) (pdf version). Learning about data structures and algorithms can get really complicated, but this book is probably one of the easier reads on the subject without sacrificing the core concepts. From my personal experience, an interview will not delve into concepts more complicated than what this book provides information on. You're not always going to be asked about data structures and algorithms during an interview at every company, but you are likely to run into these questions at larger companies.

I spent about 4 - 5 weeks part-time (I was contracting during this time full-time) studying the concepts inside "The Algorithm Design Manual" and going through the questions I aggregated from Glass Door and Stack Overflow. For reference, you can find some interview questions I worked out while preparing here (in Objective-C):

Depending on what you are interested in or what the company does, you may never see these concepts in practice again after interviewing. However, the most important concept I got out of this and a concept that I think you will continue to think about on the job is understanding the "order of a problem" (e.g., whether it was O(n), O(n log n), or O(n^2), etc). If you don't know what I'm talking about, read the book (or the many online resources on the subject)!

Keep Learning

I've been working professionally in mobile game development for the past 9 - 10 months now. There are lots of things I didn't know when I started out, and there will continue to be things that I don't know. That's okay. You don't need to know everything for the interview nor when you start the job. The only thing you can do is keep learning!

  • software development, especially mobile, is a hot industry and there is a high demand for engineers in this area
  • moving to the bay area will help your chances
  • work on a major personal project related to what you're interested in as soon as you are ready
  • studying data structures and algorithms is very helpful for the interview process; the main book I used: The Algorithm Design Manual by Skiena (pdf version)
  • read Steve Yegge's blog post on how to prepare for the interview (blog post)
  • if I can do it, you can do it
  • keep learning!