Monday, October 31, 2022

Kỹ thuật Feynman – 4 bước đơn giản giúp ghi nhớ mọi kiến thức

 


“Phương pháp học tập” là chủ đề được nhiều độc giả quan tâm, bởi đây là “chìa khóa vàng” giúp người học tiếp thu được kiến thức và đạt được kết quả tốt. Trong bài viết này, tác giả sẽ giới thiệu tới  người học một phương pháp học đã ra đời khá lâu, tuy nhiên chưa thực sự phổ biến với học sinh, sinh viên Việt Nam đó là Kỹ thuật Feynman.

Key takeaways:

1. Bộ não có cơ chế lọc và loại bỏ những thông tin mới tiếp nhận, không cần thiết. Đồng thời con người hiện nay có xu hướng ỷ lại vào Internet, khiến cho khả năng ghi nhớ và hiểu sâu kiến thức dần mất đi.

2. “Kĩ thuật Feynman” là phương pháp học bao gồm 4 bước được phát hiện bởi Richard Phillips Feynman (1918-1988), được áp dụng dành cho việc học lý thuyết hay ghi nhớ,…

3. Một số lợi ích của phương pháp học được nhắc tới là:

  • Giúp hiểu sâu hơn những kiến thức, nội dung đang học

  • Cải thiện kỹ năng trình bày vấn đề và tư duy phản biện (Critical Thinking)

  • Áp dụng kiến thực vào thực tế một cách dễ dàng

  • Đưa ra quyết định sáng suốt, thông minh hơn

4. Quy trình học của Feynman bao gồm 4 bước:

  • Đọc, nghiên cứu ban đầu

  • Viết và giải thích lại

  • Xác định những lỗ hổng kiến thức

  • Tổ chức lại và đơn giản hóa các thông tin

5. Ba phương pháp được gợi ý áp dụng song song với kỹ thuật Feynman là:

6. Sử dụng “Kĩ thuật Feynman” trong việc học ngữ pháp, từ vựng tiếng Anh bằng việc giải thích các khái niệm, định nghĩa một cách đơn giản, dễ hiểu nhất. Việc này giúp người học hiểu sâu và sử dụng linh hoạt ngôn ngữ đó hơn.

Saturday, October 29, 2022

Giới thiệu các chứng chỉ của AWS

 Các chứng chỉ của AWS bao gồm 4 phần chính như Architecting, Developing, Operations và Specialty:



Monday, March 23, 2020

Hướng dẫn dùng Lambda AWS bằng Serverless Framework

1. Lambda function là gì?

AWS Lambda cho phép bạn chạy mã mà không cần cung cấp hay quản lý máy chủ. Bạn chỉ phải trả tiền cho thời gian xử lý thông tin đã sử dụng.

Với Lambda, bạn có thể chạy mã cho gần như toàn bộ các loại ứng dụng hay dịch vụ backend – tất cả đều không cần quản trị. Chỉ cần tải đoạn mã của bạn lên và Lambda sẽ lo hết những gì cần làm để chạy và mở rộng mã của bạn với mức độ có sẵn cao. Bạn có thể thiết lập mã của bạn tự động kích hoạt từ các dịch vụ AWS khác, hoặc gọi trực tiếp từ bất cứ ứng dụng web hay di động nào.

Chi phí chạy trên lambda function rẻ so với chi phí bạn mua 1 con server, duy trì và quản trị nó ( ví dụ như bạn phải xử lý bất đồng bộ những request, khi lượng user bạn tăng đột biến bạn phải có cơ chế auto-scale, chứ không thì server bị sẽ bị treo, khi server bị treo bạn phải tự động khởi động lại sẽ mất thời gian,... ).

Thursday, March 19, 2020

Hướng dẫn deploy 1 static web trên GitHub domain

Hiện tại GitHub đã hỗ trợ 1 tool gh-pages dùng để bạn publish 1 static web lên trên GitHub. Cái này rất tiện nếu bạn muốn làm những bản demo cho khách hàng xem và không muốn mua 1 con server riêng để deploy và mất phí duy trì. Bạn có thể xài account free của GitHub để làm việc này luôn.

Để demo tool này cách xài như thế nào mình xin dùng 1 free template 'paper-dashboard-react' bạn có thể dùng bất kỳ free template nào có sẵn trên mạng về xài và sửa chúng lại.

Bạn mở terminal lên và di chuyển đến folder chứa file 'package.json', cài tool gh-pages theo chế độ development như sau:
 npm install gh-pages --save-dev  

