Como não ser um bom programador

Durante anos de estudo, de aulas, palestras, trabalho, horas e noites viradas dedicados ao estudo da computação e programação, notamos alguns detalhes sobre nós e outros programadores/profissionais de TI.

Como em toda e qualquer profissão, sempre existem, e vão existir, os bons, médios e péssimos profissionais. Sobre ser bom ou "normal" em nossa área, não há segredo, é estudar o máximo possível, pelo máximo possível de fontes, arregaçar as mangas e começar a programar.

Mas sobre os péssimos programadores e hábitos que estes tem, pouco se fala ou se comenta à respeito, e é bem fácil perceber algumas características que fazem deles ruins, e é sobre isto que falaremos nesse artigo.

Como ser um péssimo programador

Decidimos colocar este artigo na seção "Comece a programar" porque esta é a área do site que mais recebe acesso de leitores iniciantes neste mundo da programação.

Vamos procurar falar de características que você deve, à todo custo, evitar. Algumas notamos em outras pessoas, mas algumas falhas todos tiveram em algum momento e suaram muito para notar que eram falhas e defeitos, visando melhorar.

Por isso, vamos tentar encurtar seu caminho, lhe dar boas dicas e orientar à todos sobre coisas erradas e péssimos hábitos que você deve evitar.
Nosso objetivo não é menosprezar, humilhar ou apontar o dedo para os outros, e sim tentar passar a experiência de quem está um pouquinho adiante daqueles que estão começando.

Pessoas ignorantes não aprendem com seus erros. As experientes são as que aprenderam com seus erros, mas as pessoas espertas são as que aprendem com seus erros e aprendem com o dos outros, assim erram menos. Por isso, não espere pra errar, tente ver o problema e erro dos outros, assim vai encurtar seu caminho para o sucesso.

Programadores de vídeo-aula




No começo da computação, poucos locais do mundo ofereciam informações sobre programação. Na verdade, no começo mesmo, eram informações secretas, usadas por militares, e só pessoas de alta patente e permissão tinham acesso.

Em seguida criaram cursos em faculdades, então mestre e doutores de Matemática e Engenharia passaram a ter acesso a este tipo de conhecimento.
Mas para encurtar a história, hoje em dia temos acesso à todas essas informações em qualquer faculdade, cursos técnicos, livros, textos na internet e nelas, as vídeo-aulas.

Sim, são maravilhosas. Imagina aprender com professores, sem cursar de maneira presencial? Aprender Java ou C, só de calção e tomando um suco em casa? Ver um profissional usando uma ferramenta altamente complexa, ver um hacker derrubando um site ou um programador de games criando um jogo?

Isso tudo é ótimo, mas como um complemento.
Aprender a programar por vídeo-aulas somente é o que de pior você pode fazer. É bom para ver, depois de ler um livro, um artigo ou uma aula. Mas o principal: é bom depois de tentar programar.

Programar se aprende tentando, pensando como fazer, errando, criando e lendo muito. É realmente fantástico assistir uma aula de computação do MIT ou Harvard, mas ver todas elas um milhão de vezes nunca te fará ser um bom programador como os estudantes destas instituições.

Mas estudar por todos os livros que eles estudam, tentar fazer todos os programas que eles tentaram, ver essas aulas e passar nas provas que eles passam, aí sim, fará você um dos melhores programadores. Resumindo: use o máximo de fontes de estudo. Por exemplo, quantos livros de programação já tem?

Programadores de código pronto

Alguns, cambaleando e rastejando, aprendem muito mal a programar e criar algumas coisas, e passam para o próximo péssimo hábito, que é usar tudo pronto.

Isso é bem comum, por exemplo, em desenvolvimento web, de sites, blogs e ferramentas para internet. É fácil achar em fóruns ou sites de código pronto pessoas que querem fazer algo e simplesmente copiam o código e colam em seus projetos.

Procure sempre entender o que está fazendo e usando. Você pode até ter seu problema resolvido, mas quando precisar alterar, evoluir ou tirar algo, não vai ter a mínima noção do que fazer, como fazer e onde fazer, simplesmente porque você não sabe o código que meteu em seu sistema. Depois o sistema fica vulnerável, é invadido ou o código conflita com outro trecho de código, e simplesmente não se sabe o que aconteceu.

Em grandes projetos, ninguém cria sempre 100% do código, mas é altamente recomendável saber de tudo que está usando: o que é, para que serve, como funciona e que situações usar aquilo.
Por isso, procure sempre ter controle total sobre seus projetos e mantenha a comunicação com seus colegas de trabalho.








Programadores que não fazem lição de casa

Se eu puder citar o tipo de profissional (na verdade, eu nem chamaria de profissional) que mais é incompetente e estará fadado ao fracasso, é aquele que vai pesquisar a solução de sua tarefa de casa no Google ou perguntar em fóruns coisas do tipo "Alguém resolve pra mim?", "Preciso fazer esse trabalho pra entregar amanhã, quem tem o código pronto?".

