Read-only archive. Login and posting are unavailable.
Reply
 
Thread Tools
  #11  
Old 11-12-2019, 14:25
dreamnight's Avatar
Senior Member
Join Date: 06-2008
Posts: 639
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by .gears View Post
cái này thấy cũng không dễ đâu fen à 1417824
Chính xác, algorithm ko phải chỉ bó trong phạm trù dùng ở đâu và ntn. Cùng 1 bài toán có nhiều cách giải, đó là câu chuyện toán học muôn thuở, algorithm cũng vậy thôi. Google đầy ra 1 mớ thesis đó, nhưng có bao nhiêu % là thực tiễn đâu. Nói cho dễ hiểu hơn algorithm ở đây cũng là một hình thức luyện brainstorm , bạn chủ topic cần hiểu "giỏi" ở đây ko phải là thuộc làu làu cách giải như Cấp 3 với DH, mà là luyện trí óc mình cho nó logic hơn và với IT là phải biết biến logic đó thành code.

Bạn có thể coi youtube các bài pv ở Google, microsoft vòng algorithm. Đa phần nó bảo bạn làm 3 bước sau:
1. Nói họ nghe solution tổng quát trong đầu bạn
2. Viết presudo code (mã giả) dựa trên cái solution đó
3. Viết code bằng ngôn ngữ của bạn và run

Hầu hết những người pass qua vòng này ko phải là người bắt tay vô code liền, mà là người giải thích logic của họ, đủ thiếu các trường hợp ra sao. Người pass qua vòng này là người phải hiểu rõ logic của họ, và góc nhìn của họ với bài toán ra sao.
Reply With Quote
  #12  
Old 11-12-2019, 15:18
Member
Join Date: 08-2011
Posts: 32
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by dreamnight View Post
Chính xác, algorithm ko phải chỉ bó trong phạm trù dùng ở đâu và ntn. Cùng 1 bài toán có nhiều cách giải, đó là câu chuyện toán học muôn thuở, algorithm cũng vậy thôi. Google đầy ra 1 mớ thesis đó, nhưng có bao nhiêu % là thực tiễn đâu. Nói cho dễ hiểu hơn algorithm ở đây cũng là một hình thức luyện brainstorm , bạn chủ topic cần hiểu "giỏi" ở đây ko phải là thuộc làu làu cách giải như Cấp 3 với DH, mà là luyện trí óc mình cho nó logic hơn và với IT là phải biết biến logic đó thành code.

Bạn có thể coi youtube các bài pv ở Google, microsoft vòng algorithm. Đa phần nó bảo bạn làm 3 bước sau:
1. Nói họ nghe solution tổng quát trong đầu bạn
2. Viết presudo code (mã giả) dựa trên cái solution đó
3. Viết code bằng ngôn ngữ của bạn và run

Hầu hết những người pass qua vòng này ko phải là người bắt tay vô code liền, mà là người giải thích logic của họ, đủ thiếu các trường hợp ra sao. Người pass qua vòng này là người phải hiểu rõ logic của họ, và góc nhìn của họ với bài toán ra sao.
Nếu mình hiểu ko lầm thì bạn đang giải thích algorithm là cái gì đó. Còn algorithm mình và chủ thớt nói ở đây chỉ là 1 thuật toán đã có đáp án mà thôi.

Có 2 vấn đề chính:

1. Khi thiết kế hệ thống bạn cần phải biết rõ khi nào thì cần dùng giải thuật nào để tối ưu. Nếu ko chương trình của bạn viết ra sẽ chạy ì ạch =>trash.

2. Khi code 1 hệ thống lớn, bạn ko thể nào code hết từng thành phần nhỏ mà phải sử dụng những thư viện api có sẳn.
Như vậy vấn đề ở đây là bạn có biết những thành phần nào trong api có sẵn sử dụng algorithm nào hay ko. Ví dụ đơn giản như O(1), O(N), O(LogN) được sử dụng phổ biến trong api về collection, cơ sở dữ liệu. Nếu bạn ko nắm được List, LinkedList, Dictionary... implement các giải thuật này ntn thì server viết ra chất lượng tải ccu kém, cluster các loại tiềm ẩn
Đại khái là như vậy, mình chỉ nói sơ sơ ý chính thôi, ko có đầu nhập quá nhiều
Reply With Quote
  #13  
Old 11-12-2019, 15:41
dreamnight's Avatar
Senior Member
Join Date: 06-2008
Posts: 639
Re: Algorithms-Làm sao để giỏi thuật toán ?