Sau đó bạn mở file 'package.json' lên thêm giá trị 'homepage' và 2 đoạn script 'predeploy' và 'deploy' bằng gh-pages như hình sau:

Thursday, April 19, 2018

Làm thế nào để kiểm tra Auto Layout trên nhiều loại thiết bị iOS?

Chào các bạn, mấy bài trước tôi có hướng dẫn các bạn làm auto layout trên iOS, nếu bạn nào chưa đọc thì có thể xem lại tại đây. Vậy sau khi làm auto layout xong các bạn có tự tin rằng nó đã thực sự chạy tốt và không có bug xảy ra?

Các bạn có thể viết unit test cho phần logic rất dễ dàng nếu các bạn chia những code xử lý logic thành từng hàm có input và output rõ ràng, công việc này rất là tốt. Nếu sau này các bạn viết thêm những đoạn code khác hoặc fix bug khác làm logic đó sai, bạn có thể chạy unit test để phát hiện ra lỗi ngay. Một khi bạn làm unit test tốt và độ bao phủ cao thì số bug chắc chắn sẽ ít và thời gian bạn test bằng tay cũng giảm đi nhiều, và bạn sẽ rất tự tin khi nói với khách hàng của bạn rằng: code của mình sẽ không sinh những bug vặt.

Nhưng mặt hạn chế trước giờ  mình gặp phải là mình chỉ có thể viết unit test cho phần logic, còn phần layout thì mặc định công cụ XCode chưa hỗ trợ nhiều, thành ra số bug mình khó thấy và không test kỹ được là phần layout trên những loại thiết bị khác nhau. Những bug về layout tuy nhỏ nhưng cũng rất là khó chịu, đa số các công ty lớn cũng đau đầu vì chuyện này, thành ra công ty Linkedin đã hỗ trợ viết ra 1 thư viện giúp cho các bạn phát hiện ra những bug về layout 1 cách dễ dàng và nhanh chóng đó chính là thư viện LayoutTest-iOS. Tôi đáng giá cao thư viện này thành ra hôm nay tôi sẽ giới thiệu cho các bạn cách xài cũng như có cái nhìn tổng quát về như viện này.

Saturday, November 26, 2016

So sánh những framework hỗ trợ viết ứng dụng trên SmartPhone

Khi lập trình trên SmartPhone bạn không nhất thiết phải học những ngôn ngữ đặc thù trên từng loại hệ điều hành thì mới có thể lập trình được. Ví dụ như muốn lập trình trên iOS thì phải học ngôn ngữ Objective-C hay Swift, muốn lập trình được trên Android thì học ngôn ngữ Java, muốn lập trình trên WinPhone thì học ngôn ngữ C#.


Hiện nay có rất nhiều những framework giúp đỡ cho các bạn rất nhiều khi các bạn muốn viết trên nhiều nền tảng smartphone bằng ngôn ngữ mà bạn yêu thích. Theo mình thấy thì hiện nay có 3 loại như: Native App, Hybrid Mobile App, Native Cross-Platform App.

[Behavioral Pattern] Observer pattern trong Objective-C

Dạo này mình bận công chuyện nên không có thời gian viết blog. Hôm nay rảnh mình sẽ viết tiếp bài  Observer Pattern trong loại bài Design Pattern mà mình đã viết trước đây. Rất mong sự ủng hộ của các bạn để mình có động lực viết loại bài về chủ đề Design Pattern.

Trong những loại Design Pattern mà các bạn làm trên iOS chắc chắn đây là loại pattern bạn dùng nhiều nhất. Nó rất hữu ích cho việc xử lý bất đồng bộ khi bạn gọi những request lên server, bạn không cần phải chờ mỗi khi gói tin được gởi từ server về. Và pattern này cũng là pattern chủ đạo trong khái niệm lập trình cấu trúc MVC và Reactive Programming.

Khái niệm: Là loại pattern chỉ sự phụ thuộc và hành vi giữa đối tượng cha và đối tượng con. Nếu đối tượng cha đăng ký observer pattern này với đối tượng con, thì khi đối tượng con xử lý những hành vi nào đó sẽ thông báo cho đối tượng cha ứng với id của observer đó, biết để xử lý tiếp công việc đó.

Cấu trúc lớp:
Sơ đồ UML Class Diagram của Observer Pattern

Saturday, September 17, 2016

Phương Pháp Động Não giúp ích tìm kiếm những ý tưởng và giải pháp hay


Thật tình cờ mình đọc được cuốn sách "Bạn thật sự có tài" bản dịch từ cuốn "inGenius" của tác giả Tina Seelig, trong thư viện sách của công ty. Trước giờ mình rất ít khi đọc sách nhưng mình đọc cuốn sách này mình thấy bà này viết rất hay và cô đọng. Và sau đây là lời giới thiệu của cuốn sách này:
"Khả năng sáng tạo không phải một loại tài năng thiên bẩm chỉ dành cho một số người đặc biệt, nó là một kỹ năng bất cứ ai cũng có thể học hỏi. Dựa trên nền tảng đó, tác giả - một chuyên gia huấn luyện và cũng là một giáo sư của Đại học Stanford sẽ giúp độc giả hiểu đúng hơn về sự sáng tạo. Cùng với việc làm rõ bản chất của sáng tạo, bà còn cung cấp cho độc giả nhiều ví dụ cực kỳ thú vị về những ý tưởng đột phát ở khắp mọi nơi, trong đó có những công ty nổi tiếng như Google, Pixar, Facebook, IDEO… Ngoài ra, dựa trên rất nhiều bài tập và tình huống thực tế thú vị trong quá trình bà làm việc ở Stanford, Tina Seelig đã giới thiệu với chúng ta trong cuốn sách này nhiều công cụ và phương pháp để nâng cao khả năng sáng tạo."

Trong cuốn sách này, tác giả nói rất nhiều phương pháp và ví dụ để nâng cao khả năng sáng tạo của bản thân, của nhóm, tổ chức, cộng đồng nơi bạn đang tham gia. Các bạn có thể đọc chi tiết hơn khi mua và đọc những nội dung trong cuốn sách đó. Ở đây mình xin ghi chú lại mô hình Thiên hướng cách tânPhương pháp động não.

Saturday, August 27, 2016

Hướng dẫn viết ứng dụng ChatBot trên Facebook Messenger bằng node.js (Phần 2)

Trong phần 1 mình có giới thiệu sơ các bạn các bước để viết ứng dụng ChatBot trên Cloud9. Cloud 9 rất tiện khi bạn viết code trên đó giữa nhiều người có thể cùng sửa trên cùng 1 file mà không bị vấn đề gì, nhưng hiện tại mình sử dụng tài khoản free nên gặp vấn đề là khi chạy 1 thời gian thì cloud đó bị sleep và ứng dụng mình đang start bị treo và xài không được nữa, vì thế mỗi lần như vậy phải start lại. Do đó cloud9 chỉ giúp các bạn khi đang phát triển ứng và chạy thử code để test trong thời gian ngắn thôi.

Hôm nay mình hướng dẫn các bạn tự start server ở localhost và dùng ngrok để public server localhost ra bên ngoài.

ngrok là gì?

ngrok là một reserse proxy nó cho phép tạo một secure tunnel từ một public endpoint đến web service đang chạy ở local. Cơ chế của nó rất đơn giản khi bạn start ngrok lên sẽ cung cấp cho bạn 2 url: http và https. Khi bạn truy suất theo những url đó thì nó sẽ chuyển đến webserver mà bạn đang start ở local theo đúng port mà bạn đã start web server và ngrok. Hình minh họa ở bên dưới:

Monday, August 8, 2016

Hướng dẫn viết ứng dụng ChatBot trên Facebook Messenger bằng node.js (Phần 1)

Hiện tại Facebook đang và đã tách riêng ứng dụng Messenger trên Facebook thành 1 platform riêng biệt, để viết thêm những tính năng mới cho Messenger này được phong phú hơn nữa. 1 chức năng mà Facebook cũng như các công ty làm về ứng dụng Chat đang quan tâm và làm đó là chức năng Chat Bot. Chat Bot là một chức năng có thể tự động trả lời lại cho người dùng khi bạn chat với con Bot đó, nói tóm lại nó là một máy tự động trả lời lại.

Mình dự định sẽ có 2 bài viết về chủ đề này. Phần 1 là mình hướng dẫn căn bản các bạn các bước để thiết lập kết nối với Facebook Messenger bằng Node.js.  Phần 2 là mình sẽ hướng dẫn các bạn sử dụng công cụ AI mà Facebook đang phát triển để biến con Bot có khả năng phân tích từ bạn nói với con Bot và trả lời lại cho bạn.