Hacker vĩ đại

Chc chn mt d án phn mm không th thành công nếu không có nhng siêu sao lp trình thích hp. Paul Graham gi h là hacker, và tìm hiu nhng đim chung h có.

Khi bài viết này lần đầu được công bố, nó đã gây tranh cãi dữ dội, chủ yếu vì Paul ngụ ý rằng lập trình viên Java và Windows không thể là hacker giỏi. Tôi rất không đồng ý với điều đó; tôi đoán Paul không biết những người tôi biết. Những hacker giỏi mà tôi biết cũng là những sinh viên thông minh nhất và học những trường hàng đầu, nơi họ học Unix, thứ mà họ có có khuynh hướng muốn biết thật rõ.

Rất nhiều người sử dụng Visual Basic hay Java vì họ không phải là hacker giỏi và những ngôn ngữ đó cho phép người bình thường viết được chương trình một cách dễ dàng. Nhưng hacker thật sự giỏi không kén công cụ, họ sử dụng bất kì công cụ nào có trong tay để giải quyết vấn đề. Tôi ấn tượng với những người làm được việc môi trường lập trình thậm tệ, hơn hẳn với những người từ chối làm việc chỉ vì vấn đề không thể giải quyết bằng Python.

Dù sao, đừng để điều đó làm sao nhãng sự chú ý của bạn tới bài viết của một trong những tay bút xuất sắc nhất về công nghệ phần mềm hiện nay.

— oOo —

Vài tháng trước tôi hoàn thành xong quyển sách mới, và trong các bài bình luận tôi thấy rất nhiều từ “khiêu khích” và “gây tranh cãi”. Tôi đâu muốn sách đó gây tranh cãi. Tôi chỉ muốn nó hiệu quả. Tôi không muốn người khác mất thì giờ nghe những điều họ đã biết. Trình bày sự khác nhau thì hiệu quả hơn.

Edison

Đây là ý tưởng gây tranh cãi nhất: sự phân hóa giàu nghèo không phải là vấn đề nghiêm trọng.

Trong sách tôi không nói sự phân hóa giàu nghèo là điều tốt. Tôi nói trong một số trường hợp nó có thể là dấu hiệu tốt. Đau đầu không phải là điều tốt, nhưng nó có thể là dấu hiệu tốt — ví dụ, bạn hồi phục sau khi hôn mê vì bị đánh vào đầu.

Sự khác biệt giàu nghèo có thể là dấu hiệu của khác biệt trong năng suất. Và đó chắc chắn là điều tốt: nếu xã hội không có khác biệt năng suất, có thể không phải bởi vì là mọi người đều là Thomas Edison. Có lẽ là bởi vì chẳng có Thomas Edison nào cả.

Trong xã hội có nền kĩ thuật kém, năng suất không khác biệt. Khi những người trong bộ lạc du mục đi nhặt củi, có sự khác biệt đáng kể nào giữa số củi nhặt được của người giỏi nhất và người giỏi kém không? Gấp đôi? Trong khi đó nếu có công cụ phức tạp như máy tính, sự khác biệt khi người ta tạo ra được có thể rất lớn.

Ý tưởng đó không mới. Fred Brooks viết về nó năm 1974, và nghiên cứu ông ta trích dẫn được xuất bản năm 1968. Nhưng tôi nghĩ ông đã đánh giá thấp sự khác biệt giữa những lập trình viên. Ông viết về năng suất tính bằng số dòng lệnh: những lập trình viên giỏi nhất có thể giải vấn đề trong 1/10 thời gian. Nhưng nếu vấn đề không được cho trước? Trong lập trình, cũng như trong nhiều lãnh vực, cái khó không phải nằm ở chỗ giải quyết vấn đề, mà ở chỗ quyết định phải giải quyết vấn đề nào. Trí tưởng tượng thì khó có thể đo lường, nhưng trong thực tế nó quyết định loại năng suất được đo lường bởi số dòng lệnh.

Năng suất thay đổi tùy lãnh vực, nhưng có vài lãnh vực nó thay đổi rất lớn. Sự khác biệt giữa các lập trình viên lớn đến nỗi nó trở thành một loại đặc biệt. Dù vậy tôi không nghĩ nó chỉ có ở lập trình. Trong mọi lãnh vực, công nghệ phóng đại sự khác biệt lớn trong năng suất. Tôi nghĩ có sự khác biệt lớn trong lập trình đơn giản vì nó có quá nhiều đòn bẩy công nghệ. Nhưng trong mọi lãnh vực đòn bẩy đang dài ra, do đó sự khác biệt chúng ta đang thấy sẽ được thấy trong các lãnh vực khác trong thời gian tới. Và sự thành công của công ty, đất nước sẽ ngày càng phụ thuộc vào việc chúng ta ứng xử thế nào với nó.

