Chuyển đến nội dung chính

Tổng quan về Machine Learning

  TỔNG QUAN VỀ MACHINE LEARNING Dưới đây là note của mình về tóm tắt tổng quan về Machine Learning, về một số các mô hình truyền thống. Mọi người có thể tham khảo theo bài viết dưới đây! https://www.facebook.com/share/p/1HsBe8P9Xy/ Người viết: Lê Công Diễn Mang đi nhớ ghi nguồn

Làm thế nào để nâng cao kỹ năng giải quyết vấn đề

Làm thế nào để nâng cao kỹ năng giải quyết vấn đề

Kỹ năng giải quyết vấn đề là một kỹ năng rất quan trọng, giúp cho bạn xử lý các vấn đề một cách tốt hơn, hiệu quả hơn. Vậy làm thế nào để rèn luyện kỹ năng này. Các bước mình trình bày dưới đây sẽ phần nào đó giúp các bạn rèn luyện tốt hơn.

1.  Đọc hiểu vấn đề một cách rõ ràng.
Nhiều người thường hay vội vàng khi giải quyết một vấn đề. Họ không tìm hiểu kỹ càng vấn đề đã vội đặt tay vào viết vài dòng code, và rồi, họ dừng lại và cảm thấy bế tắc. Khoan nào, đừng quá vội vàng thế chứ. Nếu bạn không hiểu vấn đề, thì làm sao bạn có thể giải quyết được vấn đề chứ, phải không.
Bạn hãy bình tĩnh, dành thời gian đọc vấn đề thật kỹ, đọc ít nhất 5, 6 lần, trong khi đọc nếu có một câu, một từ thắc mắc, liền hỏi ngay. Giả dụ ta có một vấn đề cần giải quyết, chẳng hạn như đảo ngược một xâu ký tự (tất nhiên không dùng hàm có sẵn rồi). Giả dụ bạn thắc mắc: Ủa, đảo ngược một xâu là gì vậy nhỉ?, thì bạn liền tìm cách giải quyết thắc mắc của mình liền: Hỏi google, khi nào bí quá thì hỏi bạn bè, thầy cô.
Tóm lại, bạn phải hiểu được rằng bạn đang cố gắng giải quyết vấn đề gì, thì lúc đó bạn mới đi tìm phương án cho vấn đề của bạn được.
2.  Giải quyết vấn đề với một mức độ dễ hơn
Bạn đã từng nghe rằng: Một bài toán lớn chia ra làm nhiều bài toán nhỏ để giải quyết
Đừng bắt tay vào giải quyết một vấn đề lớn, lúc đó bạn sẽ khóc thét đấy. Bạn hãy biến chúng thành một bài toán với mức độ dễ hơn. Như ví dụ hồi nãy, ta có thể đơn giản thành đảo ngược xâu gồm 2 ký tự chẳng hạn. Vẫn còn quá khó ư? Vậy đảo ngược một xâu gồm 1 ký tự xem. Với một ký tự thì chúng ta không bàn gì nhé. Còn với 2 ký tự, bạn thấy rõ ràng đó là phép tráo đổi vị trí cho nhau. Đơn giản vậy thôi phải không nào.
3.  Viết từng bước thủ công
Sau khi giải quyết được rồi, bạn viết các bước ra giấy: Bước 1, bước 2, bước 3,…. Có thể không cần giấy cũng được, nhưng bạn phải xác định rõ từng bước từng bước như thế, và rồi đó chính là thuật toán mà bạn tạo ra.
4.  Giải quyết vấn đề tăng mức độ lên
Sau khi giải quyết ổn thỏa rồi, bạn tăng độ khó lên một chút. Uhm vậy nếu ta tăng kích thước lên x=3 thì sao nhỉ. Lúc này mình đoán là bạn sẽ chạy từ đầu đến giữa, đảo vị trí cái đầu tiên cho cái cuối cùng, và giữ phần tử ở giữa lại. Well, chúng ta giải quyết được rồi, nhưng giải quyết bằng cách thủ công nhé. Xin nhấn mạnh là bằng cách thủ công, thủ công, thủ công.
5.  Chuyển các bước bạn ghi sang code
Okay, giờ thì chuyển các bước của bạn thành các dòng code nào. Nếu các bước của bạn rõ ràng, thì việc chuyển các dòng code cũng không có gì là khó khăn cả. Lưu ý khi viết code là bạn nên viết tổng quát về một cái khung trước (viết dòng lệnh nhập, xử lí, xuất), rồi sau đó bắt đầu viết thêm vào phần xử lý. Giả dụ trong phần xử lý, bài toán của bạn chia thành nhiều bài toán nhỏ, thì bạn viết một cái khung cho bài toán lớn đó, rồi bắt đầu viết chi tiết cho các bài toán nhỏ.
6.  Chạy chương trình, cố gắng mở rộng trường hợp ra và giải quyết chúng
Bạn chạy chương trình và thấy rằng có một số trường hợp chạy không đúng. Hãy cố gắng mở rộng dần, khái quát hóa code của bạn để xử lý được tất cả trường hợp, và cuối cùng bạn đã có một bài code hoàn chỉnh.

Lời kết: Đối với bản thân mình, đây là các cách để giải quyết bất kỳ một vấn đề nào. Tất nhiên bạn sẽ thấy khó trong việc đọc hiểu vấn đề, mở rộng vấn đề,… Tuy nhiên theo thời gian, rèn luyện càng nhiều thì những kỹ năng nhỏ này sẽ dần được cải thiện hơn! Vì thế tiêu đề bài viết mình là “Làm thế nào để nâng cao kỹ năng giải quyết vấn đề”, chứ không phải là “Làm thế nào để giải quyết vấn đề”.
Nội dung bài viết có tham khảo từ John Sonmez kết hợp với kiến thức mình có.

Người viết: Lê Công Diễn
Mang đi nhớ ghi nguồn

Nhận xét

Bài đăng phổ biến từ blog này

TÂN SINH VIÊN NÊN LỰA CHỌN LAPTOP NHƯ THẾ NÀO? (CỰC CHI TIẾT)

  TÂN SINH VIÊN NÊN LỰA CHỌN LAPTOP NHƯ THẾ NÀO (CỰC CHI TIẾT)? Mùa tựu trường cũng đã đến gần, và đây cũng là lúc các bạn sinh viên nhập học chuẩn bị sắm sửa cho mình một chiếc laptop cá nhân, phục vụ cho quãng thời gian học đại học của bạn. Tuy nhiên, vì là tân sinh viên nên bạn chưa hề có bất kỳ kinh nghiệm gì trong việc lựa chọn chiếc laptop phù hợp. Bản thân mình không phải là một tay chơi laptop, tuy nhiên mình có đủ kiến thức cơ bản để tìm kiếm và lựa chọn chiếc laptop phù hợp với bản thân mình. Hy vọng bài viết này sẽ phần nào giúp bạn, có thể là một tân sinh viên, hoặc có thể là một ai đó bất kỳ, tìm ra cho mình một chiếc laptop ưng ý nhất. Trước khi đi thẳng vào việc lựa chọn laptop, mình sẽ đưa ra rõ từ bối cảnh bản thân cho đến thông tin về thị trường laptop. Từ bối cảnh này bạn sẽ có cơ sở lựa chọn và đưa ra quyết định đúng đắn, phù hợp với bản thân hơn. Tiểu sử mua laptop của bản thân mình (tâm lý sinh viên khi mới mua) Vào khoảng thời gian này tầm 7 năm về trước (ngh...

Tổng quan về Machine Learning

  TỔNG QUAN VỀ MACHINE LEARNING Dưới đây là note của mình về tóm tắt tổng quan về Machine Learning, về một số các mô hình truyền thống. Mọi người có thể tham khảo theo bài viết dưới đây! https://www.facebook.com/share/p/1HsBe8P9Xy/ Người viết: Lê Công Diễn Mang đi nhớ ghi nguồn

Tìm hiểu Linear Regression [Machine Learning cho người ngố]

  Machine Learning cho người ngố Phần 1: Linear Regression Mình đang dự định làm một series về Machine Learning. Không hẳn là sẽ có nhiều thời gian làm về cái này, nhưng sự hứng thú của mình về nó sẽ là động lực lớn để mình cố gắng thêm. Bạn có thấy tiêu đề bài viết của mình có gì khác lạ không? Cho người ngố? Cụm từ tiếng Anh của nó là “for dummies”. Bạn sẽ phát hiện ra rằng cụm từ này xuất hiện nhiều trong các tựa đề cuốn sách “Design Pattern for Dummies”, “ English Grammar for Dummies”,… cụm từ này có nghĩa là ngay cả khi bạn ngu ngốc thì vẫn có thể đọc được. Và đó cũng chính là mục tiêu của mình khi viết bài blog, làm sao để mọi người có thể đọc được. Các bài viết trên mạng đều sử dụng khá nhiều thuật ngữ và được viết một cách bài bản, vì họ là người chuyên đi nghiên cứu. Còn mình khi viết bài sẽ cố gắng đứng trên góc độ của các bạn, và giải thích rõ những thuật ngữ, cũng như dùng lời văn gần gũi nhất. Nào cùng bắt đầu nhé! Phần đầu tiên chúng ta sẽ tìm hiểu về Linear...