Ai là bạn thân trong lập trình của bạn?

Nếu bạn muốn nâng cao kỹ năng lập trình của mình, hãy đọc kỹ bài này và thảo luận về nó.

VinaCode

Bài viết được dịch từ blog Coding Horror

Tôi liên tục cảm thấy ngạc nhiên vì code của mình đã trở nên tốt hơn rất nhiều sau khi nhờ một đồng nghiệp xem qua nó. Ý tôi không phải là một buổi review trang trọng trong một phòng họp, hoặc đăng công khai code lên internet để mọi người vào soi xét, hay một dạng hình thức lập trình cặp phiền hà nào đó. Chỉ đơn giản là thử tóm tắt và giải thích rồi đưa code của mình cho một lập trình viên đồng nghiệp — đó là tất cả việc phải làm.

Điều này thì dĩ nhiên là không có gì mới. Cuốn sách tuyệt vời của tác giả Karl Wiegers là Peer Reviews in Software: A Practical Guide đã chỉ dẫn rạch ròi về điều này từ năm 2002.

Bạn nên có một người bạn thân trong lập trình để review code lẫn nhau.Bạn nên có một người bạn thân trong…

View original post 1,042 more words

Advertisements

Hãy giúp đỡ người khác học lập trình bằng mọi cách – Phỏng vấn Lê Trần Đạt

Đây là mục tiêu hiện nay của Đạt khi làm diễn đàn DayNhauHoc.Com

VinaCode


“Hãy học tiếng Anh thật giỏi và hãy giúp đỡ người khác học lập trình bằng mọi cách. Bởi vì cho đi chính là nhận lại, dạy chính là học.” ~ Lê Trần Đạt

Lê Trần Đạt sáng lập cộng đồng hỏi đáp DayNhauHoc.com Lê Trần Đạt sáng lập cộng đồng hỏi đáp DayNhauHoc.com

Đó là câu nói của anh Lê Trần Đạt hiện là Embedded Software Engineer làm việc cho công ty Compex Systems Pte. có trụ sở tại Singapore và anh cũng là người sáng lập ra cộng đồng hỏi đáp kiến thức lập trình Dạy Nhau Học (DayNhauHoc.com).

Anh đã có buổi chia sẻ những kinh nghiệm của bản thân với độc giả blog VinaCode.

Xin chào anh Đạt, rất vui được trò chuyện với anh hôm nay.

Xin chào VinaCode.


Anh có thể giới thiệu đôi chút về bản thân và background IT của mình?

Mình là Lê Trần Đạt, sinh ra và lớn…

View original post 2,524 more words

Người mới học lập trình cần biết – Phần 2 – Học lập trình thông qua thảo luận

Là một lập trình viên chuyên nghiệp Đạt tích lũy được kinh nghiệm lập trình thông qua nhiều năm tự học và làm việc. Quá trình tự học đó kéo dài, nhưng chung quy lại việc học lập trình bao gồm các quá trình tìm hiểu(1) => thắc mắc(2) => hỏi(3) => thảo luận(4) => hiểu(5) => thực nghiệm(6) => hướng dẫn ngược trở lại(7).

Khi đạt đến bước (3)hỏi thì bạn đã thở phào nhẹ nhõm, pha một ly cafe rung đùi chờ câu trả lời được rồi chứ. Nhầm to rồi, không có gì là miễn phí cả. Hãy tiếp tục bằng cách thảo luận(4).

Bạn hãy tự hỏi vì sao có người giỏi hơn bạn, biết nhiều hơn bạn, làm nhiều hơn bạn, có ít thời gian hơn bạn lại dành thời gian trả lời câu hỏi cho bạn?
– Vì trả lời họ nhận được tiền từ ai đó? Nếu điều đó có thật thì có lẽ 1 tỷ like trên facebook sẽ giúp Việt Nam thành nền kinh tế phát triển nhất thế giới.
– Vì họ có nghĩa vụ và trách nhiệm phải trả lời câu hỏi? Nếu điều đó có thật thì có lẽ điều ở trên đúng.
– Vì bạn đẹp trai, đẹp gái, bạn nổi tiếng, bạn lịch sự, bạn tốt bụng? Nếu bạn tin vào điều này thì có lẽ bạn nên tắt máy và đi ra ngoài cho tỉnh táo đầu óc một tí 🙂
– Vì bạn gãi đúng chỗ ngứa của họ, tức là bạn đặt ra một câu hỏi thú vị, câu hỏi làm cho họ “sướng” khi giải quyết được. Nếu bạn tin vào điều này thì bạn đã đúng và nên đọc tiếp

