16/2/2009 – 29/6/2012 – Kết thúc một chặng đường

Mới đó mà đã hơn 3 năm. 3 năm làm việc là chính, ăn chơi là chủ yếu, trải qua bao sóng gió thăng trầm của lịch sử, chứng kiến sự ra đi và trở lại của không biết bao nhiêu con người. Và rồi ngày ấy cũng đã đến, ngày mà mình chính thức bị xếp vào hàng ngũ “cựu nhân viên”. Ấy là vào cuối năm 2008. Lúc đó mình cũng kinh qua một vài công việc part time nhưng không được nhận lương. Ham muốn làm một cái gì đó ra tiền đã lên đến đỉnh điểm. Vì vậy, khi Hưng Bưởng nói Cazoodle đang cần tuyển thêm part time, mình đã không do dự viết CV và nộp luôn. Mức lương hồi đó có thể coi là trong mơ, $250 một tháng, tuần làm việc 20 giờ (còn nhớ lúc đó lương khởi điểm cho full time của Fsoft chỉ có 4 triệu đồng). Sau 2 vòng phỏng vấn, mình nhận được job offer của Kevin và bắt đầu làm việc từ ngày 16/2/2009. Thú thực là hồi đó lập trình đối với mình còn mơ hồ lắm. Mặc dù các kiến thức về toán rời rạc, cấu trúc dữ liệu và giải thuật, thuật toán đã được thầy Nghĩa nhồi nhét từ những năm đầu đại học, nhưng kinh nghiệm thực tế của mình gần như là con số 0. Năm 2008, mình còn định đi theo hướng mạng, làm CTV, học CCNA và ra trường làm cho Cisco (cũng chỉ bởi vì nghe nói thực tập ở Cisco lương $200/tháng). Anh Lâm chính là người dìu dắt mình những bước đi đầu tiên. Bắt đầu với Landlord Console prototype mà anh Lâm xây dựng trong vòng 2 tuần, dựa trên mootools và Javascript MVC.

Có quá nhiều lựa chọn

Không có lựa chọn nào đã khổ, có quá nhiều lựa chọn đôi khi còn khổ hơn. Hôm nay nhìn lịch mới biết còn có đúng 53 ngày nữa là mình lên đường sang US. Bao nhiêu kế hoạch, dự định, không biết có thực hiện được hết hay không. Này nhé, ngay trong tuần này có một vụ giải ngân của AP, chia tay công ty, đưa em gái đi xem phim và tụ tập với VEF. Tiếp theo là mấy ngày ở miền trung, 1 tuần ở SG và có thể là 4 tuần ở Úc. Vậy thì lấy đâu ra thời gian dành cho những việc khác. Giờ chỉ ước 1 tháng có 8 tuần, mỗi tuần có 14 ngày. Càng đến trước lúc đi tại sao lại càng có nhiều cám dỗ như vậy chứ.

Sợ ???!

Đêm qua mình mơ một giấc mơ kỳ lạ. Sang Mỹ, ở Vietnam Town (chứ không phải China Town), nhà ngói lụp xụp, ông chủ nhà còn bảo xây dựng theo đúng phong cách Việt Nam, chúng mày đến là được ở nhà mới. Đạp xe đi học, học về ra chợ mua đồ về nấu cơm, tối còn bị mất điện. Cuộc sống nói chung là bí bức cực khổ lắm. Tỉnh dậy mà toát hết mồ hôi hột. Gần đây mình luôn có những suy nghĩ miên man. Cuộc sống hiện tại đang tốt đẹp là thế, không hiểu tháng 8 này sang bên ấy sẽ thế nào. Cũng không giống như hồi năm lớp 6 đi học xa, có chuyện gì chỉ gần gọi điện về là bố mẹ sẽ lên, muốn về cũng không khó khăn gì. Sang Mỹ có nghĩa là dù muốn hay không cũng phải ít nhất 1 năm sau mới được về nhà. Cuộc sống dù có vất vả khó khăn đến đâu, học hành dù có mệt mỏi stress đến đâu cũng phải cố gắng vượt qua, không được phép dừng lại. Dừng lại tức là bao cố gắng bấy lâu nay sẽ đổ xuống sông xuống biển hết. Kỳ lạ, trong khi các bạn khác đang rất háo hức về bước ngoặt sắp tới, đặt vé máy bay rõ sớm (ngay trong tháng 7) thì tự dưng mình lại có những suy nghĩ trái chiều. Bao nhiêu năm cố gắng, cuối cùng sắp đến ngày đi tự dưng lại thấy chùn bước. Mình có lẽ sẽ là người xuất phát muộn nhất trong nhóm. Đi rồi, biết bao giờ mới được trở lại đây?

