More than a game

Mình là người rất thích chơi game. Từ thời cấp 1 nhỏ xíu, mình đã cùng anh trai đi ra quán chơi điện tử đều đặn mỗi cuối tuần. Lớn lên một chút, cũng là lúc game online gia nhập vào Việt Nam, mình bắt đầu chuyển sang đi net cho đến khi được lắp mạng ở nhà. Lên đến cấp 3 và đặc biệt là đại học, khi mà một cái laptop và wifi là điều kiện cần và đủ, mình chơi game nhiều đến mức không thể tin được. Nhìn lại “sự nghiệp” chơi game tương đối hoành tráng của mình, hôm nay mình muốn dành ra chút thời gian để viết về một game đã gắn bó với mình lâu nhất: Dota.

Mình chỉ gọi là Dota bởi vì mình đã chơi cả Dota 1 và Dota 2. Lớp 10 là lần đầu mình được bạn bè giới thiệu về Dota 1 và cả bọn khi ấy đã chơi từ những giờ học tin trong phòng máy của trường cho đến những buổi trưa miệt mài ngoài phòng net. 4 năm sau, vào đêm giao thừa của năm đầu đại học ở Sing, mình đã chơi game Dota 2 đầu tiên cùng hai đứa bạn ở chung kí túc xá. Đấy cũng là điểm khởi đầu của hơn 5000 giờ “chinh chiến” không biết mệt mỏi suốt 7 năm trời…

Screen Shot 2020-01-29 at 8.28.58 AM

Có lẽ nhiều người sẽ cười khi thấy mình dành nhiều thời gian đến thế để làm một thứ người ta cho là vô bổ. Có thể người ta đúng. Có thể nếu mình dùng khoảng thời gian khổng lồ ấy để học hoặc để làm một thứ gì khác, lợi ích nó mang lại sẽ lớn hơn. Nhưng cuộc đời không phải lúc nào cũng chỉ có đúng và sai, tốt và xấu. Mình tự nghĩ bản thân đủ chín chắn để có thể quyết định và chịu trách nhiệm cho những quyết định của mình. Và chơi game chưa bao giờ là thứ làm mình cảm thấy hối hận khi nhìn lại. Vậy là rất đủ rồi.

Ban đầu, ai đến với game cũng đơn thuần là vì những giờ phút giải trí sau khi những giờ học, giờ làm căng thẳng. Nhưng đến một lúc nào đó, khi bạn đã chơi đủ lâu, bạn sẽ nhận ra ngồi trước màn hình không chỉ đơn thuần là bạn đang chơi nữa. Có một câu những người chơi Dota rất hay nhắc đến khi nói về trải nghiệm của mình trong game:

This game brings out the absolute worst in me.

Đây cũng được xem như là một lời chứng thực cho sức hấp dẫn của Dota vì con người ta chỉ bộc lộ những cảm xúc chân thật nhất khi họ thật sự nhập tâm vào game. Kĩ năng thao tác và kiến thức về game đương nhiên là những yếu tố tất yếu với bất kì một game nào, nhưng Dota đòi hỏi ở người chơi nhiều hơn thế. Từ những yếu tố về làm việc nhóm như khả năng lãnh đạo, giao tiếp và đưa ra quyết định. Cho đến những yếu tố cá nhân như kiềm chế cảm xúc và giữ được sự bình tĩnh trong mọi tình huống, dù là thuận lợi hay bất lợi. Tất cả các gia vị đó kết hợp vào nhau để tạo nên một món ăn vô cùng độc đáo cho những người đam mê thể loại game MOBA.

Khi chơi solo, mình thường đánh ở vị trí hard support và cũng thường là người chọn hero đầu tiên trong team (mọi người thường muốn chọn hero sau để không bị đối phương counter cũng như counter được hero của đối phương). Nói về độ khó thì chắc không có sự chênh lệch nhiều giữa các vị trí, nhưng hard support là vị trí kén người chơi nhất đơn giản bởi vì nhiệm vụ của bạn trong game sẽ là làm tất cả những gì cần thiết để đồng đội của bạn trở nên mạnh nhất có thể. Trong một game đấu giữa 5 con người hoàn toàn không quen biết, rất khó để chúng ta có thể đặt niềm tin vào đồng đội và chấp nhận lùi về phía sau để làm bàn đạp cho đồng đội tỏa sáng. Và trên thực tế, không phải lúc nào sự hi sinh đấy cũng được đền đáp. Nhưng nếu game đấu kết thúc và bạn nhận được lời khen ngợi từ 4 người đồng đội xa lạ còn lại, bạn sẽ tận hưởng một cảm giác mãn nguyện khi những đóng góp của mình đã được ghi nhận.

