Lập trình viên chích chòe

Bài viết được dịch từ blog Coding Horror

Tôi thường nghĩ rằng các nhà phát triển phần mềm cũng gần giống như mấy con chim chích chòe, những con chim này có tiếng xấu là hay đi ăn cắp những đồ vật đẹp đẽ để về trang hoàng cho cái tổ phức tạp của chúng. Giống như những con chim chích chòe, các lập trình viên là những sinh vật cực kỳ thông minh và ham hiểu biết, điều này thực sự đã ngấm vào máu của họ. Nhưng chúng ta cũng rất dễ bị phân tâm bởi những thứ “đồ chơi” mới.

Lập trình viên thì cũng giống như con chim chích chòe vậy.Lập trình viên thì cũng giống như con chim chích chòe vậy.


Tôi không còn thấy cái danh sách những công cụ phát triển phần mềm mới nhất của Scott Hanselman là thứ truyền cảm hứng nữa. Ngược lại, nó đang tạo ra sự mệt mỏi. Những bước thay đổi trong thế giới phần mềm thì thật là tàn nhẫn. Chúng ta bị tràn ngập với những thứ Đẹp và Mới mà mỗi khái niệm của bản thân nó cũng bắt đầu bị tan rã ra, những từ đó cứ lặp đi lặp lại, lặp mãi cho đến khi chúng rơi vào trong một vòng lặp của những nguyên âm và phụ âm vô nghĩa. “Đẹp” và “Mới” trở nên trần tục, thậm chí tầm thường. Nó không còn là duy nhất cho một cái gì đó mới, và chẳng còn thú vị khi có một cái gì đó đẹp nữa. Cuối cùng, bạn càng ngày càng cảm thấy chán ngấy cái vòng lặp bất tận của những thứ đẹp và mới.

Tôi không phải là người duy nhất đề cập về vấn đề này. Jeremy Zawodny cũng đã viết một bài nhằm giảm bớt ánh hào quang của những thứ đẹp và mới:

Hơn một năm về trước, tôi đã ngừng theo dõi blog của Steve bởi vì anh ta có một thói quen trong việc viết không kịp thở về những thứ đẹp và mới nhất – thường là một vài lần mỗi ngày. Tôi thấy quá nhiều người tôi biết đang cố lao theo cái nhịp điệu thổi phồng không kịp thở đó và quên mất việc nghĩ về liệu những thứ đẹp và mới nhất đó có thực sự quan trọng cho họ hay không.

Dave Slusher cũng có cùng quan điểm:

[Robert Scoble] nói rằng anh ta nhận quá nhiều email và đó là một cách PR không hiệu quả khi gửi đến anh kiểu như vậy. Anh ta đề nghị rằng điều mà bạn nên làm bây giờ là hãy gửi cho anh ta một message trên Facebook wall của anh. Thưa god và/hoặc Bob. Trong quãng thời gian mà tôi followed Scoble, tôi phải nhìn thấy một cái gì đó giống như thế này diễn ra hàng tá lần từ anh ta. Đừng gửi email, hãy Twitter cho tôi. Đừng Twitter, hãy Pwnce. Hãy Jaiku cho tôi. Hãy để lại một message trên wall, gửi cho tôi qua SMS, hãy gọi điện, email cho tôi, đừng email cho tôi, đừng gọi điện. Đã đủ lắm rồi! Tôi thậm chí không thử liên hệ với anh ta, và tôi thấy việc anh ta luôn nhảy từ hết nền tảng này sang nền tảng khác là một đống rác lớn khiến tôi cảm thấy mỏi mệt. Tôi từng cảm thấy giống vậy khi tôi ngừng đọc tin trên trang TechCrunch khoảng hơn một năm về trước. Tôi cũng cảm thấy mệt mỏi khi nghe về một phương pháp nào đó mà chỉ khác biệt một chút nhỏ so với cái mà chúng ta đang làm, và tại sao chỉ với một chút xíu khác biệt như vậy mà khiến bạn phải bỏ đi tất cả mọi thứ để lao theo cái mới. Tôi đã chính thức từ bỏ việc tìm kiếm những thứ mới hơn và đẹp hơn.

