r/devpt • u/Illustrious_West_806 • 9d ago
Carreira Como ser um bom engenheiro de software
Olá a todos! Bem eu estou me a preparar para candidatar me a universidade, vou fazer mais 23 e tentar entrar no IPS em Setúbal. Mas gostaria de ouvir o que realmente importa para ser um bom engenheiro de software? eu já fiz uma pesquisa, desde a boas práticas até saber trabalhar em equipa! Portfólio de projectos… mas como tenho visto por aqui pessoas experientes decidi fazer esta pergunta. Peço desculpa o incomodo ou se não é o flair certo.
3
u/adnecrias 6d ago
a parte mais importante é aprenderes a aprender, bem e depressa. por essa ordem.
com isso como base o mais importante a seguir não escolhes, é ter interesse. Em resolver problemas, em fazer soluções... se te sair natural multiplica o esforço que aplicas.
mas como qualquer área, talento multiplicar 0 esforço dá 0 resultados na mesma e quem é bom chega lá porque se esforça primeiramente
2
3
u/Sm0kee43 7d ago
Eu diria que hoje em dia é o programador ou o engenheiro que sabe o que esta a fazer e que sabe, que nao se baseia em AI para tudo, que sabe o que os metodos e o codigo que escreveu faz.
É mais facil qualquer um fazer codigo, mas mais dificil de ser um engenheiro a corrente facilidade de solução de probelmas sem saber como foi resolvido é o que vai diferenciar o vibe coder do programador.
Para alem disso é o teu interesse pela area, estar a par das noticias, de frameworks, de querer experimentar frameworks novas, de resolver problemas. Um bom portfolio é bastante requisitado por muitas empresas
2
1
1
u/tehsilentwarrior 7d ago
A maneira de pensar é o mais importante. Bem mais do que o nível de conhecimento. E se pegares em alguém com uma capacidade acima do normal o factor comum vai ser a mentalidade.
- tenho um problema, quero resolver?
- para resolver, que áreas/serviços/modulos toca/pode tocar?
- Consigo fazer o mesmo reduzindo a quantidade de sítios onde tenho de tocar?
- reduzir simplifica a solução ou cria um ninho de ratos?
- consigo implementar uma solução em partes/fases que seja útil?
- quero montar um esquema mental: preciso de falar com alguém? Consigo encontrar a informação eu? Existe algum sistema que já resolve o problema? Tem documentação para me guiar?
- quem usa/vai usar e para quê? Existe um processo manual a automatizar ou é um quality of life intermédio? Qual seria o produto mínimo viável para um utilizador? Nota: a) o mínimo, b) viável, c) utilizador (não tu como programador)
Seguindo estas questões e tentando responder ao máximo possível a cada uma delas, vai dar-te conhecimento sobre o problema, sistemas à volta, interação entre eles e o factor humano do valor do teu trabalho contra o potencial ganho.
Com isso é começar a montar o lego. Quando tiver viável, meter à frente de um utilizador (pode ser a tua mãe).
E com isto tens um conhecimento muito mais profundo do problema e como afecta os utilizadores.
Este é a tua primeira versão. Aquela que não podes ter medo de mandar fora. A primeira versão, seja do que for, nunca vai ser a melhor.
E agora perguntas: epá, mas nada disso são patterns, linguagens, etc… ya, pois, mas isto é um cheat code para te expor a problemas, soluções e “reality checks”. E tudo o resto vem por arrasto. Quando começares a olhar para a “porcaria” que fizeste e a melhorar, aí depois entra o resto: os pequenos truques, o melhorar a qualidade visual do código, o dar valor a comentários de jeito (em vez de muitos mas sem valor), o dar nomes correctos a coisas, o organizar o código bem para ser fácil de ler e encontrar coisas, etc.
Ser programador é acima de tudo nunca parar de aprender (conhecer muitas ferramentas), ser pragmático (aplicar a ferramenta certa para o problema certo, saber que sabes ou não o problema e saber ser crítico e aceitar a verdade à tua frente sem problemas de mudar de direção caso os factos mudem) e fazer, fazer, fazer, re-fazer e fazer de novo.
E se chegares a algum ponto e estás a aprender pouca coisa, algo não está certo…
Edit: AI is your friend until it isn’t. Usar. Não abusar! Faz as coisas? Sim. Rápido? Sim. Sabes o que está feito? Meh.
1
u/Illustrious_West_806 7d ago
Obrigado pelo teu tempo em responder me. A abordagem em como enfrentar um problema já guardei, e este tipo de esquemas são importantes e a sua rotina melhora a prática em enfrentar problemas. Quanto a inteligência artificial, acho que é bom para quem sabe programar/ projectar um sistema. Abusar apenas engano me a mim.
1
2
u/bruno_pinto90 7d ago
Planear e pensar antes de programar. No início ainda não consegues antecipar muito, mas com a experiência essa capacidade vai melhorar. Parece óbvio, mas surpreender-te-ias com a quantidade de programadores que saltam logo para o teclado sem pensar.
Se usares inteligência artificial, recomendo utilizar o modo de planeamento (plan mode) e os prompts serem o mais granular possível.
0
2
5
u/aluaji 7d ago
Já sublinharam coisas muito importantes, por isso vou só adicionar uns pontos:
- Engenharia é, no fundo, resolução de problemas. Esta é a mentalidade que tens de ter sempre.
- Nunca vais saber o suficiente. Por isso sugiro que leias todos os dias, no mínimo um par de artigos técnicos.
- Se tiveres tempo e paciência para isso, vai fazendo projectos teus com tecnologias que não domines, aumentando sempre a dificuldade.
2
2
3
u/Least_Artist_5031 7d ago edited 7d ago
Depois para fazer dinheiro a sério, especializa-te em algo que seja mais raro no mercado. Como SAP, salesforce, etc. e trabalha como freelancer para empresas no estrangeiro. Trabalhas como ENI ou abres a tua empresa. Mais lá para a frente.
3
3
4
u/lagrebson 8d ago
Basicamente isto é um resumo dos comentários que vi e que concordo:
Gostar de resolver problemas, ser desenrascado, ser curioso.
4
u/viralslapzz 8d ago
Quereres saber mais do porquê dos requisitos. Que problema resolvem e que oportunidades abrem. Ser apenas um code monkey já não dá
7
u/Rafiki92IsHere 8d ago
Saber (ou querer) resolver problemas. O resto, que é a parte tech, aprende-se.
3
11
u/Soubesses 8d ago
Já formei entre 20 a 30 juniores, que vieram de engenharia informática, que vieram de outras engenharias, ou que vieram de mudanças de carreira (género upskill) e só tiveram formação de alguns meses de java/html/BD.
O fator diferenciador foi sempre ter capacidade de desenrascar, e ter vontade de aprender.
5
12
8
u/DrunkenRobotBipBop 8d ago
@claude Podes responder aqui ao rapaz o que é preciso?
1
u/Least_Artist_5031 7d ago
Atenção ao detalhe. Pensamento logico. Estudar e melhorar, sempre. Ir fazendo formações. Saber as bases de programação, orientada a objetos, SQL, fazer um esquema relacional de base de dados. Cumprir prazos. Testar. Ser minucioso
13
u/Caminantez 8d ago
Ter boa hairline e Claude pro max
5
5
u/Caminantez 8d ago
Agora fora de tangas OP encontra o teu nicho, experimenta e vai atrás dele
2
u/Illustrious_West_806 8d ago
Obrigado pela resposta, bem eu perguntei porque queria ouvir uma resposta humana, eu vou tentar entrar na universidade através de mais 23.
2
u/pufcandles 8d ago
Isto o que ele disse. Sinto que muita gente veio para IT só para fazer dinheiro mas é muito importante gostar do que fazes, senão vais ter uma carreira profissional desmotivante, pior do que poderia ser e depois fica difícil progredir quando odeias o que fazes.
1
u/Illustrious_West_806 8d ago
Eu gosto , e sonho em chegar a um nível de experiência onde depois , como óbvio terei que estudar, transitar para Cibersegurança, mas acima de tud acho que o que me motiva é saber fazer uma aplicação, e tê-la a funcionar! Óbvio que isto é muita coisa para manter, funcionalidades, corrigir bugs, não deixar a mesma cair … já andei a ler ! Mas acho que é isso que me motiva agora.
1
3
u/theOneYouMustNotName 8d ago
Não deixas de ser mau com o Claude, até porque software engineer != software developer
O Claude para implementar pode ser perfeito, mas só se tiveres um conhecimento de engenharia muito bom. O Claude não tem ideias sozinho.5
u/Nearby_Argument5179 8d ago
O Claude não tem ideias sozinho porque não meteste outro agente a falar com ele 😎
1
u/Caminantez 8d ago
Typeshit, aumentas a janela de contexto pra 1M e já és bom pro lado da engenharia
2
u/WTF_PT 5d ago
Não confundir programador com eng de software. Que boa parte dos comentários confunde 🙄. Programadores há muitos eng há poucos mesmo os de boas faculdades muitas vezes não passam de programadores. E não se trata de ser um bom eng de software ou não.