ti-enxame.com

A linguagem falada nativa que afeta a qualidade do código?

Há uma escola de pensamento em lingüística que a solução de problemas é muito vinculada à sintaxe, semântica, gramática e flexibilidade da própria linguagem falada nativa.

Trabalhando com várias equipes de desenvolvimento internacional, posso ver claramente uma cultura mental (se você quiser) no caso da base. A linguagem de programação de lado, a codificação alemã é bastante diferente dos meus colegas na Índia. Além disso, o código é distintamente diferente na América Média, pois é na América Litoral (na verdade, a IBM percebeu isso há anos).

Você percebe com seus colegas internacionais (de qualquer país) que o estilo de codificação e a resolução de problemas estão em linha com línguas nativas?

9
Jé Queue

Até agora com a minha experiência, notei que meu sujeito nativo internationl fez o mesmo trabalho em comparação com o não-nativo. O problema surge quando eles tentaram explicar o conceito ou a exigência. Além disso, suponho que o nome da sintaxe não toca muito papel até ler o que eles fazem. Uma vez que um programador adquire o conhecimento da sintaxe, então ele não conta qual é o significado real da palavra usada para sintaxe.

5
Zerotoinfinity

Você percebe com seus colegas internacionais (de qualquer país) que o estilo de codificação e a resolução de problemas estão em linha com línguas nativas?

Absolutamente. Este é um fato difícil. A cadeia de efeito-efeito é, no entanto, complexa.

A região, seu ecossistema, condições climáticas, vida plantas e animais influenciaram o desenvolvimento da religião da cultura local sendo parte dela.

A cultura e a religião influenciaram a formação e o desenvolvimento da (s) língua (s) local.

A cultura e a linguagem deixaram suas marcas no modelo da sociedade para este grupo étnico em particular.

O modelo da sociedade definiu o modelo de comportamento - estilo de vida, atitude de trabalho, relações sociais, prioridades e valores de indivíduos. Essa é a parte que queremos.

As pessoas de diferentes culturas estarão se aproximando de resolver um problema com a bagagem de seu patrimônio cultural - como eles pensam sobre isso, que atitude eles trazem para o trabalho, que metodologia e padrões de resolução de problemas eles serão aplicados, que prioridades e valores eles estabelecem.


Falando de exemplos que posso te dar dois. Se tomarmos a Alemanha onde reside atualmente, há certos padrões que observei.

  1. Planejando tudo com antecedência e por longo prazo é o caminho da vida. Reuniões noturnas com amigos podem ser planejadas semanas e meses de antecedência. Jovens já se preocupam com sua aposentadoria (seguro etc.). Balanço de humor, improvisação, disposição e capacidade de ajustar como você-go é muito baixo. Naturalmente, é transferido para o modo de trabalho. Planejamento e encomenda desempenham um grande papel. Ser ágil é considerado uma característica excepcional para descrever uma pessoa moderna/equipe com um pensamento progressivo. No entanto, a maioria dos processos ágeis que eu observei nas equipes alemãs parecer mais como uma execução de máquinas dos passos predefinidos (mesmo que as pessoas realmente tentem ser ágil), mas nenhum espírito de ágil como tal.

  2. Previsibilidade de tudo é a norma da vida. As pessoas estão acostumadas a saber o que acontecerá, onde e quando. Estende-se da vida cotidiana sobre o estilo de trabalho para relacionamentos pessoais. Você pode vê-lo, por exemplo, quando as pessoas atravessam a estrada. Eles esperam pela luz verde e começam a se mover sem olhar se os carros realmente parassem - porque eles esperam que eles. As pessoas se orgulham de serem capazes de controlar todos os aspectos de sua vida. Quando, no entanto, a vida bate de volta com algo inesperado, quando as coisas saem do controle, as pessoas se apagam. Se transferido para a programação, já vi essa codificação é feita de forma otimista, não obsessão com a entrada de verificação, teclas estrangeiras para verificar a integridade dos dados e assim por diante. Também não há alguma engenharia extra para manter o código até certo ponto resiliente a falhas e adaptáveis ​​a certas mudanças futuras, apenas para satisfazer as expectativas de hoje (que provavelmente não vão mudar).

  3. Salvar dinheiro e otimizar suas despesas é extremamente importante na cultura. Ele é refletido nos artefatos de trabalho. Características e qualidade correspondem ao planejamento, mas não os excedem de repente (para torná-lo mais frio ou apenas "no caso"). Outro lado do jogo é a falta de vontade de investir em hardware e software modernos, para reengenhare o código de trabalho, para refator-se, para tornar as coisas melhor apenas para manter de acordo com o estado atual das coisas, para se preparar para o futuro. Como não há vencedores imediatos e ninguém está pagando pelas mudanças, ninguém vai se mover.

  4. Empreendedorismo e criatividade são bastante baixos na cultura. Falta de vontade de correr o risco por sua própria conta é alta. Os resultados do trabalho raramente carregam as impressões de incomum, inesperada e criativa. As pessoas tendem a seguir o caminho de trilhado, pouca experimentação ou incomum configurar "fora da curiosidade". As pessoas não gostam de tomar iniciativa em suas próprias mãos, especialmente quando pareadas com responsabilidade. Eu também ouvi alemães que aterrissam na Holanda às vezes têm dificuldade à medida que as pessoas são usadas para trabalhar de forma independente sem orientação apertada. Programação - sábio significa pouca experimentação com novas línguas, ferramentas ou bibliotecas, novas versões não são adotadas para o medo da mudança. As pessoas tomam padrões de design e aplicam-se cegamente porque foram ensinadas para a universidade e não questionam sua aplicabilidade.

  5. Função sobre a moda. É visto na vida cotidiana. Estilo urbano comum, projeto de edifícios, decoração das ruas, tudo é para baixo ao mínimo necessário para funcionar, mas geralmente nada apenas para o estilo, a beleza. Programação - sábio é visto na falta de design bonito da interface do usuário. A maioria dos sites corporativos e pessoais é bastante antiga e chata. Você também não pode persuadir o chefe e os colegas a fazer algum polimento porque não vêem benefícios tangíveis.

  6. A complexidade e a burocracia faz parte do estilo de vida. As pessoas levam ainda mais e aplicam em todos os lugares. Relações pessoais. Detalhes de trabalho, decisões e soluções geralmente resultam em vários artefatos para documentar o que foi feito. O código de programação geralmente sai com elementos desnecessários, níveis de abstração e composições porque parece às pessoas mais sérias dessa maneira. O KISS princípio não é realmente popular.

  7. "Saving Face" parece ser muito importante, para parecer bem-sucedido, para não mostrar sinais de fraqueza ou fracasso em qualquer outra pessoa (se você tem quase certamente será usado contra você). Na prática de trabalho, a falha de admissão é difícil, as pessoas fazem tudo para não "perder o rosto". Tomar crítico também vem duro. Criticar alguém (com a boa causa ou não) é uma maneira segura de fazer um inimigo. Dizendo o que se tem na mente não é praticado, o que torna bastante difícil entender quem está onde.

A linha de fundo é, bons executores, planejamento e programação, precisão é bom. Inovação e criatividade, no entanto, não se espera.


O segundo exemplo lida com a cultura russa a que eu pertenço. É bem diferente.

  1. A programação e o planejamento não parecem ser de particular valor. Pequenos desvios não dizem respeito às pessoas a menos que ela comece a ameaçar o desfecho maior. As pessoas não gostam de viver por plano, preferem uma espécie de liberdade mental, façam as coisas que gostem e quando se sentem como fazendo. Programação - sábio, eles podem ignorar a documentação de escrever "não essencial" e fazer trabalho de papel. As pessoas são muito mais fáceis de chegar e indo, se elas estão entediadas com o projeto, não gostam da atmosfera e assim por diante. Compromisso de longo prazo por vida não é de se esperar, as pessoas não querem ser amarradas, não esperam que eles venham uma vez e permaneçam até a aposentadoria. Isso é bem visto no mercado de telefones celulares. Enquanto na Europa/EUA é onipresente ter contratos de 2 anos, na Rússia, isso não é praticado. As pessoas não querem ser amarradas por tanto tempo e provavelmente ficariam entediadas com seus telefones gratis em apenas alguns meses não dizem nada de 2 anos.

  2. As pessoas não gostam da burocracia e preferem relacionamentos informais. Pouco a nenhum trabalho de papel, como poucas discussões e reuniões quanto possível, basta fazer o trabalho. A complexidade no código não é apreciada, decisões simples e maneiras diretas são preferidas. A rotina chata não é favorecida. Algumas tarefas "não essenciais", como comentário e documentação, podem ser ignoradas. As pessoas podem adiar certas coisas chatas e fazer coisas em vez disso, ou fazer o papel chato de uma maneira inesperada que os mantiverá motivados.

  3. Os custos não são tão importantes. As pessoas gostam de obter algo mais recente, mais legal, mais interessante e mais moderno, sem um caso de negócios. Se proporcionar satisfação, eles geralmente não serão desnecessários sobre custos extras incorridos.

  4. As pessoas estão muito entusiasmadas com tudo. Comida, música, roupas, artefatos e idéias de diferentes países e culturas passam pelas portas abertas. As pessoas sábias de programação experimentariam uma nova linguagem, ferramenta ou biblioteca apenas, por curiosidade, com um caso de negócios ou sem. Diferentes filosofias e metodologias, tudo é de bom grado, tocado, mordido, experimentado e misturado em uma forma funky.

  5. Beleza e estilo são muito importantes. As pessoas passariam extra e dinheiro em algo que não tem benefícios tangíveis, mas só satisfaz algum sentido artístico. Muitas vezes eles preferem algo elegante sobre algo mais funcional. O design bonito da UI é altamente apreciado. As pessoas de programação-sábios iriam reengenhar o código que parece desajeitado e não estruturado simplesmente para adicionar mais estilo a ele, mesmo que fosse perfeitamente trabalhando antes, resultando em tempo extra.

  6. Prescrição e regras são muitas vezes desconsideradas e até desprezadas, as pessoas podem fazer algo totalmente diferente, se elas são persuadidas, vai ser melhor (ou refrigerador - não pode resistir a isso). Muitas decisões de cima serão questionadas e argumentadas. E sim, todo mundo tem uma opinião forte apenas sobre tudo.

  7. A previsibilidade da vida é bastante baixa para que as pessoas sempre planejam para qualquer contingência. O mesmo é muitas vezes refletido no código, sim uma atitude pessimista, com verificações duplas e planos de fallback. A arquitetura pode refletir a prontidão para futuras mudanças possíveis, mas não a astronauta, como overarcitecture. Ágil não é uma metodologia moderna, mas o caminho da vida. Também as pessoas estão acostumadas a mudanças e não tentam controlar todos os aspectos de sua vida. Quando algo inesperado acontece, as pessoas simplesmente acenaram, dizem "será melhor da próxima vez" e seguir em frente sem mental, começar a beber, drogas etc. Um fracasso do projeto não resulta em suicídios, é facilmente tomado facilmente.

  8. A correção política é baixa para que as pessoas possam apenas dizer o que pensam na frente quando você não está esperando. Esteja preparado.

