Para amigos programadores ou aspirantes(como eu), gostaria de saber opiniões em relação ao aprendizado em desenvolvimento de software, mais especificamente com:
No que se aprofundar primeiro? Redes ou banco de dados?
Tenho uma noção básica, talvez menos que básica, dependendo de quem esteja lendo, mas sinto que devo me aprofundar mais nesses tópicos para continuar, dá aquele “próximo passo”.
Tenho certeza que preciso me aprofundar mais nesses assuntos para conseguir construir cada vez melhores aplicações e saber resolver problemas de forma mais “fácil”, porém fico na dúvida entre qual estudar. Poderiam compartilhar suas escolhas nesse sentido e me dizer como faziam?
obs:eu não estou aqui atrás de receita pronta e vindo saber o que uma pessoa faz para replicar, estou apenas querendo pontos de vistas que talvez não esteja percebendo.
Na minha opinião os dois eu acho que são indispensáveis para a área, a minha questão é qual é mais. Pois já tentei estudar os dois mas percebi que não da certo kkk, pelo menos não para mim
Vejo bastante dev perguntar isso, olha de o proximo passo em BD quanto sentir que já sabe bastante da linguagem que tu esta aprendendo, hora que chega a confiança, ai sim você aprende Banco de Dados ou Redes, foi como fiz, kkkk sim os dois são super indispensáveis para desenvolvedor.
Olha, na minha visão, o ideal é você pensar no que vai te trazer mais retorno imediato no desenvolvimento de aplicações. Geralmente, banco de dados tem um impacto mais direto no dia a dia, porque quase toda aplicação que você vai construir vai precisar armazenar e recuperar dados de alguma forma. Entender modelagem, consultas SQL e otimizações básicas já te dá muita força para construir coisas mais robustas.
Redes são importantes, mas o nível de aprofundamento que você precisa depende do tipo de aplicação que quer criar. Se for algo web, entender HTTP, REST, sockets básicos já é suficiente para começar. Aprofundar em protocolos de rede mais complexos só vai ser realmente útil em cenários específicos, como sistemas distribuídos ou aplicações de alta performance.
Minha sugestão: foque primeiro em banco de dados até se sentir confortável com modelagem, queries e performance, e vá complementando com conceitos de redes na prática, conforme for precisando para fazer sua aplicação “funcionar na vida real”.
No fim, a melhor forma de aprender mesmo é construindo projetos, porque você vai perceber na prática o que faz mais diferença.
Na minha opinião, aprender assuntos de forma separada não é uma boa estratégia se o seu objetivo é aprender a fazer boas aplicações. Eu diria para você encontrar um projeto que queira pôr em prática, assim, você vai mesclar todos os conceitos importantes na produção de um software.
Por exemplo, alguns desafios que costumam surgir em apps reais:
Tornar a interação com o banco de dados de forma offline possível (persistência offline);
Observar mudanças no banco de dados em tempo real;
Realizar tarefas pesadas no banco de dados sem engasgar a experiência do cliente;
Apresentar listas com dezenas de milhares de itens sem torrar a internet/bateria do cliente;
Modificar a estrutura de um banco de dados que já está em produção, sem desligar o servidor, por os dados em risco ou quebrar a experiência do usuário;
Impedir que seu cliente A veja dados de outros clientes;
Impedir que um cliente abuse de custos em servidor;
Eu poderia continuar, criar uma lista enorme, mas como você pode ver, fazer um bom trabalho no banco de dados ou com redes, é sobre atender os requisitos da aplicação na totalidade e fazer isso de forma confiável e robusta.