Đây không chỉ là một dòng xoáy không có hồi kết của những tin tức công nghệ. Nó cũng là một ngọn thủy triều cứ lên rồi xuống của hàng ngàn tôn giáo phần mềm khác nhau mà tiếp tục bào mòn chúng ta, giống như một hòn đá lang thang rớt vào một dòng thác chảy cuồn cuộn. Tôi cá là quy trình mà David Megginson phác họa ra sau đây thì nghe vô cùng thân quen:

  1. Các nhà phát triển tiền bối để ý thấy có quá nhiều kẻ thuộc tầng lớp hạ lưu đang sử dụng ngôn ngữ lập trình hiện tại của họ, và họ bắt đầu tìm kiếm một cái gì đó mà sẽ giúp phân biệt họ ra khỏi những tay đồng nghiệp xoàng xĩnh.
  2. Các nhà phát triển phần mềm tiền bối lấy ra một danh sách và tìm kiếm một ngôn ngữ lập trình mới và ít được biết đến và hình như là ít khi xuất hiện.
  3. Các nhà phát triển tiền bối bắt đầu hướng đến phát triển ngôn ngữ lập trình mới, đóng góp code, viết ra các thư viện, v.v…, sau đó truyền bá cái ngôn ngữ lập trình mới này. Các lập trình viên cao thủ (trình độ thua các lập trình viên tiền bối) sẽ chạy theo các nhà phát triển tiền bối trong việc sử dụng ngôn ngữ mới, tạo ra một thị trường cho các cuốn sách, các khóa đào tạo, v.v… đồng thời làm tăng tốc quá trình phát triển và kiểm thử của ngôn ngữ đó.
  4. Các cao thủ lập trình, những người có tầm ảnh hưởng lớn (trong khi các nhà phát triển tiền bối có khuynh hướng làm việc độc lập trên các dự án nghiên cứu hơn là trên các nhóm phát triển sản phẩm), bắt đầu áp dụng ngôn ngữ lập trình mới này vào trong môi trường làm việc của họ.
  5. Một số lượng lớn của những lập trình viên bình thường nhận ra rằng họ phải bắt đầu mua những cuốn sách và tham gia các khóa học về một ngôn ngữ mới.
  6. Các nhà phát triển tiền bối để ý thấy có quá nhiều kẻ thuộc tầng lớp hạ lưu đang sử dụng ngôn ngữ lập trình hiện tại của họ, và họ bắt đầu tìm kiếm một cái gì đó mà sẽ giúp phân biệt họ ra khỏi những tay đồng nghiệp xoàng xĩnh.

Tôi hy vọng rằng bạn đang ngồi, bởi vì tôi có một số tin tức xấu dành cho bạn. Có phải Ruby on Rails là thứ mà bạn đang cảm thấy thích thú phải không? Nhưng đó là chuyện của năm ngoái rồi. Chúng tôi đã chuyển sang công nghệ khác.

Tôi trở thành một lập trình viên bởi vì tôi yêu máy tính, và bởi vì yêu máy tính nên bạn phải yêu sự thay đổi. Và tôi đã như vậy. Nhưng tôi nghĩ những tay lập trình viên chích chòe đôi khi yêu sự thay đổi đến mức nó làm tổn hại đến chính nghề nghiệp của anh ta. Andy Hunt và Dave Thomas, tác giả của cuốn sách Pragmatic Programmers (Những lập trình viên thực dụng), những người mà tạo ra phần lớn những thay đổi mạnh mẽ trong Ruby, đã nói tương đối rõ trong một bài viết ở tạp chí uy tín IEEE vào năm 2004 (pdf)

Người dùng không quan tâm liệu bạn sử dụng J2EE, Cobol hay một vài cục đá thần kỳ nào đó. Họ muốn thẻ tín dụng của họ được xác thực đúng đắn và in sao kê cho họ. Bạn giúp họ khám phá cái mà họ thực sự cần.

Thay vì bị cuốn đi bởi những khó khăn trong cuộc đua tính năng của những công nghệ mới nhất, Pete tập trung vào việc xây dựng một hệ thống [bằng ngôn ngữ COBOL] mà hệ thống này làm việc cho anh và các khách hàng của anh. Hệ thống đó thì đơn giản, và có lẽ hầu hết là nguyên thủy bởi những chuẩn mực cao quý của chúng ta. Nhưng nó dễ dàng sử dụng và triển khai được một cách nhanh chóng. Framework của Pete sử dụng là một sự pha trộn của các công nghệ: một số mô hình, một số code tự sinh, một số thành phần có thể sử dụng lại, và một vài thứ khác. Anh ta áp dụng những nguyên tắc cơ bản của lập trình thực dụng và sử dụng những thứ mà làm việc hiệu quả, chứ không phải là những thứ đơn thuần chỉ là mới và hợp thời trang.

Chúng ta thất bại (trong ngành công nghiệp phần mềm) khi chúng ta cố gắng đến với những ứng dụng framework nhảy múa và ca hát suốt ngày. Có thể là bởi vì không có một lý thuyết tổng quát và thống nhất đang đợi để nổi lên. Một trong những dấu ấn của hậu hiện đại – cái mà một số người nghĩ rằng là một đặc trưng phân biệt trong thời đại của chúng ta – đó là không có “nhà văn vĩ đại”, không có câu chuyện bao quát để chỉ dẫn chúng ta. Thay vì đó, có rất nhiều những mẩu chuyện nhỏ.

Đừng cảm thấy thua kém nếu bạn không trang hoàng “cái tổ chim” của mình với nhứng thứ đẹp và mới nhất có thể. Ai lại đi quan tâm đến công nghệ nào bạn sử dụng, miễn là nó làm việc hiệu quả, và cả bạn và người dùng của bạn đều cảm thấy hạnh phúc cùng với nó?

Có một cái đẹp của những thứ mới đó là: sẽ luôn có một cái gì đó mới mẻ xuất hiện. Đừng cho phép việc theo đuổi những thứ mới và đẹp một cách tình cờ trở thành mục tiêu của bạn. Hãy tránh việc trở thành một lập trình viên chích chòe. Hãy lựa chọn theo đuổi những thứ mới và đẹp, nhưng bạn phải có thể nhận thấy bản thân mình trở thành một lập trình viên giỏi hơn vì sự theo đuổi đó.

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

Advertisements

8 comments on “Lập trình viên chích chòe

  1. Chao Anh!
    Em la fan cuong cua vinacode day.
    Em van chua ro lam o diem nay:
    Ngoai dai duong bao la, tren be mat, song rat du doi, nhung o duoi tang nuoc sau thi kha yen tinh, va moi sinh vat deu phat trien o day. Anh co the noi ro hon, tang nuoc sau do la nhung gi khong.
    // em dung dien thoai nen ko go tieng viet co dau duoc.

    • ThachPhamMinh, trong bài viết “10 Bí quyết để trở thành một lập trình viên giỏi” thì lập trình viên Ấn Độ là Ashish Arya cũng đưa ra một ví dụ nhỏ cho điều này:

      Ví dụ, trong thế giới Java Enterprise, có rất nhiều web framework tồn tại và hầu như mỗi tuần đều có thêm những framework mới. Thế nhưng các khái niệm cốt lõi thì đều dựa trên giao tiếp theo mô hình client-server, MVC pattern, filters/servlets/JSP, resource bundling, XML parsing v.v… và chúng đều hiếm khi thay đổi.

      Cảm ơn em đã ủng hộ blog Vinacode nhé! 🙂

  2. Xưa giờ mình vẫn cứ thích kái cũ hơn kái mới😊 mình chấp nhận sự lạc hậu đó chỉ vì nó phát sinh nhiều thứ để mình tự giải quyết hơn..mình chỉ muốn học cách tạo ra sản phẩm chứ ko muốn học cách sử dụng sản phẩm đã được tạo sẵn ra..Các bác có nghĩ là mình có lạc hậu hoặc sẽ bị chậm so với bước tiến của CNTT ko ạ?mình hỏi thật tình..mong các bác chỉ dẫn..:( xin cám ơn..

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s