ĐỌC, TÌM VÀ HỎI

Hôm qua rảnh rỗi sinh nông nổi mình có lên Medium lượn lờ đôi chút thì gặp được bài viết của 1 anh Khoai tây chia sẻ về phương pháp giải quyết các vấn để của anh ấy khi gặp những lỗi khi lập trình :3 Theo cảm nhận từ 1 anh Khoai lang như mình thì thấy phương pháp đó khá giống với cái cách mà mình cũng hay sử dụng :)) khéo là ý trời run rủi đã cho mình tìm được anh Tây ấy, đúng là duyên kì ngộ

Hữu duyên SH năng tương ngộ

Vô duyên đi bộ bất tương phùng

Thôi lan man thế đủ rồi :v mình thấy đấy là 1 phương pháp hay nên quyết định dịch lại bài viết này cho mọi người cùng tham khảo, mình dịch nhưng có lồng vào đó cả ý kiến chủ quan của mình cũng như những thứ mình có áp dụng nên nếu anh em không thích thì có thể tham khảo link gốc ở cuối bài viết :3 Giờ thì bắt đầu nào

letsgoparty_20140323

Coding là một chuyến hành trình đi tìm sự mơ hồ

Bất kể bạn làm gì từ việc thiết kế một RESTful API, scale ứng dụng cho hàng nghìn users hay đơn giản chỉ là việc cố gắng ngồi cắt cắt xén xén CSS thì đó đều có thể là những công việc mà bạn có thể chưa biết bao giờ, chưa phải làm hay động tay động chân đến nó.

Lần sau khi bạn cảm thấy hoang mang và không biết cách để giải quyết vấn đề này thì hãy thử sử dụng phương pháp “ĐỌC-TÌM-HỎI” (READ-SEARCH-ASK). Hì hì cái tên như như đã nói lên tất cả rồi phải không, đến thằng ngu nhất đọc cũng hiểu phải không? Công việc cụ thể bao gồm

  • Đọc tài liệu hay lỗi chương trình văng ra
  • Tìm kiếm trên Google
  • Hỏi ai đó (đừng sợ phải hỏi) như chủ blog đẹp giai, tài hoa này chẳng hạn

Còn bây giờ chúng ta sẽ đi chi tiết hơn vào từng phần nhé

ĐỌC

Khi bạn biết rằng mình cần một method nào đó nhưng lại không biết cách cài đặt thì document là nơi tuyệt vời để bắt đầu. Nếu bạn không chắc chắn về method bạn cần thì giải pháp cũng là click loanh quanh document thôi.
Còn nếu bạn bắt gặp 1 lỗi từ một hành tinh nào đó đưa đến thì hãy cố gắng đọc ra cái lỗi đó nó nói về cái gì. Thế nếu bạn cóc gặp lỗi mà cũng chẳng hiểu cái chương trình của mình nó đang làm cái khỉ gì nữa đơn giản là sử dụng log để debug đi
Đoạn tiếp thì mình không dịch nữa mà là kinh nghiệm lấy từ bản thân khi xây dựng hệ thống ở công ty. Cứ mỗi lần không nhận được kết quả như ý là mình log mọi thứ: log từ cái nút click được gì, log giá trị nhập vào ô textbox, log từ cái chọn ra của combo, log thời gian xử lý… nói chung là log tất tần tật. Chính nhờ vậy mà mình tự phong cho là KING DEBUG (nhái Vua Bọ Cạp) =))

5d1a4a21aa4ff044f05bd2b0b9dcca10

Nếu đến giờ mà các huynh đài vẫn loay hoay chưa xử lý được thì tiếp tục đi vào phần TÌM KIẾM

TÌM

Khỏi cần phải nói thì đối với anh em coder, Google chính là 1 người bạn thân thiết của chúng ta luôn xuất hiện mỗi khi chúng ta cần, nâng đỡ và dìu dắt chúng ta qua khó khăn.

Hands holding sapling in soil

Tuy nhiên thỉnh thoảng em nó cũng mang đếnhiều phiền nhiễu khi trả cho chúng ta những câu trả lời không hữu ích cho lắm thậm chí là buồn cười :v/ Để duy trì được tình cảm thắm thiết với người bạn này thì 500 anh em cần lưu ý khá nhiều điều đấy.

