Có phải ngôn ngữ nói của người bản xứ ảnh hưởng đến chất lượng mã?


9

Có một trường phái tư duy trong ngôn ngữ học rằng việc giải quyết vấn đề rất gắn liền với cú pháp, ngữ nghĩa, ngữ pháp và tính linh hoạt của ngôn ngữ nói của người bản xứ.

Làm việc với các nhóm phát triển quốc tế khác nhau, tôi có thể thấy rõ một nền văn hóa tinh thần (nếu bạn muốn) trong cơ sở mã. Bỏ ngôn ngữ lập trình sang một bên, mã hóa tiếng Đức khá khác biệt so với các đồng nghiệp của tôi ở Ấn Độ. Đồng thời, mã khác biệt rõ rệt ở Trung Mỹ cũng như ở vùng duyên hải châu Mỹ (thực ra, IBM đã chú ý cách đây nhiều năm).

Bạn có để ý với các đồng nghiệp quốc tế (từ BẤT K country quốc gia nào) rằng phong cách mã hóa và giải quyết vấn đề phù hợp với ngôn ngữ bản địa không?


Có thể có một số khác biệt, nhưng những gì tôi biết là có những lập trình viên tồi từ mọi quốc gia.
ozz

Làm thế nào để bạn biết liệu sự khác biệt là do tiếng mẹ đẻ hoặc bởi nền tảng văn hóa?
mouviciel

@mouviciel, hai cái này hầu như không thể tách rời nhau, tuy nhiên tôi thường thấy cú pháp của ngôn ngữ nói thúc đẩy ngữ nghĩa của ngôn ngữ lập trình; ví dụ tiếng Đức dưới đây trong ý kiến ​​của tôi chỉ là một. Tôi hoàn toàn có thể thấy rõ sự khác biệt trong phong cách mã hóa ngay cả giữa các khu vực Hoa Kỳ mặc dù ngôn ngữ gần như tương tự (như bạn đã nói) nên được quy cho nhiều hơn về sự khác biệt văn hóa.
Jé Queue

Câu trả lời:


5

Cho đến bây giờ với kinh nghiệm của tôi, tôi đã nhận thấy rằng đồng nghiệp quốc tế bản địa của tôi đã làm công việc tương tự so với người không bản địa. Vấn đề phát sinh khi họ cố gắng giải thích khái niệm hoặc yêu cầu. Khác tôi cho rằng tên cú pháp không đóng vai trò nhiều cho đến khi bạn đọc những gì họ thực sự làm. Khi một lập trình viên có được kiến ​​thức về cú pháp thì nó sẽ không tính nghĩa thực sự của từ được sử dụng cho cú pháp là gì.


1
Xem, tôi thấy rằng việc dịch ngôn ngữ nói bản địa (và quá trình suy nghĩ) sang ngôn ngữ lập trình khác có kết quả vật chất khác nhau. Không phải tốt hay xấu, chỉ là khá khác nhau. Tôi lưu ý rất nhiều khai báo biến số toàn cầu / chuẩn bị và chuẩn bị dữ liệu và sau đó tập hợp các lệnh gọi thủ tục của người Đức, so với người Mỹ có xu hướng sử dụng các biến / hàm ẩn danh hoặc ẩn danh khi có nhu cầu. Kết quả cuối cùng = giống nhau, chỉ là cách tiếp cận khác nhau.
Jé Queue

+1 cho tóm tắt thông minh Kết quả cuối cùng = giống nhau, chỉ là các cách tiếp cận khác nhau
Zerotoinfinity

3

Tôi đã không thấy nhiều sự khác biệt ngoài các bình luận mã . Đôi khi tôi có thể nói rõ ràng rằng bit này được viết bởi một người có ngôn ngữ đầu tiên không phải là tiếng Anh.


6
Tôi cũng vậy, việc thiếu lỗi chính tả là một đầu mối mạnh mẽ. :)
biziclop

3

Bạn có để ý với các đồng nghiệp quốc tế (từ BẤT K country quốc gia nào) rằng phong cách mã hóa và giải quyết vấn đề phù hợp với ngôn ngữ bản địa không?

