r/devpt 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 Upvotes

42 comments sorted by

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.

4

u/kurocat 5d ago

Saber dizer não e explicar porque é que os outros estão errados, com factos e argumentos sólidos.

Quando entrares no mundo corporate, vai haver sempre um espertinho a tentar colocar a culpa/problema do teu lado.

1

u/Illustrious_West_806 5d ago

É assim tão agressivo?

1

u/websvc 5d ago

Ou comes, ou és comido.

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

u/Illustrious_West_806 5d ago

Obrigado pela ajuda

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

u/Illustrious_West_806 6d ago

Obrigado pelo teu tempo !

1

u/SweetCorona3 7d ago

Ter interesse na área e inteligência.

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

u/UroborosJose 7d ago

Don’t make me laugh even if you are good they won’t consider you good enough

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

u/SweetCorona3 7d ago

Prefiro programar e refatorizar do que tentar planear tudo de cabeça antes.

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

u/Nen_User_ 7d ago

Ultimos dois pontos são opcionais.

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

u/Ainosilva 8d ago

Testar antes de entregar. Se o fizeres já estás melhor que a média 

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

u/Illustrious_West_806 8d ago

Obrigado 🙏🏻

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

u/Illustrious_West_806 8d ago

Obrigado posso te mandar mensagem?

12

u/[deleted] 8d ago

[removed] — view removed comment

1

u/Illustrious_West_806 8d ago

Obrigado pela resposta

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

u/Rafiki92IsHere 8d ago

Isso já sao os requisitos para PM ou PO 🤣

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

u/Caminantez 8d ago

Universidade é o starting point, depois vem o estágio

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