É inteiramente possível gastar a maior parte / toda a sua carreira fazendo um trabalho significativo e útil, com apenas um conhecimento mínimo de algoritmos e estruturas de dados.
O nível mínimo de conhecimento para algoritmos e estruturas de dados, para ter sucesso, exigirá que você:
- esteja ciente da maioria deles (incluindo a leitura ocasional de novos quando eles forem publicados)
- saber onde encontrar implementações boas, testadas e funcionais
- ser capaz de comparar algoritmos e sua utilidade
- ser capaz de copiar corretamente um de um exemplo de código aberto para o seu ambiente específico, com um pouco de ajustes
Não há * máximo * . Se você quiser, pode levar o seu estudo ao nível de doutorado e além. Sua utilidade está diretamente relacionada ao tipo de trabalho que você está interessado em ter e a qual tipo de trabalho você acha mais interessante e gratificante.
Dito isto, como uma diretriz aproximada (mas não absoluta), quanto mais baixo nível, mais uso de recursos e menos automatizado o idioma, a estrutura e o aplicativo em que você estiver trabalhando, maior será o nível de habilidade exigido. algoritmos e estruturas de dados. Por exemplo, implementar o algoritmo de Ukkonen em montagem provavelmente, mas não necessariamente, significará que você desejará uma compreensão em nível de mestrado do algoritmo e das estruturas de dados envolvidas.
Na sua situação específica, passando de um background de desenvolvimento Java para trabalhar no iOs, todas as outras coisas iguais, espere uma demanda um pouco maior no seu entendimento geral de algoritmos e estruturas de dados. Você poderá executar com eficiência em um dispositivo com menos recursos disponíveis. Além disso, espere adicionar duas novas categorias ao seu arsenal - principalmente, você precisará saber mais sobre gerenciamento de memória.