Chắc chắn rồi. Đây là một thực tế khó khăn. Chuỗi nguyên nhân có hiệu lực tuy nhiên phức tạp hơn.

Khu vực, hệ sinh thái, điều kiện thời tiết, đời sống thực vật và động vật đã ảnh hưởng đến sự phát triển của tôn giáo văn hóa địa phương là một phần của nó.

Văn hóa và tôn giáo đã ảnh hưởng đến sự hình thành và phát triển của ngôn ngữ địa phương.

Văn hóa và ngôn ngữ đã để lại dấu ấn của nó trên mô hình xã hội cho nhóm dân tộc đặc biệt này.

Mô hình xã hội đã xác định mô hình hành vi - lối sống, thái độ làm việc, các mối quan hệ xã hội, các ưu tiên và giá trị của cá nhân. Đó là phần chúng tôi muốn.

Những người thuộc các nền văn hóa khác nhau sẽ tiếp cận giải quyết vấn đề với hành lý di sản văn hóa của họ - cách họ nghĩ về nó, thái độ họ mang lại cho công việc, phương pháp và cách giải quyết vấn đề nào họ sẽ áp dụng, những ưu tiên và giá trị họ đặt ra.


Nói về các ví dụ tôi có thể cung cấp cho bạn hai. Nếu chúng tôi đưa Đức đến nơi tôi hiện đang cư trú, có một số mẫu tôi đã quan sát thấy.

  1. Lên kế hoạch trước mọi thứ và lâu dài là cách sống. Các cuộc họp buổi tối với bạn bè có thể được lên kế hoạch trước nhiều tuần và tháng. Những người trẻ tuổi đã quan tâm đến việc nghỉ hưu của họ (bảo hiểm, vv). Tâm trạng thay đổi, ngẫu hứng, sẵn sàng và khả năng điều chỉnh khi bạn đi là rất thấp. Tự nhiên nó được chuyển sang cách làm việc. Kế hoạch và trật tự đóng một vai trò lớn. Nhanh nhẹn được coi là một đặc điểm đặc biệt để mô tả một người / nhóm hiện đại với một tư duy tiến bộ. Tuy nhiên, hầu hết các quy trình nhanh mà tôi đã quan sát thấy trong các đội Đức có vẻ giống như một máy thực hiện các bước được xác định trước (ngay cả khi mọi người thực sự cố gắng nhanh nhẹn), nhưng không có tinh thần nhanh nhẹn như vậy.

  2. Dự đoán mọi thứ là chuẩn mực của cuộc sống. Mọi người đã quen với việc biết điều gì sẽ xảy ra, ở đâu và khi nào. Nó trải dài từ cuộc sống hàng ngày qua phong cách làm việc đến các mối quan hệ cá nhân. Bạn có thể thấy nó chẳng hạn khi mọi người băng qua đường. Họ chờ đèn xanh và bắt đầu di chuyển mà không cần nhìn xem những chiếc xe đã thực sự dừng lại chưa - bởi vì họ mong đợi chúng. Mọi người tự hào về khả năng kiểm soát mọi khía cạnh của cuộc sống. Tuy nhiên, khi cuộc sống quay trở lại với một điều gì đó bất ngờ, khi mọi thứ vượt khỏi tầm kiểm soát, mọi người sẽ bối rối. Nếu được chuyển sang lập trình tôi đã thấy rằng mã hóa được thực hiện khá lạc quan, không có nỗi ám ảnhvới việc kiểm tra đầu vào, khóa ngoại để xác minh tính toàn vẹn dữ liệu, v.v. Ngoài ra, không có một số kỹ thuật bổ sung để giữ mã ở một mức độ nào đó có khả năng phục hồi thất bại và thích ứng với những thay đổi nhất định trong tương lai, chỉ để đáp ứng những kỳ vọng ngày nay (không có khả năng thay đổi mà họ tin).

  3. Tiết kiệm tiền và tối ưu hóa chi tiêu của họ là vô cùng quan trọng trong văn hóa. Nó được phản ánh trên các hiện vật làm việc. Các đặc điểm và chất lượng phù hợp với quy hoạch nhưng không đột nhiên vượt quá chúng (để làm cho nó mát hơn hoặc chỉ "trong trường hợp"). Một khía cạnh khác của trò chơi là không sẵn sàng đầu tư vào phần cứng và phần mềm hiện đại, để tái cấu trúc mã làm việc, tái cấu trúc nó, để làm cho mọi thứ tốt hơn chỉ để phù hợp với tình trạng hiện tại, để chuẩn bị cho tương lai. Vì không có chiến thắng ngay lập tức và không ai trả tiền cho những thay đổi, nên thực sự không có ai sẽ di chuyển.

  4. Tinh thần kinh doanh và sáng tạo khá thấp trong văn hóa. Không sẵn sàng chấp nhận rủi ro trên tài khoản của chính họ là cao. Kết quả công việc hiếm khi mang dấu ấn của sự bất thường, bất ngờ, sáng tạo. Mọi người có xu hướng đi theo con đường trodden, thử nghiệm nhỏ hoặc thiết lập bất thường "ra khỏi sự tò mò". Mọi người không thích chủ động vào tay mình nhất là khi kết hợp với trách nhiệm. Tôi cũng nghe nói người Đức đổ bộ vào Hà Lan đôi khi gặp khó khăn vì mọi người ở đó thường làm việc độc lập mà không có hướng dẫn chặt chẽ. Lập trình khôn ngoan có nghĩa là ít thử nghiệm với các ngôn ngữ, công cụ hoặc thư viện mới, các phiên bản mới không được chấp nhận vì sợ thay đổi. Mọi người lấy các mẫu thiết kế và áp dụng chúng một cách mù quáng bởi vì chúng được dạy như vậy ở trường đại học và không đặt câu hỏi về khả năng ứng dụng của chúng.

  5. Chức năng hơn thời trang. Nó được nhìn thấy trong cuộc sống hàng ngày. Phong cách đô thị thông thường, thiết kế các tòa nhà, trang trí đường phố, tất cả đều được yêu cầu tối thiểu để nó hoạt động nhưng thường không có gì chỉ cho phong cách, vẻ đẹp. Lập trình khôn ngoan, nó được thấy trong việc thiếu thiết kế UI đẹp. Hầu hết các trang web công ty và cá nhân là khá cũ - phong cách và nhàm chán. Bạn cũng không thể thuyết phục sếp và đồng nghiệp thực hiện một số đánh bóng vì họ không thấy bất kỳ lợi ích hữu hình nào.

  6. Sự phức tạp và quan liêu là một phần của lối sống. Mọi người đưa nó đi xa hơn và áp dụng ở khắp mọi nơi. Nhưng môi quan hệ ca nhân. chi tiết công việc, quyết định và giải pháp thường dẫn đến nhiều hiện vật để ghi lại những gì đã được thực hiện. Mã lập trình thường xuất hiện với các yếu tố không cần thiết, mức độ trừu tượng và bố cục vì dường như mọi người nghiêm túc hơn theo cách đó. Nguyên tắc KISS không thực sự phổ biến.

  7. "Giữ thể diện" dường như rất quan trọng, để xuất hiện thành công, không có dấu hiệu yếu đuối hay thất bại với bất kỳ ai khác (nếu bạn có nó gần như chắc chắn sẽ được sử dụng để chống lại bạn). Trong thực tế công việc thừa nhận thất bại đến khá khó khăn, mọi người làm mọi cách để không "mất mặt". Lấy lời phê bình cũng đến khó khăn. Chỉ trích ai đó (có lý do chính đáng hay không) là một cách chắc chắn để tạo ra kẻ thù. Nói những gì người ta có trong tâm trí không được thực hành khiến cho việc hiểu ai đứng ở đâu khá khó khăn.

