Giới thiệu về StackOverflow và hệ thống StackExchange

StackOverflow Picture

StackOverflow Vision

Với tất cả những ai đã, đang và sẽ theo đuổi nghề “IT”, hẳn việc tìm kiếm bằng Google đã không còn là xa lạ. Thậm chí đã có người còn đề nghị xem “Googling” là một kĩ năng cần được phổ biến rộng rãi, vì với khối lượng thông tin không lồ trên Internet, rất có thể vấn đề bạn đang cố gắng giải quyết đã từng xảy ra với người khác, trong một tình huống tương tự. Trong rất nhiều trường hợp, nhờ có khả năng tìm kiếm thông tin tốt, ta không phải mất thời gian “phát minh lại bánh xe”, tiết kiệm được nhiều thời gian và công sức.

Nhưng chắc hẳn mọi người ai cũng sẽ có trường hợp, một lúc nào đó không thể “Google” ra kết quả mình cần tìm kiếm. Và đó là lý do các forum, diễn đàn online ra đời. Ở Việt Nam, về nghề lập trình có thể kể đến Cộng đồng C Việt, Diễn đàn Java Việt Nam, Lập trình Việt, v.v… Các trang này được rất đông thành viên tham gia, và cũng đạt được những thành tựu nhất định trong việc tạo ra một “cộng đồng”, hỗ trợ lẫn nhau về kinh nghiệm, kĩ thuật.

Nhưng trong các trang này, có một điểm hạn chế, mà không phải ai cũng để ý: tất cả những người tham gia đều phải … biết tiếng Việt. Bạn đừng cười, vì tôi biết tất cả các diễn đàn ấy đều dành cho người Việt. Nhưng, chỉ như vậy thì chúng ta đã lãng phí tất cả các thành viên tiềm năng của “phần thế giới còn lại” :)

Cho phép tôi được giải thích rõ hơn điều này:

So với các khối ngành khác như luật pháp, thương mại,… ngành IT/kĩ thuật nói chung không phụ thuộc vào biên giới quốc gia và nơi bạn đang sống. Ở thành phố Hồ Chí Minh, bạn cũng có thể sở hứu một chiếc laptop ngang ngửa với đồng nghiệp ở thung lũng Silicon. Lên mạng, truy cập vào các trang công nghệ như techcrunch, bạn cũng có thể biết được các Google, Microsoft đang phát triển công nghệ mới gì. Nói về mặt học thuật, gần như tất cả các lập trình viên C trên thế giới đều từng đau đầu về con trỏ, hệt như sinh viên IT của chúng ta khi mới nhập môn vậy.

Vậy thì, tại sao lại đặt sự ngăn cách?

Đó là lý do chính mà tôi muốn giới thiệu về StackOverflow và hệ thống StackExchange. Được thành lập từ năm 2008 bởi Joel Spolsky and Jeff Atwood, hai lâp trình viên “có máu mặt” trong nghề; StackOverflow đã vươn lên trở thành một trong những trang web hỏi đáp hàng đầu thế giới, bao quát nhiều lĩnh vực lập trình: Java, C, C++, .NET, Python,… Hầu hết các câu hỏi ở đây đều được hỗ trợ nhanh chóng, bởi sự góp sức của những thành viên cộng đồng. Và trên hết là, mọi sự hỗ trợ đều miễn phí.

Sau sự thành công của StackOverflow, Joel và Jeff quyết định mở rộng engine của StackOverflow thành StackExchange, và nền tảng này cũng miễn phí. Cùng với đó là sự ra đời hàng loạt của các trang web hỏi đáp về các đề tài khác nhau, từ Computer Science, Programmer, Project Management, … cho đến Music, Photography, English, Parent-ing (vâng, về nghệ thuật chăm sóc con cái ^^). Chặng đường phát triển này không hoàn toàn xuôi dòng và cũng lắm gian nan, nhưng có lẽ đó là đề tài cho một post khác.

Nhìn chung, đến thời điểm hiện tại, các trang Q&A của StackExchange hầu hết đều phát triển thịnh vượng; với tỉ lệ số câu trả lời/ số câu hỏi lên đến hơn 80%. Trong bài blog “State of the Stack 2010″, Joel đã tổng hợp một sơ đồ cho phép chúng ta hình dung khái quát về hiệu quả của các trang StackExchange năm 2010.

