Quer se tornar um programador de sucesso? Pare de escrever código

10 de fevereiro de 2010  |  Opinião  | 

Foto de Decepticreep

Eu tenho uma lista de programadores que merecem o meu respeito. Provavelmente você também deve admirar o trabalho de alguns colegas de profissão. Estranhamente, eu sou obrigado a confessar que vi muito pouco do código de cada um deles.

A maior parte desses programadores ganharam o meu respeito através dos softwares ou livros que escreveram. E não através do seu código.

Um exemplo é Yukihiro Matsumoto. Ele foi o criador da linguagem de programação que utilizo diariamente para realizar o meu trabalho e obviamente está na minha lista de heróis, porém pouquíssimas vezes eu olhei para o código fonte do Ruby, e quando o fiz não teria como identificar se o que estava vendo foi originalmente escrito por Matz ou por algum outro colaborador.

Minha lista está recheada de pessoas que escreveram uma linguagem de programação interessante, um framework útil, uma ferramenta que facilita minha vida ou um bom livro sobre programação. Mas são poucos os que passei a admirar depois de ver algum código que escreveram. Isso me faz pensar…

Na realidade o código que escrevemos tem muito pouco impacto sobre as pessoas. O que realmente interessa é o que fazemos com o código. O que importa é o produto final.

O problema é que a maior parte dos programadores se preocupa demais com o código. Passam horas e mais horas tentando criar o algoritmo perfeito. Porém se esquecem que o melhor código do mundo é inútil se ninguém utilizar o software que o contém.

De forma alguma estou dizendo que devemos jogar tudo para o alto e parar de se importar com a qualidade do código que escrevemos. Porém, tão importante quanto realizar um bom trabalho é fazer com que outras pessoas tomem conhecimento do que você está fazendo. A minha proposta é que aqueles que já são bons programadores hoje, invistam em aperfeiçoar suas habilidades como escritores e palestrantes. Que participem mais ativamente nas comunidades de software e melhorem suas habilidades sociais.

São essas habilidades que vão diferencia-lo dos demais. Não escreva apenas código. Estude, escreva e fale mais sobre código.


45 Comentários


  1. “melhorem suas habilidades sociais” Já estou nesta fase…
    Parabéns pelo artigo e pelos três anos da página.

  2. Bahh, parabéns pelo artigo :D
    Muito bom mesmo

  3. Concordo com você. Os programadores devem sair do casulo e serem mais sociáveis.

  4. Excelente!
    Infelizmente ainda existe “code monkey”, mas acredito que o fim está próximo.
    A prova disso é a necessidade constante de entender e divulgar nosso trabalho de uma forma cativante para os usuários.
    Abraços ;)

  5. Excelente post o/

    eu mesmo, atualmente não me importo mais tanto com o algoritmo em si, fora o quesito de legibilidade, importante para o trabalho em equipe de projetos

    mas o que interessa mesmo, é o produto final, exemplo mais que clássico: SO Windows, todos sabemos que tem falhas, que o código muito provavelmente não é dos melhores, porém o produto final atende as necessidades (em tese) =]

    apenas uma observação: só me atento ao código mesmo em projetos que exigem performance na execução, como projetos de monitoramento de equipamentos, vendas, etc que tem informações em tempo real, as quais são vitais para o negócio… hehe

  6. Bem pertinente a sua colocação.

    Concordo no sentido de que um bom profissional técnico não pode se limitar à contribuições pontuais.

    Acredito que em uma certa altura do campeonato passa a ser muito importante exercer influência dentro do ambiente em que você atua.

    Um ponto importante é o “perfil pessoal” do profissional – me parece que alguns não se sentem a vontade para exercer atividades que fogem do escopo técnico.

  7. Acho que depende o que você considera sucesso. Se pra você sucesso é ser popular, ter um nome reconhecido, ser convidado para apresentar palestras, sim, faça como descrito nesse post.

    Mas existem outros tipos de sucesso, e outros tipos de ambição. Alguns consideram sucesso saber que os clientes estão felizes com o seu software, que a cada versão a qualidade tem aumentado, que o retorno financeiro foi atingido; outros consideram-se bem-sucedidos por serem reconhecidos como excelentes programadores dentro de sua empresa, ainda que sejam anônimos fora dela.

    Se a pessoa é feliz no anonimato, e prefere passar o tempo fora do trabalho fazendo outras coisas ao invés de apresentar seminários mundo afora, escrever livros etc, bom pra ela!

  8. Excelente,
    Parabéns pelo artigo.
    Valeu!

  9. Parabéns pelo artigo!! Como sempre você mostrando uma visão diferente das que estamos acostumados.

  10. “O que realmente interessa é o que fazemos COM o código.”

    100% agreed!

  11. Sábias palavras maninho.

    Não poderia concordar mais. E olha que tenho experiência nisso. ;)

  12. Cara bem colocado, e o Rodrigo tbm não esta errado. É uma boa idéia para os programados acomodados. Inistam em algo novo, e se dediquem a ajudar e divulgar ainda mais hoje em dia.

  13. Concordo,

    O que colocou o Hibernate como produto de sucesso foi a documentacao dele. Associado a isso as palestras feitas pelo time.

    Estamos tomando o mesmo caminho no projeto que eu trabalho agora (www.HornetQ.org) e a primeira coisa que nos preocupamos foi em escrever uma boa documentacao, usar blogs… etc.

    Para se ter uma ideia maven e um projeto muito legal, porem a maior barreira de adocao do produto e a documentacao ineficiente. Haveriam mais usuarios se ouvesse uma documentacao decente.

    E mesmo quando escrever, escreva para a pessoa, o usuario, nao ao codigo. Exemplo documentacao do JBoss Messaging 1.4 mostra como configurar (voltado ao codigo). HQ 2 mostra como usar (voltada ao usuario). Posso dizer que a ultima documentacao e muito mais atraente.

    Prazer em conhece-lo :-)

    Clebert

  14. Gostei do ponto de vista, como o Rodrigo disse este assunto é variável de indivíduos por seus pontos de vista, mas podemos abstrair que não é importante só escrever bons códigos, mas sim escrever bons códigos que sejam usados. Seria como ter uma Ferrari na garagem sem sair com ela ou ter um Lexus que te leve para todo canto.

    Resumindo acredito que não precisamos ser ícones populares para termos nosso código (que deve ser bem escrito) popular, mas que pode facilitar as coisas isso é uma certeza. Escreva bons códigos em cima de boas idéias.

  15. Considero como bom o código que comunica sua intenção, e para isso o programador tem que saber se comunicar bem. As duas coisas estão atreladas ao meu ver.

  16. Fala Brow,

    a verdade é que programar é uma merda.

    Para ficar com status de programador de sucesso não tem nada disso ai que você falou: comunidades de software e melhorem suas habilidades sociais.

    O bom programador é aquele que ganha bem (aquele que virou Gerente de Projetos, Arquiteto de Software, Empresário do Ramo – como o Matsumoto).

    Fazendo isso ai que você falou o máximo que você vai conseguir é ser conhecido pelo Pedrinho do sistema da Padaria, Juquinha do bloguim.

    Desculpe, mas seu post não representa a realidade.

  17. Concordo com o autor do post.

    Na minha opinião, todo programador tem que passar por fases de conhecimento e experiência:
    - a fase inicial, quando está trabalhando (e aprendendo ao mesmo tempo) uma linguagem de programação: nesta fase, com certeza sua preocupação é se tornar um bom programador para a empresa/equipe de trabalho interna.

    - a fase intermediária: quando já terminamos nosso primeiro projeto naquela linguagem que não tínhamos domínio quando começamos e que agora temos. Nesta fase, começamos a nos preocupar sim com o compartilhamento de códigos (teoricamente) em agradecimento de tantos códigos compartilhados na rede que utilizamos para passar pela primeira fase.

    - a fase avançada: quando já desenvolvemos vários projetos, em várias linguagens, nos tornando especialistas. Neste momento dominamos todas as liguagens que utilizamos até então e agora sim é a hora de compartilhar pra valer códigos/scripts em blogs, dar opiniões em comentários, apresentar paletras, cursos, etc.

    De nada adianta compartilhar códigos ou scripts que não funcionam só para dizer que sabe programar. Por isso acho que só programadores na fase avançada de conhecimento e experiência deveriam compartilhar seus trabalhos.

    OBS:
    Caro “O FÔ, para se tornar um gerente de projetos, um arquiteto de software, um empresário do ramo… é necessário sim fazer o compartilhamento de seus conhecimentos, ajudar os iniciantes e se deixar ser ajudado por outros mais experientes. Só assim, se mostrando é que se conquista uma profissão de sucesso e com todo o reconhecimento merecido.
    Você conhece o Bruno Ávila ou o Adriano Gianini? Os caras manjam pra caramba de tudo (ou quase tudo) o que ensinam e só fazem sucesso com seus projetos, só pegam projetos ótimos, clientes de nome porque se mostram para seu público alvo e para seus próprios concorrentes (leia-se nós).

    Quer crescer, meu amigo, aprenda a mostrar o que sabe!

  18. Caro Sérgio Novelli, não conheço esses nomes que você mencionou, mas se você diz que são bons, ótimo. Que sucesso!

    Mas a questão que me desagrada não é essa, o que não conformo é quando se diz que o caminho do sucesso é “aperfeiçoar suas habilidades como escritores e palestrantes. Que participem mais ativamente nas comunidades de software e melhorem suas habilidades sociais.”

    Porque não falar de uma vez para o cara largar de ter um perfil técnico e virar um artista?

    O caminho do sucesso é estudar, estudar, certificações, mestrado, um network estável, e pronto. TI exige conhecimento, e não diplomatas.

    Dou-me esse assunto como encerrado.

  19. hahahahahahaha

    se ‘O FÃ’ não conhece grandes profissionais que compartilham seus conhecimentos, talvez é por isso que se preocupa tanto em ‘estudar, estudar, estudar’ e se esquece de que pode crescer rapidamente com humildade e ajuda de outros grandes profissionais com maior experiencia….

    E sim, concordo que podemos aperfeiçoar nossas habilidades se tornando escritores ou palestrantes….meu caro ‘FÃ’, vc alguma vez ja tentou compartilhar seu conhecimento com alguém, tentando lhe ensinar algo ou então escrever um tutorial? Pois é, escrever ajuda a crescer sim! Se não existissem professores, palestrantes e escritores, vc não teria material pra aprender, e se estes profissionais ja tem algo pra lhe ensinar, significa q ja são grandes, e o melhor, humildes, pois compartilham aquilo que sabem com pessoas que vão usar deste conhecimento para se tornarem concorrentes….

  20. Não adianta tanta revolta, eu sei que “cutuquei” em vocês – mas a verdade doí querendo ou não.

    Nosso amigo Douglas, como todo “Júnior” faz, confunde as coisas e já entrou no assunto de “compartilhar conhecimento”. Ou seja, se eu estudo então quer dizer que não vou ajudar ninguém e muito menos escrever artigos. Muito boa sua conclusão Douglas. Mas não concordo.

    Blog é coisa de Emmo, nem sei como vim parar aqui. Estava procurando sobre outra coisa… Mas leio merda fico p…

  21. Ta aí… Interessante pensar assim. Eu mesmo o admiro como programador justamente pela qualidade dos posts desse blog… Parabéns por mais um deles…

  22. O FÃ,

    E como você espera se tornar um bom gerente, arquiteto ou empresário de sucesso sem habilidades sociais? Sem saber se comunicar direito?

    Saber se comunicar bem é essencial em qualquer profissão. Mesmo para aqueles que decidiram seguir uma carreira como programadores, e não possuem pretensões de se tornarem “gerentes” ou “arquitetos”.

    Em momento algum eu falei de compartilhar conhecimento, embora eu pessoalmente acredite que esta é a melhor forma de aprender, mas estou falando de se expor, de mostrar o seu trabalho.

  23. Carlos, mais uma vez, parabéns pelo post.

    E só para deixar claro para todos, fui eu quem falou em compartilhamento, porque entendo que: palestras, cursos, exposição de trabalhos, tutoriais, blogs e afins são meios de compartilhamento de conhecimento, ou estou errado.

    O nosso amigo “FÔ acho que não é programador ou então nunca precisou ler um blog para aprender o que sabe até hoje – já nasceu sabendo.

    Não sei o que está fazendo aqui… talvez blog seja mesmo coisa de “emo” (leia-se nerds, programadores, profissionais, etc…), coisa que “O FÔ não é, pelo menos não dessa área. Se realmente fosse, concordaria, ao menos em partes com os comentários de todos os colegas aqui.

    Acho que podemos encerrar por aqui o assunto.

  24. Parabens pelo artigo…
    muito bom mesmo…
    é dificil de se acreditar, mas a maioria hoje ainda é assim. Talvez por isso a classe seja tao cheia de motivos para preconceitos?!

  25. Fala Carlos Brando, por acaso você é parente do grande Marlon Brando? Sou fã dele.

    Bem, gostei do seu post, criou bastante remelexo neste assunto. Mas vai uma dica de um Sênior, sempre utilize palavras como: “possivelmente e geralmente” para nunca generalizar as coisas.

    Problemas de comunicação existem, tanto no emissor tanto no receptor. Neste caso foi no emissor.

    Dou-me esse assunto como encerrado.

  26. Uma pessoa que não compartilha seu conhecimento é um tolo, nada entende de sabedoria e passa seus dias de maneira inútil, desprezando o sentido verdadeiro da vida que é compartilhar.
    não tenho muito para dizer para este ” FÔ Pois acredito que ele é apenas alguém que se esconde debaixo de um apelido, alguém sem capacidade de se mostrar, que não possue amigos ou colegas e por não ter ninguém que o adimire de verdade decidiu colocar o nome de “fã ” Para esconder seu jeito medíocre que encarar a realidade.

  27. Tava pensando em algo pra falar ao FÃ, porém ja disseram tudo, então vamos encerrar por aqui mesmo hehe

  28. Ok, chega de trolls por hoje…

  29. Eduardo,

    se esse for o problema com minha pessoa, me chamo Fábio Lacerda sou Analista de uma empresa pública. Se você quiser meu e-mail, posso disponibilizar para você sem problema algum.

    Agora o engraçado é ver como a infantilidade de algumas pessoas, levam o assunto para o lado pessoal. Foi só me expressar contra uma idéia, e um bando de bobos inconformados – NÃO SEI PORQUE, caem na minha pilha.

    Sinal de inexperiência.

    Agora chega. Encerro por aqui.

  30. O Fã,

    Cara você esta enganado amigo. Precisamos sim de network, precisamos sim compartilhar nossos conhecimentos, precisamos sim nos “vender”. Não que você tenha dito isso, so estou sendo generalista.

    Não que isso seja a verdade absoluta, mas é uma verdade.

    Vamos a um exemplo, você é um cara top, mother fuck plus plus, mas… quem te conhece? Quem podera te indicar? Quem ja aprendeu com você? Num mundo globalizado, somente certificação, mestrado e etc não te faz um cara bom. Precismos ser conhecidos, precisamos expor nosso trabalho. Isso faz com que nosso trabalho seja comparado, confrontado e sim validado se realmente é bom. Não por nos que fizemos, mas sim por quem quer q seja.

    Se não somos conhecidos, se não possuirmos nossa comunidade, como cresceremos numa area que “todos” querem entrar por dinheiro? Nosso mercado ja anda bastante prostituido. Sempre temos que nos expor cada vez mais, senao vem um indiano ai e toma seu trampo! rsrsrrsr

    Um abraço!

  31. “O bom programador é aquele que ganha bem (aquele que virou Gerente de Projetos, Arquiteto de Software, Empresário do Ramo – como o Matsumoto).”

    Programador que ganha bem tem mérito ou lábia pra vender seu peixe… já vi muita gente se negociando como salmão tendo competência de sardinha.

    “O caminho do sucesso é estudar, estudar, certificações, mestrado, um network estável, e pronto. TI exige conhecimento, e não diplomatas.”

    O caminho do sucesso é estudar, concordo. Estudar para aprender, aplicar o conhecimento e propagá-lo a todos, não para ostentar diplomas na parede de casa que só servem para alimentar seu ego, se impondo na base do carteiraço. De pessoas assim o mercado está cheio; já perdi a conta de quanto software ruim já vi sendo desenvolvido por profissionais certificados, PMP’s coordenando na base do chicote…

    Alias, certificações não dizem muita coisa com relação a competência profissional, indicam que você soube responder satisfatoriamente uma prova, seja na base da competência, pura sorte ou decoreba. Já tive de otimizar SQL de MCDBA e assumir trabalho sozinho porque o MCP arrepiou ao ver notação polonesa… isso sem contar o SCP que passou chutando as questões de thread.

    Enfim, como o Carlos falou é melhor parar por aqui.

  32. Concordo c/ td e Parabéns pela matéria!

  33. bom post! Agora acho que nao so se aplica a programadores nao, a todo profissional de TI que tem uma vida similar de um programador.

    flw!

  34. “Porém se esquecem que o melhor código do mundo é inútil se ninguém utilizar o software que o contém.”

    Essa frase matou a páu!

    Parabéns pelo post, abraços.

  35. excelente artigo! que bom que algum programador escreveu isso.

    agora podemos abordar o assunto no Startupi, falando com o pessoal das startups e investidores.

    vc quer ser entrevistado ou escrever um guest post?

    abraço e parabéns!

  36. Carlos, lendo seu post e vendo as reações diversas, pode-se ver que você tocou em um ponto simples mas ainda assim controverso.

    Eu tenho um bom tempo de carreira, boa parte dele lidando de frente com o editor de código. Aos poucos consegui me libertar desse bloqueio. O que me ajudou em parte foi o fato de eu gostar de escrever, de me comunicar com as pessoas. Mas eu realmente só consegui ser mais efetivo a partir do momento em que percebi que para ser realmente produtivo, eu precisava aprender a me multiplicar, a ajudar os outros a serem mais produtivos.

    Sozinhos, temos uma capacidade limitada de realização. Você dá o exemplo do Ruby; a meu ver o grande feito do Matsumoto (e do Guido van Rossum, do Larry Wall e tantos outros) não está em criar a linguagem em si, mas em conseguir capitalizar o potencial de uma comunidade. Outro grande exemplo é o Linus Torvalds, um cara fenomenal, de opiniões fortíssimas, difícil de lidar, mas capaz de se comunicar de uma forma muito específica e de aglutinar em torno de si uma comunidade que já tem quase 20 anos de vida.

    Digo tudo isso porque a chave não está em ser marqueteiro ou em se comunicar de forma vazia. A chave está em ser competente, produtivo, mas também efetivo na sua comunicação. Está em oferecer para as pessoas algo que elas precisem e que as ajude a fazer algo melhor. Seja produzir mais, organizar melhor, ou se preocupar menos. Mas é preciso produzir e comunicar, senão o valor se perde no vazio. De que adianta ser o melhor programador do mundo se ninguém sabe quem você é ou o que você faz? Ou ainda, de que vale ser o melhor, se você não ajuda ninguém a melhorar?

  37. Acho que o grande exemplo é o Steve Jobs. Ótimo vendedor.

    Talvez seja bem complementar ao post o livro “A cabeça de Steve Jobs”.

  38. Ótimo post, muito feliz a sua colocação.
    E em relação a compartilhar conhecimento acredito que essa frase de Cora Coralina diz tudo – “Feliz aquele que transfere o que sabe e aprende o que ensina.”

  39. Acredito que por mais que o cara seja um Code Monkey, se tiver uma boa comunicação seus conhecimentos irão melhorar.

    Um exemplo claro é um Blog, pois depois que começamos a partilhar nossos conhecimentos, aprendemos mais.

    Porém ainda sim existem aqueles anônimos que fazem nossos códigos mais saudáveis, que pra mim de forma alguma irá perder seus méritos.

    Ótimo post! (:

  40. Faz todo sentido o que você escreveu Carlos. Tenho 1 observação se me permite:

    O problema é quando o cara realmente para de escrever código e vira somente marketeiro (conheço alguns por ai)

    []s

    Emerson

  41. Bem, a ideia do post nao foi virar marketeiro ou vendedor etc. Dai dar para perceber o quanto ainda os profissionais de TI estao fechado a parte de negocio, pessoas etc. e mais preso a parte tecnica.

  42. Parabéns pelo post!

    sou novo na área e ja vou adotar esse método na minha carreira.

    att.

    Reyvson.

  43. Fantástico esse post Carlos!
    Na minha opinião, um dos melhores que já li no seu blog, com certeza.
    Concordo demais com o seu ponto de vista.
    Parabéns mesmo!

Trackbacks

  1. Quer se tornar um programador de sucesso? Pare de escrever código … – programador
  2. “O código que escrevemos tem muito pouco impacto sobre as pessoas” | Blog do Bruno Ávila – Avante!
  3. O melhor do Ensinar – 06/02 a 12/02 « Blog do Ensinar
  4. Blog do Pantoja » Não procure emprego, deixe que ele te procura.
  5. Não procure emprego - SAPIENZA

Deixe um comentário