[Giải trí] Tổng hợp các comment “bá đạo” từ trước đến nay

Dạo gần đây viết nhiều bài về technical khá mệt và nhức đầu, lâu lâu mình viết một bài theo dạng “dịch và sưu tầm” để giải trí cho các bạn đọc vậy. Trước đây, mình từng có một bài viết về việc sử dụng comment. Code có comment hay không, comment như thế nào luôn là vấn đề tranh luận của giới developer từ trước đến giờ. Hôm nay chúng ta không tranh luận về comment, mà hãy cùng thưởng thức các comment “bá đạo” từ trước đến giờ để giải trí nhé.

Méo mặt khi bị giao optimize code mà gặp phải dòng này

// Chào anh bạn coder:
//
// Sau khi chú em đã gắng hết sức để ‘optimize’ hàm này,
// để rồi nhận ra việc đó nhảm nhí và phí công vô ích thế nào,
// hãy cộng thêm số giờ phía dưới để cảnh báo cho các coder
// xấu số tiếp theo
//
// tổng_số_giờ_lãng_phí = 42

Khi code được viết ra trong một phút giây “thần thánh”

// Ngày xưa, khi tôi viết đoạn code này, chỉ có Chúa và tôi hiểu
// Bây giờ nhìn lại, chỉ có Chúa mới hiểu

super-computer-nerd

Continue reading [Giải trí] Tổng hợp các comment “bá đạo” từ trước đến nay

Ngày đầu đi code dạo nơi đất khách quê người – Phần 2

Định viết một bài thôi mà không ngờ dài quá nên phải chia làm 2 phần luôn. Nội dung phần 2 này sẽ chia sẽ một chút về technical, trải nghiệm khi pair-programming và ăn nhậu với team ;).

Đống code như đống *beep*

Nói chuyện con người đủ rồi, giờ nói chuyện technical một chút nào. Ứng dụng của team được xây dựng trên framework CampusM. Framework này là cũng tương tự Ionic Framework, hỗ trợ viết app di động kiểu hybrid-app bằng HTML, CSS, JavaScript. Vì nó khá mạnh, tích hợp được nhiều thứ nên được một số trường Đại học ở UK sử dụng, trong đó có trường mình. Ngày xưa, team sử dụng phiên bản 1 của framework (AEK 1) để viết các chức năng. Gần đây, framework ra phiên bản AEK 2 (Tích hợp React, Redux và ES6 khá hầm hố), một số chức năng mới lại viết bằng AEK 2. Thế là code chia ra làm “code cũ” và “code mới”, cái nào cũng đủ chuyện nhức đầu.

cpm

Continue reading Ngày đầu đi code dạo nơi đất khách quê người – Phần 2

Ngày đầu đi code dạo nơi đất khách quê người – Phần 1

Hôm trước, mình đã kể chuyện đi phỏng vấn xin… code dạo ở nước ngoài được khá nhiều bạn ủng hộ. Kì này mình sẽ kể về ngày đầu tiên đi code dạo và những đồng nghiệp trong dự án nhé.

Hôm đầu ngơ ngác

Như mình đã kể, chắc do thiếu người hay dự án đang cần gấp nên quy trình phỏng vấn và tuyển dụng diễn ra rẹt rẹt, mình vừa phỏng vấn sáng thứ 4 hôm 10/2 thì có offer ngay chiều hôm đó, và sáng thứ 5 hôm sau phải xách đít đi làm. Bọn bên này làm ăn cũng đàng hoàng, send sẵn một cái file PDF hướng dẫn cách liên hệ với admin request account, set vào các group. Do team cũng nhỏ nên trong file có ghi đầy đủ tên thành viên, chức vụ, sở thích (chắc để mọi người gần gũi với nhau hơn), đọc cũng khá là vui.