Haizz mình đang giúp bạn chủ thớt hiểu vấn đề là bạn đó đang đi ko đúng hướng lắm. Bạn đang hỏi làm sao "giỏi" thuật toán nên mình đang tư vấn bạn đi 1 con đường tốt hơn là ghi nhớ những thứ O(n), O(1)...Đó là 1 cách tồi hoặc ít ra theo cá nhân mình. Bản chất algorithm là 1 cách giải cho 1 bài toán nhưng nó ko phải là the best. Còn bạn gbvn1 là vụ chém gió khi ko cần nắm rõ algorithm cũng ko phải đúng lắm. Cmt ở trên của bạn đã trả lời thay cho câu chém gió rồi đấy thôi, ko hiểu sâu làm sao bạn trả lời những vấn đề đó.
Reply With Quote
  #14  
Old 11-12-2019, 18:36
Member
Join Date: 08-2011
Posts: 32
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by dreamnight View Post
Haizz mình đang giúp bạn chủ thớt hiểu vấn đề là bạn đó đang đi ko đúng hướng lắm. Bạn đang hỏi làm sao "giỏi" thuật toán nên mình đang tư vấn bạn đi 1 con đường tốt hơn là ghi nhớ những thứ O(n), O(1)...Đó là 1 cách tồi hoặc ít ra theo cá nhân mình. Bản chất algorithm là 1 cách giải cho 1 bài toán nhưng nó ko phải là the best. Còn bạn gbvn1 là vụ chém gió khi ko cần nắm rõ algorithm cũng ko phải đúng lắm. Cmt ở trên của bạn đã trả lời thay cho câu chém gió rồi đấy thôi, ko hiểu sâu làm sao bạn trả lời những vấn đề đó.
À, vậy là do cmt đó của mình hơi ẩu nên nói ko rõ ràng, ý của mình chỉ là ko cần phải nhớ mây cái công thức có sẵn thôi
Reply With Quote
  #15  
Old 11-12-2019, 18:55
NNN v3.0's Avatar
Senior Member
Join Date: 05-2013
Posts: 271
Re: Algorithms-Làm sao để giỏi thuật toán ?

thì y như làm sao học giỏi toán hồi xưa thôi, là làm nhiều bài tập vào chứ sao
cơ mà 6 năm lập trình web rồi, mình vẫn chưa cần đụng nhiều tới thuật toán, toàn phải tiếp cận công nghệ, framework mới thôi
__________________
[CENTER][COLOR="Gray"]Có cái nick 2008 quý lớm nên cất hòm hok xài đêu[/COLOR][/CENTER]
Reply With Quote
  #16  
Old 11-12-2019, 21:43
fivelions's Avatar
Senior Member
Join Date: 04-2011
Posts: 628
Re: Algorithms-Làm sao để giỏi thuật toán ?

Thuật toán căn bản là để phát triển tư duy thôi, như toán đại số hình học ngày xưa, học thì nhiều nhưng áp dụng thì ít, rồi kiến thức cũng mai một hết, nhưng cái cốt lõi là tư duy và nền tảng vẫn còn đó.

Ví dụ, 3 năm làm game của mình rất ít khi đụng đến thuật toán gì cao siêu, nhưng đụng phải toán hình học như diện tích chu vi thể tích hình tròn hình trụ hình ...v..v, đôi lúc là tích phân, vector ...v...v.. Tuy ko nhớ công thức, nhưng nền tảng vẫn biết chu vi diện tích thể tích tích phân là cái gì dùng trong trường hợp nào, hình dung ra cái vector là gì, vận hành ntn, rồi cứ thế google search công thức mà làm ).

Cao hơn tí là mấy cái thuật toán tìm đường, BFS, Astar, tư duy tốt thì tuy chưa biết nhưng đọc hiểu hướng dẫn giải thích và làm đc là oke.

Cho nên cái vấn đề rèn thuật toán, cốt lõi ko phải là thuộc lòng, mà phải nhớ tất cả. Như mình 2 lần làm Astar mà vẫn quên, nhưng đọc lại code là nhớ, đó mới là cốt lõi, cốt lõi đó là tư duy )
__________________
[SIZE="1"][COLOR="Lime"]Life[/COLOR] is [COLOR="Red"]not fair[/COLOR] - get [COLOR="DarkOrchid"][COLOR="Cyan"]used[/COLOR][/COLOR] to it.
-Bill Gates-[/SIZE]
Reply With Quote
  #17  
Old 12-12-2019, 13:43
Senior Member
Join Date: 04-2016
Posts: 313
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by fivelions View Post
Thuật toán căn bản là để phát triển tư duy thôi, như toán đại số hình học ngày xưa, học thì nhiều nhưng áp dụng thì ít, rồi kiến thức cũng mai một hết, nhưng cái cốt lõi là tư duy và nền tảng vẫn còn đó.

