Chuẩn bị tinh thần cho những thách thức của bản thân [đóng]


15

Chỉ vài ngày trước, tôi phát hiện ra Codility và tôi đã thử thách chúng. Và tôi phải nói. Tôi nhận được phía sau của tôi đưa cho tôi trên một đĩa. Tôi không chắc vấn đề là gì, nhưng tôi sẽ liếm vết thương của mình và chờ đợi giải pháp được đưa ra và so sánh nó với chính tôi. Trong lúc này, tôi muốn sẵn sàng cho thử thách tiếp theo vì vậy tôi đang đọc các bài đăng trên blog trước đó của họ và xem cách giải quyết các vấn đề trước đó của họ. Có rất nhiều điều mới mà tôi chưa từng nghe đến như (cây Cartesian, các thuật toán sắp xếp khác nhau, v.v.)

Vì vậy, làm thế nào để người ta chuẩn bị cho những thách thức như vậy (đặc biệt là độ phức tạp không gian và thời gian O (x)). Tôi nên đọc gì để chuẩn bị cho một nhiệm vụ như vậy?


Gần đây tôi đã nghiên cứu về một phần nào đó để buộc bộ não của tôi phải vặn vẹo (nó sẽ buộc điều này) đặc biệt để giúp trở nên nhanh nhẹn hơn trong việc nghĩ ra các giải pháp. Điều đó nói rằng, tôi cũng đang đọc Hướng dẫn thiết kế thuật toán (pdf trực tuyến miễn phí) và một bản sao bán nhà để xe của Nghệ thuật lập trình máy tính Vol 1 Thuật toán cơ bản của Knuth (cũng là một nguồn đau não nghiêm trọng) cho cùng một mục đích .
Jimmy Hoffa

Câu trả lời:


3

làm thế nào để người ta chuẩn bị cho những thách thức như vậy (đặc biệt là độ phức tạp không gian và thời gian O (x)). Tôi nên đọc gì để chuẩn bị cho một nhiệm vụ như vậy?

Bằng cách chuẩn bị tất nhiên! Đó là một vấn đề thực hành và bắt kịp tốc độ về các lĩnh vực mà bạn cảm thấy ngắn. Cảm ơn Chúa, các nguồn lực khá tốt để khắc phục một khi thiếu thông tin trên internet và Google là bạn của bạn.

Về tài liệu tham khảo tôi sẽ tư vấn cho một số trang web có câu hỏi thách thức lập trình viên. Từ loại câu hỏi đó, bạn có thể xác định những thiếu sót của mình và nghiên cứu cho chúng.

Tài nguyên để tìm:


7

Điều duy nhất bạn có thể làm để chuẩn bị cho mình những bài kiểm tra như vậy là thực hành. Luyện tập nhiều . Có rất nhiều nguồn hỗ trợ tốt cho các lập trình viên trợ giúp, chẳng hạn như topcoder, codegolf, chuyên viên máy tính cho các chuyên viên máy tính, Praxies lập trình, CodeKata, Project Euler, v.v.

Nếu bạn gặp vấn đề với cấu trúc dữ liệu, tốt hơn là bạn nên cập nhật các khái niệm cấu trúc dữ liệu và thuật toán của mình. Nơi tốt nhất cho điều đó là wikipedia, nhưng bạn cũng có thể tìm các khóa học dữ liệu algo trên nptel, coursera, v.v ...


Tôi đã tìm kiếm nhiều hơn cho các tài nguyên như sách, nhưng một số liên kết của bạn là mới và nhiều thông tin.
Daniel Fath

1
@DanielFath: Đọc về nó có ích, nhưng giải quyết vấn đề là một nghệ thuật phải được thực hành nếu bạn muốn trở nên giỏi về nó. Trong thế giới của phần mềm viết, có một số lượng lớn các vấn đề đáng ngạc nhiên mà bạn sẽ gặp nhiều lần. Kinh nghiệm đã giải quyết chúng trước đây cho bạn khả năng phát hiện các biến thể mới và nhanh chóng áp dụng một giải pháp tốt.
Blrfl

Tôi đồng ý với phần thực hành rất nhiều, tôi chỉ đơn thuần là bày tỏ mong muốn có thêm nguồn lực cụ thể , để xem xét câu hỏi đã được giải quyết. Tôi đã đưa ra các câu trả lời (tôi đã đưa ra tất cả các câu trả lời).
Daniel Fath

4

Các bài đăng trên blog bán chính thức về tuyển dụng của Google giới thiệu cuốn sách này: Hướng dẫn thiết kế thuật toán .

Nó rất toàn diện và được viết tốt, với phần 'tham khảo nhanh' có thể giúp ích rất nhiều cho tình huống của bạn, một khi bạn đã đủ quen thuộc với các thuật toán và cấu trúc dữ liệu phổ biến.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.