È del tutto possibile trascorrere gran parte della tua carriera facendo un lavoro utile e significativo, con una conoscenza minima di algoritmi e strutture di dati.
Il livello minimo di conoscenza di algoritmi e strutture dati, per avere successo, richiederà di:
- essere consapevoli della maggior parte di essi (inclusa la lettura di quelli nuovi occasionalmente quando escono)
- sapere dove trovare implementazioni valide, testate e funzionanti
- essere in grado di confrontare gli algoritmi e la loro utilità
- essere in grado di copiarne correttamente uno da un esempio open source nel proprio ambiente specifico, con un piccolo ritocco
Non esiste * massimo * . Se lo desideri, puoi portare il tuo studio a livello di dottorato e oltre. La sua utilità è direttamente correlata al tipo di lavoro che ti interessa svolgere e al tipo di lavoro che ritieni più interessante e gratificante.
Detto questo, come una linea guida approssimativa (ma non assoluta), più basso livello, più dispendioso in termini di risorse e meno automatizzato della lingua, della struttura e dell'applicazione su cui stai lavorando, maggiore sarà il livello di abilità richiesto quando arriverà agli algoritmi e alle strutture dati. Ad esempio, l'implementazione dell'algoritmo di Ukkonen in assembly probabilmente, ma non necessariamente, significa che vorrai una comprensione a livello di master dell'algoritmo e delle strutture dati coinvolte.
Nella tua situazione specifica, passando da un background di sviluppo Java a lavorare sugli iO, a parità di condizioni, ti aspetti una domanda leggermente più alta sulla tua comprensione generale di algoritmi e strutture di dati. Ti consigliamo di essere in grado di funzionare in modo efficiente su un dispositivo con meno risorse disponibili. Inoltre, aspettati di aggiungere un paio di nuove categorie al tuo arsenale - in particolare, vorrai saperne di più sulla gestione della memoria.