È del tutto possibile trascorrere la maggior parte / tutta la tua carriera facendo un lavoro significativo e utile, con una conoscenza minima di algoritmi e strutture dati.
Il livello minimo di conoscenza per algoritmi e strutture dati, per avere successo, richiede di:
- sii consapevole della maggior parte di essi (inclusa la lettura di quelli nuovi ogni tanto che escono)
- sapere dove trovare implementazioni valide, testate e funzionanti
- essere in grado di confrontare gli algoritmi e la loro utilità
- essere in grado di copiare correttamente uno da un esempio open source al tuo ambiente specifico, con un piccolo pizzico di regolazione
C'è no * massimo * . Se lo desideri, puoi portare il tuo studio al livello di dottorato e oltre. La sua utilità è direttamente correlata al tipo di lavoro che ti interessa avere e al tipo di lavoro che ritieni più interessante e gratificante.
Detto questo, come una linea guida approssimativa (ma non assoluta), più la lingua, il framework e l'applicazione a cui si sta lavorando sarà più bassa, più intensiva in termini di risorse e meno automatizzata, maggiore sarà il livello di abilità richiesto quando si tratta di algoritmi e strutture di dati. Ad esempio, l'implementazione di l'algoritmo di Ukkonen in assembly probabilmente, ma non necessariamente, significa che vorresti un livello di master comprensione dell'algoritmo e delle strutture dati coinvolte.
Nella tua situazione specifica, passando da uno sfondo di sviluppo Java al lavoro sugli iO, a parità di altre condizioni, ci si aspetta una domanda leggermente più alta sulla tua comprensione generale di algoritmi e strutture dati. Dovrai 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.