Nếu sự khác biệt năng suất tăng theo công nghệ, thì cống hiến của những cá nhân có sản lượng cao nhất sẽ không những rất lớn mà còn tăng theo thời gian. Khi đạt đến mức 90% sản phẩm của nhóm được tạo bởi 1% thành viên, thì bạn sẽ mất mát rất lớn nếu cái gì đó kéo năng suất của 1% đó xuống mức trung bình.

Nếu muốn thu được nhiều từ họ, ta cần hiểu những người có năng suất đặc biệt này. Động lực của họ là gì? Họ cần gì để làm việc? Làm thế nào để nhận ra họ? Làm sao để mời họ làm việc cho bạn? Và tất nhiên, làm thế nào để trở thành người như họ?

Trên cả tiền bạc

Tôi biết vài siêu hacker, tôi đã thử nghĩ xem họ giống nhau ở điểm nào. Điều dễ nhận thấy là họ thật sư thích lập trình. Lập trình viên bình thường làm việc vì cơm áo. Hacker vĩ đại nghĩ họ làm việc vì thú vui, và tiền chỉ là hệ quả của sản phẩm họ tạo ra.

Người ta thỉnh thoảng nói hacker vĩ đại không quan tâm đến tiền. Điều này không hẳn chính xác. Điều chính xác là họ chỉ quan tâm đến những công việc thú vị. Nhưng nếu đã có đủ tiền, thì bạn làm việc vì ý thích, và vì lí do đó hacker bị thu hút bởi ý tưởng kiếm thật nhiều tiền. Nhưng miễn là họ còn phải đến công ty hàng ngày, thì họ quan tâm đến công việc hơn là tiền bạc.

Về mặt kinh tế, đây là điều quan trọng nhất, vì nó có nghĩa bạn không cần phải trả tiền theo đúng giá trị của họ. Lập trình viên vĩ đại có thể có năng suất gấp 10 lập trình viên bình thường, nhưng anh ta sẽ nghĩ là mình may mắn khi được trả lương cao gấp 3 lần. Tôi sẽ giải thích sau, một phần cũng bởi hacker vĩ đại không biết họ siêu đến mức nào. Nhưng cũng bởi tiền không phải là cái chính yếu họ muốn.

Hacker muốn gì? Như tất cả các thợ thủ công, hacker thích công cụ tốt. Thật ra còn hơn thế. Hacker xịn không chịu đựng nổi công cụ tồi. Họ sẽ từ chối ngay nếu phải làm project với hạ tầng cơ sở không đúng.

Việc quyết định hạ tầng cơ sở cho project không chỉ mang ý nghĩa kĩ thuật. Nó còn mang ý nghĩa xã hội, và đây có thể là cái quan trọng hơn trong 2 cái. Ví dụ, nếu công ty bạn muốn viết phần mềm gì đó, có lẽ Java là lựa chọn thận trọng. Nhưng chọn ngôn ngữ cũng chính là chọn cộng đồng. Lập trình viên Java không thông minh như lập trình viên Python. Và chất lượng của lập trình viên có thể quan trọng hơn ngôn ngữ được chọn. Tuy vậy, nói trắng ra, việc lập trình giỏi thích Python hơn Java chẳng đã nói cho bạn biết ngôn ngữ nào tốt hơn.

Giới business thích ngôn ngữ phổ biến hơn bởi vì theo cách nhìn của họ thì ngôn ngữ là chuẩn. Họ không muốn công ty chịu rủi ro. Tuy vậy, cốt lõi vấn đề nằm ở chỗ ngôn ngữ không chỉ là chuẩn. Nếu muốn truyền dữ liệu, hãy dùng TCP/IP. Nhưng ngôn ngữ lập trình không chỉ là định dạng. Ngôn ngữ lập trình là môi trường để diễn tả.

Java đã soán ngôi Cobol. Nếu chỉ là chuẩn, còn mong gì hơn? Nhưng là môi trường để diễn tả, bạn có thể làm tốt hơn nhiều. Trong số tất cả những lập trình viên vĩ đại tôi biết, chỉ có mỗi một người xung phong lập trình bằng Java, người này làm cho Sun.

