Цілком можливо провести більшу частину / всю свою кар’єру, роблячи значну, корисну роботу, лише мінімально знаючи алгоритми та структури даних.
Мінімальний рівень знань алгоритмів і datastructures, для того , щоб бути успішним, зажадає від вас:
- пам'ятайте про більшість із них (включаючи читання нових, періодично, коли вони виходять)
- знати, де знайти хороші, перевірені, працюючі реалізації
- вміти порівнювати алгоритми та їх корисність
- вміти правильно скопіювати один із прикладів з відкритим кодом у ваше конкретне оточення, за допомогою невеликого тріскання
Немає * максимуму * . Якщо ви хочете, ви можете перенести своє дослідження на рівень доктора філософії та за її межами. Це корисність безпосередньо пов'язана з тим видом роботи, який вам цікавий, і з тим, який вид роботи ви вважаєте найбільш цікавим і корисним.
Це говорить про те, що, як груба (але не абсолютна) настанова, чим більш низьким, тим більш ресурсомістким і менш автоматизованим буде мова, рамки та додатки, над якими ви працюєте, тим вище необхідний рівень кваліфікації, якщо мова йде про до алгоритмів та структур даних. Наприклад, реалізація алгоритму Укконена в збірці, ймовірно, але не обов'язково, означатиме, що ви хочете зрозуміти рівнем майстра алгоритму та структури даних, що займаються.
У вашій конкретній ситуації, переходячи від передумови розвитку Java до роботи над iO, при інших інших рівнях, очікуйте трохи більшого попиту на ваше загальне розуміння алгоритмів та структур даних. Ви хочете мати можливість ефективно працювати на пристрої з меншою кількістю доступних ресурсів. Крім того, розраховуйте додати до свого арсеналу пару нових категорій - головне, ви хочете дізнатися більше про управління пам'яттю.