A Challengers Handbook - General considerations

Chung chung

Tôi đã giải quyết các thử thách và hầu hết tôi không giữ lại ghi chú về các giải pháp. Chỉ gần đây khi tôi bắt đầu viết xuống và giữ lại các ghi chú cho các thử thách. Lợi thế của việc này là rất lớn. Tôi đã hoàn thành 40 thử thách trên một site và không ghi chú. Sau đó ở trình độ mới cái mà yêu cầu 40 cái trước và ghi xuống một ký tự đã được thêm ở cuối mỗi giải pháp. Vào một lần khác tôi đã giải quyết được vài thử thách và nhìn thấy chính xác các vấn đề đó trên một site khác, nhưng tôi lại quên mất cách đã giải quyết lần trước. … Vì thế tôi hi vọng bạn sẽ giữ lại ghi chú về các thử thách bạn đã giải.

Một vài lời khuyên khi bạn thực sự stuck ở đâu đó. Bạn gặp phải một vấn đề và bạn thực sự không tìm thấy bất kỳ cách nào để thử tiếp. Đây là những thứ tốt nhất mà bạn theo:

  • Đợi vài ngày, hãy nghỉ ngơi và sau đó trở lại với một đầu óc tỉnh táo và bắt đầu lại.
    Luôn luôn xem kỹ html source. Chọn tất cả các thứ và ghi chú nếu có điều gì lạ trong mã nguồn. Tôi đã biết các tin nhắn mã hóa trong các tabs và khoảng trắng của mỗi dòng trước khi phân tích cẩn thận. Ghi lại tất cả các script names, và tất cả các pathnames. Nhìn vào bất kỳ cái gì không theo thứ tự. Có thể bạn sẽ tìm thấy những cái như /level1/level2/index.html và nó refer tới images/blah.jpg. Tại sao lại có một thư mục hình ảnh trong level2, hay bất kỳ thứ gì khác?

  • Đọc các comments hiển thị một cách cẩn thận, chúng cung cấp các đầu mối? Tìm kiếm trên google? Suy nghĩ cẩn thận về cái mà bạn tìm thấy và thứ các từ khóa.

  • Tự hỏi bản thân điều gì khiến level này khác với các level khác. Hiện tại Tôi kết thúc một level trên một site và đi tiếp sang cái tiếp theo. Tôi phải nhìn lại xem tên nhiệm vụ khác gì so với cái trước. Tìm trên google về các tên và đoán.

  • Thường xuyên bạn sẽ nhận được các trang html được viết bằng tay trong số rất nhiều các chương trình được generated và đây là quà tặng thực sự. Các code viết tay thường khéo léo và nhỏ. Các đoạn code được generated là một đống lộn xộn. Nếu bạn xem xét kĩ source html, bạn sẽ nhận ra được những khác biệt.

  • Đọc forums. Các sites có forums đọc chúng. Đọc tất cả mọi thứ, thường có các hints tìm thấy trong các bài viết, câu hỏi của mọi người.

  • Nhìn xung quay site. Tôi sẽ đi thẳng vào levels nơi mà bạn thực sự stuck nhìn xem có có links hay downloads nào được ẩn trong challenge nơi nào khác trong site.

Đây là nơi tốt để gợi nhắc bạn một vài công cụ thường ngày được nhiều người sử dụng. Ngày này mọi người thường nói những thứ như “hey I am a Linux user, what about us”? Thật thà mà nói đây là ý kiến của tôi: Tôi sử dụng windows, tôi không thích Linux, trong khi những người dùng bình thường những người thường sử dụng Linux dường như thích cách khó. Họ thích đọc các manuals và họ thích command line tools. Họ thích viết các scripts và họ cài đặt trên hệ điều hành của họ, compiling kernels và làm rối tung mọi thứ. Câu hỏi của tôi là “Bạn đang làm gì vậy”? Vì vậy mà nói, các công cụ tôi nói sẽ là các windows tools, chúng có thể có trên các hệ điều hành khác( và nếu bạn là Mac user thì xin lỗi, …):

  • Một good text editor/multi-purpose editting program. Wordpad là rát rưởi, Notepad cũng lộn xộn, chúng ta cần một cái có thể đọc được nhiều hơn 64k. Lựa chọn của tôi là Ultraedit. UE sẽ tự phát hiện Unix format file và hỏi bạn có muốn chuyển đổi nó khi bạn tải nó. UE là nhanh, UE sẽ sắp xếp, chuyển đổi hiển thị theo dạng hex, syntax highlighting rất nhiều ngôn ngữ từ C tới Perl, so sánh file và formatting phức tạp các macros và tất cả các thứ.

  • Một good hexeditor. Tôi sử dụng Hex Workshop. Tôi đã sử dụng nó trong nhiều năm và tôi thích nó. Nó sẽ làm nhiều thứ tôi mong muốn ở một hexeditor như chỉnh sửa các bytes,… Nó cũng sẽ xors; xoay, … so sánh. Khi bạn thực sự muốn tạo một file bạn cần một hex editor.

  • Một ngôn ngữ. Bạn cần lập trình với ít nhất một ngôn ngữ. Nó sẽ giúp bạn nhiều trong các thử thách. Lựa chọn của tôi là C, và tôi sử dụng MSVC và Borland phụ thuộc vào tính tình của tôi. Đó không phải là tất cả bởi về tôi có thể sử dụng một vài thứ như VBA/Excel, Maple, ASM hay bất kỳ ngôn ngữ nào tôi đã sử dụng và biết trong quá khứ. Học một cái và chuyển qua cái tiếp theo bạn sẽ có 10 lần dễ hơn để học.

    Một numbẻ cruncher. Đây không phải là công cụ thường dùng để … và một vài người sẽ … Tôi đã học Pure Maths và sau đó là MSc vì thế tôi thích có một vài number cruncher/symbolic manipulation program có sẵn cho tôi. Tôi đã mua Maple và tôi học nó. Tôi sử dụng Maple cho nhiều vấn đề.