Primeiramente,
Ficar apertando no REPLY de um assunto que estava encerrado não é a conduta correta. Muito menos porque cada um dá reply em um e-mail e vira sacanagem.
No que me diz respeito, eu fiz uma comparação VÁLIDA e REAL. Existe uma GIGANTE diferença entre REALIDADE e MENTALIDADE, uma coisa é o que você acha e outra é o que existe. (Comercial x Científico) (Bacharel x Tecnólogo).
Se alguém discorda do que eu falei, perfeito, esse é o intuito da lista, mas sinto muito por ser realista. Afinal eu estudo numa faculdade de Analise de Sistemas e não de Ciência da Computação e sei bem o que estou falando. Todo o meu conhecimento cientifico é obtido aparte. Concordo com muitos que isso não é JUTIFICATIVA, mas é um FATO.
Em relação ao Cormen direi: “It’s a long way to the TOP if you wanna rock’n’roll”, o Cormen é o começo da estrada e não o final.
No mais discutam a vontade, mas não distorçam o que eu falei. E por favor parem de usar aquele e-mail que o assunto já foi resolvido e tornou-se outro tópico.
Abraço,
Rafael Soares (indo pra aula de C nível ameba).
Olá, Rafael e pessoal da lista.
Eu gostaria de expor algumas opiniões que vão na direção do que você
escreveu originalmente. Tenho visto que a lista é composta por muitos
estudantes e acho que vale a pena expor essas opiniões, principalmente
por que já tenho tempo de mercado que deve ser superior à idade de
alguns da lista, principalmente aqueles que acabaram de ingressar na
faculdade. E eu acredito que é uma forma daqueles que estão no fim da
carreira, como eu, renovarem as pessoas que estão iniciando-se.
Quisera eu ter um tutor quando aprendi a programar.
O mundo científico é o mundo ideal. Os projetos de software nesse
mundo usualmente resolvem um domínio de problemas que não se encontram
no dia-a-dia da computação comercial. É uma característica do setor.
Aplicações especialistas, como cálculo de ondas de choque para o
desenvolvimento de armas estratégicas, ou simulações climáticas são
áreas cujas classes de problema não se encontram no dia-a-dia da
computação dita "comercial". É possível, por exemplo, gastar-se tempo
argumentando-se a validade ou calculando-se a complexidade de
algoritmos, coisa impossível no mundo comercial.
Esse conhecimento teórico é, então, inválido para o dia-a-dia no "chão
de fábrica"? Claro que não. O conhecimento é uma ferramenta a mais na
mão do programador, analista e arquiteto de sistemas. Imagine que cada
profissional tem a seu lado uma caixinha de ferramentas que ele usa
para trabalhar. Fazendo um paralelo, imagine um borracheiro. Ele pode
tirar a roda do seu carro com uma chave estrela ou pode usar uma
parafusadeira pneumática para isso. O resultado é o mesmo, mas o
sujeito da parafusadeira pneumática será mais eficiente. Da mesma
forma, um programador com mais conhecimento tende a resolver os
problemas corriqueiros de maneira mais rápida e eficaz, pois tem à mão
mais ferramentas do que um programador com pouco conhecimento.
No mundo comercial o importante não é saber tudo, mesmo por que é
impossível. Porém, é importante desenvolver o bom senso a ponto de
balancear a teoria com a prática. A regra geral é escrever a menor
quantidade possível de código que resolva o problema proposto, da
forma mais rápida possível e de maneira eficaz. Para que isso ocorra,
é necessário muito estudo. Escrever código simples e objetivo é
incrivelmente difícil.
Um conselho que deixo para quem está iniciando-se na profissão é esse:
não ache que saber linguagem A, B ou C o torna melhor ou pior que
outro sujeito que sabe uma linguagem D ou E. Saber uma linguagem de
programação não faz ninguém programador, como saber português não faz
ninguém escritor. Programador programa em qualquer linguagem, não
interessa qual seja. Aprender uma nova linguagem é apenas questão de
aprender novas regras de sintaxe e semântica, que via de regra são
sempre muito parecidas entre as linguagens modernas. Se acham que
estou falando asneira, verifiquem as linguagens Java, C, C++ e Python,
por exemplo. As semelhanças são enormes. A diferença entre um sujeito
que apenas sabe linguagens de programação de outro que sabe estrutura
de dados, algoritmos, programação modular e conceitos de programação
procedural, orientada a objetos e orientada a aspectos será justamente
a caixa de ferramentas que eu citei. Quem vai resolver o problema de
maneira mais rápida e eficaz?
Espero ter contribuído com a lista. E perdão pelo texto longo. Julguei
importante abordar este tema dessa maneira.
> A prepotência, arrogância e insolência não é bem vinda em lugar algum!
Concordo plenamente. O trabalho, conforme o conhecemos, é um evento
social. E a prepotência, arrogância e a insolência são falhas que
acabam por avacalhar com a sociabilização.
> Por via de regra será o mais esperto e produtivo que nem sempre é o mais
> erudito do time.
> O bom senso é algo relativo (ele depende de uma série de fatores que vão
> sendo refinados com a experiência de vida) e muitas vezes ele é confundido
> com senso comum, sendo-se que não é anormal eles serem antagônicos.
> Conhecer arquitetura computacional, engenharia de software, paradigmas de
> programação e saber olhar pela janela, atrás da porta e debaixo do tapete
> também é importante, como dominar as linguagens; é o que fará o profissional
> perceber as diferenças (por exemplo) entre Java, C, C++ e Python; e como
> suas peculiaridades o tornam tão distintas e adequadas (ou não) para
> determinado problema. Porém o senso comum do contexto no qual ele está
> inserido pode não permitir que ele empregue as soluções que o seu bom senso
> indica; amparado por seu conhecimento e experiência. Quem terá um bom senso
> melhor em programas desenvolvidos com uma linguagem como C++, por exemplo,
> normalmente é aquele que tem o maior domínio, portanto conhecer a linguagem
> profundamente é necessário.
>
Excelente ponto-de-vista. Concordo plenamente.
> Este, no fundo, é um tema recorrente...
Tenho visto esse tema ocorrendo com bastante frequência mesmo.
Abraços!
Ronaldo