Điểm mấu chốt là, người thực hiện tốt, lập kế hoạch và lịch trình hàng đầu, độ chính xác là tốt. Đổi mới và sáng tạo tuy nhiên không được mong đợi.


Ví dụ thứ hai liên quan đến văn hóa Nga mà tôi thuộc về. Nó khá khác biệt.

  1. Lịch trình và kế hoạch dường như không có giá trị cụ thể. Những sai lệch nhỏ không liên quan đến mọi người trừ khi / cho đến khi nó bắt đầu đe dọa kết quả lớn hơn. Mọi người không thích sống theo kế hoạch, thích tự do tinh thần, làm bất cứ điều gì họ thích và khi họ cảm thấy thích làm chúng. Lập trình khôn ngoan, họ có thể bỏ qua những thứ "không thiết yếu" như viết tài liệu và làm công việc giấy tờ. Mọi người sẽ dễ dàng hơn nhiều khi đến và đi, nếu họ chán dự án, không thích bầu không khí và vân vân. Cam kết lâu dài cho mỗi cuộc sống là không được mong đợi, mọi người không muốn bị ràng buộc, đừng mong họ đến một lần và ở lại cho đến khi nghỉ hưu. Điều này được nhìn thấy độc đáo tại thị trường điện thoại di động. Mặc dù ở Châu Âu / Hoa Kỳ có nhiều hợp đồng dài hạn 2 năm, nhưng ở Nga, điều này không được thực hiện. Mọi người không '

  2. Mọi người không thích quan liêu và thích các mối quan hệ không chính thức. Ít để không làm việc giấy tờ, càng ít thảo luận và các cuộc họp càng tốt, chỉ đơn giản là thực hiện công việc. Sự phức tạp trong mã không được thích, các quyết định đơn giản và cách trực tiếp được ưu tiên. Thói quen nhàm chán không được ưa chuộng. Một số nhiệm vụ "không thiết yếu" như bình luận và tài liệu có thể bị bỏ qua. Mọi người có thể bỏ đi những thứ nhàm chán nhất định và thay vào đó là những điều thú vị hơn hoặc làm phần nhàm chán theo cách bất ngờ sẽ giúp họ có động lực.

  3. Chi phí không quan trọng. Mọi người thích có được một cái gì đó mới hơn, mát mẻ hơn, thú vị hơn và hiện đại hơn, không có trường hợp kinh doanh. Nếu nó mang lại sự hài lòng, họ thường sẽ không lo lắng về các chi phí phát sinh thêm.

  4. Mọi người rất nhiệt tình về mọi thứ. Thực phẩm, âm nhạc, quần áo, đồ tạo tác và ý tưởng từ các quốc gia và nền văn hóa khác nhau có được thông qua các cánh cửa mở. Những người khôn ngoan lập trình sẽ thử nghiệm một ngôn ngữ, công cụ hoặc thư viện mới, vì tò mò, với một trường hợp kinh doanh hoặc không có. Các triết lý và phương pháp khác nhau, tất cả đều vui vẻ thực hiện, chạm vào, cắn, thử nghiệm và trộn lẫn với nhau trong một thời trang sôi nổi.

  5. Vẻ đẹp và phong cách rất quan trọng. Mọi người sẽ dành thêm thời gian và tiền bạc cho một cái gì đó không có bất kỳ lợi ích hữu hình nào mà chỉ đáp ứng một số ý nghĩa nghệ thuật. Thường thì họ thích một cái gì đó phong cách hơn một cái gì đó nhiều chức năng hơn. Thiết kế UI đẹp được đánh giá cao. Những người khôn ngoan lập trình sẽ tái cấu trúc mã có vẻ vụng về và không có cấu trúc chỉ đơn giản là thêm phong cách cho nó, ngay cả khi nó đã hoạt động hoàn hảo trước đó, dẫn đến mất thêm thời gian.

  6. Đơn thuốc và các quy tắc thường bị coi thường và thậm chí bị coi thường, mọi người có thể làm điều gì đó hoàn toàn khác nếu họ thuyết phục rằng nó sẽ tốt hơn (hoặc mát hơn - không thể chống lại điều đó). Nhiều quyết định từ trên sẽ được đặt câu hỏi và tranh luận về. Và vâng, mọi người đều có quan điểm mạnh mẽ về mọi thứ.

  7. Dự đoán cuộc sống khá thấp nên mọi người luôn lên kế hoạch cho mọi tình huống bất ngờ. Điều tương tự thường được phản ánh trong mã, thay vì thái độ bi quan, với kiểm tra kép và kế hoạch dự phòng. Kiến trúc có thể phản ánh sự sẵn sàng cho những thay đổi có thể trong tương lai, nhưng không phải là kiến ​​trúc bao trùm giống như phi hành gia. Agile không phải là một phương pháp hiện đại mà là cách sống. Ngoài ra mọi người đã quen với những thay đổi và đừng cố kiểm soát mọi khía cạnh của cuộc sống. Khi có điều gì đó bất ngờ xảy ra, mọi người chỉ cần gật đầu, nói "lần sau sẽ tốt hơn" và tiếp tục mà không cần tâm thần, bắt đầu uống rượu, ma túy, v.v ... Thất bại của dự án không dẫn đến tự tử, được thực hiện dễ dàng.

  8. Tính chính xác thấp, vì vậy mọi người có thể chỉ nói những gì họ nghĩ trước khi bạn không mong đợi điều đó. Được chuẩn bị.

