Dijkstra escreve aqui :
Além de uma inclinação matemática, um domínio excepcionalmente bom da língua nativa é o ativo mais vital de um programador competente.
Não compreendo a última parte desta citação. Você pode explicar ou elaborar?
PS Eu cresci na Índia. Eu falo bengali em casa; Falo Marathi na comunidade em que vivo; O hindi é a língua nacional e é muito falada, então eu sei disso e, na escola e na faculdade, fui ensinado com o inglês como primeira língua. Claro, agora penso em várias línguas e devo admitir que não tenho domínio sobre nenhuma . Isso realmente está afetando minha aptidão para programação? Se sim, como? e existem soluções ?
Respostas:
Enquanto eu concordo com o que alex e rapid_now disse, acredito que pode haver uma rotação diferente. Esta é a minha própria teoria e não estou sugerindo que Dijkstra tenha o mesmo significado.
O que é "domínio de um idioma": é a capacidade de pegar os componentes básicos de um idioma e colocá-los em frases e frases construtivas e úteis. Alfabetos e personagens não têm sentido em si mesmos. Você precisa reuni-los e obter um significado disso. As palavras não têm sentido por si mesmas; somente quando você os coloca em uma seqüência adequada, com base na sintaxe e na gramática, eles expressam idéias concretas.
Não é exatamente o mesmo na programação de computadores? Reunimos algumas palavras-chave e símbolos e criamos coisas concretas e viáveis. Uma linguagem de programação possui símbolos e gramática como uma linguagem natural. O domínio de uma linguagem de programação requer a capacidade de agrupar esses símbolos e regras (individualmente sem sentido) para criar algo significativo e útil.
Acredito que isso significa que existe uma correlação direta entre a capacidade de uma pessoa de aprender uma linguagem humana e uma linguagem de computador. Ambos precisam do mesmo conjunto de habilidades humanas e capacidade de raciocínio. Dê uma olhada entre seus colegas e você descobrirá que aqueles com pouca habilidade em programação também são os que não conseguem falar ou escrever tão claramente quanto os outros. Aqueles que são bons em escolher idiomas humanos têm as habilidades necessárias para se tornarem bons programadores também.
fonte
Dijkstra está dizendo que você deve ser capaz de escrever e falar de forma clara, concisa e vigorosa na linguagem ambiente do seu local de trabalho. Ele está perfeitamente certo: a menos que você possa falar e escrever sobre questões técnicas (e não técnicas) de uma maneira que outras pessoas possam entender imediatamente, você é prejudicado e um tanto ineficaz como engenheiro de software.
A idéia é que escrever sobre código é tão importante quanto escrever o próprio código.
SO é o exemplo perfeito: quantas vezes vimos perguntas boas, incisivas e valiosas serem abertas ou fechadas porque o pôster não conseguia se expressar bem em inglês? Resposta: muitos.
fonte
A citação diz que você precisa conhecer sua língua nativa (por exemplo, Marathi no seu caso). Este é um ativo importante.
Os psicólogos geralmente pensam que conhecer bem um idioma ajuda a expressar melhor seus pensamentos. Alguns dizem que todo o pensamento que fazemos é confinado à nossa língua principal. Quanto mais rica a linguagem (e o conhecimento dela), melhor a pessoa pode se comunicar e estruturar as idéias.
Conhecer vários idiomas também ajuda a entender diferentes modelos de pensamento.
fonte
Observando a peça na íntegra, é uma lista interessante, mas data de 1975. É justo dizer que, em certa medida, os tempos mudaram no período intermediário, tornando partes dessa lista de princípios um tanto obsoletas.
Uma habilidade essencial que acredito que os programadores devem ter é a capacidade de se comunicar de maneira eficaz. Isso não significa apenas explicação; isso significa entendimento. Independentemente de qual seja o seu idioma de trabalho, o inglês no seu caso, embora não seja o seu idioma nativo, aqueles que tiverem dificuldades em se comunicar efetivamente em seu idioma nativo não acharão mais fácil em outros lugares.
Como uma observação geral, é justo dizer que, independentemente de qual seja sua posição na vida, se você tiver dificuldades em seu idioma nativo, será prejudicado no seu dia-a-dia.
Eu não me incomodaria com o que ele quer dizer com domínio - com base na sua contribuição acima, suspeito que você tenha mais do que o domínio adequado do inglês e, a partir disso, extrapolo que você se comunique efetivamente em seus outros idiomas.
fonte
Suspeito que ele esteja se referindo a entender bem o que as pessoas querem de você - em outras palavras, boa capacidade de comunicação verbal.
(Para colocar minha própria inclinação: parte disso significa, no contexto da programação, que às vezes você precisa entender o que as pessoas NÃO dizem, ou o que dizem, mas não muito claramente.)
fonte
Eu acho que ser bom em (qualquer) idioma serve para isso -
Se o seu argumento não estiver claro, você pode pensar, revisar e reafirmar de maneira aprimorada. Até o que você diz é exatamente o que você quer que a próxima pessoa (ou máquina) entenda.
fonte