Tất cả những người giỏi và sẵn sàng giúp bạn bởi vì họ thấy câu hỏi của bạn hay, thú vị và đáng quan tâm. Việc trả lời câu hỏi và thảo luận với bạn sẽ giúp họ biết thêm một kiến thức mới. Nếu không có bạn hỏi, không ai thúc đẩy thì họ sẽ không biết và không bao giờ biết tới vấn đề đó. Vậy trả lời câu hỏi cho bạn, khiến họ có lợi. Nhắc lại câu nói ở trên “không có gì là miễn phí cả”. Quay trở lại câu hỏi ở bài trước, Đạt là người trả lời câu hỏi đấy. Đạt trả lời mặc dù Đạt không làm Java và cũng không biết câu trả lời. Nhưng Đạt nghĩ đây là một vấn đề có thể nghiên cứu và trả lời được, sau khi trả lời xong thì Đạt biết thêm, tại sao không thử?

Suy luận một tí bạn sẽ hiểu được tại sao một câu hỏi được quan tâm nhiều và một câu hỏi không ai thèm đọc. Được quan tâm nhiều tức là nó là một câu hỏi rõ ràng, thú vị. Không ai đọc một “bài tập” từ trên trời rơi xuống vì chả ai thích bài tập cả. Ai cũng thích chứng minh họ giỏi và thông minh nhưng chả ai thích làm bài tập, mà lại là làm bài giúp cho người khác. Ai thích làm bài tập thì bỏ qua đoạn này nhé 🙂

Vậy làm sao để “dụ dỗ” và “kích thích” người khác trả lời không công cho mình? Bạn phải làm cho câu hỏi của bạn trở nên “hấp dẫn” bằng cách bổ sung thông tin rõ ràng, đầy đủ và ngay lập tức khi “họ” hỏi lại bạn. Ví dụ một câu hỏi khác cũng khá là “tệ” nhưng người hỏi đã “dụ dỗ” được Đạt và người khác thông qua việc cung cấp thông tin đầy đủ và nhanh khi được hỏi “thí chủ có hình không?”.


Đây là hình thể hiện cái bạn đấy muốn làm, đủ rõ để Đạt hiểu bạn đấy muốn gì.

Những việc cần nhớ trước khi post thảo luận:
– Không cần thiết phải post “cảm ơn”, “thanks”, “hay quá” hãy like cho câu trả lời bạn thỏa mãn.
– Hãy thông báo cho cho người trả lời rằng bạn đã làm được, bạn đã hiểu vì sao không làm được, nêu ra lý do tại sao bạn không hiểu trước đây và sau đó hãy cảm ơn. Điều đó giúp người được trả lời vui hơn là nhận được câu “cảm ơn”. Những người khác đọc bài cũng hiểu được vấn đề, bạn cũng hiểu sâu hơn và lần sau sẽ không phải đặt câu hỏi tương tự.
– Đừng post những comment vô nghĩa, “hihi”, “ai giúp mình với”, “up”, “tem”, “mình cũng thắc mắc giống vậy”.
– Nếu bạn có cùng thăc mắc, hãy like và share câu hỏi đó lên facebook, qua email, chat, để nhiều người biết hơn.
– Đừng lái topic sang chủ đề khác, tập trung vào một và chỉ một câu hỏi. Khi câu hỏi được giải quyết xong. Hãy tạo topic mới để đặt câu hỏi mới. Nhớ rằng chỉ làm một việc và làm cho tốt.

Người mới học lập trình cần biết – Phần 1 – Học lập trình thông qua hỏi đáp

Là một lập trình viên chuyên nghiệp Đạt tích lũy được kinh nghiệm lập trình thông qua nhiều năm tự học và làm việc. Quá trình tự học đó kéo dài, nhưng chung quy lại việc học lập trình bao gồm các quá trình tìm hiểu(1) => thắc mắc(2) => hỏi(3) => thảo luận(4) => hiểu(5) => thực nghiệm(6) => hướng dẫn ngược trở lại(7).

Đối với nhưng người mới học lập trình 1 năm thì việc học sẽ dừng lại ở mức thắc mắc(2) hoặc mức hỏi(3). Ở mức độ thắc mắc(2) nếu người học lập trình bỏ cuộc mà không đi tìm hiểu thì việc học chấm dứt, có nghĩa bạn sẽ không nắm được kiến thức này cho đến lần tìm hiểu tiếp theo. Để có thể nắm được kiến thức bạn phải thực hiện bước (3)hỏi.