Thử một bài viết có rất nhiều tiếng Việt

Bài viết này lẽ ra đã không được publish. Mục đích của mình chỉ là kiểm tra xem WordPress 3.4 xử lý tiếng Việt trong Permalink như thế nào. Trước 3.4, WordPress xử lý việc này không tốt, cụ thể là với tiêu đề như trên, WordPress sẽ xử lý thành “thử-một-bai-viết-co-rất-nhiều-tiếng-việt”. WordPress 3.4 đã xử lý việc này rất tốt, URL trở thành “thu-mot-bai-viet-co-rat-nhieu-tieng-viet”. Dưới đây là đoạn code được mình viết và đặt trong file wp-includes/formatting.php để xử lý tiếng Việt trong Permalink. WordPress 3.4 cũng có một đoạn xử lý tương tự nhưng đã tối ưu và loại bỏ các ký tự trùng với các phần sẵn có trong WordPress. [code] // Decompositions for Vietnamese chr(65) => ‘A’,chr(97) => ‘a’, chr(196).chr(130) => ‘A’,chr(196).chr(131) => ‘a’, chr(195).chr(130) => ‘A’,chr(195).chr(162) => ‘a’, chr(195).chr(128) => ‘A’,chr(195).chr(160) => ‘a’, chr(225).chr(186).chr(176) => ‘A’,chr(225).chr(186).chr(177) => ‘a’, chr(225).chr(186).chr(166) => ‘A’,chr(225).chr(186).chr(167) => ‘a’, chr(195).chr(129) => ‘A’,chr(195).chr(161) => ‘a’, chr(225).chr(186).chr(174) => ‘A’,chr(225).chr(186).chr(175) => ‘a’, chr(225).chr(186).chr(164) => ‘A’,chr(225).chr(186).chr(165) => ‘a’, chr(225).chr(186).chr(162) => ‘A’,chr(225).chr(186).chr(163) => ‘a’, chr(225).chr(186).chr(178) => ‘A’,chr(225).chr(186).chr(179) => ‘a’, chr(225).chr(186).chr(168) => ‘A’,chr(225).chr(186).chr(169) => ‘a’, chr(195).chr(131) => ‘A’,chr(195).chr(163) => ‘a’, chr(225).chr(186).chr(180) => ‘A’,chr(225).chr(186).chr(181) => ‘a’, chr(225).chr(186).chr(170) => ‘A’,chr(225).chr(186).chr(171) => ‘a’, chr(225).chr(186).chr(160) => ‘A’,chr(225).chr(186).chr(161) => ‘a’, chr(225).chr(186).chr(182) => ‘A’,chr(225).chr(186).chr(183) => ‘a’, chr(225).chr(186).chr(172) => ‘A’,chr(225).chr(186).chr(173) => ‘a’, chr(69) => ‘E’,chr(101) => ‘e’, chr(195).chr(138) => ‘E’,chr(195).chr(170) => ‘e’, chr(195).chr(136) => ‘E’,chr(195).chr(168) => ‘e’, chr(225).chr(187).chr(128) => ‘E’,chr(225).chr(187).chr(129) => ‘e’, chr(195).chr(137) => ‘E’,chr(195).chr(169) => ‘e’, chr(225).chr(186).chr(190) => ‘E’,chr(225).chr(186).chr(191) => ‘e’, chr(225).chr(186).chr(186) => ‘E’,chr(225).chr(186).chr(187) => ‘e’, chr(225).chr(187).chr(130) => ‘E’,chr(225).chr(187).chr(131) => ‘e’, chr(225).chr(186).chr(188) => ‘E’,chr(225).chr(186).chr(189) => ‘e’, chr(225).chr(187).chr(132) => ‘E’,chr(225).chr(187).chr(133) => ‘e’, chr(225).chr(186).chr(184) => ‘E’,chr(225).chr(186).chr(185) => ‘e’, chr(225).chr(187).chr(134) => ‘E’,chr(225).chr(187).chr(135) => ‘e’, chr(73) => ‘I’,chr(105) => ‘i’, chr(195).chr(140) => ‘I’,chr(195).chr(172) => ‘i’, chr(195).chr(141) => ‘I’,chr(195).chr(173) => ‘i’, chr(225).chr(187).chr(136) => ‘I’,chr(225).chr(187).chr(137) => ‘i’, chr(225).chr(187).chr(138) => ‘I’,chr(225).chr(187).chr(139) => ‘i’, chr(79) => ‘O’,chr(111) => ‘o’, chr(195).chr(148) =>