Programador incompetente pedindo pra resolverem exercício
Típico "programador" chorão
Se eu fosse dono de uma empresa e fosse analisar o currículo de um candidato, e descobrisse que ele não fazia seus próprios programas na faculdade/curso e pedia para resolverem seus afazeres, com certeza eu não o contraria nem por um salário mínimo. Na verdade, não o queria nem trabalhando de graça.

Veja bem, tirar uma dúvida, perguntar onde está errando ou perguntar o que deve estudar para atingir um objetivo, são coisas totalmente corretas e louváveis. O que critico aqui é quem quer tudo pronto, o código da tarefinha de casa, que pedem para fazer algo e não entende nada. Esse tipo de profissional não vai a lugar nenhum, e infelizmente existem aos montes, em fóruns como o do Clube do Hardware e grupos do Facebook.

Programador que não lê

Quando pensam em programação, geralmente vêm a mente das pessoas a imagem de hackers, de máscaras, roupa escura, em um ambiente tridimensional, se desviando do FBI ou então jovens criando jogos, como se isso fosse sinônimo de jogar.

Ler é uma grande hábito dos melhores programadores
Adquira o hábito da leitura
Quem pensar assim, saiba que está no ramo errado. Quem achar que vai cursar a faculdade, ler esse site ou outro tutorial e ser um programador, tenho más notícias também.

A grande verdade é que programadores com um mínimo de competência irão ler, todos os dias, para o resto de suas vidas. Programação evolui, sistemas e liguagens também, e os programas então, nem se fala. Aliás, tudo ligado à computação muda diariamente, e com isso seu estudo também.

Bons programadores são aqueles que começaram a estudar por vontade própria, vão para a faculdade/curso porque querem aprender aquilo, que vão trabalhar naquele ramo e nas horas vagas irão se dedicar aos seus projetos pessoais, auxiliar algum projeto livre e o principal, irão sempre continuar a ler, estudar e se informar. Essa é a realidade.

Mais um dos problemas das pessoas que gostam de estudar somente por vídeo-aula, é que eles acabam por perder (ou nem adquirir) o importante e obrigatório hábito da leitura. Por isso, compre livro, leia artigos, visite sites de programação diariamente, coloque um fórum como sua página inicial e leia diariamente sobre sua profissão e coisas de seu interesse.

Programador xiita

"PHP comanda", "C é a linguagem mais usada", "Mercado de trabalho e dinheiro? Java!", "Com JavaScript e HTML faço, invado e quebro qualquer sistema", "Programador de verdade é só o que sabe Assembly, o resto é moda", "Cobol e Delphi morreram", "Pra quê perder tempo com isso? Em Python eu faço em 10min", esses são só alguns exemplos de atrocidades que iremos ouvir por aí.

Vamos ser bem claros e diretos: dizer que uma linguagem é a melhor é o que de mais idiota você pode fazer. Quer dar seu atestado que é leigo e ignorante? Diga que tal linguagem é superior à outra.

Como explicamos nos artigos iniciais desta seção, Comece a Programar, cada linguagem é mais indicada para cada tipo de situação e absolutamente NENHUMA é indicada para tudo.

Experimente novas linguagens e tecnologias
Conhece a Fanpage GNU/Linux Xiitas? É hilária
É como dizer que maçã é melhor que um sapato ou que uma blusa é melhor que tudo. Chega a ser cômico. Essa é uma das bobagens que a maioria de nós costuma fazer, principalmente quando somos iniciantes e a única coisa que fazemos é elogiar aquela linguagem e ferramenta que estamos usando.

É tão comum que chega a ser normal. Normal para iniciantes. Não pega bem ser um leigo depois de anos de estudo e trabalhando na área. Por isso, puxe pela memória aquele fórum ou blog que você frequentava, para xingar programadores de outras linguagens. Talvez você tenha deixado seu nome e informações lá, e se seu chefe ou futuro empregador ver isso vai saber o quão infantil você foi, e ainda pode ser.

E pode ter certeza, nos dias de hoje, sempre que você for buscar um emprego, a empresa vai buscar e puxar todos seus dados na internet. Irão ver o que anda comentando, suas opiniões e o que curte nas redes sociais. Se for um daqueles que acham que só uma ferramenta ou linguagem é a melhor, pode se dar mal, pois isso acaba deixando uma pista sobre sua profissionalidade.

Programa em Assembly para microprocessadores ? Bacana, você não deve gostar de PHP, mas com certeza usa sites e redes sociais criadas por programadores de tal linguagem. Aliás, a tecnologia está tão popular hoje em dia por conta desses profissionais que lidam diretamente com o público.

