Ok, então aqui está o meu problema:
Eu trabalho para uma grande empresa, alguns conseguiram um emprego (francamente porque a entrevista foi fácil). Não é que eu não conheça minhas coisas, sou muito bom em entender java, são bibliotecas etc.
Mas, sempre que tento resolver algum problema lógico, acho realmente difícil encontrar uma solução.
Por exemplo, conversion of decimal to roman
quando vi a solução, acho que é um problema simples. Mas eu não era capaz de implementá-lo após 1-2 horas de tentativas!
Sinto-me burro e não vale a pena ser um engenheiro de software. As habilidades de resolução de quebra-cabeças devem vir nativamente para um ótimo programador. Mas quando tento resolver alguns quebra-cabeças, não consigo encontrar uma solução e apenas pesco no google! ... e odeio isso!
Quando um problema é enfrentado (como o recurso implementar xyz) no trabalho, sou bastante rápido e sou respeitado no meu local de trabalho por isso, mas não tenho nenhum orgulho disso. Porque quando tento resolver qualquer problema desafiador em termos matemáticos ou lógicos, eu me atrapalho. Ainda sinto que amo o que estou fazendo (como engenheiro), mas me sinto muito triste por não conseguir resolver alguns problemas difíceis de lógica que os meus amigos apresentam.
Sinto-me desmoralizado :(
TL; DR: Entendo as coisas de um ponto de vista prático (implementando recursos em nosso produto), mas ao tentar trabalhar no problema, digamos ProjectEuler, SUCO demais! E eu preciso afiar meu cérebro!
Então, minhas perguntas são:
- Como devo corrigi-lo? Devo começar por resolver (e me forçar a) projetar problemas de euler? Mesmo que demore horas para resolver alguns problemas básicos ?
- Ou devo voltar ao básico e estudar matemática básica?
- Eu realmente não acho divertido resolver quebra-cabeças. Mas eu quero torná-lo divertido para mim! E acho que, se os entender de uma maneira melhor, gostarei!
PS: Eu nunca fui educado em CS (minha graduação era eletrônica). Mas isso não é desculpa para ser um desenvolvedor ruim.
Obrigado!