Anh em ta khi xây dựng 1 ứng dụng nào đó thì hầu như đều không bao giờ có câu trả lời chính xác cho những vấn đề mà chúng ta sẽ gặp phải cả. Chúng ta sẽ tốn hàng đống thời gian, mồ hồi và công sức chỉ để học được mình cần gì và sau đó áp dụng nó vào trong tình huống thực tế của chính mình

Củ thể và ngắn gọn

Một trong những điều mà anh em ta cần đặc biệt lưu ý đó là  việc sử dụng các cú pháp khi tìm kiếm, nếu áp dụng tốt cái này thì hiệu quả mà nó mang lại khá nhiều giúp chúng ta nhanh chóng tìm được giải pháp cho vấn đề đang gặp

Ví dụ thay thế 1 kí tự ở 1 vị trí xác định của string luôn là 1 vấn đề mà nhiều newbie gặp phải. Để xử lý tình huống này, anh em có thể google thử xem nào

1-J7LFVMRp4O7k05ScBbvGjg.png

Á đù chúng ta sẽ nhận được vô số kết quả khi google “I want to change a thing a string”

Đủ các loại thập cẩm hổ lốn từ việc sử dụng substring đến “10 cool ways to get more from Word’s Find and Replace” (cái này cũng hay ho đấy, đánh dấu vào để đọc sau) nhưng đó đều không phải chính xác cái mà anh em ta cần thì phải haizz

Khi google, đặc biệt là với các vấn đề liên quan đến lập trình thì có 1 covention mà nhiều anh em hay làm đó là

[Ngôn ngữ lập trình][từ khóa]

Thử vào trường hợp của chúng ta xem nào 😕 Giờ thì ta sẽ nhập “javascript replace character in string”

1-SqJewcOrIucPnQCljQdTJw.png

Dường như kết quả cũng gần gần với những gì chúng ta mong đợi rồi đấy phải không

Giờ thì chúng ta sẽ click “lướt ván” qua một vài kết quả xem nó có hữu hiệu hay không nhé. Nếu không thì anh em nên chuyển qua hoặc bổ sung thêm keyword

Với kết quả thứ 4 thì thôi rồi, chúng ta mới biết được rằng string là bất biến nên không thể thay đổi được. Chính vì vậy mà chúng ta sẽ không thể thay đổi được nó dù chỉ là 1 kí tự

Nếu anh em vẫn còn thắc mắc thì có thể thêm “at an index” và tiếp tục đi nhé

Stackoverflow

Đây là một nguồn tư liệu tuyệt vời chứa rất nhiều các câu hỏi và câu trả lời về lập trình. Thông thường thì những người người đặt câu hỏi sẽ chọn những câu trả lời tốt nhất và stackoverflow sẽ hiển thị top kết quả ở trên đầu.

Tại đây thì một sốcâu hỏi sẽ trở thành một cuộc thảo luận đầy thú vị với những tranh luận từ rất nhiều các anh tài trên khắp chốn giang hồ tụ họp về. Có khá nhiều huynh đệ thực sự khá phũ vì chuyên nói thẳng “this is wrong” hay “this is a bad practice.” Anh chủ blog xinh giai cũng thế mỗi tội chả trả lời trên Stackoverflow bao giờ :v

Anh em có thể tự đọc và đánh giá các câu hỏi cũng như các câu trả lời để lựa chọn ra những đáp án phù hợp nhất với yêu cầu của bản thân.

(ĐỪNG SỢ) HỎI

Khi các anh em đã cố gắng tìm kiếm câu trả lời nhưng bị vướng vào cái vòng luẩn quẩn không có lời giải mà mình cần thì đã đến lúc chúng ta nghiêm túc suy nghĩ về việc đi hỏi một ai đó thật sự rồi đấy.

Những người này là ai đây? Họ có thể là

  • Một trong những người bạn của bạn (Nếu bạn có 500 anh em biết code :v)
  • Các thành viên meetup (nếu bạn có tham gia)
  • Những huynh đệ trên các diễn đàn về CNTT (không phải anh em thiendia đâu nhé :v)
  • Những hội nhóm trên Slack hay Facebook mà bạn follow