Kinh nghiệm phỏng vấn VEF

Disclaimer: Bài viết dưới đây dựa trên kinh nghiệm cá nhân khi tham gia chuẩn bị và phỏng vấn VEF. Bài viết có thể có một số điểm tương đồng với bài viết của Thắng (MSE – UCB) và Kiên (CS – Poly) vì chúng tôi có nhiều đoạn giao nhau trên suốt chặng đường. 1. Xem kỹ lại hồ sơ, tức là những thông tin đã điền trong application form và những giấy tờ đã nộp cho VEF hôm OEO. Application form sau đó sẽ được VEF chuyển tới các giáo sư, và họ sẽ dùng chính những thông tin viết trong đó để đặt câu hỏi. Vì vậy nên đọc kỹ để tìm ra những điểm nổi bật. Các giáo sư thường không có nhiều thời gian đọc và nghiên cứu hồ sơ của bạn, nên sẽ tập trung vào những điểm này. Mặt khác, lỡ có sơ ý viết gì không hay trong đó thì cũng phải tìm cách nói giảm, nói tránh khi bị hỏi. 2. Tranh thủ ôn tập để nâng điểm TOEFL/GRE nếu thấp quá. VEF thường phỏng vấn vào đầu tháng 8, nhưng đến giữa tháng 9 mới có kết quả. Nếu như đợi đến lúc có kết quả VEF rồi mới tập trung nâng điểm TOEFL và GRE thì quá muộn, và cũng không còn thời gian để chuẩn bị hồ sơ, viết SOP, xin bảng điểm và các giấy tờ khác. 3. Tìm những người cùng chí hướng để chuẩn bị theo nhóm. Làm một mình sẽ dẫn đến việc quá dễ dãi với bản thân, cho rằng mình giỏi, chuẩn bị như thế là đủ. Học nhóm có cái lợi là sẽ nhìn thấy ưu nhược điểm của mình một cách khách quan hơn, và cũng là để xem mình

Một số câu hỏi chuẩn bị phỏng vấn VEF

Dưới đây là khoảng hơn 100 câu hỏi, được tôi, Lê Sỹ Tùng (VEF Fellow 2012), Nguyễn Quang Trung (VEF Fellow 2012), Ngô Xuân Hoàng và Đào Duy Anh chuẩn bị hồi tháng 7 năm ngoái. Nhóm tôi gồm có 6 thành viên chính (thêm Trần Đức Mạnh nữa) trong đó có 3 người được VEF Fellowship 2012 (chính tôi sau đó là người bỏ VEF để apply tự do và cũng sẽ sang NYC vào tháng 8 này). Nhóm chúng tôi gặp mặt khá thường xuyên, cùng nhau trao đổi về phương án trả lời các câu hỏi, tổ chức các buổi mock interviews cũng như chém gió về các vấn đề trên trời dưới đất. Nếu có thời gian, tôi sẽ cố gắng post thêm một bài kinh nghiệm phỏng vấn VEF. Tôi là người đã từng phỏng vấn VEF 2 lần (trượt VEF 2011 và đỗ VEF 2012) Disclaimer: Các câu hỏi dưới đây được soạn bởi những thành viên đã đề cập ở trên, trước khi tham gia phỏng vấn VEF. Chúng tôi không đảm bảo đây là những câu đã từng hỏi, hoặc sẽ hỏi trong khi phỏng vấn VEF. Mọi thắc mắc có liên quan xin vui lòng để lại trong phần comment. 1. Warm-up questions like: Could you please introduce yourself to us? Tell me a little bit about the books that you’d like to read? So, what do you do in your free time? Do you like sport, can you play any kind of sport? 2. Which courses that you took at the university interest you the most? And which one do you do not like most? 3. How did you became interested in your field? 4. If you got some research experiences, the question would come as: which research projects that