Ví dụ, 3 năm làm game của mình rất ít khi đụng đến thuật toán gì cao siêu, nhưng đụng phải toán hình học như diện tích chu vi thể tích hình tròn hình trụ hình ...v..v, đôi lúc là tích phân, vector ...v...v.. Tuy ko nhớ công thức, nhưng nền tảng vẫn biết chu vi diện tích thể tích tích phân là cái gì dùng trong trường hợp nào, hình dung ra cái vector là gì, vận hành ntn, rồi cứ thế google search công thức mà làm ).

Cao hơn tí là mấy cái thuật toán tìm đường, BFS, Astar, tư duy tốt thì tuy chưa biết nhưng đọc hiểu hướng dẫn giải thích và làm đc là oke.

Cho nên cái vấn đề rèn thuật toán, cốt lõi ko phải là thuộc lòng, mà phải nhớ tất cả. Như mình 2 lần làm Astar mà vẫn quên, nhưng đọc lại code là nhớ, đó mới là cốt lõi, cốt lõi đó là tư duy )
Tại hồi đó mình tìm hiểu làm thuật toán cũng nhiều, ra trường xong không dùng đến quên, đọc lại thì làm ok nhưng mà lại không thuộc. Đang có tư tưởng nhảy sang việc khác dùng thuật toán nhiều hơn mà không biết lúc phỏng vấn nó hỏi bất kỳ thì sao nhớ được nhỉ
Reply With Quote
  #18  
Old 12-12-2019, 13:49
fivelions's Avatar
Senior Member
Join Date: 04-2011
Posts: 628
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by RaitoLight4492 View Post
Tại hồi đó mình tìm hiểu làm thuật toán cũng nhiều, ra trường xong không dùng đến quên, đọc lại thì làm ok nhưng mà lại không thuộc. Đang có tư tưởng nhảy sang việc khác dùng thuật toán nhiều hơn mà không biết lúc phỏng vấn nó hỏi bất kỳ thì sao nhớ được nhỉ
Àh nếu có ý định nhảy việc hay phỏng vấn thì ôn lại tí, như thi đại học vậy. Thi xong phỏng vấn xong thì quên cmnđ cho nhẹ đầu
__________________
[SIZE="1"][COLOR="Lime"]Life[/COLOR] is [COLOR="Red"]not fair[/COLOR] - get [COLOR="DarkOrchid"][COLOR="Cyan"]used[/COLOR][/COLOR] to it.
-Bill Gates-[/SIZE]
Reply With Quote
  #19  
Old 12-12-2019, 15:27
Senior Member
Join Date: 05-2010
Posts: 106
Re: Algorithms-Làm sao để giỏi thuật toán ?

Quote:
Originally Posted by toi5 View Post
Học và code nhiều thôi, lên mấy trang test thuật toán mà làm. Daily mỗi ngày làm 1 bài, làm xong qua mục discussion xem bọn nó up results rồi compare với mình, rồi xem best solution mà độ phức tạp ít nhất, rồi mày mò ngâm cứu. Thường quá trình này mất 1 tiếng nếu bạn giải nhanh, còn thấy khó quá thì để đó làm 2-3 ngày. Kiên trì giải từ thấp tới khó cho được thì thôi chứ ko xem solutions

Vậy thôi
Mai phen có thể liệt kê 1 số trang VN và nc ngoài không
Reply With Quote
  #20  
Old 12-12-2019, 15:35
Member
Join Date: 11-2013
Posts: 36
Re: Algorithms-Làm sao để giỏi thuật toán ?

Theo kinh nghiệm của em thì: điều tốt nhất thuật toán mang lại là rèn luyện kỹ năng tư duy của mình thôi thím ợ.
Các thuật toán kinh điển thường có nhiều ứng dụng và ý nghĩa. Ví dụ quicksort theo tư tưởng divide and conquer từng được bình chọn là thuật toán hay nhất năm n hay thế kỷ n nào đấy em không nhớ rõ
Thím đừng quá áp lực là phải nhớ rõ mồn một nó mà đi sâu vào tìm hiểu tại sao cái thím tác giả lại nghĩ ra nó ấy ợ đặt vào bối cảnh lịch sử và tạo ra để solve vấn đề gì thì dễ nhớ hơn. Chứ học kiểu cách code của nó thì dễ quên lắm nè
Chúc thím học tập thú vị ạ!
Tip nhẹ: trước khi đi ngủ thím úp sách lền đầu thì kiến thức nó tự vào, ko phải học nhé
__________________
[B][CENTER][COLOR="Red"]"The most beautiful experience we can have is the mysterious."[/COLOR][/CENTER][/B]
Reply With Quote
Reply

« Previous Thread | Next Thread »

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT +7. The time now is 19:01.