Hacker vĩ đại cũng thường nhấn mạnh việc dùng phần mềm mã nguồn mở. Không chỉ vì chúng tốt hơn, mà vì họ có thể điều khiển chúng tốt hơn. Hacker giỏi nhấn mạnh việc điều khiển. Điều đó góp phần đào tạo họ thành hacker giỏi: khi có gì không ổn, họ có source để sửa. Bạn cần làm cho họ cảm giác theo cách như vậy về phần mềm họ viết cho bạn. Bạn không nên ngạc nhiên khi họ cảm giác theo cách như vậy về hệ điều hành.

Vài năm trước bạn tôi, một nhà đầu tư mạo hiểm, kể về công ty anh mới giúp thành lập. Nghe rất hứa hẹn. Nhưng lần nói chuyện tiếp theo, anh nói công ty đã quyết định chuyên về phần mềm cho Windows NT, và vừa thuê một lập trình viên rất kinh nghiệm về NT làm lãnh đạo kĩ thuật. Khi nghe chuyện này, tôi nghĩ, mấy tay này tới số rồi. Thứ nhất, CTO đó không thể là hacker giỏi, vì để trở thành lập trình viên NT xuất sắc anh ta phải xung phong sử dụng NT nhiều, và tôi không thể tưởng tượng hacker vĩ đại lại đi làm chuyện này; và thứ hai, ngay cả khi anh ta giỏi, cũng khó tuyển được người giỏi vào làm việc nếu project xây dựng trên NT. (Đúng là họ tới số thật. Họ đóng cửa sau đó vài tháng.)

Ranh giới cuối cùng

Sau phần mềm, công cụ quan trọng nhất đối với hacker có lẽ là văn phòng. Các công ty lớn nghĩ chức năng của văn phòng là thể hiện cấp bậc. Nhưng hacker dùng văn phòng hơn thế: họ dùng văn phòng làm nơi suy nghĩ. Và nếu bạn là công ty kĩ thuật, suy nghĩ của họ là sản phẩm của bạn. Do đó bắt hacker làm việc trong môi trường ồn ào dễ phân tâm giống như việc có nhà máy sản xuất sơn mà không khí toàn bụi bồ hóng.

Truyện tranh Dilbert nói nhiều về ngăn làm việc, tất nhiên có lí do. Tất cả hacker tôi biết đều ghét ngăn làm việc. Viễn cảnh bị làm phiền không thôi cũng đủ ngăn hacker làm việc. Nếu bạn muốn công việc được giải quyết với văn phòng có ngăn làm việc, có 2 lựa chọn: làm việc ở nhà, hoặc đến sớm hoặc muộn hoặc vào cuối tuần, khi không có ai. Đây chẳng phải là dấu hiệu cho thấy công ty rạn nứt? Văn phòng cần phải là nơi mọi người làm việc thoải mái không miễn cưỡng.


Những công ty như Cisco tự hào là ai cũng có ngăn làm việc, ngay cả CEO. Nhưng họ không giỏi như họ nghĩ, cụ thể là họ vẫn còn coi văn phòng là thứ để thể hiện cấp bậc. Cũng nên nhớ là Cisco nổi tiếng bởi có rất ít sản phẩm tự họ phát triển. Họ có được kỹ thuật mới là nhờ việc mua lại những công ty đã tạo ra nó. Điều này có nghĩa là các hacker đã có một nơi kín đáo nào đó để làm việc.

Có một công ty hiểu được thứ các hacker cần, đó là Microsoft. Tôi đã một lần nhìn thấy tờ quảng cáo tyuển dụng của Microsoft với hình ảnh một cánh cửa lớn trên đó. Ngụ ý của nó là hãy làm việc cho chúng tôi, chúng tôi sẽ tạo cho anh một nơi để anh có thể thực sự làm việc. Và bạn biết đấy, trong số các công ty lớn, Microsoft có tiếng là có khả năng tự phát triển phần mềm. Có thể là chúng chưa tốt lắm, nhưng cũng dùng được.

