1. tìm hiểu làm thế nào để chương trình.Điều này, tất nhiên, là kỹ năng cơ bản hack. Nếu bạn không biết bất kỳ ngôn ngữ máy tính, tôi khuyên bạn nên bắt đầu với Python. Nó sạch thiết kế, tài liệu, và tương đối tốt với người mới bắt đầu. Mặc dù là một ngôn ngữ đầu tiên tốt, nó không phải là chỉ là một đồ chơi; nó là rất mạnh mẽ và linh hoạt và rất thích hợp cho dự án lớn. Tôi đã viết một đánh giá chi tiết hơn của Python. Hướng dẫn tốt có sẵn tại trang web Python; đó là một bên thứ ba tuyệt vời ở máy tính khoa học vòng tròn.Tôi đã sử dụng để giới thiệu Java là một ngôn ngữ tốt để tìm hiểu sớm, nhưng phê bình này đã thay đổi tâm trí của tôi (tìm kiếm cho "The cạm bẫy của Java như một lập trình ngôn ngữ đầu tiên" trong nó). Một kẻ tấn công có thể không, như họ devastatingly đặt nó "cách tiếp cận vấn đề giải quyết như một thợ sửa ống nước ở một cửa hàng phần cứng"; bạn cần phải biết những gì các thành phần thực sự làm. Bây giờ tôi nghĩ rằng nó là có lẽ tốt nhất để tìm hiểu C và Lisp lần đầu tiên, sau đó Java.Có lẽ là một điểm tổng quát hơn ở đây. Nếu một ngôn ngữ không quá nhiều cho bạn, nó có thể là đồng thời một công cụ tốt cho sản xuất và một trong những xấu cho học tập. Nó không phải là ngôn ngữ chỉ có vấn đề này; khuôn khổ ứng dụng web như RubyOnRails, CakePHP, Django có thể làm cho nó quá dễ dàng để đạt được một loại trên bề mặt của sự hiểu biết rằng sẽ để lại bạn mà không có nguồn tài nguyên khi bạn phải giải quyết một vấn đề khó khăn, hoặc thậm chí chỉ cần gỡ lỗi các giải pháp để dễ dàng nhất.Nếu bạn nhận được vào các lập trình nghiêm trọng, bạn sẽ phải tìm hiểu C, ngôn ngữ cốt lõi của Unix. C++ rất chặt chẽ liên quan đến C; Nếu bạn biết một trong những, học tập khác sẽ không được khó khăn. Ngôn ngữ không phải là tốt nhất để cố gắng học tập như là đầu tiên của bạn, Tuy nhiên. Và, trên thực tế, càng có nhiều bạn có thể tránh việc lập trình bằng C năng suất cao hơn, bạn sẽ.C là rất hiệu quả, và rất sparing các nguồn tài nguyên của máy tính của bạn. Thật không may, C được hiệu quả đó bằng cách yêu cầu bạn làm rất nhiều ở độ cao thấp quản lý nguồn tài nguyên (giống như bộ nhớ) bằng tay. Tất cả những gì ở độ cao thấp mã là phức tạp và dễ bị lỗi, và sẽ hấp thụ một lượng lớn thời gian của bạn trên gỡ lỗi. Với ngày hôm nay của máy như mạnh mẽ như họ đang có, điều này thường là một sự cân bằng xấu-đó là thông minh hơn để sử dụng một ngôn ngữ sử dụng thời gian của máy ít hiệu quả, nhưng thời gian của bạn nhiều hơn nữa hiệu quả. Vì vậy, Python.Các ngôn ngữ khác đặc biệt quan trọng đối với tin tặc bao gồm Perl và LISP. Perl là giá trị học tập vì lý do thực tế; nó rất rộng rãi được sử dụng cho hoạt động trang web và quản trị hệ thống, do đó ngay cả khi bạn không bao giờ viết Perl, bạn nên tìm hiểu để đọc nó. Nhiều người sử dụng Perl trong cách tôi đề nghị bạn nên sử dụng Python, để tránh C lập trình trên các công việc mà không cần C máy hiệu quả. Bạn sẽ cần để có thể hiểu mã của họ.LISP là giá trị học tập cho một lý do khác nhau-những kinh nghiệm sâu sắc giác ngộ, bạn sẽ có khi bạn cuối cùng nhận được nó. Kinh nghiệm đó sẽ làm cho bạn một lập trình tốt hơn cho phần còn lại của ngày của bạn, ngay cả khi bạn không bao giờ thực sự sử dụng LISP chính nó rất nhiều. (Bạn có thể nhận được một số kinh nghiệm bắt đầu với LISP khá dễ dàng bằng cách viết và sửa đổi chỉnh sửa chế độ cho soạn thảo văn bản Emacs, hoặc Script-Fu plugins cho GIMP.)Nó là tốt nhất, trên thực tế, để tìm hiểu tất cả năm của Python, C/C++, Java, Perl, và LISP. Ngoài việc là các ngôn ngữ hack quan trọng nhất, họ đại diện cho phương pháp tiếp cận rất khác nhau về lập trình, và mỗi sẽ giáo dục bạn trong cách có giá trị.Nhưng lưu ý rằng bạn sẽ không đạt được mức độ kỹ năng của một hacker hoặc thậm chí chỉ là một lập trình viên chỉ đơn giản bằng ngôn ngữ tích lũy-bạn cần phải tìm hiểu làm thế nào để suy nghĩ về lập trình vấn đề trong một cách tổng quát, độc lập của bất kỳ một ngôn ngữ. Để có một kẻ tấn công thực sự, bạn cần để có được đến điểm mà bạn có thể tìm hiểu một ngôn ngữ mới trong ngày bởi liên quan trong hướng dẫn sử dụng để những gì bạn đã biết là gì. Điều này có nghĩa là bạn nên tìm hiểu một số ngôn ngữ rất khác nhau.Tôi không thể cung cấp cho hoàn thành hướng dẫn về làm thế nào để tìm hiểu để chương trình ở đây-đó là một kỹ năng phức tạp. Nhưng tôi có thể cho bạn biết rằng cuốn sách và các khóa học sẽ không làm nó-nhiều, có lẽ hầu hết các hacker tốt nhất là tự học. Bạn có thể tìm hiểu các tính năng ngôn ngữ — bit của kiến thức — từ cuốn sách, nhưng tâm-Set làm cho kiến thức vào kỹ năng sống có thể được học chỉ bằng cách thực hành và học nghề. Những gì sẽ làm điều đó là (a) đọc mã và (b) bằng văn bản mã.Peter Norvig, who is one of Google's top hackers and the co-author of the most widely used textbook on AI, has written an excellent essay called Teach Yourself Programming in Ten Years. His "recipe for programming success" is worth careful attention.Learning to program is like learning to write good natural language. The best way to do it is to read some stuff written by masters of the form, write some things yourself, read a lot more, write a little more, read a lot more, write some more ... and repeat until your writing begins to develop the kind of strength and economy you see in your models.I have had more to say about this learning process in How To Learn Hacking. It's a simple set of instructions, but not an easy one.Finding good code to read used to be hard, because there were few large programs available in source for fledgeling hackers to read and tinker with. This has changed dramatically; open-source software, programming tools, and operating systems (all built by hackers) are now widely available. Which brings me neatly to our next topic...
đang được dịch, vui lòng đợi..