Capture
Danh sách thành viên trong team. Bé Alice là cái bé PV mình nhắc tới trong bài trước ý
Continue reading Ngày đầu đi code dạo nơi đất khách quê người – Phần 1

Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Chào mừng các bạn đã quay lại với series Phản Phác Quy Chân. Lần này series sẽ tập trung giải thích mổ xẻ tất tần tật về Unicode, encode và charset. Hầu hết các ngôn ngữ/framework đều hỗ trợ sẵn Unicode nên bạn có thể thoải mái code cả mấy năm trời mà chẳng cần quan tâm đến 2 thằng này. Tuy nhiên, không phải hù gì các bạn nhưng mà “Lỗi liên quan tới encoding là những lỗi khó chịu và khó sửa nhất”, do đó tự trang bị những kiến thức “xưa mà không cũ” về Encoding vẫn khá là cần thiết đấy nhé.

So I have an announcement to make: if you are a programmer working in 2003 and you don’t know the basics of characters, character sets, encodings, and Unicode, and I catch you, I’m going to punish you by making you peel onions for 6 months in a submarine. I swear I will.

And one more thing:

IT’S NOT THAT HARD.

Continue reading Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Chuyện ngày xưa – tôi đã viết sách như thế nào?

Đêm nay mưa rả rích, gió xì xào, ngoài hè văng văng tiếng dế kêu da diết, làm mình bỗng nhớ nhà, nhớ trường, nhớ quê. Lục đống hình ngày xưa ra xem bỗng thấy một cuốn sách bìa xanh xanh vàng vàng. Bao nhiêu kỉ niệm xưa ùa về, đành kể lại cho mọi người nghe để trải lòng vậy.

13

Bạn nào từng đọc phần About me chắc cũng thấy mình từng đề cập đến cuốn này. Đây là một cuốn sách mình viết vào năm 2013, khoảng năm 3 Đại học. Có thể xem nó là tiền thân hoặc ông cố nội của blog toidicodedao bây giờ.

Để mình kể cho các bạn nghe, đằng sau 2 tấm bìa xanh xanh vàng vàng là 1 tháng trời công sức và mồ hôi và nước mắt của bao nhiêu thế hệ sinh viên FPT.

Continue reading Chuyện ngày xưa – tôi đã viết sách như thế nào?

Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Lý giải chút về tên series

返璞归真 – Phản phác quy chân: Nghĩa là điểm cao nhất cũng chính là điểm xuất phát, được ứng dụng trong rất nhiều lĩnh vực. Trong võ học, nó có nghĩa là đạt tới cảnh giới “Tối thượng” trong truyền thuyết, quên đi tất cả võ học trong thiên hạ, bản thân đã không còn chiêu thức cụ thể, chỉ dựa vào ý cảnh mà đơn giản xử lý.

Võ học được thành lập từ các chiêu thức cơ bản, tuyệt thế võ công cũng từ các chiêu thức cơ bản mà ra. Code học cũng tạo thành từ bit/byte cơ bản, chương trình phức tạp đến mấy cũng dịch được ra bytecode. Đôi khi, ta đã quá quen với việc dùng thư viện, dùng framework mà quên thì những thứ nằm sâu bên dưới, không nắm được bản chất. Có những vấn đề mà phải nắm rõ bản chất của nó ta mới có thể giải quyết được.

Như cái tên “Phản Phác Quy Chân”, series này không giới thiệu công nghệ hay ngôn ngữ mới, mà sẽ tập trung quay lại những cái bản chất, đơn giản, tinh túy nhất mà ít người quan tâm để ý (Bên tiếng Anh có một từ tương tự : Back to Basic, bỏ qua những cái phức tạp, quay lại những cái cơ bản để hiểu tận gốc vấn đề).

01_s_by_darkdamage-d5yo32c

Ở bài viết đầu, mình sẽ nhắc sơ lại về string, cũng như giải thích lý do vì sao việc cộng string sẽ ảnh hưởng tới bộ nhớ và performance của hệ thống (Hình minh họa và bài viết méo liên quan với nhau đâu, vì tác giả thích thế :v).

