Salve! Salve! Hoje o post é sobre bom programador, reunir aqui o que acho essencial. Boa leitura e nao esqueça de comentar. Lembre-se a disciplina é a essencial 😀
Após o grande número de acesso e discussão da tradução como ser um bom programador, hoje estarei abordando as qualidades e esforços que julgo importante para diferença entre o bom programador e um programador.
Ser um bom programador
Quanto mais você sabe o que está acontecendo quando vc chama um método melhor programador você é.
Um programador mediano sabe que quando chama o método MessageBox aparece uma janela com uma mensagem na tela. Mas um bom programador sabe que isso faz uma chamada no kernel que chama o drive de vídeo que chama o monitor (há outros passos, não entrei em detalhes).
Você pode ser um bom programador sem saber os detalhes de tudo, até por que isso é impossível “saber tudo”. O que quero mostrar aqui é ir além de um programador mediano. Ter a curiosidade de saber como as coisas funciona é fundamental. Lembre-se informação nunca é demais.
Bom programador tem que conhecer bem um computador e seu funcionamento, ter o poder de abstração, capacidade de resolução de problemas e raciocínio lógico são outras qualidades que contribuem (apesar de que uns acham que apenas sentar na frente do PC e digitar um código que está no livro mandar compilador é programador, cuidado com isso). Porém o essencial é a curiosidade e querer saber o por quê?
O mediano se satisfaz somente com o resultado esperado.
Esforços necessários
Abaixo classifico os esforços necessários e a qualidade de um programador:
– gostar de problemas lógicos
– saber inglês
– gostar de aprender e estudar constantemente
– gostar de ler
– Saber buscar as informações (ter espírito pesquisador)
Claro que existe outras áreas que tem seu percentual de contribuição para a qualidade, como o relacionamento interpessoal, mais esse é um assunto para outro post e não pretendo abordar aqui. 🙂
Gostar de resolver problemas
Aqui são suas refeições, se você não gosta de resolver problemas e não sente prazer em fazer, buscar outra área é bom caminho.
Um ponto importante aqui e na área de T.I é que dar para evoluir o conhecimento de forma paralela, tanto técnico como de outras áreas. Por exemplo, se você trabalhar desenvolvendo software para o mercado financeiro, além de refinar as habilidades que possui na tecnologia (Java) no mesmo processo você vai ter que aprender sobre mercado financeiro e isso aumenta sua bagagem como profissional
Saber inglês
Um bom programador (profissional T.I) é preciso saber inglês, a sintaxe das linguagens de programação é feita de palavras inglês, a documentação da linguagem, ferramentas etc. Quer ficar fugindo do idioma ainda?
Não estou dizendo quem não sabe inglês, não tem capacidade, porém com noções de inglês é possível desenvolver um software, mas se desejar ser um programador cada vez melhor terá que estudar bastante e as documentações estão em inglês, então não há alternativa. Exceto esperar tradução para o português (talvez aconteça), se for esperar é importante antes perguntar ao seu cliente, gerente se ele espera também.
Apesar de termos bons autores brasileiros, o número ainda é muito pouco. E não resta buscar livros internacionais, qual será o idioma? Experimente digitar Java na www.amazon.com e veja a quantidade de livros, depois classifique pelo melhores avaliados e veja o resultado. Sem falar na velocidade de atualizações das livrarias internacionais.
As traduções (para o português) são péssimas, é muito raro achar tradução que esteja boa, e outra nem tudo é traduzido apenas os livros que são recordes em vendas e muito procurando.
Você gostar de ler?
Não. Em qualquer profissão não gostar de ler não vai muito longe. Seja um médico um dentista, um analista. Programação tem uma área muito vasta e complexa, e ainda não existe uma melhor forma de aprender se não é lendo.
Compre livros, apesar de ser caros (alguns), mas se vire divida em 10x s/juros. O importante é buscar se atualizar e estudar.
Não vá naquela que a internet (em especifico Google) tem tudo. As informações que você precisa talvez esteja na internet, porém você não encontrará tudo tão bem organizado e com fundamentos metodológicos, explicando por que a ordem dos capítulos foi desenvolvida assim.
Sem falar que fizer a pesquisa e sair organizando gasta mais que um livro U$50,00 na amazon.com. Tempo é dinheiro.
NO livro a informação é de fácil acesso, organizada e disponível sempre, não precisa às vezes nem de um computador por perto. Você pode ler o livro e usar a internet para tutoriais e detalhes específicos para tirar duvidas, mas fazer dela como sua biblioteca fundamental, pode estar desperdiçando tempo e aprendendo algo de forma inadequada.
Buscar informações
Para resolver um problema é necessário saber como buscar as informações quanto mais informações tiver mais fácil será de resolver
A internet é uma fonte de informações e ainda com o Google para dar uma mãozinha. E as vezes muitas perguntas e duvidas seriam respondidas pelo primeiro link encontrado no Google então use sempre o Google antes de fazer qualquer pergunta em um fórum, o tempo de resposta é mais rápido
Participar de grupos de discussão é onde há informações que não consta no livro ou é apresentada de outra forma. No meu caso, troquei os biscoitos de manha por GUJ, antes de fazer qualquer coisa abro o GUJ e vejo as discussões novas e as que contribuir.
Outra participe de um fórum mesmo que no inicio você não possa contribuir diretamente, para o mesmo, mais esteja lá lendo as discussões de outras pessoas, e quando puder tente opinar a respeito.
Um bom programador pode aparecer em qualquer área ou linguagem de programação. Se a linguagem for limitada mais cedo ou mais tarde , procurará outra. O importante é ir além, não ser especialista no kernel mais quanto mais você souber souber isso, melhor programador você é.
Obs.: O kernel é apenas um exemplo, não estou dizendo para sair estudando kernel, vc pega o mesmo e substitui por sua real situação.
Um programador mediano sabe uma coisa porque ele precisa saber. Um bom programador sabe alguma coisa porque ele tem vontade de saber.
Se você é aquele cara que não tem experiência não ache que as dicas aqui valem somente para quem está atuando na área, mas se vc tem a curiosidade e “ânsia” para saber tudo e aprender tudo vá em frente, pois este é o caminho certo, capacidade técnica se adquire com tempo, mas essa vontade é algo para poucos. Tudo que você precisa está nos livros e na experiência que for adquirindo no dia-dia.
Se vc não trabalha com programação compre uns livros leia-os e depois procurar um emprego como estagiário (mesmo que no inicio vc não receba $$) o importante é o contato com a área e está aprendendo isso pode ser um investimento de médio prazo. Eu mesmo em 2004 quando iniciei na área de T.I trabalhava das 8h às 22h – free e foi assim por três meses, e quando tive meu primeiro salário no quarto mês foi de R$ 130,00. E na época era vários fatores um deles era minha idade (15 anos), as empresas fechando as portas, até que conseguir uma oportunidade e não joguei fora. Hoje não me arrependo de ter feito isso, minha conta bancaria na época não aumentou em nada, porém o que aprendi não dar para comprar e foi à base para novas conquistas.
Outro ponto não se esqueça, nenhum conhecimento é inútil,você aprenderá mais rápido se você saber focar os seus estudos mas se não souber aprendera em mais e tempo. O importante é aprender. Veja o tópico como estudar
Bom pessoal! Espero que tenham gostado do post e não precisa seguir ao pé da letra as dicas do dr. Heinz.
Have a Nice weekend!
…apesar de que uns acham que apenas sentar na frente do PC e digitar um código que está no livro mandar compilador é programador, cuidado com isso…
mais ja e um comeco ne?
o grande problema de comecar a programa cedo e a escola!
comeco a estuda e tal vo aprendendo altas paradas legais mexendo fucando… ai tenho que para pra estudar pra escola e quando volto ja foi tudo da mente… resta so um pouco… ai tem que volta tudo de novo
e tenso d+
” … As informações que você precisa talvez esteja na internet … “,
” … A internet é uma fonte de informações e ainda com o Google …”
A internet é apenas um fonte de dados e não de informação, a informação de modo algum é encontrado em um estado pronto na internet.
Além de ler, é necessário que qualquer pessoa tenha a capacidade de aprender a aprender e de transcrever o que sabe, ou seja, definir o diz conhecer com suas próprias palavras.
Exemplo:
(1) – O que é uma linguagem de programação?
(2) – Qual o tempo médio e o pior caso de execução do seu código? E o espaço?
“… If you have ever studied a second language yourself and then tried to use it outside the classroom, you know that there are three things you must master: how the language is structured (grammar), how to name things you want to talk about (vocabulary) , and the customary and effective ways to say everyday things (usage) …”
“It is much the same with programming language. You need to understand the core language: is it algorithmic, functional or object-oriented? You need to know the vocabulary: what data structures, operations, and facilities are provided by the standard libraries? And you need to be familiar with the customary and effective ways to structure your code”
[ Guy L. Steele Jr., In Effective Java: Programming Language guide, pp. xi, 2003].
olá Alessandro,
Obrigado por acessar o blog! Mas através da internet vc obtem uma informação no menor tempo possivel, hoje vc se especializa atraves dessa ferramenta, porem como adquirir vai da capacidade de cada um. E as vezes a capacidade de aprender e transcrever o que sabe, nao é uma caracteristica da Internet, isso muito ja vem do isso fundamental. Quantas pessoas perderam provas de concurso por nao saber interpretar? E outras por ter o conhecimento mais nao sabe transcrever aquilo que sabe?
hehe! Obrigado por sua discussao a respeito.. isso é bom!
flw!
Sempre leio seu blog, realmente o conteúdo é muito bom.
Adoro essa abordagem nos conceitos teóricos.
Vê se não esquece do “relacionamento interpessoal” que você disse que vai falar em outro post.
Não podia deixa de cobrar essa xD
Abraço