Hoàn toàn có thể dành hầu hết / tất cả sự nghiệp của bạn để làm công việc quan trọng, hữu ích, chỉ với kiến thức tối thiểu về thuật toán và cấu trúc dữ liệu.
Các tối thiểu mức độ kiến thức cho các thuật toán và datastructures, để thành công, sẽ yêu cầu bạn phải:
- nhận thức được hầu hết trong số họ (bao gồm cả việc đọc lên những cái mới thỉnh thoảng khi họ đi ra)
- biết nơi để tìm thấy tốt, thử nghiệm, thực hiện làm việc
- có thể so sánh các thuật toán và tính hữu dụng của chúng
- có thể sao chép chính xác một ví dụ từ một ví dụ nguồn mở vào môi trường cụ thể của bạn, với một chút tinh chỉnh
Không có * tối đa * . Nếu bạn muốn, bạn có thể học lên cấp độ tiến sĩ và hơn thế nữa. Tính hữu dụng của nó liên quan trực tiếp đến loại công việc mà bạn quan tâm, và loại công việc nào bạn thấy thú vị và bổ ích nhất.
Điều đó nói rằng, như một hướng dẫn thô (nhưng không tuyệt đối), ngôn ngữ, khung và ứng dụng mà bạn đang làm việc sẽ càng ở mức độ thấp, càng ít tự động hóa thì mức độ kỹ năng cần thiết càng cao. đến các thuật toán và cấu trúc dữ liệu. Ví dụ, việc triển khai thuật toán của Ukkonen trong lắp ráp sẽ có khả năng, nhưng không nhất thiết, có nghĩa là bạn sẽ muốn có sự hiểu biết ở cấp độ thạc sĩ về thuật toán và cấu trúc dữ liệu liên quan.
Trong tình huống cụ thể của bạn, từ nền tảng phát triển Java sang làm việc trên các iO, tất cả những thứ khác đều bằng nhau, mong đợi một nhu cầu cao hơn một chút về hiểu biết chung về thuật toán và cấu trúc dữ liệu của bạn. Bạn sẽ muốn có thể chạy hiệu quả trên một thiết bị có ít tài nguyên hơn. Ngoài ra, hy vọng sẽ thêm một vài danh mục mới vào kho vũ khí của bạn - đáng chú ý nhất là bạn sẽ muốn biết thêm về quản lý bộ nhớ.