Một điểm mấu chốt khác là, mong đợi sự bất ngờ, điều gì đó bất thường và sáng tạo nhưng đừng mong đợi độ chính xác của máy, lên lịch và tuân theo các quy tắc.


Cái nào tốt hơn không thể dễ dàng trả lời. Một loại công việc được bao phủ tốt hơn bởi một loại công nhân, loại khác là bởi một loại khác. Xấu nếu mọi người được giao nhiệm vụ sai cho tâm lý của họ. Tôi cho rằng đó là một thách thức cho một nhà quản lý đội quốc tế để nhận ra vấn đề đó. Tôi không chắc nó đã từng được thảo luận với ứng dụng cho ngành CNTT.


1
Cảm ơn các ý kiến ​​giai thoại. Tôi thấy phong cách ảnh hưởng rất nhiều, và thú vị để đọc ý kiến ​​của bạn.
Jé Queue

Mặc dù có một số sự thật trong quan sát của bạn về người Đức, tôi đã phải -1 nó bởi vì đây là những khái quát quá lớn mà bạn đang đề cập (Không phải tất cả người Đức đều theo cách bạn mô tả - giống như người Nga, tôi đoán vậy).
Jas

Trời ạ, nghe có vẻ như là một sự khởi tạo của các khái niệm "Cổ điển" và "Lãng mạn" từ cuốn sách "Zen và nghệ thuật bảo dưỡng xe máy" trong hai toàn bộ dân số! Kinh ngạc.

