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

    Hỏi về thuật toán và ứng dụng của nó

    Xin chào mọi người, mình hiện đang rất thắc mắc về ứng dụng cụ thể của những thuật toán trong lập trình ứng dụng. Mình không được học ĐH/CĐ (do thi rớt) nên không làm cách nào hiểu được hết những thuật toán dạng đồ thị, nội suy, vi phân... Mình chỉ có thể tạm đọc hiểu code của những ứng dụng đơn giản và cao lắm thì cũng chỉ đến các phương pháp sorting, searching, binary tree là dừng bước. Các bài thuộc về vi phân, hàm số, đồ thị, phi tuyến thì mình chịu thua hoàn toàn [IMG]images/smilies/21.gif[/IMG]

    Vấn đề mình rất lo là nếu mai này làm lập trình viên thì các vấn đề trên có phải là trở ngại chính không? Mình có đọc qua nhiều bài trong mục đào tạo và kinh nghiệm của congdongcviet.com và rất tâm đắc là phải học từ đầu, học cho kĩ mà mình thì không hiểu hết cơ bản thì đào đâu ra thuật toán để giải đây [IMG]images/smilies/dont_know.gif[/IMG] Mình đã nghĩ tới cách học chui ở giảng đường nhưng xem ra không khả thi

    Và một thắc mắc nữa là mình định theo hướng lập trình ứng dụng, vậy thì các thuật toán đồ thị, ma trận, vi phân... có được bỏ qua hay không? Bởi lẽ theo mình thì các ứng dụng (nhỏ và vừa) trên thị trường xem ra thuật toán của chúng không liên quan nhiều đến Toán (cao cấp). Phải chăng những thuật toán để giải Toán (cao cấp) chỉ dùng để nâng cao tư duy và ít khi áp dụng cho ứng dụng thực tế? Mình thấy đa phần các ứng dụng trong mục "Sản phẩm của bạn..." trong congdongcviet thì theo mình thuật toán ít phụ thuộc vào trình độ Toán (cao cấp) của tác giả. Có lẽ họ chỉ nảy ra ý tưởng, viết ra giấy, sắp xếp ý tưởng rồi code chứ không áp dụng những ma trận, vi phân này nọ vào... Dĩ nhiên mình không bàn tới những chương trình đồ sộ hoặc thiên về đồ họa đòi hỏi tính toán cao (lập trình game, 3D chẳng hạn).

    Câu hỏi cuối là trong thời kì công nghệ thay đổi nhanh như gió hiện nay, mình có cần phải học thuộc tất cả những thuật toán hay không khi xin việc? Hay ví dụ chỉ cần dùng hàm qsort()...trong C# mà không cần viết lại nguyên hàm? Mình hiểu thuật toán nhưng không dùng thì sẽ không nhớ mà thực tế trong công việc mình nghĩ ít khi đụng đến thuật toán, do đó không biết nên làm gì với đống thuật toán đang ngâm cứu nữa - tiếp tục đào sâu hay dừng ở mức căn bản đây? Ví dụ như chương trình quản lý hồ sơ, nhân sự thì mình chưa hình dung được những thuật toán đồ sộ khó hiểu của Toán cao cấp giải quyết được gì trong chương trình đó nữa [IMG]images/smilies/17.gif[/IMG]

    Hiện mình đang rất bối rối giữa việc tiếp tục nghiên cứu thuật toán (cho Toán cao cấp) hay chuyển sang C# (dùng sẵn những hàm đã viết) để đi làm kiếm cơm đây [IMG]images/smilies/21.gif[/IMG] Mong mọi người cho ý kiến.

    Mình chân thành cảm ơn tất cả [IMG]images/smilies/biggrin.png[/IMG]

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    - Thuật toán quan trọng nhưng trong lập trình thì viết code nhiều cũng quan trọng. Nhiều người rất dở giải thuật chỉ nắm căn bản vẫn có thể làm việc được ầm ầm do họ làm quen và có nhiều kinh nghiệm. Thuật toán nếu giỏi thì viết code sáng hơn, nhanh hơn và tất nhiên hiệu quả hơn rất nhiều nhưng không cần phải xuất sắc mới trở thành lập trình viên được vì đa phần mấy cao thủ giải thuật toàn là dân cội toán học và học lập trình từ khi lên 6 lên 7 không à. Cậu cũng đừng nhìn vào đó mà tự ti. Cậu cứ học hết sức là được.
    - Còn ứng dụng thì 1 nhiều lắm, hầu như code nào mà chẳng có giải thuật, nhỏ to lớn bé là tùy thôi. Với lại học thuật toán nó đốt thời gian gấp trăm lần học programming T_T.
    - Và nếu cậu rành các thuật toán cơ bản thì tui nghĩ cậu viết code sẽ nhanh hơn nhiều và design cũng tốt hơn nhiều, hình như cứ mỗi lần quay lại học giải thuật vài tuần thì quay lại tui viết code nó nhanh hơn 1 tí T_T( không biết có đúng như vậy không nhưng tui thấy nó lại đúng với tui ) [IMG]images/smilies/biggrin.png[/IMG].
    - Nếu cậu muốn học thì tìm đọc 2 bộ sách này :
    1. Algorithm in C++ ( 4 tập ) của Robert Sedgewick
    2. Art of computer programming của Donald E. Knuth. ( 4 tập )
    Tất nhiên đọc hiểu 2 bộ này tối thiểu chắc cũng phải vài năm, và tất nhiên sách đọc không dễ như đọc sách công nghệ đâu. Nhưng nếu cậu thực sự thích thì cậu sẽ được thôi. Chúc cậu may mắn [IMG]images/smilies/wink.png[/IMG]!

  3. #3
    Chào bạn.
    Mình chưa đi làm như theo mình nếu bạn thiên về làm web, làm các ứng dụng quản lý thì cái bạn cần là tư duy logic và cơ sở dữ liệu(tất nhiên ngôn ngữ lập trình mình không đề cập ở đây vì nếu làm coder mà ngôn ngữ yếu thì không bàn gì nữa).
    2- theo như mình thì thuật toán rất quan trọng, nó sẽ giúp bạn làm việc tốt hơn. và trên đời này không ai là hoàn hảo cả nên nhiều vấn đề bạn chưa biết là chuyện bình thường thôi phải không bạn. nên khi đi làm đụng tới giải thuật thì bạn chỉ cần google và hô biến. là nó list ra cho bạn một đống. chỉ cần các từ khóa liên quan tới nó thôi.

    mình nói như vậy không có nghĩa là chối bỏ sự quan trọng của thuật toán. mà chỉ muốn nói với bạn rằng thuật toán quan trọng đó nhưng nó không phải là tất cả. Nếu bạn không làm game, làm nhúng, làm các lĩnh vực về AI, khoa học máy tính thì bạn có thể làm mọi việc nếu như bạn code tốt.

    chúc bạn thành công.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Mình chân thành cám ơn ý kiến của rox_rook và zkday2686, đúng là mình rất tự ti khi thấy mọi người ai cũng biết hết còn mình chẳng biết gì. Quả thật có lẽ họ đã bỏ rất nhiều công sức để được như vậy còn mình thì chỉ ngồi than thân trách phận mà không bắt tay vào nỗ lực học tập nhiều hơn để bằng và hơn họ. Phải năng vào congdongcviet hơn mới được [IMG]images/smilies/biggrin.png[/IMG]

    Cám ơn những lời động viên của các bạn, cám ơn congdongcviet, cám ơn mọi người rất nhiều [IMG]images/smilies/smile.png[/IMG]

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi rox_rook
    - Thuật toán quan trọng nhưng trong lập trình thì viết code nhiều cũng quan trọng. Nhiều người rất dở giải thuật chỉ nắm căn bản vẫn có thể làm việc được ầm ầm do họ làm quen và có nhiều kinh nghiệm. Thuật toán nếu giỏi thì viết code sáng hơn, nhanh hơn và tất nhiên hiệu quả hơn rất nhiều nhưng không cần phải xuất sắc mới trở thành lập trình viên được vì đa phần mấy cao thủ giải thuật toàn là dân cội toán học và học lập trình từ khi lên 6 lên 7 không à. Cậu cũng đừng nhìn vào đó mà tự ti. Cậu cứ học hết sức là được.
    - Còn ứng dụng thì 1 nhiều lắm, hầu như code nào mà chẳng có giải thuật, nhỏ to lớn bé là tùy thôi. Với lại học thuật toán nó đốt thời gian gấp trăm lần học programming T_T.
    - Và nếu cậu rành các thuật toán cơ bản thì tui nghĩ cậu viết code sẽ nhanh hơn nhiều và design cũng tốt hơn nhiều, hình như cứ mỗi lần quay lại học giải thuật vài tuần thì quay lại tui viết code nó nhanh hơn 1 tí T_T( không biết có đúng như vậy không nhưng tui thấy nó lại đúng với tui ) [IMG]images/smilies/biggrin.png[/IMG].
    - Nếu cậu muốn học thì tìm đọc 2 bộ sách này :
    1. Algorithm in C++ ( 4 tập ) của Robert Sedgewick
    2. Art of computer programming của Donald E. Knuth. ( 4 tập )
    Tất nhiên đọc hiểu 2 bộ này tối thiểu chắc cũng phải vài năm, và tất nhiên sách đọc không dễ như đọc sách công nghệ đâu. Nhưng nếu cậu thực sự thích thì cậu sẽ được thôi. Chúc cậu may mắn [IMG]images/smilies/wink.png[/IMG]!
    mình là dân toán học chính gốc
    vậy mình có lợi thế gì không?
    (mình dân toán nhưng theo tin lại mới học C nên kòn lơ mơ lắm)

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    vd nhé: bài xác định số n có phải là số nguyên tố không với người bình thường họ cho chạy từ 2->n còn bạn là dân toán nên sẽ chỉ cho chạy tới sqrt(n), vì toán học đã chứng minh như vậy v.v.... [IMG]images/smilies/biggrin.png[/IMG]

  7. #7
    Ngày tham gia
    Sep 2015
    Đang ở
    Số 60 Thái Hà, Đống Đa, Hà Nội
    Bài viết
    0
    Bạn có thể tham khảo thêm ở quyển : Toán Rời Rạc - ứng dụng trong tin học .

    Nếu khá tiếng anh thì có thể đọc : Data Structure and Algorithm in Java : quyển này chỉ nên quan tâm tới Algorithm(Thuật Toán) thôi.

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    nhưng cái đó không phải chỉ dân toán học mới biết
    đó không phải là lợi thế
    kòn cái gì khác to lớn hơn không?

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi RedHatLinux9
    nhưng cái đó không phải chỉ dân toán học mới biết
    đó không phải là lợi thế
    kòn cái gì khác to lớn hơn không?
    Lợi thế của dân toán học là biết được các định luật toán học có khả năng áp dụng như cái số nguyên tố kia và khả năng tư duy tốt thôi.
    Theo mình như thế là đã quá nhiều rồi.[IMG]images/smilies/lick.gif[/IMG] [IMG]images/smilies/lick.gif[/IMG]

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    http://forums.congdongcviet.com/showthread.php?t=9055
    cậu thử xem bài này nếu không có toán thì sẽ khó biết chừng nào

 

 
Trang 1 của 2 12 CuốiCuối

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
  •