Entendendo Algoritmos Na Visão de Um Desenvolvedor Android
(3403) (1)
CategoriasAndroid, Design, Protótipo
AutorVinÃcius Thiengo
VÃdeo aulas186
Tempo15 horas
ExercÃciosSim
CertificadoSim
CategoriaEngenharia de Software
Autor(es)Vlad Khononov
EditoraAlta Books
Edição1ª
Ano2024
Páginas320
Tudo bem?
"Sem curso técnico, sem faculdade (faculdade para quê?). Aprendi a programar sozinho".
Você certamente já ouviu este discurso, certo? Alias, é possível que você mesmo sustente essa narrativa.
Não é incomum encontrarmos desenvolvedores que são autodidata. Aprendem a programar nos livros, nos cursos digitais (os informais), nos fóruns, nos blogs e nas redes sociais.
E sim, muitos desenvolvedores autodidata são realmente bons. Têm uma facilidade invejável para aprender qualquer novo recurso de programação.
Mas… e isso é sim apenas a minha opinião… os autodidatas muito bons em desenvolvimento de software são exceções.
Já informo que vai soar no mínimo um pouco soberbo, não é nem de perto a minha intenção. Mas baseando-se nos contatos que eu tenho com desenvolvedores autodidata…
a maior parte deles têm problemas com a base, fundamentos, do desenvolvimento de software.
Por exemplo, não é comum entender (por conta própria) o que está ocorrendo em memória quando o projeto de aplicativo está em execução. O que realmente ocorre quando um método recursivo é utilizado como algoritmo solução…
que cada invocação do mesmo método… mesmo sendo o mesmo método… cria uma sequência de novos objetos em memória.
Não é intuitivo, como autodidata, entender que utilizar uma busca simples em uma lista ordenada é muito mais "caro" do que uma busca binária.
Muitos cursos digitais informais (entenda informais como "sem reconhecimento do MEC"), por exemplo, focam muito na sintaxe da linguagem e acabam não informando que quanto mais propriedades de classe, mais tempo a memória se mantém ocupada por, inúmeras vezes, variáveis que não mais são úteis em execução…
variáveis que poderiam ser apenas parâmetros em métodos.
Ao menos para o desenvolvimento de aplicativos, quando os fundamentos são bem entendidos o nosso "arsenal" de ferramentas e de criatividade fica muito mais poderoso no dia a dia profissional.
Além do mais… todo o restante, a parte mais complexa sobre desenvolvimento, passa a ser de fácil entendimento.
E de forma alguma entenda isso como um "manifesto pró faculdade" ou pró curso formal de TI (bacharelado, técnico, tecnólogo, …).
A ideia aqui é simplesmente enfatizar que a base deve sim ser buscada e que ela é muito mais e vem bem antes do que dominar sintaxe de linguagem de programação de propósito geral (Kotlin, Java, Python, PHP, …).
Hoje em dia, além de desenvolvedor Android eu também tenho alunos de programação desta mesma plataforma.
E para mim é muito valioso saber mostrar os conteúdos de desenvolvimento de maneira que todos os alunos consigam entender.
Devido a isso eu tenho que cada vez mais fortalecer a minha base em codificação.
E um dos caminhos que vejo como inteligente é lendo alguns dos livros que seguramente eu indicaria para qualquer profissional desenvolvedor de software.
Estou falando de livros independentes de paradigmas de programação e de linguagens. Digo, independentes de linguagens desde que essas não sejam linguagens especificas de domínio - DSL - pois aqui o "barulho" é outro.
E sim, um desses títulos é o livro "Entendendo Algoritmos" de Aditya Bhargava.
Acredite:
Eu somente li este livro porque eu o comprei. Não estou recebendo nenhum centavo (e nem livros) da Novatec para fazer esta resenha.
Mas nem por isso vou ficar com receio de indicar algo que sei que é bom e será muito útil na comunidade de desenvolvedores. Ao menos à comunidade de desenvolvedores Android que também me acompanham aqui no Blog.
E olha que eu também sou autor de livros de desenvolvimento. E quando eu indico a você algum outro livro de TI, acredite… eu estou simplesmente fortalecendo um concorrente.
Enfim… sem mais demagogia: o livro de Aditya Bhargava é excepcional e não tem nada de complexo.
Eu sou graduado em TI e tenho MBA. E com total segurança falo a ti que este livro tem seguramente a base de desenvolvimento de software que qualquer curso formal de TI ao menos deveria lhe dar.
Então, principalmente para você que é autodidata ou que está apenas iniciando em desenvolvimento de software: vale muito o investimento nesta leitura.
A base bem fundamentada sobre:
- Complexidade de código;
- Algoritmos de busca;
- Algoritmos de ordenação;
- Consumo de memória;
- …
Tudo isso você terá neste título.
Mas, Thiengo. Meu negócio é vídeo aula. Eu não sou nada fã de livros. O que faço?
Se esforce! Comece lendo poucas páginas.
Este é um daqueles títulos que vale a pena tirar alguns minutos de diversão diária para investir na leitura dele.
Principalmente porque os conteúdos são abordados na ordem correta e com exemplos extremamente simples, que facilitam consideravelmente a compreensão do assunto foco do capítulo.
Os exercícios são ainda mais tranquilos (eu os reproduzi em Kotlin, pois eles são apresentados em Python) e todos têm suas respostas ao final do livro.
O único ponto negativo do livro é que ele fala também sobre aprendizagem de máquina (machine learning). Mais precisamente sobre K-vizinhos.
Para um título "base" como este eu não escolheria falar sobre aprendizagem de máquina. Isso não é nem de perto conteúdo para quem está iniciando.
Mas o autor consegue dar uma pincelada superficial o bastante para não assustar o leitor.
Enfim. Eu precisava vim aqui e compartilhar com você sobre esse título que, ao menos para desenvolvedores autodidata de aplicativos Android, deve ser tratado como um recurso base de estudo.
Tanto ele como inúmeros outros, até mesmo o livro Lauren Ipsum de Carlos Bueno.
Thiengo, o livro "Lauren Ipsum" é para jovenzinhos que querem aprender mais sobre TI, não?
Não mesmo. É um livro com uma abordagem (bem) diferente sobre o que é desenvolvimento de software.
Não faça pouco caso de "Lauren Ipsum". É um outro grande título para fortalecer ainda mais os seus fundamentos, a base, do desenvolvedor.
Para finalizar, leve isso a sério (e o título "Entendendo Algoritmos" vai lhe ajudar neste quesito):
Entenda o que ocorre na memória do aparelho quando as estruturas de dados que você escolheu para seu projeto de aplicativo estão em execução.
Isso vai literalmente te levar para outro patamar.
Então é isso.
Se houverem dúvidas sobre o título ou se você quiser recomendar algum outro… deixe logo abaixo nos comentários.
E não se esqueça de se inscrever na lista de e-mails do Blog 📩 (que é gratuita) e assim receber também os conteúdos exclusivos que eu libero somente lá.
Abraço.
Comentários Facebook