Chơi cùng bạn bè lại là một kiểu trải nghiệm hoàn toàn khác. Khi quen biết nhau, chúng ta vô tình đặt ra những kì vọng cao hơn cho đồng đội. Và đó cũng là lúc chúng ta quên mất rằng, phía sau nhân vật trong game đấy không chỉ là người đồng đội, mà còn là người bạn của chính chúng ta. Không biết lúc trước đã bao nhiêu lần mình đổ lỗi cho đồng đội sau những thất bại và giận dỗi thoát ra không chơi cùng mọi người. Thậm chí còn có lần mình thoát ra khỏi group chat chung cả tháng trời chỉ vì những cuộc cãi nhau không bên nào chịu nhường bên nào. Bây giờ nhìn lại mới thấy bản thân ngày đó trẻ con biết bao nhiêu. Phải đến tận năm ngoái, mình mới bắt đầu học được cách tiết chế cảm xúc của bản thân và nhìn nhận sự việc với một thái độ ôn hòa hơn. Chúng ta chơi game cùng nhau, thắng như một đội thì thua cũng phải như một đội. Khi đồng đội phạm sai lầm, hãy học cách góp ý mang tính xây dựng và cùng nhau rút kinh nghiệm thay vì đưa ra những lời công kích cá nhân.

Game có thể là ảo. Nhưng tình bạn, tình anh em của những con người đêm đêm cùng nhau nói cười, cùng nhau la hét là rất thật. Cũng không biết sau này mình có còn quay lại để chơi tiếp hay không, chỉ mong sẽ có dịp ngồi lại cùng những con người đã từng “sát cánh” với mình trong cái tuổi trẻ ham chơi và sống lại một thời để nhớ.

For my friends: Yu, maT.H, Poor Guy, kunn, giongto, SWhite, MM, kid, Kzukz, Ultra, Ammon, OM, CK

Till next time,
NQ

It’s time to Slack off!

My original opinion

I have been using Slack since the start of my internship this summer and it has been a great experience so far. Similar products I tried before are HipChat and Flowdock but to be honest, none of them could barely make its way to be comparable to Slack. What I like the most about Slack is its clean and beautiful interface. And the sidebar color is just perfect!

Some prominent points from the presentation

  • Although Slack first looks like just another communication tool, its strong focus on business and enterprise, especially developer teams, is the reason why it stands out from the rest. Being a developer myself, I understand the pain of having a lot of stuffs to be aware of at the same time: Github/Bitbucket, Trello/Asana, Jenkin CI, etc. That being said, having an intermediate tool to collect and display all the notifications is unquestionably essential. Slack resolves this perfectly as with its powerful integration and that’s why it succeeds.
  • Beside its success, there’re still features that Slack needs to improve. One such thing that comes to my mind is Slackbot. Having random responses from Slackbot is sometimes fun, however it often turns out to be annoying when the bot keeps intervening your conversation. I can’t think of a good way to improve the situation rather than have an option in which we can select the minimum time between 2 consecutive Slackbot responses or turn it off completely for some working channels.
  • From the Q&A session, there’s a question from Joel about the voice messaging feature. From his point of view, there is no practical use case for this feature and it’s not worth adding it in the future. I would like to look at it from a more neutral perspective. Voice message is undoubtedly not going to add a lot of values to Slack but it may be considered as a good-to-have feature. One use case I can think of is when you are working remotely and need to attend an online meeting. In that situation, I’d love to be able to talk with my team directly on Slack instead of to switch to Skype or Google Hangout (I hate to use them by the way).

Facebook assignment reflection

During our Facebook assignment, we have found ourselves getting a lot of troubles on designing. We didn’t manage to have a designer in the team, which consequently costed us a big amount of time to make our app looks somewhat acceptable. I spent time searching around the Internet for good examples in website design but nothing really helped because they were mostly the landing page that got mentioned. Hence, we finally decided to stick to Bootstrap. It looks not too bad, but definitely not good enough in my opinion. Maybe it’s just me being picky but I do really hope our teams will be able to come up with a better design in the future projects.

Initially, IVLE authentication was a must in our app. And it turned out to be a bad idea because it created user experience friction. Why do I want to authenticate if I haven’t had a look at what’s going on? Moreover, manual testing was harder because there was no way we could create a test user with fake matric number. Hence, changing this from compulsory to optional clearly improved our app from both UX and development side.

Getting criticized is probably the most useful thing you could ever have while building an app. That’s when you have some objective ideas on what you’re doing right or wrong to adjust your work. More mistakes, more rooms to improve. But always keep in mind not to fall back too far.

What I hope to learn in CS3216

Welcome to the first entry of my new blog, where I will talk about things I look forward to learning in CS3216.

This is my last year at NUS, which means I do not have much time left before joining the workforce. Through the 3 years I’ve been here, I always feel that there are just a couple of chances for me to gain exposure in software engineering, especially building applications. CS2103 is a fundamental module, hence the only course that I really enjoyed taking is CS3217, where my team developed a pretty cool music-based jet fighting game. The workload was heavy from the beginning and my score was not great but I did learn a lot of new stuffs as well as had a lot of fun taking that module. And that is one of the major things I expect in CS3216.

I have done 2 software engineering internships over the past years. Coincidentally, we were building web applications both times but with completely different technical stacks. My job scope was mainly focused on the technical aspect of product features, therefore I haven’t had much chances to try out the product design part or other non-technical stuffs. Hopefully, working in a small team to develop an application from the very first idea will earn me more experiences on those parts.

I’m sure there will be many new things coming along the way and I will try my best to take the most out of this opportunity.