Dominar uma linguagem de programação por não programar?

9

O cientista da computação Peter Norvig argumentou em seu ensaio Ensine-se a programar em 10 anos que você precisa de 10.000 horas de prática.

Mas Jeff Atwood argumentou em seu post Como se tornar um melhor programador ao não programar que ele acredita que a única maneira de se tornar um programador melhor é não programar.

Estes artigos estão em oposição. Existe uma evidência científica para provar a abordagem de Jeff Atwood?

PlainOldProgrammer
fonte
12
Não vejo como eles são contrários ao olhar para além dos títulos. Ambos são importantes, mas, na verdade, programar e também trabalhar com habilidades de não programação usadas no trabalho. Nem está dizendo que você não deve fazer o outro. Cada um deles está dizendo que uma coisa é importante além da outra.
Servy
2
Vamos passar os meta comentários para meta, por favor. meta.programmers.stackexchange.com/q/6137/53019

Respostas:

28

Você está perdendo o ponto.

Jeff Atwood está dizendo que ser um excelente programador requer mais do que apenas habilidades de codificação. Também requer ser um bom designer, trabalhar bem com outras pessoas e, em geral, se tornar um pensador e solucionador de problemas melhor.

A maior habilidade que falta é alguém que seja bom em entender a engenharia e que tenha um bom relacionamento com os engenheiros do núcleo duro, e faça a ponte para trabalhar com os clientes.

- Bill Gates

O ponto de Peter Norvig é que você não pode simplesmente pegar uma cópia de "Torne-se um programador mestre em 24 horas" e esperar que isso funcione. Mas é exatamente quantas pessoas que fazem perguntas no Stack Overflow parecem abordar a programação. Eles acham que podem carregar o Eclipse, aprender algumas palavras-chave e escrever os próximos Angry Birds. Demora um pouco mais do que isso.

Robert Harvey
fonte
5
Nah, pássaros irritados provavelmente são 2 ou 3 palavras-chave repetidas ad nauseum com fotografias engraçadas de pássaros. Sim. É um banco de dados para ornitólogos, certo?
Jimmy Hoffa
Bem, mas, de certa maneira, o argumento de Peter Norving refere-se ao fato de "dominar" não conhecer de maneira superficial (esse é o ponto central de seu artigo) a linguagem de programação. De fato, Peter e Jeff Atwood se referem a ser um "mestre". Da mesma forma que você descreve a postura de Jeff Atwood, descrevo que Peter Norving está dizendo que ser um excelente programador requer muita codificação (com os tópicos implícitos de aprendizado) e prática.
PlainOldProgrammer
2
@Wronski: Ah, você voltou, entendo! Prazer em vê-lo novamente. Enquanto você estava fora, estávamos discutindo sua pergunta, fechando e reabrindo. Enfim, o que você está dizendo exatamente? O ponto de Peter Norving é que você não pode ser um mestre em 24 horas ou até 21 dias. O argumento de Jeff Atwood é que você não pode ser um mestre apenas escrevendo código. Ambos estão certos.
Robert Harvey
@RobertHarvey Por que fechá-lo e reabri-lo ?. Devo interpretar o artigo de Peter Norving para que seja apenas uma boa "codificação" e o artigo para Jeff Atwood para ser um bom "engenheiro"? Estou um pouco confuso.
PlainOldProgrammer
11
@Wronski: Masters são bons codificadores e bons engenheiros.
Robert Harvey
10

A parte "Não programar" deve vir após muitas práticas de programação.

the only way to become a better programmer is by not programming

Você precisa ser um programador antes de se tornar um melhor. A primeira barreira de aprendizado de linguagem de programação exigirá muito esforço sozinha e a parte de solução de problemas será trivial em comparação com os problemas que você terá que enfrentar mais tarde.

ATUALIZAR:

Conforme sugerido nos comentários, você ainda pode se beneficiar de "não programar aka: (pensando)" ao iniciar como programador, mas eu não me afastaria do teclado apenas porque alguém diz que eu deveria fazer isso para melhorar, você deve fazer isso porque sabe que precisa pensar mais sobre isso.

Korey Hinton
fonte
2
Possivelmente. Mas as habilidades de design não estão tão distantes, mesmo no começo; e as habilidades das pessoas são valiosas, independentemente da sua capacidade de codificação.
Robert Harvey
@RobertHarvey Sim, mas o artigo de Jeff Atwood parece ser mais sobre solução de problemas e afastamento do computador para pensar no que você está programando.
Korey Hinton
2
@KoreyHinton O que é algo que seria inteiramente apropriado para alguém ao resolver seu primeiro problema de programação. Você pode e deve fazer isso desde o primeiro dia, não quando já tiver proficiência, é o que Robert está dizendo.
Servy
11
@KoreyHinton É por isso que ninguém (nem artigo, nem nenhuma das pessoas que estão respondendo aqui) está dizendo que você deveria fazer apenas uma ou outra. Eles estão dizendo que é importante fazer muitos dos dois, porque as habilidades se complementam.
Servy
11
@Wronski Acho que Robert está argumentando o ponto oposto de que habilidades de não programação podem ser aprendidas enquanto aprendemos a programação. Também concordo com isso, mas estou feliz por não ter complicado demais o processo de aprendizado no início. Meu foco era como você mencionou priorizar primeiro as habilidades de programação, as habilidades de pensamento em segundo e agora estou constantemente tentando melhorar as duas.
Korey Hinton