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ệtDiễn đàn Java Việt NamLậ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.

Source: Hoàng Long

Leave a Comment