01/10/2018, 00:38
Hiểu tư tưởng nhưng khó code
Mình đã và đang dạy, hướng dẫn nhiều bạn học và thấy một tình trạng phổ biến như tiêu đề, đó là các bạn hiểu và rất hiểu về tư tưởng làm, về cách làm một bài toán nào đó nhưng lại rất khó hoặc thậm chí không thể biết code như thế nào. Khi đọc code của người khác làm thì hiểu, hỏi đâu cũng giải thích được, nhưng code lại của mình thì lại khó khăn.
Vậy mọi người cho ý kiến và kinh nghiệm làm sao để giúp các bạn như vậy có thể tiếp cận lập trình một cách hiệu quả hơn?
Bài liên quan
em nghĩ những bạn như thế sẽ là chưa nắm kỹ đc lý thuyết cách dùng của từng câu lệnh.
chắc là cần làm tay hoặc ghi xuống giấy.
Đó là bạn đang bị não bạn đánh lừa bạn.
Mình có tham gia khóa Learning how to learn có nói về vấn đề này.
Khi đọc solution của một bài toán, thường ta thấy ôi giời ơi sao mà dễ hiểu thế này. Nhưng tới khi bắt tay vào làm thì quên tới quên lui vì ta chưa thực sự hiểu rõ được cốt lõi của bài toán. Vậy nên trong course trên ngta có khuyên, khi đọc thấy hiểu, thì hãy nên làm thử và không nhìn solution (chỉ dựa vào những ý đó) chứ đừng thấy hiểu rồi mà không thèm làm. Và nên rèn luyện ngày qua ngày với nhiều dạng bài tương tự để nhớ lâu hơn.
KW: illusions of competence
Đơn giản là chưa có sự kết nối giữa bộ não tới tay, vì gõ code là qua tay. Khi nghe, khi nhìn, thì chỉ tạo ra được khả năng tiếp nhận thông tin và không hề tạo ra sự tương tác. Lúc này dữ liệu vào trong đầu theo chiều đi vào nhưng ko có chiều ra. Chính vì thế là nhiều người nghe thì được, chứ tay sờ gõ code thì chả biết làm gì.
Để tạo ra sự tương tác trong tốt thì cần phải có sự tập luyện liên tục trong việc vừa nghe vừa thực hiện gõ code cùng một lúc. Thực hiện việc này cần một vài yếu tố chủ quan:
Thời gian đầu với các bạn chưa có ý thức này (thường là các bạn gõ code quá ít, hoặc ko thực hiện code đều đặn) sẽ cực kì khó khăn. Để tháo gỡ khó khăn này, giải quyết bằng cách:
Thực hiện đều đặn mỗi ngày ít nhất 2 tiếng tập trung cao độ. Sau 30 ngày chắc chắn là sẽ có cải thiện về khả năng lập trình, tư duy từ ý tưởng sang mã nguồn.
Vài lời khuyên nhỏ:
các bạn ấy chưa hình thành được tư duy lập trình.
vấn đề này hơi khó và có sự trừu tượng.
bạn làm sao cho bộ não của các bạn ấy như một máy tính.
tức là cách hoạt động máy tính như thế nào thì bộ nào của các bạn ấy phải suy nghĩ giống như vậy.
để làm được điều này cho các bạn ấy làm những bài toàn đơn giản bằng cách viết ra giấy và debug bằng tay trên giấy luôn.
làm như vậy thì mới hình thành được tư duy lập trình.
những bài toán đơn giản áp dụng dòng for, đệ quy, mệnh đề if.
Có vẻ nó là vấn đề khó khăn, khó ai giúp được trừ khi các bạn ấy tự lực.
Học lập trình là phải thực hành nhiều. Bắc chước người ta trước rồi dần dần mới làm được cái theo ý tưởng của mình. Giờ bảo học lý thuyết phang ngay được code thì hơi căng. Ý kiến riêng em là thế.
Bác nói hay thế
Bạn có tài liệu, có nguồn, có code demo, có tất cả mọi thứ, thậm chí hiểu code, nhưng ko thể tự mình code được, đó là do cách học của bạn có vấn đề.
Đơn giản nhất , lúc đầu bạn hãy copy nguyên code trên mạng về, chạy được chương trình, đó là đã thành công rồi.
Sau đó, hãy nghĩ ra các bài toán tương tự, sau đó modify code lại cho phù hợp, chạy được là thành công tiếp theo.
Sau nhiều lần như vậy bạn sẽ có một kho code lưu trong máy của mình để phục vụ cho các vấn đề lớn hơn sau này.
Tóm lại: Hãy tự tin copy code trên google, trong tài liệu, dần dần sẽ tự hiểu ra vấn đề.
Việc này giống như học tiếng anh hoặc học bất cứ cái gì cũng vậy.
Khi học tiếng anh, nếu bạn nghe nhiều thì khả năng nghe của bạn tăng. Khi đó, bạn có thể hiểu được người khác nói gì, vấn đề là việc nói, bạn chỉ nghe mà không nói theo nên bạn sẽ không nói được giống họ. Khi ra ngoài giao tiếp, bạn nghe hiểu nhưng nói không được vì không thực hành nói nhiều.
Lập trình cũng vậy, bạn chỉ tiếp thu thông tin, kiến thức mà không áp dụng, thực hành nhiều nên không code tốt được.
Chắc bạn có nghe tới series Head First rồi chứ gì, mình nghĩ sách đó sẽ giúp được các bạn ấy
ps: Sẵn tiện cảm ơn blog của bạn đã cho mình nhiều kiến thức rất bổ ích
bạn có tham khảo của khóa này không
cam on ban rat nhieu , loi cmt cua ban da giup minh.
công nhận, dù làm việc bằng máy tính nhưng trước khi làm thì cũng cần giấy bút để ghi ra thì sau đó mới bắt đầu làm trên máy tính dc.
Theo mình thì sau khi học lý thuyết xong --> xem code mẫu --> làm các bài tập tương tự --> làm các btap biến đổi nhiều hơn.
Cái gì nó cũng phải lên từ từ, nếu vừa học xong mà đã bắt người ta code được luôn thì cũng khó. Bước đầu chưa quen sẽ làm còn chậm,nhưng cứ chăm chỉ là dần rồi sẽ kết hợp được não + tay.
Chuẩn…!!
Anh ạ. Gần đây em có làm cái blog giải thích cho các bạn trong lớp, anh vô xem rồi nhận xét giúp em xem em làm vậy có đúng không, sợ làm các bạn hiểu sai…
Em Cám ơn ạ
A thấy hồi học tin đại cương được nhà trường dạy cho 1 hướng mà lúc đấy cảm thấy rất nhàm chán và vớ vẩn, nhưng khi đã hiểu thì nó thực sự hữu dụng. Ko biết chú có áp dụng cách đó không. Đó là:
Trước khi được học về ngôn ngữ thì ta được học cách viết giả mã - đây là cách dùng ngôn ngữ tự nhiên, viết code mô phỏng kiểu văn xuôi. Cái này giúp ng mới dễ tiếp cận với ngôn ngữ cụ thể hơn.
Song song với đó là ta được học về lưu đồ - đây là cách dùng hình vẽ sơ đồ để thể hiện về 1 thuật toán hay luồng xử lý. Cái này giúp ng học dễ dàng hơn khi tư duy 1 thuật toán, và cũng giúp ng dạy dễ truyền đạt hơn so với việc chỉ tay trong code. Cái này ko nhất thiết phải quá chuẩn về ký hiệu và hình vẽ, đủ hiểu là đc. Đặc biệt khi gặp 1 bài toán lớn sẽ thấy lưu đồ thực sự hữu dụng, phân tách mô tả nhiều cấp từ tổng quát đến chi tiết.
Khi kết hợp được 2 cái này lại sau đó mới ánh xạ vào code thực tế thì a nghĩ sẽ dễ cho cả ng học và ng dạy. Nhưng đánh đổi lại là phải mất vài buổi để ng học làm quen
Phương pháp lưu đồ thì đến giờ a vẫn sử dụng để trình bày với khách hàng, mặc dù khách hàng ko biết gì về lập trình nhưng nghe trình bày vẫn hiểu và nói lại đc. Chứng tỏ lưu đồ ko quá khó để hình thành tư duy
Blog là gì @Độc Hành Vũ?
@Tùng Huynh e thấy ngày xưa các thầy có dạy cái đó, giờ cũng dạy cái đó nhưng em thì chưa áp dụng.
Chết…!!
Em quên:
Blog của em là:
http//:dangcongtao0428.blogspot.com
Ạ…!
Đây là một vấn đề mà khá nhiều bạn sinh viên mới ra trường hoặc chưa có kinh nghiệm mắc phải, trong đó có mình cũng đã từng rơi vào trạng thái như thế, và hướng giải quyết vấn đề là học code từ người khác, hiểu ý tưởng code lại theo code của họ, code lại theo phong cách của mình, dần dần sẽ hình thành một phản xạ cho não xử lí ý tưởng thành những câu lệnh.
bạn hiểu va máy hiểu nó khác nhau, cái này thuộc về kỹ thuật lập trình :v