Coding Dojo Floripa

Desenvolvimento Ágil

O que faz de você um bom programador

Publicado por Ivan Sanchez em Quarta-feira, Novembro 15, 2006

Depois de vários anos trabalhando com desenvolvimento de sofware e conhecendo vários programadores diferentes, posso afirmar que existem algumas características “não-técnicas” que só os melhores possuem, dentre elas:

  • Objetividade:
    • Sabe onde quer chegar quando começa a implementar algo novo;
    • Diferencia bem a hora de aprender da hora de usar o que aprendeu;
    • Busca a solução mais simples e que funcione.
  • Comunicação:
    • Sabe “vender” uma idéia;
    • É capaz de expor suas idéias para um leigo;
    • Consegue distinguir o vocabulário técnico do de negócios.
  • Aprendizado:
    • Possui bastante background teórico;
    • Autodidata para ferramentas e linguagens;
    • Participa ativamente de várias listas de discussão;
    • Gosta de ler livros não-técnicos;
    • Busca participar de palestras, workshops e cursos.
  • Social:
    • Pratica algum esporte;
    • Consegue manter um ótimo relacionamento com colegas e clientes.

Acredito que conhecimento técnico é importante, mas sem alguns destes itens este conhecimento não serve para muito. Hoje em dia tenho a sorte de trabalhar com pessoas que reunem a maioria destas características.

E você, acrescentaria ou tiraria algum item desta lista?

About these ads

18 Respostas para “O que faz de você um bom programador”

  1. Leandro disse

    Estou a estudar Engenharia Informática.
    Programar vai ser o prato do dia. Gostei de ver estes tópicos.

  2. Acho que se encaixaria em “Aprendizado”: Curiosidade!

    valeuz…

  3. Java-Cachaça disse

    Putz,
    Vou ter que começar a fazer algum esporte então.

    Parabéns pelo post.

  4. felipe cruz disse

    Bom, minha critica construtiva:

    O nome deveria ser “O que faz de voce um bom profissional” mas entendo que voce como desenvolvedor de software, buscou algo mais relacionado a profissao. Entretanto todas, ou a maioria, das qualidades citadas se sirvem em outras profissões.

    3 pequenos detalhes que eu não gostei,, falar de livros, listas e esportes. Porque ao falar exatamente essas palavras o texto fica menos generico..

    Qual a diferença entre alguem que le livros nao-tecnicos de alguem que gosta de ver documentarios(ou ler revistas)? Acho que você quis passar uma caracteristica de pessoas que gostam de aprender/conhecer coisas além das que usa no seu dia dia profissional.

    O mesmo vale para as listas..
    Eu gosto de buscar as informações diariamente nos sites, nao gosto de receber emails. Eu usso o google reader..nao gosto de receber email.
    É um perfil de pessoas que gosta de estar atualizado

    Mas o que vale é que voce chegou a essas conclusões sozinho, porque muita gente com decadas de experiencia seria incapaz de perceber essas caracteristicas que voce citou..

    O post ficou mto bom, e certamente pode se espalhar ai pela internet. Voce so podia ajustar um pouquinho pra ele ficar mais generico!!

  5. felipe cruz disse

    Peço desculpas pelos erros de português mas não tem como editar o comentário..

  6. felipe cruz disse

    Peço desculpas pelos erros de português mas não tem como editar o comentário. Escrevi meio rápido e já identifiquei vários erros..

  7. Ivan Sanchez disse

    Felipe

    Valeu pelo comentário!

    Depois que eu publiquei eu cheguei a ver que além de citar listas especificamente, eu poderia ter me expressado de forma mais abrangente. Participar de fóruns e comentar em blogs também serve para este mesmo propósito: participar ativamente da comunidade relacionada ao seu trabalho. Vou tentar corrigir isso ;)

    Quanto a livros não técnicos, considero eles importantes não só por tratarem de outros assuntos, mas por exercitarem a língua portuguesa de forma eficiente. Revistas podem até ajudar um pouco, mas dificilmente vou ver alguém escrevendo melhor só pela informação absorvida da TV. Concorda?

    E com relação ao esporte, o que você pensa de relacionar bons profissionais a praticantes de esportes?

    Quanto ao foco do post, eu criei ele pensando em programadores, mas já recebi mais comentários dizendo que isto se aplica a todos os profissionais e concordo. Já estou pensando até em mudar o nome do post mesmo…

    Mais uma vez, obrigado pelo feedback!

    Abraço,

    Ivan

  8. felipe cruz disse

    Ivan,

    concordo com você agora sobre os livros e a língua para uma escrita correta. Acrescento que escrever bem é tao importante quanto falar bem, com desenvoltura etc.. Mas pra ajudar na escrita só livros mesmo, boa sacada!!!

    sobre os esportes, realmente podemos relacionar bons profissionais a esportes, mas veja bem, tem gente que prefere aulas de teatro do que praticar um esporte. Acho que nesse caso a idéia comum é ter alguma atividade que não apenas o trabalho. O esporte é uma delas…

    Além disso, acho que talvez os bons profissionais se comparem aos atletas e não aos “praticantes de esporte”.. existe uma diferença.

    Vou falar disso no meu blog depois e te mostro!

  9. felipe cruz disse

    Escrevi um texto ja sobre esportes e trabalho. Da uma olhada!
    http://loogica.blogspot.com/

    Não sei se era sobre isso que voce estava pensando mas tem uma mensagem bem clara!

  10. [...] Conhecimento técnico é apenas uma das características que quem trabalha com desenvolvimento de software deve possuir. E você, sabe o que faz de você um bom programador? [...]

  11. [...] Pegando um gancho na discussão do post Ivan Sanchez, sobre características de bons profissionais, vou um pouco mais longe e relacionar exportes X trabalho. Quem já foi atleta, sabe que levar a sério um esporte exige dedicação, perseverança, paciência, planejamento entre outras características. Os técnicos estão ai para ajudar atletas no planejamento, motivar e ajudar na parte técnica. Um bom profissional se compara a um atleta. Mesmo sem um técnico por perto, ele busca se manter motivado, planeja seu desenvolvimento (isso pode ter uma ajuda do chefe), são dedicados e pacientes.Assim como no esporte, o trabalho é um processo de constante evolução. Muita gente por ai se acomoda no trabalho e prefere ficar fazendo o “arroz com feijão” a vida toda. Certamente essas pessoas não seriam grandes atletas, a não ser que deus tenha as presenteado com muito talento (chance de 1 em 1 milhão). Muitos ambientes de trabalho abafam a competitividade, justamente porque muita gente não se sente a vontade com esse clima. Hipocrisia. [...]

  12. Será que levantamento de copos cheios de cerveja pode ser considerado esporte? :)

  13. * Sabe onde quer chegar quando começa a implementar algo novo;

    Concordo

    * Diferencia bem a hora de aprender da hora de usar o que aprendeu;

    Discordo plenamente. Informática só se aprende utilizando. Achar que vai fazer um curso e depois saber usar é um mito. Achar que vai usar sem ter que consultar referencias o tempo todo é um mito. Você sempre programa aprendendo, e nunca aprende pra depois programar.

    O que eu acho que tem que ser “separado” é o momento da pesquisa de novas tecnologias. Através dessa pesquisa e de muito tato adquirido com a experiência, você decide o que utilizar. Depois você aprenderá a utilizar aquilo que optou, mas só aprenderá utilizando de fato.

    * Busca a solução mais simples e que funcione.

    Este eu concordo em gênero, número e grau. A falta de buscar a solução mais simples é o problema de 10 em cada 10 programadores no Brasil. As excessões são como acertar na loto, pelo menos a julgar pela minha experiência de mais de 10 anos.

    * Sabe “vender” uma ideia;

    Faltou você dizer quem é o cliente nesse caso. O chefe/gerente de desenvolvimento? O cliente usuário do sistema?

    Se o cara é bom eu concordo. O problema é que tem muito enrolador por aí que sabe vender, mas não sabe programar. E infelizmente a maioria dos chefes cai como um patinho.

    * É capaz de expor suas ideias para um leigo;

    Você tá falando do cliente/usuário né? Se um cara é “leigo” não deve (não deveria) ser programador, muito menos incomodar o trabalho dos outros.

    Em relação aos usuários, concordo que o cara tem ser capaz de dizer o que pensa, e não simplesmente fazer o que o cliente pede, sob risco de seguir um caminho errado. Nem sempre o cliente sabe o que quer direito, e o desenvolvedor deve ser capaz de identificar isso e por a boca no trombone para evitar um buraco fundo.

    * Consegue distinguir o vocabulário técnico do de negócios.

    Claro, claro… O problema que eu vejo aqui é na ênfase. A ênfase do programador deve ser no vocabulário técnico. Seria fantasioso achar que se pode fazer os dois na mesma plenitude. Se o cara se liga demais nos negócios acaba ficando fraco no lado técnico. Deve ter apenas o conhecimento necessário para entender o que o cliente quer, mas nas reuniões é natural que o programador dê umas puxadas para o lado técnico, ou então não é programador. Infelizmente tem muito chefe que gosta mais dos que entendem muito dos negócios, e isso acaba arruinando o trabalho na hora de por a parte técnica em prática.

    * Possui bastante background teórico;

    Discordo plenamente. Teorias são muito bonitas, mas além de tomarem tempo demais na tentativa de se aplicá-las, a grande maioria se mostra inútil com o tempo. Só o que se vê são metodologias que tornam os sistemas mais complexos do que deveriam ser e não funcionam,algoritmos e documentações que na prática nunca serão usadas e só tomam tempo, crendices em relação a segurança que são prato cheio para enroladores de plantão mas que são inúteis numa informática aonde os ataques a sistemas são tão dinâmicos e a todo momento surgem diferentes brechas que colocam mesmo os melhores esquemas de segurança por água abaixo.

    * Autodidata para ferramentas e linguagens;

    Essencial. Não se aprende informática em cursos e nem em livros. Se aprende utilizando, como eu disse anteriormente, por ser algo extremamente dinâmico e mutável.

    * Participa ativamente de várias listas de discussão;

    Pode ser uma maneira de ser auto-didata, mas acho que hoje em dia é mais fácil e rápido procurar as respostas no Google do que lançar perguntas e esperar alguém ter a boa vontade de responde-las.

    * Gosta de ler livros não-técnicos;

    Isso não é essencial para ser um bom programador.

    * Busca participar de palestras, workshops e cursos.

    Perda de tempo. Como eu já disse, não se aprende a programar em cursos. Palestras e workshops nunca darão tanta informação quanto uma boa pesquisa no Google.

    * Pratica algum esporte;

    Não é essencial para ser um bom programador.

    * Consegue manter um ótimo relacionamento com colegas e clientes.

    Necessário, mas obviamente não um sinonimo de programar bem.

  14. Ivan Sanchez disse

    Olá Marco,
    Sobre “Diferencia bem a hora de aprender da hora de usar o que aprendeu”
    Em nenhum momento disse que não se aprende utilizando. Acredito que a prática é fundamental no aprendizado. Inclusive nunca vi alguém sair de um curso dominando totalmente algo ou programando sem consultar nenhuma referência.
    Minha observação é baseada justamente no que você descreve no parágrafo seguinte. Um bom programador tem que saber quando é a hora de produzir e quando é hora de pesquisar.
    Já vi inúmeras vezes programadores tentando aprender enquanto deveria produzir e é a esse tipo de atitude que acho que deve ser evitada
    Sobre “Sabe “vender” uma ideia;”
    Entendo muito bem o que você diz, inclusive já vi meus chefes cairem na lábia de um “marketeiro pessoal” hehe
    Sobre “Possui bastante background teórico;”
    Como você considera que um bom profissional se adapta a este cenário que você descreve? Na base da tentativa e erro?
    Sobre ” Participa ativamente de várias listas de discussão;”
    Os bons programadores que conheço não são os que só fazem perguntas nas listas, mas sim os que respondem ;)
    Sobre “Gosta de ler livros não-técnicos;”
    Os melhores programadores que conheci sabem se comunicar na forma escrita muito bem, e acredito que isso só é possível através da leitura.
    Sobre “Busca participar de palestras, workshops e cursos.”
    Quem vai a estes eventos somente em busca de aprendizado realmente pode perder seu tempo. Porém no google é impossível ampliar seu networking como nestes eventos.
    Sobre “Pratica algum esporte;”
    Não disse que é essencial. É apenas uma característica que eu observei e que talvez nem tenha relação direta com programação, embora eu acredite que as pessoas que se preocupem com a saúde geralmente trabalham melhor.
    Sobre “Consegue manter um ótimo relacionamento com colegas e clientes”
    Programar não é a única coisa que um programador faz. E duvido muito que algum programador tenho sucesso em sua carreira sem se dar bem com as pessoas a sua volta…

    Valeu pelas opiniões Marco, elas me fizeram pensar ainda mais nos itens que coloquei ali. Gostaria de ver essas suas opiniões no seu blog. Talvez assim fique mais prático continuar esta troca de idéias… Que tal?

  15. Ivan Sanchez disse

    Paulino,

    Espero que sim! Nos últimos meses este também é o único “esporte” que tenho praticado ;-)

    Apropósito, já assisti uma palestra sua sobre os Telecentros aqui em Florianópolis (em 2003, se não me engano)… Excelente!

  16. [...] Conhecimento técnico é apenas uma das características que quem trabalha com desenvolvimento de software deve possuir. E você, sabe o que faz de você um bom programador? [...]

  17. Leandro disse

    Caramba, você me descreveu!!!!!!!
    rsrsr… brincadeira… muito interessante o post, os grandes NERDS se esquecem de itens importantes, como vida saudável, comunicação…. Parabéns!!!

  18. [...] Conhecimento técnico é apenas uma das características que quem trabalha com desenvolvimento de software deve possuir. E você, sabe o que faz de você um bom programador? [...]

Deixar uma resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

WordPress.com Logo

Está a comentar usando a sua conta WordPress.com Log Out / Modificar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Log Out / Modificar )

Facebook photo

Está a comentar usando a sua conta Facebook Log Out / Modificar )

Google+ photo

Está a comentar usando a sua conta Google+ Log Out / Modificar )

Connecting to %s

 
Seguir

Get every new post delivered to your Inbox.

%d bloggers like this: