![]() |
|
|
Thread Tools |
|
#11
|
|||
|
|||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
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. |
| dreamnight |
| View Public Profile |
| Find all posts by dreamnight |
|
#12
|
||
|
||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
Quote:
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 |
|
#13
|
|||
|
|||
|
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 đề đó.
|
| dreamnight |
| View Public Profile |
| Find all posts by dreamnight |
|
#14
|
||
|
||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
Quote:
|
|
#15
|
|||
|
|||
|
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] |
|
#16
|
|||
|
|||
|
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] |
|
#17
|
||
|
||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
Quote:
|
| RaitoLight4492 |
| View Public Profile |
| Find all posts by RaitoLight4492 |
|
#18
|
|||
|
|||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
Quote:
__________________
[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] |
|
#19
|
||
|
||
|
Re: Algorithms-Làm sao để giỏi thuật toán ?
Quote:
|
|
#20
|
||
|
||
|
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] |
![]() |
|
|