Trước khi hỏi thì anh em nên cố gắng cấu trúc lại câu hỏi để tận dụng được cả thời gian của anh em cũng như của các vị huynh đệ khác mà sẽ ra tay tương trợ. Ví như mấy câu “Ứng dụng của tiểu đệ bị crash, xin hỏi các anh em là tiểu đệ phải làm sao” hay “CHo hỏi các chư vị đang ở cái diễn đàn này, tiểu đệ cần làm gì để cái chức năng của nợ này hoạt động?” thì thôi rồi chả ai trả lời đâu trừ khi MAX RẢNH đến mức đi nhặt hạt thanh long như dưới :))

medium-e456796836524e4cb088b2c958356dde-650

 

Điều đầu tiên ấy là anh em cần phải hiểu được rõ vấn đề mà anh em đang gặp phải, sau đó giải thích được là anh em mong muốn code của mình sẽ hoạt động như thế nào. Nếu giải thích khó quá thì đôi khi đưa luôn đoạn code mà anh em nghĩ cần cho chư vị đồng liêu.

Đoạn tiếp theo là thuật lại lời tác giả nhé 😀

Hồi đầu khi lần đầu tiên gặp vấn đề, mình rất sợ phải đặt các câu hỏi trên các diễn đãn hay các room chat vì 2 lý do:

  • Tôi cảm thấy mình không thể chỉ cho mọi người vì sao code của mình có thể hoạt động.

my-code-doesnt-work-i-have-no-idea-why-my-code-works

  • Lý do thứ 2 là cảm giác không an toàn. Thật sự tôi đã từng sợ mọi người sẽ không phản hồi hoặc không ai muốn giúp tôi hay những lời giải thích của mọi người làm tôi ko hiểu hoặc tôi không muốn hỏi thêm và làm tốn quá nhiều thời gian của mọi người

Nhưng đến bây giờ thì thật sự là mọi thứ mà tôi từng nghĩ hoàn toàn sai. Mọi người trong cộng đồng lập trình đều thực sự rất nhiệt tình, thân thiện, có hiểu biết và đặc biệt là rất kiên nhẫn đối với tôi.

Có lần có chàng trai đã dành hàng giờ để nghe tối giải thích về định nghĩa và chỉ ra cái bug mà tôi đang vướng. Tôi thấy cảm phục sự kiên nhẫn của anh ấy, có khi tôi yêu anh ấy mất rồi :(( Chàng trai năm ấy mà đống bug cùng theo đuổi 😦

ctna-12-1b6dc

Tôi cũng chưa bao giờ nghe thấy ai nói xấu về tôi hay nghĩ tôi ngớ ngẩn hay không có khả năng. Tôi cũng chưa bao giờ chứng kiến những câu hỏi của tôi mà không ai trả lời từ những câu đơn giản nhất. Trời nhắc lại mà cảm động quá 😦 Muốn khóc quá 😦 mọi người tốt quá 😦

dont-cry-baby-12

Nếu bạn nghĩ tại sao họ làm vậy thì thực sự chỉ là họ thực sự muốn giúp đỡ mọi người thôi chứ không phải vì bất kì điều gì cả giống như chủ blog là mình này =)) Anh em bốn bể là nhà mà 😀

TÓM LẠI

ĐỌC, TÌM và HỎI là phương pháp đặc biệt tối ưu cho thời gian của mình cũng như của tất cả những người muốn giúp mình. Thực sự thì nó sẽ thúc đẩy các bạn học hòi và tìm tỏi các phương pháp để giải quyết vấn đề của bản thân trước khi phải mở mồm ra để đi hỏi mọi người. Nếu các anh em đã thật sự cố gắng làm mà vẫn chưa nhận được kết quả gì, thì đừng ngại yêu cầu 1 sự giúp đỡ nhé :v Email cho chủ blog chẳng hạn :v

THAM KHẢO

https://medium.freecodecamp.com/read-search-dont-be-afraid-to-ask-743a23c411b4#.1ipi1fe0g

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s