Nếu công ty muốn các hacker làm việc năng suất, hãy xem cách mà họ làm việc tại nhà. Ở nhà, họ có thể sắp xếp mọi thứ theo ý mình, nhờ đó đạt hiệu quả cao nhất. Họ không làm ở một nơi ồn ào, mở rộng, mà họ làm việc trong những căn phòng đóng kín cửa. Họ làm ở những nơi thoải mái, có hàng xóm xung quanh, có một nơi nào đó để nói chuyện khi họ cần suy nghĩ về một vấn đề gì đó, chứ không phải những ngăn kính của những khoanh trong bãi đỗ xe. Họ có ghế bành để ngả lưng khi mệt, thay vì cứ phải lờ đờ bên bàn làm việc và phải cố gắng tập trung vào công việc. không có những đám đông với những chiếc máy hút bụi kêu ầm ĩ hàng chiều vào giờ làm việc hiệu quả nhất. Không có họp hành, không có thay đổi định hướng công ty, không có bài tập xây dựng nhóm. Và khi nhìn vào những gì họ làm trên máy tính, bạn sẽ thấy nó củng cố thêm cho những gì tôi nói về công cụ làm việc ở phần trên. Ở công ty, họ có thể bắt buộc phải dùng Java và Windows, nhưng ở nhà thì khác, họ có thể dùng gì tùy thích, và bạn có thể thấy nhiều người dùng Perl và Linux.

Thực sự thì những thống kê nói rằng Cobol và Java là những ngôn ngữ thông dụng nhất có thể gây hiểu lầm. Nếu muốn biết cái gì là tốt nhất, chúng ta cần nhìn vào thứ mà hacker chọn khi họ được chọn một cách tự do, đó là trong những dự án của riêng họ. Khi bạn hỏi câu đó, bạn sẽ thấy là hệ điều hành mã nguồn mở đã nắm trong tay thị phần khá quan trọng, và ngôn ngữ được ưa chuộng nhất là Perl.

Thú vị

Khi có trong tay những công cụ tốt, hacker muốn làm những dự án thú vị. Yếu tố nào làm cho dự án trở nên thú vị? Rõ ràng là những dự án màu mỡ như là máy bay tàng hình hay phần mềm có những hiệu ứng đặc biệt rất hấp dẫn. Nhưng thực tế là mọi dự án đều có thể trở nên thú vị nếu nó có những thách thức kỹ thuật mới. Vì vậy, khó có thể nói trước rằng hacker sẽ thích những vấn đề nào, bởi vì có những vấn đề chỉ trở nên thú vị khi những người làm việc với nó phát hiện ra cách giải quyết mới. Trước ITA (người viết phần mềm trong Orbitz), những người viết ứng dụng tìm kiếm vé máy bay vẫn nghĩ đây là một trong những ứng dụng nhàm chán nhất mà con người ta có thể tưởng tượng ra. Nhưng ITA đã làm cho nó trở nên thú vị bằng cách định nghĩa lại vấn đề một cách hào hứng hơn.

Tôi nghĩ ở Google cũng vậy. Khi Google thành lập, người ta vẫn cho rằng tìm kiếm thật nhàm chán và vô nghĩa. Nhưng những chàng trai ở Google không nghĩ như thế, và vì vậy họ đã thành công.

Đây là đất dựng võ cho các nhà quản lý. Giống như ông bố bảo con: bố cuộc là con không thể dọn dẹp nhà trong vòng 10 phút được, người quản lý giỏi đặt lại vấn đề một cách thú vị hơn. Steve Jobs có vẻ rất giỏi trong chuyện này, chỉ đơn giản bằng cách đặt ra tiêu chuẩn cao hơn. Trước khi Mac ra đời, có rất nhiều máy tính nhỏ gọn và vừa túi tiền. Nhưng Steve Jobs đã định nghĩa lại vấn đề là: tạo ra một cái máy thật đẹp. Điều này đã làm cho những người phát triển vất vả rất nhiều.

Và không nghi ngờ gì nữa, họ đã hoàn thành nhiệm vụ. Khi Mac lần đàu xuất hiện, bạn không cần phải bật máy lên cũng biết nó tuyệt thế nào, bạn có thể thấy thế từ cái vỏ máy trở đi. Vài tuần trước, khi tôi đi ngang qua con phố trong Cambrigde, tôi thấy trong sọt rác của ai đó có cái gì có vẻ như là vỏ đựng của một chiếc Mac. Tôi nhìn vào trong, đó là một con Mac SE. Tôi mang về nhà, cắm điện vào, và nó đã khởi động. Giao diện Macintosh, rồi chương trình Finder. Lạy chúa, thật là đơn giản. Đơn giản như… Google vậy.