Hỏi nghe có vẻ dễ, nhưng nó không hề dễ tí nào. Nếu bạn dạo qua các diễn đàn học lập trình sẽ dễ dàng nhận thấy số câu hỏi nhận được câu trả lời nhỏ hơn số lượng câu hỏi rất nhiều. Tại sao vậy? Đó không phải vì câu hỏi quá khó, lý do là vì người hỏi không biết cách hỏi.

Hỏi khó vậy sao? Đặt một câu hỏi rất khó, thậm chí bạn cần phải tập luyện để có thể đặt một câu hỏi có được câu trả lời. Hôm nay Đạt nhận được một câu hỏi về java và đây là một câu hỏi “tệ” vì tiêu đề không thể hiện được nội dung cần hỏi. Nội dung câu hỏi tương đối đầy đủ nhưng chưa chuyên nghiệp.

Câu hỏi đó là “Vấn đề về String” với nội dung

Em không hiểu câu lệnh này lắm.
Vì sao khi dùng lệnh Scanner thì lúc là nextLine() lúc thì next()
Ai pro java cho mình hỏi nhóe smile

Để làm cho câu hỏi trở nên tốt hơn, thay vì đặt tiêu đề “Vấn đề về String” ta sửa lại thành “Sự khác nhau giữa Scanner.nextLine() và Scanner.next() là gì?”

Việc chuyển một câu phát biểu thành một câu hỏi với dấu “?” kết thúc câu ta đã thể hiện được ý muốn hỏi. Không khó đúng không, nhưng nó cần chú ý và suy luận kỹ trước khi tạo một câu hỏi.

Tiếp theo ta nói về nội dung. Nội dung câu hỏi này bị thừa. Về bản chất ta chỉ cần viết

Vì sao khi dùng lệnh Scanner thì lúc là nextLine() lúc thì next()

Nhưng để cho nội dung rõ ràng hơn, ta nên sửa lại như sau

Vì sao class Scanner lại cần tới hai hàm nextLine() và next()? Hai hàm này khác nhau như thế nào, nếu được thì có thể cho mình ví dụ về cách sử dụng không? Cảm ơn.

Những việc cần kiểm tra lại trước khi đặt câu hỏi:
– Liệu tiêu đề có thể hiện được nội dung cần hỏi?
– Tiêu đề có dài quá hay thừa chữ không?
– Tiêu đề có phải là câu hỏi không?
– Nội dung có đề cập được thắc mắc không?
– Nội dung có dư thừa hay thiếu thông tin không?
– Việc cảm ơn trong câu hỏi không bắt buộc, có thể có có thể không.
– Nội dung nên chú trọng đến việc hỏi, tránh đề cập các thông tin không liên quan.

Tham khảo thêm về câu hỏi được nhắc tới trong bài ở đây:
http://daynhauhoc.com/t/s-khac-nhau-gi-a-scanner-nextline-va-scanner-next-la-gi/1466

Cảm ơn thienpp12 về câu hỏi nhé.

Cho là nhận, dạy là học .

Câu nói “cho là nhận” chắc là nhiều người cũng đã nghe qua, hôm nay Đạt muốn nói thêm “dạy là học”.

Trước khi dạy lập trình C/C++ Đạt có biết C/C++ nhưng không sâu. Trước khi lập diễn đàn http://daynhauhoc.com Đạt biết làm sẽ khó, nhưng không biết nó lại khó như vậy. Qua hai tuần hoạt động, diễn đàn dạy nhau học đã có được một số thành công nhỏ. Nhỏ nhưng đó là những bước cơ bản cần thiết để xây dựng cái lớn hơn.

Giống như cái hình này: 

Trước hết số lượng câu hỏi đã được giải đáp là nhiều hơn rất nhiều so với việc một mình Đạt trả lời, vì không phải tất cả các vấn đề Đạt đều biết. Đạt chỉ biết cái này một chút, cái kia một chút. Nhưng nếu gọi là chuyên gia thì Đạt lại thua nhiều người khác. Nhờ sự hỗ trợ của các bạn đang đi học, đang đi làm có nhiều kiến thức mà rất nhiều câu hỏi đã được trả lời như các câu hỏi về Database, Java, .Net, C++, C. Đó là thành công rất lớn.

Vậy thì việc trả lời câu hỏi như vậy có gì hay, tại sao dạy là học. Trả lời câu hỏi ở đây không đơn thuần là một bạn sinh viên đặt câu hỏi và một người có kinh nghiệm trả lời. Mà đây là việc thảo luận để tìm ra giải pháp phù hợp cho một bài toán cụ thể. Việc trao đổi này diễn ra giữa người có kiến thức và không có kiến thức. Giúp cho người
“dạy” học được kiến thức cũ sâu hơn, giúp cho người “học” học được kiến thức mới vững hơn thông qua thảo luận.

“Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không.” Khi mới vào diễn đàn bạn sẽ nhìn thấy câu này, câu này để nhắn tới các bạn rằng hãy thảo luận, hãy dạy nhau hoc để chính mình học được điều gì đó.Chứ đừng đơn thuần hỏi bài tập xong rồi đi ngay.

Thế nên diễn đàn http://daynhauhoc.com không đơn giản là nơi thảo luận về lập trình mà còn là nơi các bạn học hỏi lẫn nhau. Hãy vào daynhauhoc.com mỗi ngày một lần với tư cách “Tôi là người có kiến thức, dù ít, tôi cũng sẽ dạy người khác để học được nhiều hơn”

Ngoài ra, diễn đàn còn có mục http://news.daynhauhoc.com chuyên chia sẻ các kiến thức, link, bài viết mà các bạn thấy hay, ở các diễn đàn khác, các blog khác, các trang tin tức khác. Mà bạn nghĩ là các kiến thức đó tốt, giúp cho người đọc có thêm hiểu biết. Đừng ngại post link không hay, kiến thức rất rộng lớn. Người giỏi họ biết, nhưng còn vô vàn người không biết điều bạn đã biết. Đạt cũng học được rất nhiều từ các bạn khác. Mình mong các bạn cũng dạy và học được nhiều hơn từ việc tự học và chia sẻ kiến thức.

http://daynhauhoc.com/

Hacker News

dd

Hiện tại diễn đàn có mục Hacker News. Đối với nhiều bạn Hacker News là một khái niệm mới. Đạt muốn giải thích vì sao Hacker News là quan trọng và cần thiết đối với các bạn sinh viên.

Trước hết về khái niệm Hacker, chúng ta phải làm Hacker. Nhưng chúng ta không đi phá hoại, chúng ta cần cái tính thần hacker. Tức là thích nghiên cứu, ưa khám phá, thích công nghệ mới – thú vị.

Hacker News là nơi chia sẻ link đến những bài viết giúp chúng ta, người-muốn-trở-thành-hacker, có thêm kiến thức, tạo niềm cảm hứng học hỏi. Đó là lý do daynhauhoc.com có mục Hacker News.

Hiện giờ Hacker News cũng đã có kha khá bài, nhưng nội dung là tiếng anh rất nhiều. Đó là hạn chế lớn, vì người Việt ít viết bài, và người giỏi họ cũng viết bài bằng tiếng Anh. Dẫn đến bài công nghệ hay viết bằng tiếng Việt đã ít, nay còn ít hơn. Vì vậy các bạn cần học tiếng Anh.

Nhưng cũng không có nghĩa là các bạn không thể đọc hay học nếu các bạn không biết tiếng Anh. Đạt và các bạn khác sẽ cố gắng tìm những bài viết bằng tiếng Việt để chia sẻ với các bạn. Nhưng các bạn cũng cố gắng đọc bài bằng tiếng Anh. Bạn hiểu nhiều giải thích cho bạn hiểu ít.

Hãy dành thời gian để học tập, bớt game, bớt chơi, bớt thị phi. Sau này mình sẽ giỏi, có nhiều thời gian hơn. Mình sẽ viết, sẽ hướng dẫn người khác. Tại sao không

http://daynhauhoc.com/c/hacker-news

Một diễn đàn cho người đam mê lập trình

111

Diễn đàn mới ra đời có mấy hôm, chưa được 1 tuần! Thế nhưng tốc độ post bài và số lượng thành viên đăng ký vào sử dụng là rất lớn.

Tính tới hôm nay 21/10/2014, sau 6 ngày open – số lượng
– thành viên: 440
– topics: 249
– posts: 729
– likes: 712

Vì DNH là một diễn đàn mở, nó được tạo ra là vì một mục tiêu phát triển một thế hệ mới, thế hệ ham học hỏi. Nhưng muốn nó hoạt động hiệu quả, DNH cần các bạn. Để giúp cho mọi người rõ hơn về định hướng của diễn đàn, đồng thời góp ý vào diễn đàn, topic này sẽ thảo luận về định hướng diễn đàn.

Nếu bạn thấy cần thêm ý kiến, hãy post comment. Nếu thấy hay, cần tiếp tục phát huy, hãy Like. Nếu thấy điều này cần được cho tất cả mọi người biết, hãy share.

Và hãy thực hiện điều tất cả điều đó trên Facebook và DNH. DNH có đầy đủ các tính năng – comment, like, share

http://daynhauhoc.com/t/chung-ta-c-n-m-t-slogan/116