Hacker được xem là người nắm vững hệ thống, có khả năng vượt qua những thách thức kỹ thuật, biến “không thể” thành “có thể”. Vậy có bao giờ bạn muốn trở thành một… hacker? Để giúp mọi người hiểu thêm về cộng đồng hacker và văn hóa hacker, xin giới thiệu với các bạn bài viết của Eric Raymond - một trong những hacker có uy tín trong cộng đồng mã nguồn mở thế giới.
Lâu nay, trên báo chí và trong cộng đồng, hack và hacker được hiểu với một nghĩa xấu, đồng nghĩa với tội phạm máy tính. Thật ra, về nguyên thủy, thuật ngữ hack được dùng để chỉ những kỳ công ngoạn mục của những tài năng lập trình khác thường; trong đó, người lập trình đã tìm ra được giải pháp cho một vấn đề nào đó đầy tính thách thức, theo một phương pháp mới mẻ và đầy sáng tạo. Bạn có thể tham khảo từ những từ điển trực tuyến như Wikipedia, Webopedia, Whatis,… Thế nhưng, do có những kẻ khai thác tài năng lập trình của mình để thực hiện những “trò chơi ác”, gây hại cho hệ thống máy tính của người khác,… thuật ngữ hack và hacker đã bị “nhuộm đen” - điều mà những hacker thực thụ đau lòng. Ở đây là bài biết của Eric Raymond, một trong những hacker thực thụ rất có uy tín trong cộng đồng mã nguồn mở thế giới. Ông cố gắng giúp cộng đồng hiểu “Hacker - thật sự anh là ai?”
Hacker là gì?
Nhiều thập niên trước, từ thời của các máy tính lớn dùng chung, thời của những thí nghiệm sơ khai để dựng nên mạng ARPANET, đã hình thành một cộng đồng các chuyên gia máy tính tài năng cùng một nền văn hóa đặc thù. Thuật ngữ “hacker” phát sinh từ nền văn hóa ấy. Các hacker đã dựng nên Internet, tạo ra hệ điều hành Unix, vận hành Usenet và World Wide Web. Nếu bạn thuộc về nền văn hóa ấy, nếu bạn có đóng góp cho nó và được cộng đồng hacker thừa nhận là hacker thì bạn là hacker.
Có những người luôn lớn tiếng tự nhận mình là hacker nhưng thực ra họ không phải là hacker. Loại người này (thường là những cậu thanh niên) thường bị tóm cổ do tội xâm nhập mạng máy tính và gây rối trên hệ thống điện thoại. Những hacker thực thụ gọi đó là cracker và không muốn dính dáng gì đến chúng. Hầu như mọi hacker đều nghĩ rằng cracker là hạng lười biếng, vô trách nhiệm, chẳng có tài cán gì lắm. Khả năng xâm nhập hệ thống bảo mật không thể làm cho người ta trở thành hacker, cũng giống như khả năng đánh cắp ô-tô không thể làm cho người ta trở thành kỹ sư ô-tô. Tiếc thay, nhiều nhà báo, nhà văn đã nhầm lẫn gọi cracker là hacker. Cách gọi này vô cùng xúc phạm những hacker chân chính.
Khác biệt cơ bản giữa cracker và hacker là ở chỗ: hacker là người xây dựng, còn cracker là kẻ phá hoại.
Kỹ năng cơ bản của hacker chân chính
+ Học lập trình
Nếu bạn chưa biết ngôn ngữ lập trình (NNLT) nào, tôi đề nghị bạn nên bắt đầu với Python. Dù là ngôn ngữ tốt cho người mới học lập trình nhưng Python không hề là NNLT “đồ chơi”. Python rất mạnh mẽ, linh hoạt và thích hợp cho các dự án lớn.
Java cũng là một ngôn ngữ tốt để học lập trình. Java khó học hơn Python nhưng mã Java chạy nhanh hơn. Nếu bạn chọn Java, hãy dùng trình thông dịch Java mã nguồn mở, đừng lệ thuộc vào các thư viện lớp Java của Sun.
Có điều bạn cần nhớ là nếu chỉ biết một hoặc hai NNLT thì chưa thề đạt đến trình độ cần thiết của một hacker thực thụ, thậm chí chưa phải là lập trình viên. Bạn cần tập suy nghĩ về các vấn đề lập trình theo cách tổng quát, không phụ thuộc NNLT nào. Bạn phải đạt đến trình độ có thể học một NNLT mới trong vài ngày bằng cách liên hệ nội dung của tài liệu về NNLT đó với những gì bạn đã biết. Điều này cũng có nghĩa là bạn cần học nhiều NNLT khác nhau.
Để đi vào lĩnh vực lập trình một cách căn cơ, bạn phải học C vì C là NNLT cốt lõi của Unix. Nếu biết C, bạn dễ dàng học C++ hoặc ngược lại. Tuy nhiên C cũng như C++ đều không phải là NNLT tốt để học vỡ lòng về lập trình.
Perl và LISP cũng là những NNLT đặc biệt quan trọng. Perl rất được ưa chuộng trong việc tạo trang web động và quản trị hệ thống. LISP giúp bạn có hiểu biết sâu sắc về nhiều khái niệm lập trình.
+ Học cách dùng Unix mã nguồn mở
Bạn nhất thiết phải cài đặt một phiên bản của Linux hoặc BSD-UNIX lên máy tính cá nhân của bạn và học cách dùng nó. Unix là hệ điều hành của Internet. Unix và Internet cộng sinh mạnh mẽ đến mức Microsoft không thể nào lay chuyển hãy đọc mã nguồn của Unix và sửa đổi nó, bạn sẽ có nhiều niềm vui và thu thập được những hiểu biết sâu sắc đến bất ngờ.
+ Học tiếng Anh để giao tiếp
Hãy học tiếng Anh ở mức có thể giao tiếp được. Bởi tiếng Anh thực sự là ngôn ngữ giao tiếp của cộng đồng hacker.
Linus Torvalds tuy là người Phần Lan nhưng luôn viết chú thích trong mã nguồn bằng tiếng Anh. Nhờ diễn đạt bằng tiếng Anh trôi chảy, anh mới có thể tập hợp được cộng đồng lập trình viên khắp thế giới cho việc phát triển Linux.
Người nói tiếng Anh như là bản ngữ không phải đương nhiên có đủ năng lực ngôn ngữ của một hacker thực thụ. Nếu bạn viết tiếng Anh không chuẩn, sai ngữ pháp, đầy lỗi chính tả thì cộng đồng hacker thật thụ sẽ không muốn tiếp xúc với bạn. Viết câu luộm thuộm thì thường tư duy cũng luộm thuộm.
+ Văn hóa hacker
Văn hóa hacker là văn hóa hiến tặng. Bạn đạt được danh tiếng trong cộng đồng hacker không phải vì bạn có tài năng hơn người mà vì bạn cho đi thời gian, sự sáng tạo của mình, thành quả của mình. Văn hóa hacker không chấp nhận tính vị kỷ.
Để được cộng đồng hacker công nhận, theo truyền thống, bạn phải viết được những chương trình mà cộng đồng đánh giá là hay, hữu ích và bạn tặng mã nguồn cho cả cộng đồng sử dụng. Hiện nay, cộng đồng hacker và cộng đồng mã nguồn mở hầu như là hai cách gọi khác nhau của cùng một thực thể.
Nếu là người mới, bạn nên phục vụ cộng đồng bằng cách kiểm lỗi (test) cho các chương trình mã nguồn mở. Từ việc kiểm lỗi, bạn có thể dần dần chuyển qua việc sửa lỗi (debug) và thay đổi mã nguồn. Quá trình này giúp bạn học được rất nhiều.
+ Phong cách hacker
Ngoài những việc có liên quan đến máy tính, bạn cũng cần chú ý những kỹ năng khác giúp bạn thấm nhuần tinh thần hacker chân chính:
- Học tiếng mẹ đẻ của bạn cho thật tốt. Dù cho có định kiến rằng đã là lập trình viên thì không thể viết văn, tất cả những hacker mà tôi biết đều viết văn rất tốt.
- Đọc truyện khoa học viễn tưởng. Các nhân vật trong truyện khoa học viễn tưởng thường có dáng dấp của một hacker điển hình.
- Luyện tập một môn võ thuật. Tinh thần võ đạo rất giống với tinh thần hacker.
- Học cách thiền định. Để học thiền, bạn không nhất thiết phải gia nhập tôn giáo nào đó hoặc từ bỏ tôn giáo của bạn. Tuy nhiên, bạn phải cẩn thận, đừng sa vào những chuyện “điên khùng”.
- Rèn luyện "tai nghe nhạc". Bạn hãy học cách thưởng thức các loại nhạc lạ thường. Bạn cũng nên học hát và học chơi một loại nhạc cụ nào đó thật tốt.
- Bạn cũng cần biết chơi chữ nữa.
Nếu bạn thực hiện những điều nêu trên càng thường xuyên, bạn càng có nhiều phẩm chất của hacker chân chính. Tuy ý nghĩa của những điều ấy không thật rõ ràng nhưng chúng có liên quan đến sự pha trộn các kỹ năng của bán cầu não trái và phải. Đây là điều quan trọng đối với hacker vì hacker vừa là người lý trí, vừa là người hay bước ra khỏi “lý trí” thông thường.
Với hacker thực thụ, biên giới giữa chơi và làm, giữa khoa học và nghệ thuật dường như biến mất. Tất cả hòa trộn thành một cuộc chơi sáng tạo ở mức cao. Hacker luôn luôn có nhiều kỹ năng. Hacker không bao giờ làm gì đó nửa vời, nếu họ quyết định rèn luyện một kỹ năng nào đó họ thường trở nên rất giỏi về kỹ năng đó.
Hacker là gì?
Nhiều thập niên trước, từ thời của các máy tính lớn dùng chung, thời của những thí nghiệm sơ khai để dựng nên mạng ARPANET, đã hình thành một cộng đồng các chuyên gia máy tính tài năng cùng một nền văn hóa đặc thù. Thuật ngữ “hacker” phát sinh từ nền văn hóa ấy. Các hacker đã dựng nên Internet, tạo ra hệ điều hành Unix, vận hành Usenet và World Wide Web. Nếu bạn thuộc về nền văn hóa ấy, nếu bạn có đóng góp cho nó và được cộng đồng hacker thừa nhận là hacker thì bạn là hacker.
Có những người luôn lớn tiếng tự nhận mình là hacker nhưng thực ra họ không phải là hacker. Loại người này (thường là những cậu thanh niên) thường bị tóm cổ do tội xâm nhập mạng máy tính và gây rối trên hệ thống điện thoại. Những hacker thực thụ gọi đó là cracker và không muốn dính dáng gì đến chúng. Hầu như mọi hacker đều nghĩ rằng cracker là hạng lười biếng, vô trách nhiệm, chẳng có tài cán gì lắm. Khả năng xâm nhập hệ thống bảo mật không thể làm cho người ta trở thành hacker, cũng giống như khả năng đánh cắp ô-tô không thể làm cho người ta trở thành kỹ sư ô-tô. Tiếc thay, nhiều nhà báo, nhà văn đã nhầm lẫn gọi cracker là hacker. Cách gọi này vô cùng xúc phạm những hacker chân chính.
Khác biệt cơ bản giữa cracker và hacker là ở chỗ: hacker là người xây dựng, còn cracker là kẻ phá hoại.
Kỹ năng cơ bản của hacker chân chính
+ Học lập trình
Nếu bạn chưa biết ngôn ngữ lập trình (NNLT) nào, tôi đề nghị bạn nên bắt đầu với Python. Dù là ngôn ngữ tốt cho người mới học lập trình nhưng Python không hề là NNLT “đồ chơi”. Python rất mạnh mẽ, linh hoạt và thích hợp cho các dự án lớn.
Java cũng là một ngôn ngữ tốt để học lập trình. Java khó học hơn Python nhưng mã Java chạy nhanh hơn. Nếu bạn chọn Java, hãy dùng trình thông dịch Java mã nguồn mở, đừng lệ thuộc vào các thư viện lớp Java của Sun.
Có điều bạn cần nhớ là nếu chỉ biết một hoặc hai NNLT thì chưa thề đạt đến trình độ cần thiết của một hacker thực thụ, thậm chí chưa phải là lập trình viên. Bạn cần tập suy nghĩ về các vấn đề lập trình theo cách tổng quát, không phụ thuộc NNLT nào. Bạn phải đạt đến trình độ có thể học một NNLT mới trong vài ngày bằng cách liên hệ nội dung của tài liệu về NNLT đó với những gì bạn đã biết. Điều này cũng có nghĩa là bạn cần học nhiều NNLT khác nhau.
Để đi vào lĩnh vực lập trình một cách căn cơ, bạn phải học C vì C là NNLT cốt lõi của Unix. Nếu biết C, bạn dễ dàng học C++ hoặc ngược lại. Tuy nhiên C cũng như C++ đều không phải là NNLT tốt để học vỡ lòng về lập trình.
Perl và LISP cũng là những NNLT đặc biệt quan trọng. Perl rất được ưa chuộng trong việc tạo trang web động và quản trị hệ thống. LISP giúp bạn có hiểu biết sâu sắc về nhiều khái niệm lập trình.
+ Học cách dùng Unix mã nguồn mở
Bạn nhất thiết phải cài đặt một phiên bản của Linux hoặc BSD-UNIX lên máy tính cá nhân của bạn và học cách dùng nó. Unix là hệ điều hành của Internet. Unix và Internet cộng sinh mạnh mẽ đến mức Microsoft không thể nào lay chuyển hãy đọc mã nguồn của Unix và sửa đổi nó, bạn sẽ có nhiều niềm vui và thu thập được những hiểu biết sâu sắc đến bất ngờ.
+ Học tiếng Anh để giao tiếp
Hãy học tiếng Anh ở mức có thể giao tiếp được. Bởi tiếng Anh thực sự là ngôn ngữ giao tiếp của cộng đồng hacker.
Linus Torvalds tuy là người Phần Lan nhưng luôn viết chú thích trong mã nguồn bằng tiếng Anh. Nhờ diễn đạt bằng tiếng Anh trôi chảy, anh mới có thể tập hợp được cộng đồng lập trình viên khắp thế giới cho việc phát triển Linux.
Người nói tiếng Anh như là bản ngữ không phải đương nhiên có đủ năng lực ngôn ngữ của một hacker thực thụ. Nếu bạn viết tiếng Anh không chuẩn, sai ngữ pháp, đầy lỗi chính tả thì cộng đồng hacker thật thụ sẽ không muốn tiếp xúc với bạn. Viết câu luộm thuộm thì thường tư duy cũng luộm thuộm.
+ Văn hóa hacker
Văn hóa hacker là văn hóa hiến tặng. Bạn đạt được danh tiếng trong cộng đồng hacker không phải vì bạn có tài năng hơn người mà vì bạn cho đi thời gian, sự sáng tạo của mình, thành quả của mình. Văn hóa hacker không chấp nhận tính vị kỷ.
Để được cộng đồng hacker công nhận, theo truyền thống, bạn phải viết được những chương trình mà cộng đồng đánh giá là hay, hữu ích và bạn tặng mã nguồn cho cả cộng đồng sử dụng. Hiện nay, cộng đồng hacker và cộng đồng mã nguồn mở hầu như là hai cách gọi khác nhau của cùng một thực thể.
Nếu là người mới, bạn nên phục vụ cộng đồng bằng cách kiểm lỗi (test) cho các chương trình mã nguồn mở. Từ việc kiểm lỗi, bạn có thể dần dần chuyển qua việc sửa lỗi (debug) và thay đổi mã nguồn. Quá trình này giúp bạn học được rất nhiều.
+ Phong cách hacker
Ngoài những việc có liên quan đến máy tính, bạn cũng cần chú ý những kỹ năng khác giúp bạn thấm nhuần tinh thần hacker chân chính:
- Học tiếng mẹ đẻ của bạn cho thật tốt. Dù cho có định kiến rằng đã là lập trình viên thì không thể viết văn, tất cả những hacker mà tôi biết đều viết văn rất tốt.
- Đọc truyện khoa học viễn tưởng. Các nhân vật trong truyện khoa học viễn tưởng thường có dáng dấp của một hacker điển hình.
- Luyện tập một môn võ thuật. Tinh thần võ đạo rất giống với tinh thần hacker.
- Học cách thiền định. Để học thiền, bạn không nhất thiết phải gia nhập tôn giáo nào đó hoặc từ bỏ tôn giáo của bạn. Tuy nhiên, bạn phải cẩn thận, đừng sa vào những chuyện “điên khùng”.
- Rèn luyện "tai nghe nhạc". Bạn hãy học cách thưởng thức các loại nhạc lạ thường. Bạn cũng nên học hát và học chơi một loại nhạc cụ nào đó thật tốt.
- Bạn cũng cần biết chơi chữ nữa.
Nếu bạn thực hiện những điều nêu trên càng thường xuyên, bạn càng có nhiều phẩm chất của hacker chân chính. Tuy ý nghĩa của những điều ấy không thật rõ ràng nhưng chúng có liên quan đến sự pha trộn các kỹ năng của bán cầu não trái và phải. Đây là điều quan trọng đối với hacker vì hacker vừa là người lý trí, vừa là người hay bước ra khỏi “lý trí” thông thường.
Với hacker thực thụ, biên giới giữa chơi và làm, giữa khoa học và nghệ thuật dường như biến mất. Tất cả hòa trộn thành một cuộc chơi sáng tạo ở mức cao. Hacker luôn luôn có nhiều kỹ năng. Hacker không bao giờ làm gì đó nửa vời, nếu họ quyết định rèn luyện một kỹ năng nào đó họ thường trở nên rất giỏi về kỹ năng đó.
0 nhận xét:
Đăng nhận xét