Hacker muốn làm việc với người đặt ra tiêu chuẩn cao. Nhưng chính xác không thôi thì chưa đủ. Bạn phải biết bảo vệ những cái mình cho là đúng nữa. Điều này có nghĩa bạn cũng phải là một hacker. Thỉnh thoảng tôi thấy có những bài viết về cách quản lý lập trình viên. Có thể chia ra làm 2 loại bài viết: một dành cho người cũng là lập trình viên, và một cho những người không phải lập trình viên. Trường hợp thứ 2 thì có thể gói gọn trong 2 từ: đầu hàng.

Vấn đề không nằm ở việc quản lý hàng ngày. Hacker thực sự giỏi tự quản được mình. Vấn đề nằm ở chỗ, nếu không phải là hacker, thì bạn không thể biết ai là hacker giỏi. Vấn đề tương tự giải thích vì sao xe Mỹ lại xấu đến thế. Tôi gọi nó là nghịch lý trong thiết kế. Có thể bạn nghĩ chỉ việc thuê designer giỏi là có thể làm cho sản phẩm đẹp ra. Nhưng nếu không có mắt thẩm mỹ thì làm sao bạn có thể nhận ra designer là giỏi được? Về bản chất không thể biết designer giỏi hay không qua portfolio của người ấy. Và cũng không thể dựa vào những giải thưởng mà người ấy giành được hay công việc người ấy đã làm, bởi trong ngành design, cũng như trong hầu hết các ngành, những cái đó thứ nhất do thị hiếu, thứ 2 do vận động hành lang, thứ 3 mới đến tài năng thực sự. Chẳng có cách nào khác cả: không thể quản lý qui trình tạo ra sản phẩm đẹp mà không biết thế nào là đẹp. Xe Mỹ xấu vì các nhà điều hành các công ty sản xuất xe của Mỹ không có mắt thẩm mỹ. (Mỹ mà xấu
)

Nhiều người Mỹ cho rằng khả năng cảm thụ cái đẹp là một thứ gì đó khó đạt tới, hoặc thậm chí là nhảm nhí. Hòan toàn không phải thế. Để lèo lái việc thiết kế, người quản lí phải là người dùng khó tính nhất đối với sản phẩm của công ty. Và nếu thực sự có khiếu thẩm mỹ, bạn hoàn toàn có thể, như Steve Jobs, làm mọi người thỏa mãn bằng cách biến mình thành vấn đề mà nhân viên thích giải quyết.

Các vấn đề vụn vặt

Không khó để kể ra vấn đề nào là không thú vị: đó là khi thay vì phải giải quyết một vài vấn đề lớn nhưng rõ ràng, bạn phải giải quyết hàng loạt các thứ lẻ tẻ, vụn vặt. Một trong những loại dự án buồn chán nhất là viết giao diện cho một chương trình đầy lỗi. Hay là khi bạn phải điều chỉnh một client với những yêu cầu rắc rối và chẳng có gì rõ ràng.

Bạn chẳng học được gì khi giải quyết những vấn đề vụn vặt. Viết một trình dịch (compiler) thú vị vì qua đó bạn học dược trình dịch là gì. Nhưng viết giao diện cho một chương trình toàn lỗi thì bạn chẳng học được gì. Vì lỗi là bất định. Những hacker giỏi luôn tránh những vấn đề vụn vặt vì nó dễ chán. Đó còn là bản năng tự nhiên. Làm việc với những vấn đề vụn vặt khiến bạn dốt đi. Lí do khiến hacker giỏi tránh những vấn đề vụn vặt cũng giống như lí do khiến các người mẫu tránh món hamburger có bơ vậy.

Nếu công ty nào đó khiến các hacker giải quyết các vấn đề tẻ nhạt, họ hẳn sẽ rất thành công. Vậy họ làm thế nào ?

Lúc thành lập, chúng tôi có Robert Morris làm việc ở vị trí quản trị hệ thống. Điều này chẳng khác gì việc band Rolling Stones chơi ở buổi lễ Bar Mizvah của người Do Thái. Bạn không thể thuê được những người như vậy. Nhưng một người có thể làm việc như trâu ngựa cho những gì họ làm chủ.

Các công ti lớn giải quyết vấn đề bằng cách chia nhỏ công ty. Họ để cho những người giỏi làm việc cho chính họ bằng cách thành lập các trung tâm R&D, nơi mà họ không phải giải quyết các vấn đề vụn vặt. Các trung tâm R&D này như những khu mỏ sản sinh ra các ý tưởng để phần còn lại của công ty có thể sử dụng được.