Quer criar sites, ser Webdesigner, passar longe dos bits e não faz a mínima questão de aprender C ou Assembly? Normal, você faz parte da maioria. Mas respeite quem gosta, afinal, seu computador, celular e todo tipo de tecnologia foram criados por eles.

Notaram o quão "noob" é dizer que linguagem X é melhor que Y?
Notou? Então pare de fazer isso.

Programador unilateral

Linguagem de programação é como religião ou time de futebol, as pessoas vão amar umas e repudiar outras. Isso é extremamente normal, mas se quiser ser um bom programador, saiba respeitar os outros.

Porém, embora no decorrer de nossas vidas possamos escolher linguagens e ferramentas, é totalmente indicado abrir seus horizontes, estudar coisas diferentes e se atualizar.

Busque novas opções de estudo
Olhe pare os lados, veja novos caminhos
Programa para Windows e domina como ninguém tudo ligado ao .NET (como C#) ? Sabe como ser um profissional mais completo e melhor? Instale um Linux e veja como ele funciona.

Sempre usou Windows e tá bem nele? Sinto muito, você pode até estar bem, mas está limitado. Instale um Ubuntu, por exemplo. É simples, fácil, você instala em 15min com um pendrive e vai abrir seus horizontes como poucas coisas na vida. Você irá notar sua evolução.

Provavelmente se já usa Linux já usou Windows. Mas ja criou .bat? Sabe aqueles scripts em Shell, que fazem tudo no Linux? Pois é, já fez algo parecido no Windows, com Batch? É bem interessante. E que tal juntar uma grana e comprar um MacOS ? Ou Fazer um Hackintosh? E FreeBSD, que tal colocar naquela máquina antiga, só para testar, ver como é?

Gosta de HTML, JavaScript e CSS? Quer saber um segredo pra evoluir? Estude C. Entender como funciona um computador, como seu sistema operacional foi programado e ter uma visão diferente da que está habituado vai te fazer crescer de uma maneira que nem imagina.

Já programa em C, C++ e Java? Mas você sabe de verdade o que acontece dentro de sua máquina? Com os registradores, memória e bits? O que de fato acontece quando você usa uma função, um looping for, while ou teste condicional? Dê uma pesquisada em Assembly, a sensação é a mesma que Neo deve ter sentido ao sair da Matrix.

Então é Engenheiro, cria hardwares e sistemas microprocessados complexos? Lindo, não?
E o Akinator, já acessou? Já imaginou como ele foi criado?
E aquele site, que muda quando você entra pelo computador, celular ou tablet? Que magia é essa?
E o Facebook, como que raios um sistema é usado por milhões de pessoas, AO MESMO TEMPO? Como esse Banco de Dados aguenta enviar tanta informação? Aliás, você sabe o que é um BD? Ou como o Google criptografa sua conta ou como os hackers invadem sites? Pois que tal estudar PHP e JavaScript, nas horas livres? Você vai se surpreender.

Não se limite. Tire algum momento da sua vida para testar outras áreas. Isso vai abrir sua mente, te deixar mais criativo e com melhor raciocínio. Saber como algo funciona vai te fazer um profissional melhor.

Programadores mecânicos e preguiçosos

Alimente sua mente, programe coisas diferentes e se envolva em novos projetos
Você, com preguiça
Para finalizar este 'pequeno' artigo, vamos falar de um mal que acaba acometendo todos os programadores, uma hora ou outra em nossas vidas profissionais: a acomodação.

Com o tempo e prática de programação, acabamos aprendendo várias ideias, algoritmos, técnicas e costumes que passam a fazer parte de nossas vidas. Programar certas coisas passa a ser uma tarefa mecânica. Muitas vezes vamos codificando, escrevendo, rodando, testando e comitando (fazendo update do seu código no projeto da empresa, por exemplo). Vira uma rotina.

Porém, uma das coisas mais lindas e instigantes no mundo da programação é quando você, geralmente no início dos estudos/carreira, vê um problema, quebra a cabeça e consegue resolver. Geralmente faz uma gambiarra e usa centenas de linhas de códigos. Depois vai ver a solução do livro, do professor ou colega, e vê que ele fez algo melhor, de maneira mais eficiente, elegante e usando apenas 20 linhas.

Bate uma tristeza e sensação de "como não pensei nisso antes? Como sou burro!".
Mas acredite, é extremamente normal, e aos poucos você vai melhorando.
E o que está por trás deste processo é o que há de mais belo na programação: a criatividade. A capacidade criar, inventar alguma coisa. Mesmo que seja um código simples, mas fazer uma coisa de maneira bonita, simples e funcional é lindo.
Não é à toa que muitos consideram a programação uma verdadeira arte.

Então fica esta nossa última dica para você: não se acomode. Busque sempre novas coisas para fazer, tentar de uma maneira diferente, sair do óbvio. Uma das coisas que gosto de fazer para melhorar minha inteligência, capacidade de concentração, raciocínio e criatividade, é acessar o Project Euler, que é um site voltado para resolver problemas de matemáticas usando programação. Você pode usar a linguagem que quiser, ferramenta que quiser e da maneira que quiser. Ele só te passar um problema e pede a resposta. É incrível resolver um problema do mundo real usando programação. Mais incrível ainda é compartilhar sua solução e estudar a dos outros, é uma evolução nítida na sua capacidade de programas.

Por fim, deixo a dica do que considero de mais belo em programação. A verdadeira obra prima da computação: o Kernel do Linux. Como todos sabem, o Linux é um sistema de código aberto, que é evoluído com a ajuda de milhões de pessoa ao redor do mundo, de maneira voluntária.

E adivinha o que temos quando reunimos a genialidade e criatividade de várias pessoas? Sim, milhões de linhas de código, das mais eficientes e funcionais possíveis. Hoje em dia o código é tão grande, que poucas pessoas tem total domínio dele.
Mas nem precisa, basta escolher uma área de seu interesse e estudar, quem sabe contribuir (gerenciamento de memória, drivers, processador, velocidade, internet, gráficos e uma infinidade de coisas. Para citar uma exemplo: certa vez houve um bug no kernel, que fazia o Linux consumir muita energia e fazia as baterias de notebook durar pouco. Isso foi resolvido no código. Imagina que coisa magnífica, você gerenciar o uso de energia de uma máquina, apenas no código). Você vai ver as mais belas ideias sendo colocadas em prática.

Tire uma hora de sua semana, tente criar um novo projeto, um novo game, estudar o Kernel ou entrar em um projeto de código livre, aprendendo com novas pessoas, novas ideias e compartilhando o que sabe. É um aprendizado para o resto da vida.
Indico o Linux Kernel Newbies para começar.

22 comentários:

Everton Estevão disse...

Muito obrigado por escrever esse artigo, é muito esclarecedor!

Marcos Farias disse...

Vejo esses exemplos quase diariamente!

Carlos César disse...

Muito Bom!!!!

Fernando Basso disse...

Muito bom esse artigo. É inspirador!

Fiquei feliz em constatar que minha atitude em relação a TI é muito parecida com o que é sugerido no texto. :)

