Lại một bài rất hay từ Jeff Atwood,  The Magpie Developer. Bản dịch tiếng Việt "Lập trình viên chích chòe" từ bạn Hùng ở Vinacode.

Quạ là một loại chim rất thông minh. Nó có một tật rất lạ là thích tất cả những vật óng ánh, phát sáng như hòn sỏi, đồng xu, cúc áo kim loại, đoạn dây đồng. Khi nhìn vào tổ quạ, ta sẽ thấy hầm bà làng đủ các đồ vật óng ánh vô dụng trên. Liên hệ quạ với lập trình viên cũng không ngoa, bởi lập trình viên có đa số là chung thủy trong tình yêu nhưng vô cùng đa đoan, đa tình trong công nghệ.

Công nghệ vốn phải óng ánh, mới bán được hàng

Khoảng những năm 1999-2002, tôi có quen một anh bạn lập trình Visual Basic. Anh này code khá tốt, chịu khó vọc vạch. Anh ý thích sưu tầm các control tái sử dụng của Visual Basic ( hồi đó gọi là OCX). Trong ổ cứng của anh ta, sẽ có một thư mục rất khủng chia thành nhiều thư mục con phân cấp để chứa các OCX. Tôi sang Thailand, anh ý cũng nhờ mua dăm đĩa CD lậu chứa toàn OCX đã bị crack để xài vô thời hạn. Nhờ có OCX giao diện ứng dụng đẹp long lanh. Nút bấm, grid mỗi form một kiểu hết sức bay bướm.

Học lập trình trực tuyến chất lượng nhất

Xài mãi cùng nhàm. Tôi tự hỏi, sự sáng tạo của lập trình viên Việt nam chỉ là dùng OCX crack chùa, giao diện thì đã tự động kéo thả, nháy kép là Visual Basic tự động sinh luôn mẫu hàm hay sao? Rồi ta sẽ đi đến đâu với phương pháp Copy & Paste, kéo thả này đơn điệu này?

Lại có một anh bạn khác, trước làm Oracle được vài năm rồi đâm ra mê mẩn nó, thần tượng nó, cảm giác như bị ánh hào quang công nghệ dữ liệu số 1 thế giới hấp hồn. Dự án gì, giải pháp gì cuối cùng phải quy ra dùng Oracle làm trung tâm. Khi dự án Oracle ít đi, dự án PHP-MySQL nhiều lên, tiền thì không nhiều, nhưng có việc là tốt nhưng bạn tôi vẫn không thèm học các công nghệ bình dân. Kết quả là bạn tôi bỏ nghề.

Thay vì tha những thứ óng ánh về tổ, quạ tha giun, sâu bọ làm thức ăn, rơm rạ về bện tổ thì tốt biết bao.

Những ai làm công nghệ luôn có một cảm giác sợ bị lạc hậu

Không cập nhật công nghệ mới, sẽ bị thua kém đồng nghiệp, mất việc làm. Nỗi sợ nay dường như ở khắp mọi nơi. Ở Việt nam, có một số lập trình viên có cách chống lại sự sợ hãi này rất lạ. Họ tải về thật nhiều sách ebook tin học miễn phí. Ai có cái gì hay cũng xin copy bằng được. Kho sách lên đến hàng Gigabyte. Nhưng chả bao giờ đọc một quyển sách nghiêm túc, thực hành áp dụng vào công việc thực tế. Nỗi lo bị tụt hậu công nghệ tuy có, nhưng nó dễ bị xóa nhòa bởi những thú vui rất Việt nam: bạn rủ đi uống bia, công ty bắt làm thêm giờ, có bộ phim hay không thể bỏ qua....
 

Học lập trình online chất lượng
Quạ tha những vật lấp lánh về tổ nhưng sau đó chả biết làm gì.

Đi nghe startup triền miên, nhưng chả bao giờ bắt tay làm sản phẩm

Khoảng 3 năm gần đây, phong trào start up lên rất cao. Nhiều hội thảo, gặp gỡ diễn ra đều đặn ở Hà nội, tp Hồ Chí Minh. Tôi cũng đi nghe vài lần, thực sự là học hỏi kinh nghiệm từ các gương thành công, thất bại anh em đã trải qua rất là nhiều. Tôi biết vài anh em đi chăm cực. Buổi nào cũng đi, đi đều, lắng nghe, phấn khích, bàn luận, lên kế hoạch, nhưng cuối cùng chả làm gì cả. Nhóm lại tan.