Bạn cũng có thể làm như sau. Cách lập trình từ dưới lên (bottom-up) gợi ý một cách khác để chia nhỏ công ty: để cho những người giỏi làm việc như những toolmaker (những người làm ra công cụ). Nếu công ty của bạn sản xuất phần mềm thực hiện công việc X, hãy giảnh ra một nhóm viết công cụ để sản xuất phần mềm đó, và nhóm khác sử dụng các công cụ đó để sản xuất phần mềm. Với cách này, bạn có thể khiến những người giỏi viết đến 99% code, mà vẫn khiến họ cô lập được với các vấn đề vụn vặt của user. Các toolmaker vẫn có thể có người dùng, những đó nên là những người thuộc công ty.

Nếu Microsoft sử dụng giải pháp này, các sản phẩm của họ có lẽ sẽ không đầy những lỗ hổng bảo mật như bây giờ. Bởi vì những lập trình viên bình thường sẽ không để ý đến các vấn đề ở cấp thấp (low-level) như cấp phát bộ nhớ (memory-allocating). Thay vì viết Word trực tiếp bằng C, họ nên ghép các khối chương trình bằng ngôn ngữ Word (Word-language) chẳng hạn.

Tụ tập

Bên cạnh cách vấn đề thú vị, các hacker giỏi còn thích tụ tập với nhau – như trường hợp ấn tượng của Xerox Parc.

Người chiến thằng có được tất cả.Tại một thời điểm, chỉ có tầm mười hay hai mươi chỗ có thể hấp dẫn các hacker. Và nếu chỗ của bạn không nằm trong số đó, không phải bạn sẽ có ít hacker hơn, mà là bạn không có ai cả.

Có trong tay các hacker giỏi chưa đủ để công ty bạn thành công. Google và ITA đã thành công. Nhưng Thinking Machines hay Xerox thì không. Sun cũng đã thành công nhưng mô hình kinh doanh của họ lại tụt dốc. Trong những trường hợp như vậy, kể cả hacker giỏi nhất cũng không giúp gì được.

Dù vậy, tôi nghĩ, những công ty thu hút được nhiều hacker giỏi vẫn có những lợi thế rất lớn. Nhiều người không đồng ý. Những năm 1990, Khi chúng tôi đi thăm các công ty đầu tư mạo hiểm, một số nói rằng các công ty phần mềm giành chiến thắng không phải nhờ viết những phần mềm tuyệt hay mà là nhờ thương hiệu, các kênh điều phối và tuân thủ hợp đồng.

Tôi không biết tại sao họ lại thực sự tin tưởng vào điều này. Tôi nghĩ điều mà các công ty đầu tư mạo hiểm đó tìm kiếm, ít nhất là trong vô thức, là một Microsoft tiếp theo. Và nếu Microsoft là hình mẫu của anh, anh không cần phải phải tìm kiếm những công ty muốn chiến thằng nhờ những phần mềm tốt. Nhưng họ đã thất bại trong việc tìm ra một Microsoft thứ hai. Bời vì không có công ty nào có thể trở thành một Microsoft thứ hai, trừ phi cùng thời điểm đó, có một công ty được thành lập để trở thành IBM thứ hai.

Microsoft không phải là hình mẫu để đi tìm. Thứ mà các công ty đầu tư mạo hiểm nên kiếm tìm, là những công ty Apple thứ hai, Google thứ hai..

Tôi nghĩ Bill Gates biết điều này. Điều khiến Bill lo lắng không phải là sức mạnh thương hiệu của Google, mà là việc Google có những hacker giỏi hơn.

Nhận diện

Vậy những hacker giỏi ở đâu? Làm sao nhận ra khi đối mặt với anh ta? Đây hóa ra lại là vấn đề khó. Ngay cả các hacker cũng không biết.Giờ thì tôi chắc chắn Trevor Blackwell bạn tôi là một hacker xịn. Một mình anh ta viết Segway bằng Python trong một ngày. Nhưng khi tôi gặp Trevor, tôi đã nghĩ anh ta là một gã ngốc.Lần đầu tôi gặp là lúc anh ta đang ở phòng của Robert Morris và đang tranh cãi về một vấn đề gì đó. Tôi nhớ là tôi đã ra dấu cho Robert với thông điệp “hãy đuổi gã ngốc này đi và ra ngoài ăn trưa với tôi”. Robert cũng không khá hơn. Anh gặp Morris với những thẻ có ghi chú về cuộc đời anh ta cùng với cách phát âm Canadia đầy khó chịu.