2

Tôi không chắc chắn về chất lượng mã, nhưng chắc chắn rằng mỗi lập trình viên thực hiện công việc của mình khác nhau.

Người ta nói rằng các ngôn ngữ tự nhiên ảnh hưởng đến suy nghĩ của chúng ta (vì vậy tôi đoán nó sẽ ảnh hưởng đến lập trình), trường phái tư tưởng này đã dẫn đến sự phát triển của các ngôn ngữ nhân tạo với các mô hình khác nhau nhằm cố gắng chứng minh điều đó: Loglan chẳng hạn. Tôi không biết nếu có nhiều từ nó.

Tuy nhiên, điều tôi chắc chắn là giáo dục (trong đó ngôn ngữ đóng một phần, nhưng những thứ khác cũng vậy) chắc chắn ảnh hưởng đến quan điểm của một người về một vấn đề chuyên dụng.

Tôi có các đồng nghiệp đã đi đến các trường "kỹ thuật" và học được C / C ++ khi còn ở trường, và họ có xu hướng tiếp cận kỹ thuật với các vấn đề, trong khi tôi có xu hướng ngồi lại, nghĩ về nó (đôi khi trong một thời gian tốt đẹp) trước khi tôi cảm thấy mình có một sự hiểu biết đủ sâu sắc để tiếp cận nó ... nhưng chúng tôi đã lớn lên ở cùng một quốc gia (chủ yếu), nói cùng một ngôn ngữ và có ít nhiều cùng một nền văn hóa (chỉ là một nền tảng giáo dục khác nhau).

