Làm thế nào để
Cộng đồng dành cho những ai có ước mơ trở thành Hacker
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ể'. Để hiểu thêm về cộng đồng hacker và văn hóa hacker, mời bạn xem phần lược dịch bài viết How To Become A Hacker của Eric Raymond, một thi sĩ, nhạc sĩ nghiệp dư, một xạ thủ súng ngắn, một huyền đai đệ nhất đẳng Thái Cực Đạo và là... một trong những người sáng lập phong trào nguồn mở.
Làm sao để trở thành một hacker
Hacker là ai?
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ù. 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 đã ngớ ngẩ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 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
Để trở thành hacker, có những kỹ năng cơ bản mà bạn phải học.
Học lập trình
Nếu bạn chưa biết ngôn ngữ lập trình 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à ngôn ngữ lập trình 'đồ 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 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 ngôn ngữ lập trình thì chưa thể đạt đến trình độ cần thiết của một hacker, 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 ngôn ngữ lập trình nào. Để trở thành một hacker thực thụ, bạn phải đạt đến trình độ có thể học một ngôn ngữ lập trình mới trong vài ngày bằng cách liên hệ nội dung của tài liệu về ngôn ngữ lập trình đó 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 ngôn ngữ lập trình 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à ngôn ngữ lập trình 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à ngôn ngữ lập trình tốt để học vỡ lòng về lập trình.
Perl và LISP cũng là ngôn ngữ lập trình đặc biệt quan trọng đối với hacker. Perl rất được ưa chuộng trong việc tạo trang mạng độ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.
Eric Raymond, một thi sĩ, nhạc sĩ nghiệp dư, một xạ thủ súng ngắn, một huyền đai đệ nhất đẳng Thái Cực Đạo và là... một trong những người sáng lập phong trào nguồn mở
Học cách dùng Unix nguồn mở
Muốn đạt đến kỹ năng của hacker, 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. Vì là người Mỹ, tôi rất ngần ngại nói ra điều này, sợ bị cho là có tư tưởng bá quyền văn hóa, nhưng các hacker ở những nước không nói tiếng Anh thúc giục tôi nói rõ rằng 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. 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 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à là 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 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 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 và bạn sẽ trở thành tấm gương cho các thế hệ hacker sau này.
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:
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. 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 đó