Para um bom desenvolvedor Android, eu preciso aprender estruturas de dados e algoritmos também?
Embora o conhecimento específico de DSA seja't necessário para qualquer programação de alto nível, é recomendado ter pelo menos algum conhecimento básico do que é um array ou Linked List e como implementar um, digamos, Java.
Dizendo que, é altamente recomendado fazer um curso DSA se você puder, ele explicará tanto sobre a forma como os computadores funcionam, você'será hipnotizado e bem versado na arte de resolver problemas computacionais, que pegar qualquer nova estrutura ou linguagem será um "no brainer" (apenas uma questão de aprendizagem de sintaxe e restrições do ambiente operacional).
I'd amount it to: if you don't want to be coding blind folded (or only have a halff-arsed interpretation of what you're actually utilising, do DSA. :) ).
Frameworks/new languages are easy/quick to learn, DSA takes a bit more thorough commitment. It's basicamente as estruturas de engenharia de TI. Espero que isso ajude a esclarecer as coisas!
No entanto, Java fornece a quantidade de abstração necessária para que NÃO todos os Desenvolvedores tenham que conhecer DSA profundamente. Entretanto, ter o conhecimento da DSA equipado lhe dará uma compreensão mais completa e ampla do que realmente compõe um programa e como projetar um código elegante em qualquer ambiente.
A qualquer motorista pode dirigir uma vez que se acostumou com suas regras locais de direção, mas quantos deles realmente sabem como um carro funciona e/ou podem reparar um? Agora isso'é a respectiva diferença entre conhecer um ambiente/idioma (menos DSA) e conhecer um ambiente/idioma + DSA.
tl;dr: Sim, DSA é benéfico saber, especialmente para entrevistas de trabalho também. Aí's uma boa razão para as empresas testarem esse conhecimento, pois ele diferencia os medíocres Codificadores/Programadores/Desenvolvedores dos bons/grandes/espantosos. (Eu acho que isso significa que o Google [e muitas outras empresas de tecnologia] encontram uma necessidade de nomear seus Desenvolvedores, 'Engenheiros de Software' hah //A classe superior de título por percepção talvez~)
Artigos semelhantes
- Que estruturas de dados básicos e algoritmos se deve aprender antes de iniciar uma programação competitiva?
- Qual é a diferença entre um desenvolvedor Android, um desenvolvedor de aplicativos Android, e um desenvolvedor de framework Android?
- Quais são os 10 algoritmos que se deve saber para resolver a maioria dos problemas de algoritmos?
- Como aprender a usar estruturas de dados no desenvolvimento de aplicações Android