Mỗi khi sao chép thông tin từ Stack Overflow, bạn có bao giờ đặt ra câu hỏi: liệu có nhiều người giống mình không? Liệu mình có sao chép nhiều quá trên trang web này không? Bây giờ bạn đã có câu trả lời. Các kỹ sư tại Stack Overflow đã thiết lập hệ thống phản ứng mỗi khi ai đó nhập Command + C, và họ nhận ra rằng đây cơ hội để tìm hiểu về cách mọi người sử dụng trang web của họ. Họ đã lập danh mục mọi lệnh sao chép được thực hiện trên Stack Overflow trong vòng hai tuần và đây là những gì đã được thấy.
Bạn không cô đơn
Cứ bốn người dùng truy cập câu hỏi Stack Overflow thì có một người sao chép nội dung nào đó trong vòng năm phút sau khi truy cập trang. Có tới 40.623.987 bản sao (copy) trên 7.305.042 bài đăng và nhận xét trong khoảng thời gian từ ngày 26 tháng 3 đến ngày 9 tháng 4. Mọi người sao chép từ các câu trả lời thường xuyên hơn khoảng mười lần so với sao chép từ các câu hỏi và khoảng 35 lần so với các nhận xét . Mọi người sao chép từ các khối mã (code blocks) thường xuyên hơn mười lần so với họ làm từ nội dung xung quanh và đáng ngạc nhiên, nhiều bản sao được tạo ra cho các câu hỏi không có câu trả lời được chấp nhận (accepted) hơn là trên các câu hỏi được chấp nhận.
Vì vậy, nếu bạn từng cảm thấy tồi tệ khi sao chép code từ Stack Overflow thay vì viết nó từ đầu, hãy tha thứ cho chính mình! Tại sao phải tạo lại bánh xe khi người khác đã hoàn thành công việc khó khăn? Có thể gọi đây là tái sử dụng kiến thức – bạn đang sử dụng lại những gì người khác đã học, tạo và chứng minh. Tái sử dụng kiến thức không phải là một điều xấu – nó giúp bạn học hỏi, làm lập trình nhanh hơn và giảm bớt sự thất vọng của bạn. Toàn bộ trang web Stack Overflow hoạt động trên cơ sở tái sử dụng kiến thức – điều đó đã khiến Stack Overflow trở thành một cộng đồng mạnh mẽ như vậy.
Nhưng có bao nhiêu người thực sự đang sao chép từ Stack Overflow? Mọi người chỉ sao chép mã? Mọi người có sao chép các câu trả lời được chấp nhận nhiều hơn là không được chấp nhận không? Hãy cùng xem các số liệu bên dưới
Dữ liệu
Sử dụng công cụ tự tạo, các kỹ sư của Stack Overflow đã tạo các sự kiện tùy chỉnh để nắm bắt khi người dùng sao chép từ trang web. Với những sự kiện này, họ có thể nắm bắt được nhiều thuộc tính khác nhau: tags, câu trả lời câu hỏi hoặc nhận xét, khối mã hoặc nội dung văn bản thuần túy, danh tiếng (reputation hay rep) của người sao chép và điểm bài đăng, khu vực và nếu bài đăng được chấp nhận hay không. Họ đã nắm bắt được khá nhiều thứ ngoại trừ nội dung được sao chép.
Dữ liệu được thu thập trong hai tuần, từ ngày 26 tháng 3 năm 2021 đến ngày 9 tháng 4 năm 2021. Phân tích sau đây dựa trên hành vi trong thời gian đó.
Câu hỏi
Thống kê đã chứng minh điều mà mọi người vẫn nói đùa từ lâu: mọi người đều đang sao chép từ Stack Overflow. Hầu hết các bản sao được thực hiện trong tuần làm việc và trong giờ làm việc. Các khu vực địa lý lớn nhất chiếm phần lớn các bản sao: Châu Á 33%, Châu Âu 30% và Bắc Mỹ 26%. Cuối cùng, 86% tất cả các bản sao đến từ người dùng ẩn danh, hay còn gọi là người dùng có 0 đại diện (rep).
Mọi thứ bắt đầu trở nên thú vị hơn khi các kỹ sư Stack Overflow hỏi những câu hỏi chi tiết hơn về việc ai đang sao chép và những gì họ đang sao chép.
Người có rep cao hơn có sao chép nhiều hơn không?
Để bắt đầu, chúng ta hãy xem liệu những người dùng có uy tín cao (nhiều rep) có sao chép nhiều không.
Có thể thấy rằng phần lớn các bản sao (copy) đến từ những người dùng với 0 rep. Đây là những người dùng ẩn danh vì bạn ngay lập tức nhận được 1 rep khi tạo tài khoản. Cũng có thể một số bản sao này là của người dùng có tài khoản nhưng chưa đăng nhập. Rất tiếc, không có cách nào để kiểm tra lý thuyết này.
Bằng cách xem xét Số lượng bản sao trên mỗi người dùng thay vì Tổng số bản sao, chúng ta có thể thấy số lượng bản sao trung bình mà một người dùng tạo ra dựa trên rep của họ.
Khi nhìn vào hình ảnh trực quan này, có vẻ như khi Danh tiếng (Reputation) tăng lên, Số lượng bản sao trên mỗi người dùng giảm. Như vậy, rep của người dùng càng cao thì tần suất họ sao chép càng ít. Mối quan hệ này hiện tại nhưng không mạnh lắm, vì vậy rất khó khi nói rằng người dùng danh tiếng cao hơn hay thấp hơn sao chép nhiều hơn. Các nhà phát triển đang học hỏi thường có rep thấp hơn và đang tìm kiếm những thứ có thể thúc đẩy quá trình học tập của họ và giúp họ bắt đầu nhanh chóng. Khi các nhà phát triển xây dựng chuyên môn của mình, họ cũng xây dựng danh tiếng của mình và tập trung vào những thách thức cao hơn, những thứ có thể không sao chép từ Stack Overflow.
Các bài viết được chấp nhận có được sao chép nhiều hơn không?
Khi chúng ta nghĩ về một câu trả lời được chấp nhận (accepted), chúng ta có thể nghĩ đó là câu tốt nhất và suy ra nó được sao chép nhiều hơn những câu trả lời không được chấp nhận. Tuy nhiên, nhìn vào dữ liệu, có đến 52,4% bản sao đến từ các câu trả lời không được chấp nhận. Nhưng trung bình, mỗi câu trả lời được chấp nhận nhận được bảy bản sao trong khi câu trả lời không được chấp nhận nhận được năm bản sao. Vì vậy, nhiều bản sao đến từ các câu trả lời không được chấp nhận, nhưng khả năng tái sử dụng kiến thức cao hơn từ các câu trả lời được chấp nhận. Tại Stack Overflow định nghĩa việc tái sử dụng kiến thức là sử dụng lại những gì người khác đã học, tạo và chứng minh.
Điều đáng chú ý là một câu hỏi có thể không có câu trả lời được chấp nhận. Chẳng hạn cho câu trả lời này: nó có gần 4.984 phiếu ủng hộ (up vote) và đã được sao chép 7.943 lần duy nhất trong quá trình nghiên cứu, nhưng không được chấp nhận. Trên thực tế, không có câu trả lời nào được chấp nhận. Có thể là do người đăng câu hỏi đã không được nhìn thấy từ năm 2010, nhưng cũng có nhiều câu trả lời khác hợp lệ.
Các bài viết được điểm cao hơn có được sao chép nhiều hơn không?
Nếu câu trả lời được chấp nhận không được sao chép nhiều hơn, thì câu trả lời có điểm số (score) cao hơn câu trả lời phải được sao chép nhiều hơn?
Như vậy đối với Câu trả lời (Answers), nó có vẻ được chia khá đồng đều trên các nhóm điểm đã xác định từ 1 đến 1000. Đối với câu hỏi, phần lớn các bản sao là từ các bài đăng có 1-5 điểm. Có thể đó là do người dùng sao chép câu hỏi để tạo lại nó và cuối cùng đăng câu trả lời.
Tương tự như khi nhìn vào rep của người dùng, phần lớn các bài đăng trên trang web có điểm thấp hơn. Để tìm hiểu điều này, hãy xem các bản sao trên mỗi bài đăng.
Chúng ta có thể rõ ràng rằng khi một bài đăng tăng Điểm bài đăng (Post Score) thì Số bản sao trên mỗi bài đăng cũng vậy. Điều này có ý nghĩa vì khi một bài đăng tăng điểm, nhiều khả năng kiến thức đó đang được cộng đồng sử dụng lại.
Mọi người có sao chép câu trả lời bị downvoted trên Stack Overflow không?
Trong đồ thị trên, những chấm xanh có điểm âm thì sao? Tại sao mọi người lại sao chép các câu trả lời bị bỏ phiếu thấp (down-voted)?
Hãy xem câu trả lời này. Đó là câu trả lời được sao chép nhiều nhất được bình chọn với số điểm -2 và tổng số 288 bản. Nhìn kỹ hơn, nó có vẻ là một phiên bản ngắn gọn hơn của câu trả lời được chấp nhận ở trên với điểm 29 và có tổng cộng 493 bản. Mặc dù bài đăng về điểm tiêu cực của chúng ta không có nhiều bản sao hơn, nhưng đây là ví dụ hoàn hảo về bài đăng “quá lâu không đọc”.
Những tags được sao chép nhiều nhất là gì?
Bây giờ cho câu hỏi: những thẻ (tag) nào đang được sao chép nhiều nhất? Thật không may, do quy mô của dữ liệu và tài nguyên có sẵn, không thể phân tích cú pháp các thẻ lồng nhau. Ví dụ: thẻ html sẽ không bao gồm các bài đăng trong | html | css | nhóm thẻ.
Mười tags hàng đầu được sao chép
Sẽ không ngạc nhiên khi các thẻ nhận được nhiều bản sao nhất là một số thẻ hoạt động và phổ biến nhất trên Stack Overflow. Điều thú vị là python xuất hiện trong bốn trong số các nhóm thẻ hàng đầu. Ba trong số đó là các nhóm thẻ cụ thể phân tích dữ liệu; | python | pandas |, | python | pandas | dataframe | và | python | matplotlib |.
Mười thẻ hàng đầu có nhiều bản sao nhất cho mỗi bài đăng
Ngoài việc xem xét các thẻ có nhiều bản sao nhất, ta có thể xem thẻ nào có số bản sao cao nhất trên mỗi bài đăng. Lọc các thẻ có ít nhất mười bài đăng duy nhất, chúng ta có thể thấy rõ ràng khi các thẻ trở nên cụ thể hơn, chúng sẽ nhận được nhiều Bản sao hơn cho mỗi Bài đăng.
Những bài viết nào được sao chép nhiều nhất trên Stack Overflow?
Trả lời bằng code block
Với số điểm bài đăng là 3.497 và 11.829 bản, bài viết How to iterate over rows in a DataFrame in Pandas đã nhận được nhiều bản sao nhất. Được trả lời vào năm 2013, câu hỏi này tiếp tục giúp hàng nghìn người mỗi tuần.
Trả lời nội dung văn bản thuần túy
Đối với câu trả lời được sao chép nhiều nhất với văn bản thuần túy, ta có TypeError: this.getOptions is not a function [closed] với điểm bài đăng là 218 và tổng số 1,570 bản sao. Mặc dù không thể xác nhận được những có thể giả thuyết rằng mọi người sao chép nội dung `sass-loader @ 10.1.1
` rất nhiều.
Câu hỏi với code block
Câu hỏi được sao chép nhiều nhất với số điểm bài viết là 2,147 và 3,665 bản, How to create an HTML button that acts like a link?
Câu hỏi với nội dung văn bản thuần túy
Cuối cùng, câu hỏi được sao chép nhiều nhất với văn bản thuần túy có số điểm bài đăng là 322 và 261 bản sao, Updates were rejected because the tip of your current branch is behind its remote counterpart. Câu hỏi này hơi phức tạp vì có một số lệnh git không nằm trong các code block có thể dễ dàng trở thành phần được sao chép của câu hỏi. Nhưng vì không chụp văn bản thực sự được sao chép, không thể xác nhận điều này.
Nhận xét được sao chép
Câu trả lời không phải là tất cả mọi thứ trên Stack Overflow. Đôi khi tất cả những gì bạn cần là một nhận xét hữu ích. Đây là những bình luận được sao chép nhiều nhất!
Nhận xét đầu tiên là nhận xét được sao chép nhiều nhất trên toàn bộ trang web và nhận xét thứ hai là “người hùng thầm lặng” vì nó chỉ có điểm bài đăng là 5 nhưng là nhận xét được sao chép nhiều thứ sáu trên trang web.
Theo Stack Overflow Blog