May the force be with you.

marco silva disse...

Muito bom esse blog merece respeito e sua excelência no assunto e muito bom parabéns a o autor.

Anônimo disse...

Adorei!o blog, as dicas, a forma como foi escrito!muito bom cara! realmente inspirador!

Anônimo disse...

Muito bom gostei! Talvez agora eu consigo entender mais de programação!
Continue assim

Ronaldo disse...

Muito bem escrito! Parabéns pela sua iniciativa, pessoas como você sempre fazem a diferença!

Helena Almeida disse...

Alguém sabe porque o site http://projecteuler.net/ está fora de ar?

Anônimo disse...

Oh noes fui descrito,
Tenho que mudar esses habitos...
Muito obrigado, não sabia que estava indo no caminho totalmente errado !

Anônimo disse...

Obrigado pelo post :D

lucio mauro disse...

muito bom meeeeeeeeeeeeeeeeesmo cara!

Anônimo disse...

Muito bom mesmo!
Como dizia um de meus amigos, Programar é pensar

Brunno Araujo disse...

Muito obrigado, estou voltando aos estudos agora, e estas informações foram muito úteis pra me ajudar a evitar tais erros no início. Já salvei os links, as dicas, e vou acompanhá-las pouco a pouco.

Iury disse...

Ótimo post, o achei por acaso e comecei a lê-lo sem muitas expectativas, mas acabei aprendendo coisas interessantes nele. Muito bom, obrigado por compartilhar.

Bruno Marinho disse...

Bem interessante, grato por você compartilhar essas informações.

Lockosmu disse...

ótimo artigo camarada, tenho bastante conhecimento em C, mais irei aprofundar mais ainda e escolhi o seu site para estudar.

Wagner disse...

Excelente artigo. Muito esclarecedor e motivador.

Lucas Ferreira disse...

Achei muito legal o artigo, já programo a um tempo, é do meu ponto de vista antes de aprender uma linguagens é seus macetes a primeira coisa que se deve aprender é logica, pois a logica e a essência da coisa toda, depois disso vc começa a pegar uma linguagem e isso torna ate mais fácil o aprendizado.

Anônimo disse...

Estou pensando em começar a aprender programação, e seus conselhos são tudo que qualquer iniciante precisa, valeu mesmo! Parabéns!

Luiz Economia e Tecnologia disse...

Parabéns!

Anônimo disse...

Karaka cê é foda melhor exemplo "maçã ou sapato"