Thật khó để nhận ra một hacker, ngay cả đối với tôi bầy giờ. Bạn cũng không thể nhận ra họ thông qua bản resume. Có vẻ như cách duy nhất để nhận diện một hacker là làm việc với họ. Đây là lí do tại sao các viện nghiên cứu high-tech, các công ty mới thành lập đều ở xung quanh các trường đại học. Vì ở đây, các sinh viên giỏi làm việc với nhau. Để rồi cùng nhau tạo ra những project riêng của họ.

Bạn không thể nhận ra một hacker trừ phi làm việc với họ. Nhưng các hacker cũng chẳng biết mình giỏi cỡ nào vì thật khó để so sánh. Hack giống như viết lách vậy. Ai có thể đánh giá tiểu thuyết nào hay hơn? Chắc chắn không phải tác giả của nó rồi.

Không ai có thể nhận ra một hacker, trừ phi làm việc với họ. Điều này dẫn đến một tình huống định mệnh: thật khó biết những anh hùng của chúng ta là ai. Tôi thường được đề nghị chỉ ra tên vài hacker, và tôi thường không biết phải trả lời thế nào. Những cái tên đầu tiên xuất hiện trong đầu là những người nổi tiếng, nhưng có vẻ như tất cả đều khập khiễng. Tôi nghĩ, tôi có thể kể ra vài cái tên như Richard Stallman, Linus Torvalds, hay Alan Kay, hoặc ai đó nổi tiếng. Nhưng tôi không biết họ là hacker giỏi vì tôi chưa từng làm việc với họ.

Nếu có một hacker Micheal Jordan, sẽ chẳng ai biết điều đó, kể cả anh ta. 

Trau dồi

Cuối cùng là câu hỏi mà bất cứ hacker nào cũng từng trăn trở là “làm thể nào để trở thành một hacker”. Tôi không biết bạn có thể trở thành một hacker không? Những chắc chắn bạn có thể làm những khiến bạn trở thành ngu ngốc. Và một khi bạn có thể làm mình trở nên ngu ngốc thì bạn cũng có thể làm mình trở nên giỏi giang. 

Chìa khóa để trở thành một hacker giỏi là làm việc với những gì mình thích. Khi nghĩ về các hacker tôi biết, tôi nhận ra một điểm chung là cực khó để bắt họ làm những việc mà họ không thích. Tôi không biết đây là nhân hay quả. Có lẽ cả hai.

Những hacker giỏi nhất là những người thông minh, nhưng lĩnh vực nào chả thế. Nếu có điều gì đặc biệt ở hacker thì đó là trí tò mò. Các hacker thường rất tò mò về phương thức hoạt động của mọi việc. Một vài người bạn của tôi lại nói rằng hacker là những người có khả năng tập trung cao độ. Tôi cũng từng nghe một vài hacker nói rằng họ không thể suy nghĩ chỉ sau khi làm nửa vại bia. Hacking đòi hỏi sự tập trung cao độ. Các hacker có thể tưởng tượng một ngữ cảnh lớn trong đầu để khi nhìn vào dòng code, họ có thể tưởng tượng ra cả một chương trình lớn xung quanh đó. John McPhee nói rằng Bill Bradley thành công trong môn bóng rổ là nhờ khả năng thị giác đặc biệt của anh ta. Người bình thường có góc nhìn 47 độ. Còn Bill là 70 độ. Anh ta có thể nhìn thấy rổ ngay cả khi cắm mặt xuống sàn. Có thể một vài hacker cũng có những khả năng bẩm sinh tương tự chăng!

Bạn có thể trau dồi những kĩ năng này không? Tôi không chắc. Chỉ có một điều chắc chắn là bạn không thể kiềm chế nó. Tôi nghĩ nếu có cách nào đó giúp bạn trở thành hacker giỏi thì đó là bạn phải tuân thủ những điều sau: không bao giờ làm việc trong các dự án buồn tẻ (đối với bạn) và không bao giờ cho phép mình làm những công việc nửa vời. Những hacker giỏi tôi biết đều làm như vậy, mặc dù họ có thể có nhiều lựa chọn khác.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: