O que faz de você um bom programador?

Há um tempo atrás a empresa onde trabalho estava contratando um um novo programador, e isso gerou algumas discussões do que é um bom programador afinal.

Que características deve ter um programador para ser considerado um ótimo programador?

Minha opinião está no meu blog, mas gostaria de saber a opinião de vocês.

Obs.: Nós usamos o termo programador por força do hábito, mas na verdade deveria ser “desenvolvedor de software” :slight_smile:

Olá

Realmente o que você escreveu está perfeito sem tirar nem por. Já conheci muita gente boa mas nem todos são tão bons em todos os quesitos. Mas o objetivo seria atender o maior número deles.

[]s
Luca

Foi bom ver que o post no blog fala de comunicação. Mesmo
quando estamos só programando (será que podemos /realmente/
usar este “só” para uma atividade tão essencial?), o que fazemos
é nos comunicar. E a comunicação não é com um computador
ou compilador. O bom programador escreve para outros
programadores e consegue se fazer entender sem que o leitor
precise mover montanhas.

Por isso uma das habilidades essenciais para o bom programador
é saber escrever. Estamos o tempo todo escrevendo manuais de
para nossos usuários, artigos técnicos, mensagens de suporte e
dúvidas em listas de discussão (ou no GUJ). Escrever bem pode
não ser uma habilidade secundária, afinal ler um texto bem escrito
é prazeroso. Ler código bem escrito também. Se quisermos ser lidos,
é melhor tentar dar este pequeno prazer aos leitores. É isso ou ser
silenciosamente ignorado.

Concordo. Comunicação é importante. Aliás, eu ainda vou conseguir achar uma boa relação entre pessoas que sabem se comunicar bem e pessoas que escrevem bons códigos, porque isso parece cada dia mais evidente para mim. Pessoas que não sabem se expressar corretamente (principalmente de maneira escrita) tendem a escrever códigos igualmente ruins, na minha opinião.

Também acho que comunicação é super importante.

Acho que vale também lembrar que existe o outro lado da comunicação que ainda não foi mencionado.

O que você colocou no Blog está ótimo.
Eu acho que esse seria o caminho para qualquer um ser um ótimo profissional.

[quote=thiagoarrais]Foi bom ver que o post no blog fala de comunicação. Mesmo
quando estamos só programando (será que podemos /realmente/
usar este “só” para uma atividade tão essencial?), o que fazemos
é nos comunicar. E a comunicação não é com um computador
ou compilador. O bom programador escreve para outros
programadores e consegue se fazer entender sem que o leitor
precise mover montanhas.

Por isso uma das habilidades essenciais para o bom programador
é saber escrever. Estamos o tempo todo escrevendo manuais de
para nossos usuários, artigos técnicos, mensagens de suporte e
dúvidas em listas de discussão (ou no GUJ). Escrever bem pode
não ser uma habilidade secundária, afinal ler um texto bem escrito
é prazeroso. Ler código bem escrito também. Se quisermos ser lidos,
é melhor tentar dar este pequeno prazer aos leitores. É isso ou ser
silenciosamente ignorado.[/quote]

Perfeito. Eu não coloquei explicitamente o item “Escrever bem” porque assumi que quem costuma ler livros não-técnicos já possui esta qualidade. Mas talvez seja melhor explicitar, não sei…

[quote=balarini]O que você colocou no Blog está ótimo.
Eu acho que esse seria o caminho para qualquer um ser um ótimo profissional.[/quote]

Pois é… Estou até pensando em mudar o título do post de “programador” para “profissional”, como já me sugeriram no blog :wink:

muito legal!!!
acredito q um outro hábito importante é gostar do que faz :slight_smile:

Então quer dizer que quem é dislexo não é um bom programador?

O s4anches mandou muito bem!
Os professores de faculdade tem uma forte tendência de colocar comunicação como uma uma característica exclusiva da gerência.
Acho que existe uma certa cultura de “castas” por trás da profissão de programador, onde as pessoas não acreditam q ele poderá ser gerente por falta de habilidades sociais. Aquela coisa do nerd todo desajeitado ainda persegue a profissão.
Se analisarmos mais profundamente, as qualidades citadas no blog FAZEM PARTE DE QUALQUER PROFISSÃO. E isso prova q podemos não só utilizar nossa profissão para resolver problemas dos outros, como também para melhorar nossa vida através das relações com as pessoas a nossa volta.

t+

[quote=s4nchez]
Obs.: Nós usamos o termo programador por força do hábito, mas na verdade deveria ser “desenvolvedor de software” :-)[/quote]

Olha, Dijkstra se chamava programador, Richard Stalman se apresenta como programador, Dennis Ritchie também se apresentava como programador. Então porque essa falta de orgulho em ser programador? Ou alguem aqui ainda acredita que programar e fazer o design são coisas diferentes?
Nós brasileiros, com nosso cultura do canudo e do “vocÊ sabe com quem está falando” pioramos a coisa aqui ainda mais. Aqui o cara tem que ser chamado de analista de sistemas.
Eu parei com isso. Hoje em dia, quando preencho um formulário, eu coloco programador. Mesmo que pra empresa que eu trabalho eu seja um “arquiteto de software”. Pra mim isso é cargo, minha profissão é programador, e eu me orgulho disso.

Ser programador ou não ser!?

http://www.orkut.com/CommMsgs.aspx?cmm=343347&tid=2458987640189493745&na=1&nst=1

Quem já me viu programar sabe que minha comunicação durante o desenvolvimento é quase zero. Eu fecho a cara, olho pra frente e só saio quando a coisa estiver pronta.

Acho que não existe regrinha não. O bom programador de C que vai implementar código para uma esteira de produção precisa de características mto diferentes daquele programador júnior Java que vai receber um bolo de documentação e fazer papel de digitador em uma empresa de grande porte. Diferente de outras empresas onde (eu prefiro) o cara tem mais liberdade de fazer as coisas…

[quote=Guilherme Silveira]Quem já me viu programar sabe que minha comunicação durante o desenvolvimento é quase zero. Eu fecho a cara, olho pra frente e só saio quando a coisa estiver pronta.

Acho que não existe regrinha não. O bom programador de C que vai implementar código para uma esteira de produção precisa de características mto diferentes daquele programador júnior Java que vai receber um bolo de documentação e fazer papel de digitador em uma empresa de grande porte. Diferente de outras empresas onde (eu prefiro) o cara tem mais liberdade de fazer as coisas…
[/quote]

Concordo que na hora de botar a mão no código você pode até não se comunicar, mas se no resto do seu trabalho você não compensar isso duvido muito que o resultado da programação seja tão bom. Programadores não são videntes e sem comunicação acredito que seja impossível entender o que se deve programar.

Como disse no blog, eu procurei características (e não regras). Com certeza o trabalho de um programador C e um iniciante em Java é bem diferente, mas ao meu ver tudo que eu listei ali vale inclusive pra quem não é programador. Já vi programadores em C que eram considerados “gurus” não serem capazes de entender um problema fora da área da computação e sequer ter jogo de cintura para admitir isso e correr atrás do prejuízo.

De qualquer maneira, gostaria muito de ver a sua opinião detalhada (quem sabe até no seu blog). Ficarei contente em continuar esta discussão :slight_smile:

[quote=Guilherme Silveira]Quem já me viu programar sabe que minha comunicação durante o desenvolvimento é quase zero. Eu fecho a cara, olho pra frente e só saio quando a coisa estiver pronta.

Acho que não existe regrinha não. O bom programador de C que vai implementar código para uma esteira de produção precisa de características mto diferentes daquele programador júnior Java que vai receber um bolo de documentação e fazer papel de digitador em uma empresa de grande porte. Diferente de outras empresas onde (eu prefiro) o cara tem mais liberdade de fazer as coisas…
[/quote]

Bom, ao menos no CJ tu tava bem falante. :stuck_out_tongue:

Btw, o que faz alguém um bom programador é capacidade de se comunicar ATRAVÉS do código. O cara pode ser um péssimo comunicador, mas escrever código bastante legível. Se tiver as duas características (escrita e falada), bônus pra ele.

Plentz,

Mas é dificil a pessoa ter problemas de comunicação (pensar e falar, ouvir e entender) e que ela gere um sistema bom. Pode ser o melhor código, usando as melhores práticas, a linguagem ideal porém se numa reunião ela não entender o que esta sendo pedido e na hora de se comunicar ela não souber se expressar isso gera problemas bem maiores.

Olá

Pera aí, vamos separar as coisas:

  1. O bom desenvolvedor precisa saber se comunicar até para entender o que querem do sistema mas isto não quer dizer estar aberto a comunicação o tempo todo. O Guilherme é um cara bom de comunicação mas como muitos, precisa de concentração enquanto programa. Eu sempre tive dificuldades em ambientes zoneados. Acho que é por isto que muitos programadores trabalham ouvindo som para isolar-se do mundo exterior.

  2. Não há uma separação rígida entre a gerência e o programador pois muitas vezes o gerente começou como programador. Só é preciso que ambos se entendam e às vezes o programador iniciante não entende algumas atitudes da gerência que por sua vez não tem tempo de explicar.

[]s
Luca

eu não sou um bom programador :frowning:

Bom dia a todos!

Não sou a melhor pessoa para comentar isso, mas acho que como trabalhamos principalmente com informação, deveríamos saber que receber e transmitir informação é muitas vezes mais importante que a própria informação.
Ser introvertido, tímido e bom profissional é aceitável. Ser totalmente introspectivo, alheio ao mundo e as relações mas profissional excepcional, não.
Acho sim que para ser bom programador tem que ser um ótimo orador e um ótimo ouvinte. Não consigo ver bons sistemas partindo de comunicações incompletas.

Até!