Kinh nghiệm duy nhất của tôi với các đồng nghiệp "nước ngoài" là một người Tây Ban Nha (hai năm trước) và một người Ý (cho đến ngày nay), và cả hai đều làm việc ít nhiều giống như các thành viên khác trong đội (tiếng Pháp). Có lẽ nếu tôi bắt gặp một nơi nào đó từ một nền tảng phi Latin, tôi có thể nhận ra một sự khác biệt.

Như vậy, tôi không chắc rằng ngôn ngữ là nguyên nhân chính cho sự khác biệt trong phong cách. Tôi nghĩ rằng giáo dục và tính cách có thể có ít nhất nhiều tác động.


+1 để chỉ ra rằng tính cá nhân quan trọng hơn nhiều so với quốc tịch.
Jas

1

Đó không phải là ngôn ngữ mà là một loại nền tảng văn hóa, "đặc tính dân tộc". Điều này dường như hoạt động tổng thể (ví dụ người Anh rất tuyệt, người Đức chính xác, v.v.), nhưng nó thất bại đối với từng người.

Dù sao, tùy thuộc vào bạn để tìm hiểu hệ thống đo lường, chọn dự án từ kho lưu trữ nguồn mở, kiểm tra mã và thực hiện một số thống kê.

Sẽ tốt hơn nếu bạn có thể thu thập một số thuộc tính khác của tác giả: tuổi tác, giáo dục, ngành công nghiệp, v.v.


Tôi không chắc chắn quan điểm của một số tuyên bố của bạn. Bạn có nói rằng bạn KHÔNG tin ngôn ngữ nói bản địa ảnh hưởng đến các phương pháp giải quyết vấn đề trong lập trình?
Jé Queue

1
Vâng, tôi không tin rằng ngôn ngữ ảnh hưởng. Tôi nghĩ rằng "nhân vật quốc gia" tính nhiều hơn. Và tôi nghĩ rằng "nhân vật quốc gia" này không phải là một cái tên hay, "ảnh hưởng văn hóa" nên tốt hơn (và ít nhất, ít có vẻ / là phân biệt chủng tộc). Chỉ cần nghĩ về đô thị làng VS, chúng ta chỉ là những kẻ ác mộng trong cộng đồng dân chủ VS trong 200 năm.
ern0

Ông nói rằng bạn phải tham gia MỌI THỨ, không chỉ là ngữ nghĩa ngôn ngữ để loại trừ mọi thứ khác. Upvote người đàn ông ít nhất để chống lại sự thiếu hiểu biết của một số người.
Filip Dupanović

+1. Tôi sống ở Áo, chúng tôi nói tiếng Đức ở đây, nhưng phong cách mã hóa điển hình của đồng nghiệp người Đức của tôi hoàn toàn khác so với đồng nghiệp người Áo của tôi.
dùng281377

0

Ngôn ngữ mẹ đẻ của một người không ảnh hưởng đến cách bạn viết mã. Nhưng việc có thể hiểu tiếng Anh tuy nhiên khá quan trọng, vì hầu hết các sách lập trình, blog, trang web QA, như SO, v.v. có xu hướng bằng tiếng Anh

Sự khác biệt văn hóa có thể là một yếu tố tuy nhiên. Các trường đại học ở các quốc gia khác nhau có thể dạy từ một quan điểm khác nhau. Một số quốc gia có thể có một phong trào nhanh nhẹn mạnh mẽ hơn các quốc gia khác. Ví dụ, các nhà máy Nhật Bản được biết đến với việc sản xuất Lean, nhiều người đang cố gắng sao chép, nhưng thất bại vì họ thiếu hiểu biết về các giá trị cơ bản.


0

Tôi nghĩ giáo dục (ý tôi là phong cách của nó, hơn là chất lượng) là yếu tố mạnh mẽ hơn nhiều. Ngay cả các toán học cơ bản (mà người ta nghĩ là khá phổ biến) được dạy theo những cách hoàn toàn khác nhau trên khắp thế giới, chứ đừng nói đến một thứ gì đó vô hình và mờ nhạt như giải quyết vấn đề.

Vì vậy, nếu có một hiệu ứng ngôn ngữ (mà cá nhân tôi nghi ngờ, dựa trên kinh nghiệm của tôi), nó bị lu mờ bởi phong cách giáo dục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.