Trên bảng tin ở Techmaster, tôi in ra và gián mẩu giấy có dòng chữ dưới đây. Hy vọng các anh em học lập trình di động, mong một ngày thành công như Nguyễn Hà Đông thấm câu này.

Học lập trình trực tuyến để khởi nghiệp

Mải mê chạy theo tính quảng cáo của framework XYZ, quên mất vụ chính là tạo ra một sản phẩm dùng được, dùng tốt

Dùng Laravel chưa? Framework hiện là số 1 trong số các framework PHP đó. Phalcon có hay không? Nghe nói Phalcon benchmark chạy nhanh lắm, thử đi! Meteor biết chưa? Thằng này giao diện cập nhật tức thì đó. MongoDB xài chưa? Mấy thằng start up lớn xài cả rồi đó, ngon cực, yên tâm chơi luôn! Mean.io cũng hay, cộng đồng đánh giá rất cao... phải build sản phẩm trên đó mới được.

Tính "quạ" trong người mỗi lập trình viên chúng ta luôn có. Quạ thông minh. Lập trình viên cũng là những người thông minh, rất tò mò. Nhưng đôi khi sự tò mò, và lựa chọn mã nguồn mở quá dồi dào kéo chúng ta sa đà vào ngã ba, ngã tư thậm chí ngã chục của các loại framework.

Chả có cái nào tốt tuyệt đối cả. Bạn nên tập trung xoáy vào sản phẩm cần gì, cho ai dùng. Nên làm một bảng Excel cho điểm có trọng số các thuộc tính của framework ví dụ như đối với web framework:

  1. Dễ cài đặt
  2. Độ phổ biến số lượng contributor, số lượng star trên GitHub
  3. Có nhiều ví dụ mẫu tốt
  4. Đã tính đến khả năng chịu tải, tốc độ phản hồi thế nào
  5. Nhu cầu job gia công có nhiều. (Start up mà tèo, anh ra đường code thuê !)
  6. Request - Response cổ điển hay hỗ trợ Reactive programming
  7. Có thư viện plugins modules không (Node.js có npmjs, Rails có gem, PHP có Pear...)
  8. Hỗ trợ các loại cơ sở dữ liệu nào? SQL vs NoSQL
  9. .....

Cho hết các ứng viên vào, đánh giá qua trọng số rồi tính tổng lại. Như vậy chúng ta sớm đi tiếp giai đoạn hai phát triển prototype.

Ôm đồm quá nhiều chức năng có vẻ hay vào một sản phẩm lần đầu ra mắt

Quạ tha những vật lấp lánh về tổ nhưng sau đó chả biết làm gì.

Nhắc lại một lần để nhớ nhé. Chúng ta thấy ở Mỹ có sản phẩm A hay, B độc đáo, C có số lượng người dùng rất lớn. Vậy phải tạo ra X, kết hợp tinh hoa tốt nhất của A, B, C, thậm chí D, E, F vào. Công cuộc nấu lẩu thập cẩm bắt đầu:

  • Thiếu lập trình viên thực sự giỏi để code hết chức năng tuyệt vời đó --> Giải quyết gấp bằng lên CocoaControls.com tải những thư viện open source về chắp vá ---> cuối cùng là một mớ bòng bong.
  • Các chức năng cool cần phải triển khai dăm ba công nghệ mới. Technical Debt quá lớn, đội kỹ thuật học hỳ hục mấy tháng, sản phẩm mãi chưa ra. Anh em nhao nhao lên cả.
  • Nhiều chức năng đan xen nhau bug phọt ra tùm lum. Sửa hoài không hết. Khi khảo sát thử nghiệm thực tế, khách hàng chỉ dùng 1/3 chức năng cung cấp.

Học lập trình online chất lượng

Chắc các bạn đã nghe đến Minimum Viable Product hay Fail Fast hay Eat Your Own Dog Food. Đó là 3 liều thuốc giúp thuyên giảm cái tính "Quạ" trong mỗi lập trình viên chúng ta.

Happy coding!