it-swarm-es.com

¿El idioma hablado nativo de uno afecta la calidad del código?

Hay una escuela de pensamiento en la lingüística que la resolución de problemas está muy vinculada a la sintaxis, la semántica, la gramática y la flexibilidad del propio idioma hablado nativo.

Trabajando con varios equipos de desarrollo internacional, puedo ver claramente una cultura mental (si lo hará) en la base de código. Dejando de lado el lenguaje de programación, la codificación alemana es bastante diferente de mis colegas en la India. Además, el código es claramente diferente en Middle America como está en la América costera (en realidad, IBM notó hace años).

¿Notaste con sus colegas internacionales (de cualquier país) que el estilo de codificación y la resolución de problemas están en línea con las lenguas nativas?

9
Jé Queue

Hasta ahora, con mi experiencia, me he dado cuenta de que mi compañero de internación natal hizo el mismo trabajo en comparación con el no nativo. El tema surge cuando intentaron explicar el concepto o el requisito. De lo contrario, supongo que el nombre de la sintaxis no desempeña mucho papel hasta que lea lo que hacen mucho. Una vez que un programador adquiere el conocimiento de la sintaxis, no cuenta cuál es el significado real de la palabra utilizada para la sintaxis.

5
Zerotoinfinity

¿Notaste con sus colegas internacionales (de cualquier país) que el estilo de codificación y la resolución de problemas están en línea con las lenguas nativas?

Absolutamente. Este es un hecho difícil. La cadena de causa-efecto es, sin embargo, complejemente.

La región, su ecosistema, las condiciones climáticas, la planta y la vida animal han influido en el desarrollo de la religión de la cultura local, siendo parte de ella.

La cultura y la religión han influido en la formación y desarrollo del (los) idioma (s) local (es).

La cultura y el idioma han dejado sus marcas en el modelo de la sociedad para este grupo étnico en particular.

El modelo de la sociedad ha definido el modelo de comportamiento, el estilo de vida, la actitud de trabajo, las relaciones sociales, las prioridades y los valores de los individuos. Esa es la parte que queremos.

Las personas de diferentes culturas se acercarán a resolver un problema con el equipaje de su patrimonio cultural, cómo lo piensan, qué actitud aportan al trabajo, qué metodología y los patrones de resolución de problemas se aplicarán, qué prioridades y valores que establecieron.


Hablando de ejemplos puedo darte dos. Si tomamos Alemania, donde resido actualmente, hay ciertos patrones que he observado.

  1. Planear todo por adelantado y a largo plazo es el camino de la vida. Las reuniones de la tarde con amigos se pueden planificar semanas y meses de antelación. Los jóvenes ya se preocupan con su jubilación (seguro, etc.). El swing de estado de ánimo, la improvisación, la voluntad y la capacidad de adaptarse a medida que sean muy bajas. Naturalmente se transfiere a la forma de trabajo. La planificación y el orden juegan un papel importante. Ser ágil se considera una característica excepcional para describir a una persona/equipo moderno con un pensamiento progresivo. Sin embargo, la mayoría de los procesos ágiles que he observado en los equipos alemanes parecen más como una ejecución de la máquina de los pasos predefinidos (incluso si las personas realmente intentan ser ágiles), pero ningún espíritu de ágil como tal.

  2. La previsibilidad de todo es la norma de la vida. Las personas están acostumbradas a conocer lo que sucederá, dónde y cuándo. Se extiende desde la vida cotidiana sobre el estilo de trabajo hasta las relaciones personales. Puedes verlo, por ejemplo, cuando la gente cruza la carretera. Esperan la luz verde y comienzan a moverse sin mirar si los autos realmente se han detenido, porque esperan que ellos. Las personas se enorgullecen de poder controlar todos los aspectos de su vida. Sin embargo, sin embargo, la vida regresa con algo inesperado, cuando las cosas salen del control, las personas se asustan. Si se transfiere a la programación, he visto que la codificación se realiza de manera bastante optimista, no obsesión con la entrada de la entrada, las claves externas para verificar la integridad de los datos, etc. Además, no hay alguna ingeniería extra para mantener el código en cierta medida el resistente a las fallas y adaptable a ciertos cambios futuros, solo para satisfacer las expectativas de hoy (que no es probable que cambien, creen).

  3. Ahorrar dinero y optimizar su gasto es extremadamente importante en la cultura. Se refleja en los artefactos de trabajo. Las características y la calidad coinciden con la planificación, pero no los superan repentinamente (para hacerlo más fresco o simplemente "en caso"). Otro lado del juego es la falta de voluntad de invertir en hardware y software modernos, al código de trabajo de reingenio, para refactorizarlo, para mejorar las cosas para mantenerse en línea con el estado actual de las cosas, para prepararse para el futuro. Dado que no hay ganado inmediato y nadie está pagando por los cambios, a nadie se va a mover.

  4. El espíritu empresarial y la creatividad son bastante bajos en la cultura. La falta de voluntad para asumir el riesgo de su propia cuenta es alta. Los resultados del trabajo rara vez llevan las huellas de inusual, inesperado, creativo. Las personas tienden a seguir el camino trodzado, poca experimentación o una configuración inusual "fuera de curiosidad". A las personas no les gusta tomar la iniciativa en sus propias manos, especialmente cuando se combina con responsabilidad. También escuché que los alemanes aterrizando en los Países Bajos a veces tienen dificultades para que las personas hay que trabajar de forma independiente sin una guía apretada. Programando: sabio, significa poca experimentación con nuevos idiomas, herramientas o bibliotecas, las nuevas versiones no se adoptan por el miedo al cambio. Las personas toman patrones de diseño y las aplican a ciegas porque se les enseñó en la universidad y no cuestionan su aplicabilidad.

  5. Función sobre la moda. Se ve en la vida cotidiana. El estilo urbano común, el diseño de edificios, la decoración de las calles, todo está reducido al mínimo requerido para que funcione, pero generalmente nada solo para el estilo, la belleza. Programando: sabio se ve en la falta de hermosos diseños de interfaz de usuario. La mayoría de los sitios corporativos y personales son bastante antiguos y aburridos. Tampoco puedes persuadir al jefe y a los colegas para hacer algo de pulido porque no ven ningún beneficio tangible.

  6. La complejidad y la burocracia son parte del estilo de vida. La gente lo lleva más lejos y se aplica a todas partes. Relaciones personales. Los detalles del trabajo, las decisiones y las soluciones a menudo resultan en artefactos múltiples para documentar lo que se hizo. El código de programación a menudo sale con elementos innecesarios, niveles de abstracción y composiciones porque parece que a las personas son más serias de esa manera. El KISS principio no es realmente popular.

  7. "La cara de salvación" parece ser muy importante, para parecer exitosa, no mostrar signos de debilidad o fracaso a nadie más (si lo tiene, casi seguramente se utilizará contra usted). En la práctica laboral admitir el fracaso se vuelve bastante difícil, las personas hacen todo lo posible para "perder la cara". Tomar crítico también viene duro. Criticar a alguien (con la buena causa o no) es una forma segura de hacer un enemigo. Dicho lo que uno tiene en la mente no se practica, lo que hace que sea bastante difícil de entender quién se encuentra donde.

La línea de fondo es, buenos ejecutores, planificación y horario superior, la precisión es buena. Sin embargo, no se espera la innovación y la creatividad.


El segundo ejemplo trata con la cultura rusa a la que pertenezco. Es bastante diferente.

  1. El horario y la planificación no parecen ser de particular valor. Las desviaciones menores no conciernen a las personas a menos que/hasta que comience a amenazar el resultado más grande. A la gente no le gusta vivir por plan, prefiere una especie de libertad mental, hacer las cosas que les guste y cuando se sientan como hacerlas. En cuanto a la programación, pueden ignorar la documentación "no esencial", como escribir documentación y hacer papel-trabajo. Las personas son mucho más fáciles de venir y ir, si están aburridas con el proyecto, no les gusta la atmósfera y así sucesivamente. No se debe esperar el compromiso a largo plazo por vida, las personas no quieren estar atadas, no espere que vengan una vez y queden hasta la jubilación. Esto está bien visto en el mercado de teléfonos móviles. Mientras que en Europa/Estados Unidos es ubicuo tener contratos de 2 años, en Rusia, esto no se practica. La gente no quiere estar atada por tanto tiempo y probablemente se aburrirían con sus teléfonos de Gratis en unos pocos meses, no dijeran nada de 2 años.

  2. La gente no le gusta la burocracia y prefiere las relaciones informales. Poco a ningún trabajo de papel, como pocas discusiones y reuniones como sea posible, simplemente haga el trabajo. No se gustan la complejidad en el código, se prefieren decisiones simples y formas directas. La rutina aburrida no es favorecida. Algunas tareas "no esenciales", como el comentario y la documentación pueden ser ignoradas. Las personas pueden apagar ciertos cosas aburridas y hacer más cosas interesantes o hacer la parte aburrida de una manera inesperada que los mantendrá motivados.

  3. Los costos no son tan importantes. A la gente le gusta obtener algo más nuevo, más fresco, más interesante y más moderno, así que, sin un caso de negocios. Si proporciona satisfacción, generalmente no sean imprevistos sobre los costos adicionales incurridos.

  4. La gente está muy entusiasmada con todo. Alimentos, música, ropa, artefactos e ideas de diferentes países y culturas a través de las puertas abiertas. La gente de programación experimentaría con un nuevo idioma, herramienta o biblioteca, así que, por curiosidad, con un caso de negocio o sin. Diferentes filosofías y metodologías, todos se toman alegremente, tocados, mordidos, experimentados y se mezclan de manera funky.

  5. La belleza y el estilo son muy importantes. La gente gastaría tiempo y dinero extra en algo que no tiene beneficios tangibles, pero solo satisface algún sentido artístico. A menudo, prefieren algo con estilo sobre algo más funcional. Hermoso diseño de UI es muy apreciado. Las personas con prudencia de programación serían un código reingineador que parece torpe y no estructurado simplemente para agregarle más estilo, incluso si estaba funcionando perfectamente antes, lo que resultó en un tiempo extra.

  6. La prescripción y las reglas a menudo son ignoradas e incluso despreciadas, las personas pueden hacer algo totalmente diferente si están persuadidas, será mejor (o más fresco, no puede resistirlo). Muchas decisiones de arriba serán cuestionadas y discutidas sobre. Y sí, todo el mundo tiene una fuerte opinión sobre todo.

  7. La previsibilidad de la vida es bastante baja, por lo que la gente siempre planea para cualquier contingencia. Lo mismo se refleja a menudo en el código, más bien una actitud pesimista, con doble control y planes de retraso. La arquitectura puede reflejar la preparación a los futuros cambios posibles, pero no como la overañación de astronauta. Ágil no es una metodología moderna sino el camino de la vida. También las personas están acostumbradas a los cambios y no intentan controlar todos los aspectos de su vida. Cuando ocurre algo inesperado, la gente simplemente asiente, dice "será mejor la próxima vez" y seguir adelante sin ir mentir, empezando a beber, drogas, etc. Un fallo del proyecto no resulta en suicidios, se toma fácilmente.

  8. La corrección política es baja, por lo que las personas pueden decir lo que piensan al frente cuando no lo esperas. Estar preparado.

Una línea de fondo diferente es, esperar lo inesperado, algo inusual y creativo, pero no espere precisión de la máquina, programa y siguiendo las reglas.


Cual es mejor no puede ser respondido fácilmente. Un tipo de trabajo está mejor cubierto por una categoría de trabajador, la otra es por otra diferente. Malo si las personas se les asigna tareas equivocadas para su mentalidad. Supongo que es un desafío para que un gerente de equipo internacional reconozca ese problema. No estoy seguro de que se haya discutido con la industria de la aplicación.

3
user8685

No he visto una gran diferencia que no sea en el código comentarios. A veces, a veces puedo decir claramente que este bit fue escrito por alguien cuyo primer idioma no es el inglés.

3
Marcie

No estoy seguro de la calidad del código, pero es cierto que cada programador hace su trabajo de manera diferente.

Se ha dicho que las lenguas naturales influyeron en nuestro pensamiento (por lo tanto, supongo que influiría en la programación), esta escuela de pensamiento ha llevado al desarrollo de idiomas artificiales con diferentes paradigmas en un intento por probarlo: Loglan , por ejemplo. No sé si mucho salió de eso.

Sin embargo, de lo que estoy cierto, es que la educación (en la que el idioma juega una parte, pero otras cosas también lo hacen) sin duda afecta el punto de vista de uno en un problema dedicado.

Tengo colegas que fueron a las escuelas "técnicas", y aprender a la intestino de C/C++ mientras está en la escuela, y tienden a tener un enfoque técnico de los problemas, mientras que tengo una tendencia a respaldarlo, piense en ello (a veces Durante un buen momento) antes de sentir que tengo un entendimiento lo suficientemente profundo para llegar a ella ... y, sin embargo, nos criaron en el mismo país (en su mayoría), hablar del mismo idioma y tener más o menos la misma cultura (solo una Diferentes antecedentes educativos).

Mi única experiencia con colegas "extranjeros" ha sido un español (hace dos años) y un italiano (hasta el día de hoy), y ambos trabajan más o menos como el resto del equipo (francés). Tal vez si tuviera que encontrarme en algún lugar de un fondo no latino, ¿puedo detectar una diferencia?.

Como tal, no estoy seguro de que el lenguaje sea la causa principal de las diferencias de estilo. Creo que la educación y el carácter pueden tener al menos tanto impacto.

2
Matthieu M.

No es lenguaje, sino algún tipo de antecedentes culturales, "carácter nacional". Lo que parece funcionar en general (por ejemplo, los ingleses son geniales, los alemanes son precisos, etc.), pero falla en personas individuales.

De todos modos, depende de usted conocer el sistema de medición, elegir proyectos de repositorios de código abierto, examinar el código y hacer algunas estadísticas.

Sería mejor si pudieras cobrar algunos otros atributos de los autores: edad, educación, industria, etc.

1
ern0

Creo que la educación (me refiero al estilo, en lugar de la calidad) es un factor mucho más fuerte. Incluso las matemáticas básicas (que pensarían es bastante universal) se enseña de diferentes maneras de todo el mundo, y mucho menos algo tan intangible y difuso como resolución de problemas.

Entonces, si hay un efecto de lenguaje (que personalmente dudo, basado en mis experiencias), está eclipsado por el estilo de la educación.

0
biziclop