Continue reading Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Chuyện học tiếng Anh – Phần 3: Tôi đã đạt IELTS 7.5 như thế nào

Series gồm 3 phần:

Ở bài trước, mình đã chia sẻ một số kinh nghiệm học thi TOEIC. Trong bài viết này, mình sẽ chia sẻ một số kinh nghiệm học thi IELTS – một kì thi toàn diện và khó hơn TOEIC rất nhiều.

certificate

Như đã nói ở bài đầu, cách học của mình có thể sẽ phù hợp với bạn này nhưng không phù hợp với bạn khác. Các bạn nên chắt lọc, áp dụng những thứ mà bản thân dùng được chứ đừng làm theo 100% nhé.

Continue reading Chuyện học tiếng Anh – Phần 3: Tôi đã đạt IELTS 7.5 như thế nào

Series JavaScript sida – Bind, Call và Apply trong JavaScript

Để hiểu rõ về các hàm được đề cập trong bài viết này, các bạn nên ôn lại chút kiến thức về object trong javascriptđít (this) trong javascript nhé. Như đã hứa, trong bài này mình sẽ giới thiệu bộ 3 function bind, call ,apply. Đây là 3 hàm tạo nên sự mạnh mẽ và bá đạo của JavaScript.

Trói đít (this) lại bằng bind

Bind là một hàm nằm trong Function.prototype, do đó chỉ có function mới có khả năng gọi nó. Như đã nhắc tới trong bài viết về this, bind được dùng để xác định tham số this cho một function.

1

Continue reading Series JavaScript sida – Bind, Call và Apply trong JavaScript

Chuyện học tiếng Anh – Phần 2: Tôi đã đạt TOEIC 945 như thế nào

Series gồm 3 phần:

Với nhiều bạn sinh viên, TOEIC là một kì thi khá quan trọng, vì nhiều trường đại học đòi hỏi tấm bằng TOEIC trên 400-600 điểm mới cấp bằng. Nối tiếp phần trước, trong bài viết này, mình sẽ chia sẻ lại một số kinh nghiệm quá trình ôn tập, học và thi TOEIC. Bài viết này ngắn thôi:

Mình ôn tập, học mất 2 tháng, sau đó bước vào phòng thi và làm bài. Sau 2 tiếng mình ra khỏi phòng, làm bài dư 15 phút. Mình về nhà chờ 1 tháng, sau đó quay lại trung tâm nhận kết quả. Chấm hết…

certificate

Đùa các bạn tí ấy mà, các bạn kéo xuống dưới để xem tiếp bài viết nhé.

Continue reading Chuyện học tiếng Anh – Phần 2: Tôi đã đạt TOEIC 945 như thế nào

Nhập môn Design Pattern (Phong cách kiếm hiệp)

Nhập đề

Kinh thư ghi lại rằng, con đường tu chân có 3 cảnh giới: Luyện khí, Trúc cơ và Kết đan. Luyện khí là quá trình rèn thân luyện thể, cho phàm thân kiên cường dẻo dai. Trúc cơ là quá trình du nhập thiên địa linh khí vào thể nội, giúp khai thông kinh mạch. Khi thiên địa linh khí trong đan điền đạt tới một nồng độ nhất định, sẽ kết thành Kim Đan, đặt bước chân đầu tiên con đường tu chân đại đạo.

Con đường khởi đầu của code học cũng có 3 cảnh giới: Học đồ (Junior Developer), Học sĩ (Developer), Đại sư (Senior Developer). Để đạt đến cảnh giới Đại sư (senior), bất kì Học Sĩ (dev) nào cũng cần phải tường tận vài Design Pattern cơ bản để phòng thân. Bài viết này do tại hạ viết ra trong một phút cao hứng nhất thời, nhằm chia sẻ với các nhân sĩ võ lâm trên con đường truy cầu đại đạo.

911201211_9_2012_tuchan1s

Continue reading Nhập môn Design Pattern (Phong cách kiếm hiệp)