Вполне возможно потратить большую часть / всю вашу карьеру на значительную полезную работу с минимальным знанием алгоритмов и структур данных.
Минимальный уровень знаний алгоритмов и datastructures, для того , чтобы быть успешным, потребует от вас:
- знать о большинстве из них (в том числе время от времени читать новые)
- знать, где найти хорошие, проверенные, работающие реализации
- уметь сравнивать алгоритмы и их полезность
- быть в состоянии правильно скопировать один из примера с открытым исходным кодом в вашу конкретную среду, с небольшим количеством настроек
Там нет * максимум * . Если вы хотите, вы можете перейти на уровень PhD и выше. Его полезность напрямую связана с тем видом работы, который вам интересен, и с тем, какую работу вы считаете наиболее интересной и полезной.
Тем не менее, в качестве приблизительного (но не абсолютного) руководства, чем ниже будет уровень, более ресурсоемкий и менее автоматизированный язык, инфраструктура и приложение, над которым вы работаете, тем выше требуемый уровень квалификации, когда это произойдет алгоритмам и структурам данных. Например, реализация алгоритма Укконена в ассемблере, скорее всего, но не обязательно, будет означать, что вам понадобится понимание уровня мастера и задействованных структур данных.
В вашей конкретной ситуации, переходя от фона разработки Java к работе с iO, при прочих равных условиях, вы ожидаете немного более высокого требования к вашему общему пониманию алгоритмов и структур данных. Вы захотите иметь возможность эффективно работать на устройстве с меньшим количеством доступных ресурсов. Кроме того, ожидайте добавить пару новых категорий в свой арсенал - особенно, вы захотите узнать больше об управлении памятью.