StackExchange - tỉ lệ số câu trả lời / số câu hỏi

StackExchange - tỉ lệ số câu trả lời / số câu hỏi

Nếu bạn là dân sành công nghệ, thì hẳn bạn đã biết startup Quora, cũng là một dạng website Q&A, vừa gây một chấn động không nhỏ. Quora  nhận được 11 triệu đôla tài trợ trong 2 tháng, và giành giải “Crunchies Award – Best new startups for 2010″. Thật trùng hợp, khi tôi viết bài này cùng lúc Techcrunch đặt phép so sánh giữa Quora và StackExchange: “Khi Quora thu hút mọi sự chú ý, StackOverflow lặng lẽ chiếm 16 triệu khách truy cập hằng tháng.” Bài báo nhận định: “It’s by far the most professionally useful site on the Internet.”

Nếu bạn là người ham tìm hiểu, học hỏi về lập trình, hẳn là bạn sẽ tìm thấy ở StackOverflow nhiều điều thú vị. Và nhiều khi bạn đã từng đi qua nó rồi mà không để ý: mỗi khi tìm kiếm một giải pháp lập trình, 80% trường hợp tôi thấy StackOverflow ở trong top 10 kết quả tìm kiếm (theo tác giả bài báo so sánh trên thì còn cao hơn). Chỉ riêng điều đó đã cho thấy tiềm năng của trang web này.

Nhưng trước khi bạn tham gia StackOverflow (hoặc các site trên StackExchange), hãy dành thời gian đọc một vài điều sau đây, có thể sẽ có ích cho bạn trong quá trình làm quen với “môi trường Stack”:

  1. Ngôn ngữ trao đổi bằng tiếng Anh: đây là điều kiện tiên quyết. Tôi hiểu rất nhiều bạn học lập trình có nền tảng tiếng Anh chưa vững, sẽ gặp nhiều khó khăn. Thế nhưng, đây chính là cơ hội để các bạn rèn luyện. Có thể bắt đầu viết bằng những câu ngắn, nêu ví dụ cụ thể bằng code như câu hỏi này.
  2. Nhập gia tùy tục: mỗi trang stackexchange đều có một bộ quy định, hầu hết là giống nhau tuy vẫn có những điểm khác biệt. Lời khuyên của tôi là “nên đọc kĩ hướng dẫn sử dụng trước khi dùng”; ít nhất cũng nên lướt qua những điểm chính yếu(Nếu bạn không rành tiếng Anh thì nên học câu này: “Google translate is your friend ;) ” ).
  3. Hệ thống điểm danh tiếng (reputation): đối với mỗi câu hỏi/ câu trả lời được đưa ra, các thành viên của cộng đồng có quyển đánh giá câu hỏi/ câu trả lời đó là có ích hay không bằng cách upvote/downvote. Ở StackOverflow, nếu câu trả lời của bạn được upvote bạn sẽ có thêm 10 reputation, nếu bị downvote sẽ bị trừ 2 reputation. Đây chính là cách mà StackOverflow tạo ra thước đo dộ tin cậy của một người dùng: nếu người trả lời câu hỏi của bạn có reputation càng cao, chứng tỏ anh ta có một trình độ nhất định.
    Ngoài ra, điểm reputation cũng còn được dùng để unlock một số tính năng của StackOverflow. Ví dụ: với số điểm reputation trên 2000, bạn được xem là “trusted user”, có thể edit câu trả lời/ câu hỏi của người khác (tất nhiên, mọi thay đổi sẽ được lưu lại), vote để đóng những câu hỏi vô nghĩa, v.v…
  4. Dành riêng cho StackOverflow: khi nêu câu hỏi, bạn nên tập trung vào vấn đề chính; tránh những câu hỏi “xin code giùm”; bạn phải thể hiện trước khi hỏi bạn có bỏ công sức tìm hiểu vấn đề, tránh bị “downvote” một cách đáng tiếc.
  5. Một số trang stackexchange mà mình xem có vẻ thú vị:

  • StackOverflow: dành riêng cho lĩnh vực lập trình; chuyên cho những câu hỏi về một vấn đề cụ thể; không chấp nhận những câu hỏi tùy thuộc vào chủ quan/ thăm dò ý kiến dạng như “.NET tốt hơn hay Java tốt hơn”
  • Programmer: dành cho lập trình viên với những vấn đề liên quan; chấp nhận những câu hỏi chủ quan (subjective) mà StackOverflow loại bỏ.
  • Project Management: trang mới trong hệ thống StackExchange, vừa public beta, chuyên về quản lý dự án.
  • ServerFault: nghe tên là biết, trang hỏi /đáp các vấn đề về server.
  • Area51: đây là một trang khá đặc biệt, chuyên dùng để nhận các đề nghị tạo trang Q&A mới. Nếu bạn có một đề tài thú vị, bạn có thể đề nghị ở đây: khi đã tập hợp đủ một số người với cùng nguyện vọng, StackExchange sẽ tạo trang Q&A đó cho bạn.

10 thoughts on “Giới thiệu về StackOverflow và hệ thống StackExchange

  1. Pingback: Start at StackOverflow: Writing good question/ answer | Simple Note Corner

  2. Quang Anh

    Cảm ơn bạn vì bài viết rất hay. Về mạng hỏi đáp Stack Exchange, mình thấy phát triển nhất là Stack overflow, Server fault và Superuser. Và thường thì chúng ta chỉ biết đến Stack Overflow và thực sự là hàm lượng tri thức trong trang này thật là đầy đủ.
    Dù trong bài viết của bạn đặt vấn đề là “tại sạo sao lại đặt sự ngăn cách” – khuyến khích cộng đồng IT việt tham gia với thế giới, tuy nhiên mình nghĩ vẫn nên tạo ra một cộng đồng hỏi đáp riêng cho IT ở Việt Nam. (Hiện nay có sản phầm Asking.vn của Bach khoa được đánh giá cao).
    Mình đang ấp ủ tạo ra một sản phẩm hỏi đáp vừa tận dụng được ưu thế về lượng tri thức của Stack Exchange, vừa thân thiện về ngôn ngữ với cộng đồng Việt. Hy vọng được trao đổi nhiều thêm với bạn nếu bạn có cùng sở thích

    1. ledohoanglong

      Hi Quang Anh,

      Bây giờ thì mình đã có suy nghĩ khác hơn một chút về vấn đề này. Rõ ràng tuy các trang hỏi đáp bằng tiếng Anh có nội dung khá phong phú, nhưng nhu cầu về những trang Q&A tiếng Việt cũng không ít. Một số người bạn của mình cũng vừa lập trang eezy.vn theo mô hình Q&A của SO, đang trong giai đoạn beta testing. Giờ qua bạn mình lại biết thêm asking.vn . Rõ ràng “sân chơi” trong nước đã bị bỏ ngỏ quá lâu :)

      Mình rất vui nếu có dịp được trao đổi thêm với bạn.

  3. Pingback: Start at StackOverflow: go for the niche | Simple Note Corner

  4. phi

    Mình hay lên stackover để hỏi, nhưng gặp rất nhiều khó khăn, ở cái mục tags, nó bắt nhập, mà nhập kiểu gì nó cũng ko cho, nhập tags mới thì nó đòi 50 reputation, nhập tags cũ thì nó báo “At least one of these tags is required – ‘bug feature-request discussion support’. lúc thì nó lại báo “This post does not meet our quality standards.” loay hoay cả buổi trời ko post đc câu hỏi lên đó … Bạn có kinh nghiệm trên đó chỉ giáo mình với

    1. ledohoanglong

      À, vậy là bạn vào nhầm trang Meta của StackOverflow rồi. Trang đó không phải để hỏi về lập trình, mà là để thảo luận về các chức năng của website StackOverflow và yêu cầu chức năng mới.

      Bạn vào lại thử http://stackoverflow.com rồi hỏi lại thử xem :)

    2. ledohoanglong

      À, về “This post does not meet our quality standards.” Có thể bạn đang dùng lẫn tiếng Anh và tiếng Việt trong câu hỏi đó. Để chắc chắn Phi có thể gửi bản draft câu hỏi cho Long, Long sẽ tìm xem có vấn đề gì.

      Qua được 50 rep đầu tiên mọi thứ sẽ dễ hơn :)

  5. Pingback: Giới thiệu về StackOverflow và hệ thống StackExchange | VinaCode

  6. Pingback: Giới thiệu về StackOverflow và hệ thống StackExchange - Hoàn Nguyễn

  7. Pingback: Giới thiệu về StackOverflow và hệ thống StackExchange | Hoan Nguyen

Comments are closed.