Lãnh đạo?

Làm lãnh đạo, phải làm tốt chức năng cầu nối, để quá trình trao đổi thông tin diễn ra thông suốt, ý kiến từ dưới lên trên được nhanh chóng, ý kiến từ trên xuống dưới được toàn vẹn, rõ ràng. Làm lãnh đạo, không nên là bottleneck, ứ đọng thông tin từ cả hai phía. Lúc bình thường thì chẳng sao, đến lúc “cháy nhà ra mặt chuột” thì chẳng hay ho gì. Làm lãnh đạo, phải nghĩ đến nhân viên, chăm lo đời sống cho họ. Cái gì thấy có lợi cho nhân viên thì nên làm, hoặc đề xuất lên trên. Làm lãnh đạo không nên có tư tưởng “sống chết mặc bay”, tao làm tốt công việc của tao là được rồi, chúng mày ra sao tao mặc kệ. Làm lãnh đạo, nhận được request của nhân viên, nếu thấy hợp lý thì nên làm ngay, nếu chưa hợp lý thì chỉnh lại rồi cũng nên làm ngay, nếu không hợp lý thì hoặc phải giải thích cho nhân viên hiểu, hoặc truyền đạt nguyên vẹn lên trên. Làm lãnh đạo, không nên ậm ừ cho qua chuyện rồi để mọi thứ chìm xuồng. Làm lãnh đạo, phải biết lượng sức mình. Không nên quá ôm đồm, việc gì cũng nhận, rồi cuối cùng chẳng đâu vào đâu. Không nên vừa làm lãnh đạo vừa làm trưởng nhóm. Làm lãnh đạo, không nên thiên vị hoặc trù dập bất kỳ ai. Vừa làm trưởng nhóm vừa làm lãnh đạo sẽ không tránh khỏi cả nể, dung túng, xuề xòa cho qua thành viên trong nhóm. Người ngoài nhìn vào không thể không thấy gai mắt, ghen tị và bắt chước đòi quyền lợi. Làm lãnh đạo, rất nên tạo niềm tin và động lực cho nhân

June 03, 2012 – CCNA

Sáng nay ngủ dậy nhận được email của Cisco, đại khái là CCNA certificate của mình sắp hết hạn (31/7/2012). Giật mình nhận ra gần 3 năm đã trôi qua. CCNA đến với mình cũng khá tự nhiên. Bắt đầu từ khoảng tháng 10/2007, trung tâm mạng máy tính ĐHBK đăng tin tuyển cộng tác viên. Động lực duy nhất lúc đó của mình là được vào mạng miễn phí, vì mạng trên thư viện nằm trong kết nối giữa các trường đại học với nhau nên siêu nhanh và ổn định. Trong quá trình sinh hoạt, mình được biết và làm việc với các cao thủ như anh Liêm, anh Thắng, anh Hùng, anh Cường và một số anh khác nữa, cùng với một đội cộng tác viên năng động, nhiệt huyết và tài giỏi trên dưới 20 người. Đến cuối năm 2008, mình quen Khánh và lập đội tham dự cuộc thi Sinh viên với an toàn thông tin lần thứ nhất. Sau một chiến thắng áp đảo và tương đối dễ dàng, mình nhận được 1 suất học bổng CCNA, 1 suất MCSA, 1 suất BCSE. Và thế là đi học! Khóa học CCNA kéo dài hơn 6 tháng, phần 1 được anh Tuân dạy (sau này mình còn được gặp lại anh thêm một lần nữa ngay trong nhà công vụ), các phần còn lại do anh Trung dạy. Phải nói anh Trung là một người tài năng, ăn to nói lớn, không đi vào tiểu tiết mà chỉ đưa ra ideas và pointers, học đỡ vất vả hơn hẳn. Hồi ấy mình là người được chú ý nhất, vì luôn đến muộn nửa tiếng (vì xe buýt) và luôn trả lời được các câu hỏi anh Trung đưa ra. Mình cũng tìm cách câu view