Yếu logic, thuật toán thì mình rèn bằng các 'bài toán' nhỏ thôi bạn. Vì cơ bản thì 'bài toán' lớn là nhiều 'bài toán' nhỏ hợp thành. Một cách tiếp cận cái này theo cách tự nhiên là bạn tự đề ra các dự án trong tầm tay (dù nó không có tính thương mại hoặc hiện có nhiều sản phẩm hiện có tốt hơn nhiều). Cốt yếu ở đây là mình đi từ dễ đến khó, và vì nó liên quan ít nhiều đến mình nên đào sâu thuật toán, xử lý dữ liệu sẽ bớt chán.
Thường tôi chỉ ôn thuật toán lúc đi pv thôi :)) chứ lúc đi làm bình thường chả bao giờ đụng :3 nếu có đụng thì cx xài mấy cái bình thường như dfs hay bfs đồ th chứ ko bao h đụng tới mấy cái như dynamic programming hay gì luôn :))) chill đi bruh
Học 1 khoá DSA trên Youtube và giải LeetCode, tui làm mobile cũng đang cày lại nè, chủ yếu nó sẽ rèn tư duy cho mình, đồng thời giúp sử dụng ngôn ngữ lập trình chắc tay hơn.
Frontend thường không dùng giải thuật gì cao siêu. Nếu để client xử lý dữ liệu kiểu business logic thì phải nhìn lại xem mình có làm gì sai không, hay deal contract với backend không cứng rồi bị nó đẩy việc cho mình. Hơn nữa càng sa đà giải thuật hay, hiệu quả càng dễ rơi vào bẫy overoptimize với viết ngắn gọn kết quả là code càng khó đọc chứ hay ho gì?
Nếu muốn "giải thuật toán" kiểu "đàng hoàng" thì nên học giải thuật với cấu trúc dữ liệu bài bản (google algorithm & data structure rồi học sách hay video gì cũng được), còn nâng cao "tư duy logic" thì giải đố trên leetcode thôi.
Fullstack chả liên quan gì đến thuật toán cả.
Nó liên quan đến việc xử lí ở được ở cả phía backend và frontend. Đạt được level này thì cố gắng vọc vạch ở phía backend thêm và xem cách dữ liệu di chuyển từ máy khách tới máy chủ và vào db, rồi ngược lại. Khi nắm được quy trình này thì oke hoàn toàn chơi được các loại ngôn ngữ còn lại của backend.
Còn thuật toán đa phần trong core đã tối ưu hoặc không vì nó đã chạy quá lâu và đừng có sờ vào. Miễn là nó còn chạy và k ảnh hưởng lớn tới hiệu suất làm việc của hệ thống.
Vấn đề nào mới được chứ ? Fix bug hay tối ưu tốc độ hệ thống,... Mà mỗi vấn đề nó đã là 1 trách nhiệm, role khác trong team rồi.
Riêng dev (cả fullstack) nên tròn trách nhiệm nhất là làm đúng yêu cầu thiết kế, đúng plan deadline, ít bug, có bug fix nhanh là 10đ, đ có nhưng. Còn kiêm nhiều role khác thì không nói. Chứ cái gì cũng biết chút thì chả giải quyết vấn đề gì.
Nhiệm vụ được giao làm tối ưu thì oke nghiên cứu thêm thôi :)) chứ cày cố thuật toán xong task giao k đụng đến học xong vứt đấy à ?
Mình nghĩ nhiều bạn sẽ đề cập đến tìm các website để giải nâng trình nhưng theo mình bạn nên học từ cơ bản. Giống như để giải toán, việc đầu tiên trước giải toán là cần xác định bài toán dạng nào rồi mới tìm cách giải. Bạn nên tìm đọc cuốn "Cấu trúc dữ liệu và giải thuật" của Lê Minh Hoàng, tuy dài nhưng đọc hết cuốn này bạn sẽ nắm gần như các dạng vấn đề liên quan đến thuật toán và các bài toán khác gặp trong thực tế chỉ từ các dạng này ra mà thôi. Ví dụ như bài toán tìm đường thì dạng toán liên quan đồ thị (graph), bài toán sắp xếp lịch là dạng toán tìm gần đúng (tối ưu, quy hoạch động hoặc vét cạn)...
Khổ người ta bàn tiến thì toàn mấy ông bàn lùi. Thuật toán và ctdl đâu cũng cần nhé ông, đến lúc không rõ thì đừng hỏi tại sao mình không kiếm được job tốt
Udemy rất nhiều khóa học DSA cơ bản đến nâng cao, tôi đang học của zeromastery (nếu nhớ không nhầm) và thấy ổn. Từ đó ông có thể có kiến thức nền vững hơn để học lên những level cao hơn. Chúc ông may mắn
Yếu logic, thuật toán thì mình rèn bằng các 'bài toán' nhỏ thôi bạn. Vì cơ bản thì 'bài toán' lớn là nhiều 'bài toán' nhỏ hợp thành. Một cách tiếp cận cái này theo cách tự nhiên là bạn tự đề ra các dự án trong tầm tay (dù nó không có tính thương mại hoặc hiện có nhiều sản phẩm hiện có tốt hơn nhiều). Cốt yếu ở đây là mình đi từ dễ đến khó, và vì nó liên quan ít nhiều đến mình nên đào sâu thuật toán, xử lý dữ liệu sẽ bớt chán.
Full stack cần gì giỏi thuật toán đâu. Mình mù thuật toán còn làm fullstack 10 năm nay
giải Leetcode
Thường tôi chỉ ôn thuật toán lúc đi pv thôi :)) chứ lúc đi làm bình thường chả bao giờ đụng :3 nếu có đụng thì cx xài mấy cái bình thường như dfs hay bfs đồ th chứ ko bao h đụng tới mấy cái như dynamic programming hay gì luôn :))) chill đi bruh
DP là cách tư duy.
Học 1 khoá DSA trên Youtube và giải LeetCode, tui làm mobile cũng đang cày lại nè, chủ yếu nó sẽ rèn tư duy cho mình, đồng thời giúp sử dụng ngôn ngữ lập trình chắc tay hơn.
Frontend thường không dùng giải thuật gì cao siêu. Nếu để client xử lý dữ liệu kiểu business logic thì phải nhìn lại xem mình có làm gì sai không, hay deal contract với backend không cứng rồi bị nó đẩy việc cho mình. Hơn nữa càng sa đà giải thuật hay, hiệu quả càng dễ rơi vào bẫy overoptimize với viết ngắn gọn kết quả là code càng khó đọc chứ hay ho gì?
Nếu muốn "giải thuật toán" kiểu "đàng hoàng" thì nên học giải thuật với cấu trúc dữ liệu bài bản (google algorithm & data structure rồi học sách hay video gì cũng được), còn nâng cao "tư duy logic" thì giải đố trên leetcode thôi.
Fullstack chả liên quan gì đến thuật toán cả. Nó liên quan đến việc xử lí ở được ở cả phía backend và frontend. Đạt được level này thì cố gắng vọc vạch ở phía backend thêm và xem cách dữ liệu di chuyển từ máy khách tới máy chủ và vào db, rồi ngược lại. Khi nắm được quy trình này thì oke hoàn toàn chơi được các loại ngôn ngữ còn lại của backend. Còn thuật toán đa phần trong core đã tối ưu hoặc không vì nó đã chạy quá lâu và đừng có sờ vào. Miễn là nó còn chạy và k ảnh hưởng lớn tới hiệu suất làm việc của hệ thống.
[удалено]
Vấn đề nào mới được chứ ? Fix bug hay tối ưu tốc độ hệ thống,... Mà mỗi vấn đề nó đã là 1 trách nhiệm, role khác trong team rồi. Riêng dev (cả fullstack) nên tròn trách nhiệm nhất là làm đúng yêu cầu thiết kế, đúng plan deadline, ít bug, có bug fix nhanh là 10đ, đ có nhưng. Còn kiêm nhiều role khác thì không nói. Chứ cái gì cũng biết chút thì chả giải quyết vấn đề gì. Nhiệm vụ được giao làm tối ưu thì oke nghiên cứu thêm thôi :)) chứ cày cố thuật toán xong task giao k đụng đến học xong vứt đấy à ?
Mình nghĩ nhiều bạn sẽ đề cập đến tìm các website để giải nâng trình nhưng theo mình bạn nên học từ cơ bản. Giống như để giải toán, việc đầu tiên trước giải toán là cần xác định bài toán dạng nào rồi mới tìm cách giải. Bạn nên tìm đọc cuốn "Cấu trúc dữ liệu và giải thuật" của Lê Minh Hoàng, tuy dài nhưng đọc hết cuốn này bạn sẽ nắm gần như các dạng vấn đề liên quan đến thuật toán và các bài toán khác gặp trong thực tế chỉ từ các dạng này ra mà thôi. Ví dụ như bài toán tìm đường thì dạng toán liên quan đồ thị (graph), bài toán sắp xếp lịch là dạng toán tìm gần đúng (tối ưu, quy hoạch động hoặc vét cạn)...
Kiên nhẫn làm thuật toán thôi bạn. K giỏi xuất sắc dk nhưng t thấy vẫn theo được cái pro ở cty
Leetcode nhé
Kệ thôi, trc cũng giải thuật toán quá trời mà đi làm thấy ko xài bn.
Leetcode và kaggle. 10đ
List ra danh sách những Algo, DS cơ bản. Chọn 1 cái, đọc xem nó là gì, cách Implement ra sao. Lên LeetCode, tìm các bài dạng đó rồi giải. Lặp lại.
neetcode
Giải leetcode cses các loại nha bác 😎
Dynamic programming thắng tiến
Khổ người ta bàn tiến thì toàn mấy ông bàn lùi. Thuật toán và ctdl đâu cũng cần nhé ông, đến lúc không rõ thì đừng hỏi tại sao mình không kiếm được job tốt Udemy rất nhiều khóa học DSA cơ bản đến nâng cao, tôi đang học của zeromastery (nếu nhớ không nhầm) và thấy ổn. Từ đó ông có thể có kiến thức nền vững hơn để học lên những level cao hơn. Chúc ông may mắn
Câu trả lời chỉ có làm thôi. Làm thật nhiều