Uma linha de fundo diferente é, espere o inesperado, algo incomum e criativo, mas não espere precisão da máquina, programe e seguindo as regras.


Qual deles é melhor não pode ser facilmente respondido. Um tipo de trabalho é melhor coberto por uma categoria de um trabalhador, o outro é por um diferente. Ruim se as pessoas receberem tarefas erradas por sua mentalidade. Eu suponho que é um desafio para um gerente de equipe internacional reconhecer esse problema. Não tenho certeza se jamais foi discutido com a inscrição para a indústria de TI.

3
user8685

Eu não vi muita diferença além do código comentários. Às vezes, eu posso dizer claramente que esse bit foi escrito por alguém cuja primeira língua não é o inglês.

3
Marcie

Não tenho certeza sobre a qualidade do código, mas é certo que cada programador faz seu trabalho de maneira diferente.

Foi dito que os idiomas naturais influenciaram nosso pensamento (então eu acho que influenciaria a programação), esta escola de pensamento levou ao desenvolvimento de línguas artificiais com diferentes paradigmas em uma tentativa de provar: Loglan , por exemplo. Eu não sei se muito saiu disso.

O que tenho certeza de, no entanto, é essa educação (em que a linguagem desempenha uma parte, mas outras coisas também) certamente afeta o ponto de vista de alguém em um problema dedicado.

Eu tenho colegas que foram para as escolas "técnicas", e aprenderem o intestino de C/C++ enquanto na escola, e eles tendem a ter uma abordagem técnica para os problemas, enquanto eu tenho uma tendência a acomodar-se, pense nisso (às vezes por um bom tempo) antes de sentir, tenho um profundo entendimento o suficiente para chegar a isso ... e ainda fomos criados no mesmo país (principalmente), falam a mesma língua, e ter mais ou menos a mesma cultura (apenas um fundo educacional diferente).

Minha única experiência com colegas "estrangeiros" tem sido espanhol (há dois anos) e um italiano (até hoje), e ambos trabalham mais ou menos como o resto da equipe (francês). Talvez se eu fosse encontrar em algum lugar de um fundo não latino, eu poderia identificar uma diferença.

Como tal, não tenho certeza de que a linguagem é a principal causa para as diferenças no estilo. Eu acho que a educação e o personagem podem ter pelo menos o máximo de impacto.

2
Matthieu M.

Não é linguagem, mas algum tipo de fundo cultural, "caráter nacional". O que parece funcionar em geral (por exemplo, os ingleses são legais, os alemães são precisos, etc.), mas falha em pessoas individuais.

De qualquer forma, cabe a você descobrir o sistema de medição, escolher projetos de repositórios de código aberto, examinar código e fazer algumas estatísticas.

Seria melhor se você pudesse coletar alguns outros atributos de autores: idade, educação, indústria etc.

1
ern0

A linguagem nativa não afeta como você codifica. Mas ser capaz de entender o inglês, no entanto, é bastante importante, como a maioria dos livros de programação, blogs, sites de QA, como assim, etc. tendem a ser em inglês

Diferenças culturais podem ser um fator no entanto. As universidades em diferentes países podem ensinar de um ponto de vista diferente. Alguns países podem ter um movimento ágil mais forte do que outros países. Por exemplo, as fábricas japonesas são conhecidas por sua manufatura enxuta, que muitos estão tentando copiar, mas falham porque não têm a compreensão dos valores subjacentes fundamentais.

0
Pete

Eu acho que a educação (quero dizer o estilo dele, em vez de qualidade) é um fator muito mais forte. Mesmo a matemática básica (que pensaria é bastante universal) é ensinada de maneiras completamente diferentes em todo o mundo, muito menos algo tão intangível e difusa quanto a solução de problemas.

Então, se houver um efeito de linguagem (que eu pessoalmente duvido, com base nas minhas experiências), é ofuscado pelo estilo de educação.

0
biziclop