Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Chia sẻ về cách đặt câu hỏi và kinh nghiệm học tập.

    Chào các bạn, mình có một số chia sẻ nhỏ với mong muốn phần nào giúp các bạn mới làm quen với "lập trình đạo" có thể tìm thấy hướng đi và cách học để có thể thoải mái khi tiếp bước trên con đường đầy hoa hồng...có gai này. Hơn nữa mình cũng muốn bày tỏ quan điểm của mình đối với một số bài viết thắc mắc, hỏi đáp về lập trình trong diễn đàn.

    1. Đặt câu hỏi:

    Các bạn cũng có thể thấy hIện nay diễn đàn này hàng ngày các box "sôi nổi" nhất chính là về hỏi đáp và thắc mắc. Mình cũng mạn phép nêu ra một số kiểu câu hỏi có lẽ nên bị "tuyệt chủng"(những loại câu hỏi này mình lấy từ diễn đàn này, còn ví dụ thì ko tiện nêu):

    -Loại câu hỏi "song sinh": được lặp đi lặp đại trong cùng 1 box chứng tỏ người hỏi không quan tâm đến việc tìm trước đáp án. Có lẽ quãng thời gian sau nhấm nháp cà fe trong lúc chờ đợi được giải đáp đối với họ là một cơ hội để họ thư giãn sau những giờ học tập, làm việc mệt nhọc.

    -Loại câu hỏi "chết yểu"
    : đặt câu hỏi và một lúc sau quay lại reply với dòng chữ "Mình đã giải quyết được vấn đề, mong mod xóa giùm" hoặc "chuẩn" hơn là sửa đổi nội dung câu hỏi thành câu như vậy làm ai mới vào cũng ko biết nội dung câu hỏi là gì. Nếu có thể giải quyết được nhanh như thế thì có lẽ người đặt câu hỏi chưa chịu tìm hiểu kĩ trước khi hỏi, hoặc nếu như ngồi ngủ gật đâu đó mà bất chợt thấy trái táo rơi trúng đầu và nảy ra cách giải quyết thì cũng nên reply lại lời giải đó như một cách chia sẻ nếu sau này có người cần đến.

    -Loại câu hỏi "mồ côi": không biết tác giả có "ý đồ" gì nhưng đặt câu hỏi xong và một đi không trở lại. Mặc dù câu hỏi đó có vẻ là một vấn đề đáng quan tâm và được sự giải đáp của mọi người. Thậm chí nhiều lúc tác giả vẫn tham gia diễn đàn đều đặn nhưng nhưng ko một lần tỏ ra quan tâm đến "đứa con" của mình.

    -Loại câu hỏi "quái thai": câu hỏi loại này thường có nội dung không rõ ràng, thậm chí có vẻ như không phải câu hỏi, hoặc quá ít thông tin để xác định. Hoặc những câu hỏi mà nội dung của nó quá đơn giản và không ai muốn trả lời, chẳng hạn như: "Làm sao để lấy số nhập trong TextBox?", "Import một namespace vào như thế nào?","Cách dùng vòng lặp while?",...Nếu như tác giả của nó đã học qua các bài căn bản về lập trình rồi thì sẽ không có những câu hỏi dạng này.

    -Còn một số loại câu hỏi nữa liên quan đến cách đặt tên, post nhầm box, vui lòng tham khảo..."Nội quy..."

    Một số loại câu hỏi được đặt ra và không có lời giải đáp nào, tác giả đành "bring to font" nó bằng cách tự reply lại. Một số người thay vì dùng câu yêu cầu thông thường lại áp dụng kế "khích tướng" đại loại như "không ai biết hết sao?", "chẳng lẽ ai cũng bó tay?"....Có thể thế thật nhưng đôi lúc tác giả cũng nên coi lại câu hỏi của mình có nằm trong dạng "quái thai" ở trên không?

    Ref: Cách đặt câu hỏi thông minh

    2. Giải quyết vấn đề

    Những câu hỏi quá khó để trả lời thường ko có nhiều trong các box hỏi đáp như vậy. Từ sự nhận thức ra thế giới ngày nay đã trở nên..."phẳng", mọi người có thể thấy rằng việc tìm hiểu những vấn đề mới là không phải quá khó. Đôi khi công việc của các mod chỉ đơn thuần là "tìm hộ" cho tác giả. "The world is 'open source'" mà, nếu bạn cứ đứng ngoài cánh cổng đang mở và chờ đợi người nào đó ở trong ném ra cho bạn vài thứ thì bạn đang tự làm khó mình đó.


    "spam"
    Bởi thế thay vì bị "street" trong lúc chờ đợi một lời giải đáp cho vấn đề mà thầy giáo dạy...nhập môn lập trình của bạn ra, thì hãy giành thời gian đó để làm bạn với google (hay một anh em cùng cha khác mẹ của nó). Đừng ngạc nhiên khi thấy ai đó trả lời được hầu hết những câu hỏi trong diễn đàn dù chỉ mới học được 1 vài tháng, đừng quá khâm phục trí nhớ siêu phàm và sự hiểu biết bao quát của họ, hãy khâm phục sự ham học hỏi và kĩ năng tìm kiếm của họ.

    Nếu bạn than thở vì mình học trong ngôi trường thua kém người khác cho nên không thể tài giỏi bằng thì đúng là thế đó. Bạn ko thể tiến bộ nhanh được nếu ko ngừng than thở và trau dồi kiến thức. Có thể thế giới không công bằng nhưng đối chúng ta, nó là...phẳng. Những sinh viên ra trường với tấm bằng của một ngôi trường danh tiếng có thể sẽ là cấp dưới của bạn sau này đó.

    Một số câu hỏi được các thành viên hào phóng ném luôn cho cả bài giải (hay thấy trong các câu hỏi về giải thuật) kèm theo chú thích "code mình viết đó...". Thực ra chỉ những trường hợp đặc biệt mới cho hết code bài giải, hoặc một lý do nữa là người giải đáp lại không biết "diễn giải" thế nào. Đây là chỉ là ý kiến của riêng mình, thay vì bỏ thời gian ra dẫn người đặt câu hỏi đi đến đích (không phải ai cũng rảnh) hãy chỉ cho họ con đường để họ tự đi.

    Tuy nhiên một số người dù được hướng dẫn khá kĩ, nhưng vẫn chưa chịu bỏ thời gian ra suy nghĩ và tự giải quyết vấn đề của mình. Họ đòi hỏi phải có code, và "cao" hơn 1 bậc là yêu cầu người giải đáp phải làm cho code của họ kết hợp được với code của mình. Nếu như đã có hướng dẫn cụ thể thì công việc còn lại chỉ đơn giản là "phiên dịch" từ ngôn ngữ thông thường sang ngôn ngữ lập trình. Nếu như bạn không làm được tức là bạn không biết một trong hai ngôn ngữ này (một là bạn là...người ngoại quốc và hai là bạn không biết lập trình).

    Cũng trong trường hợp trên, nhiều người than thở vì tư duy của họ kém và không thể giải quyết được trong khi nếu thử mình biết chắc họ sẽ làm được. Có lẽ họ quá coi nhẹ khả năng tư duy logic của mình mà không biết rằng đây là điều quan trọng nhất. Bạn sợ khó khăn, nhức đầu khi phải giải 1 bài toán trong khi hãy nhìn những người khác, tại sao họ lại bỏ công sức, thời gian để tìm kiếm những bài toán thật phức tạp để cố tìm ra lời giải. Họ vô công rỗi nghề nên ngồi giết thời gian à? Hay họ bị dở hơi, thuộc dạng người thích chịu khổ?

    Một số lời giải đáp mơ hồ vẫn giúp ích được nếu như người hỏi try....and...catch. Có thể bạn không thất bại 10,000 lần như Edison khi phát minh ra đèn điện nhưng nó cũng cho thấy bạn đang đi theo hướng của một thiên tài đó.

    Một số người chủ quan nói rằng cái quan trọng của lập trình chính là tư duy lập trình, "khi bạn biết cách tư duy của một ngôn ngữ lập trình rồi thì những ngôn ngữ khác cũng tương tự", hoặc là "tôi đã được đào tạo và chỉ cần khoảng 1 tháng là thành thạo một ngôn ngữ lập trình mới",... Những cách tư duy trong lập trình thì không cố định, chúng luôn được tiến hóa để phù hợp hơn với sự phát triển của nền công nghệ và đòi hỏi của những bài toán mới. Chẳng hạn từ lập trình cấu trúc, lên hướng đối tượng và lập trình hàm (http://cnx.org/content/m30662/latest/) . Những cú pháp lệnh cũng ko còn đơn thuần như theo cách có thể hiểu dễ dàng như ngôn ngữ nói hằng ngày, mà trở nên ngắn gọn và đa năng hơn như có thể thấy trong .Net 3 trở lên (lambda expresion, expresion tree,...), những phương pháp xử lý dữ liệu mới (LinQ), những lý thuyết mới (assembly, máy ảo, byte-code,...), những công nghệ thiết kế giao diện mới (WPF, SilverLight,...). Chính vì thế đừng tự biến mình thành lạc hậu vì những câu nói chủ quan như thế, bạn có thể rất giỏi nhưng không thể nắm vững hết tri thức mà cả thế giới đã và đang góp phần tạo nên nó.

    3. Trí thông minh (bonus)

    Trí thông minh có thể tăng cường được nhờ rèn luyện. Thông minh ko chỉ giới hạn trong những vấn đề về làm việc trí óc mà còn trong các lĩnh vực khác. Cụ thể hiện nay người ta đã công nhận có 7 hình thức thông minh (copy paste):

    # Trí thông minh logic toán: Đây là loại trí thông minh liên quan tới con số (toán học) và mối quan hệ logic giữa các sự vật. Những người có trí thông minh này thường làm việc trong lĩnh vực liên quan tới con số (toán, vật lý, hóa học, ngân hàng, tài chính…)
    # Trí thông minh ngôn ngữ: Đây là loại trí thông minh liên quan tới năng lực sử dụng ngôn ngữ. Những người có trí thông minh này thường là nhà văn, nhà thơ, nhà báo, các nhà nghiên cứu trong lĩnh vực xã hội…
    # Trí thông minh không gian: Những người có trí thông minh này thường làm việc trong lĩnh vực nghệ thuật như kiến trúc, hội họa, điêu khắc, địa chất, vật lý thiên văn…
    # Trí thông minh cơ thể: Đây là loại trí thông minh liên quan tới vận động của thân thể thường có ở những vận động viên thể thao, nghệ sĩ múa…
    # Trí thông minh âm nhạc: Lọai trí thông minh này thể hiện ở khả năng nghe nhạc, ghi nhớ nhanh giai điệu, sáng tạo ra các bản nhạc…
    # Trí thông minh về nội tâm: Thể hiện ở khả năng khám phá chiều sâu của bản thân…
    # Trí thông minh trong tương tác cá nhân: Những người có năng lực quan hệ với mọi người, nắm bắt được suy nghĩ của người khác, giỏi hợp tác, tập hợp mọi người, lãnh đạo...

    Tất cả các hình thức của trí thông minh trên đều liên quan tới bộ não, sự liên kết giữa các dây thần kinh càng nhiều thì trí thông minh đó càng cao. Giống như 1 diễn viên xiếc phải tập luyện cật lực để có thể đạt được những kĩ năng hoàn hảo, trong bộ não của họ cũng hình thành những liên kết thần kinh cần thiết. Thì trong lĩnh vực đòi hỏi tư duy logic này, bạn có thể phát triển khả năng của mình bằng cách rèn luyện hằng ngày. Một số địa chỉ sau có thể giúp ích cho bạn nếu như bạn quan tâm tới vấn đề này: http://fbaclub.com/, http://vi.cosmotopic.com/32585643-tim-hieu-ve-iq-test, http://trithongminh.com/



    Hy vọng các bạn cũng nêu lên những chia sẻ và kinh nghiệm của mình để mọi người cùng tìm được phương pháp hiệu quả cho mình, đặc biệt là các thành viên mới.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trong không gian 2 chiều (2D). Để xác định 1 đường (đoạn) thẳng có nằm trong hoặc cắt qua hoặc nằm ngoài một hình chữ nhật hay không. Viết 1 hàm và xác định độ Phức tạp của hàm đó?
    Cho biết đường thẳng đó xác định bởi: x1, y1 x2, y2.
    Hình chữ nhật xác định bởi 2 góc:
    (x left, y top)


    (x right, y botton)

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •