Tại sao mình không thể tư duy nhanh hơn khi làm bài tập?

Hiện tại mình đang học kì chuyên ngành đầu tiên, sáng đi học từ 6h20 đến 13h20 mới về đến nhà. Nghỉ trưa đến 15h, 15h30 bắt đầu ngồi làm bt trên các web hay làm deadline đến 21h. Một tuần đều tăm tắp (trừ ngày thứ 7) Trong khoảng thời gian đó code rất mượt, nhưng khi lên lớp gặp một bài đã từng làm hay cách tư duy hơi giống thì mình phải mất một lúc lâu. Có phải do mình luyện tập chưa đủ k? Và có lúc phải mất cả ngày để ngồi ngẫm một bài tập ngắn… Vậy nên mọi người có thể chỉ cho mình cách để khắc phục vấn đề trên với ạ

Không biết cách bạn học như thế nào, nhưng có thể bạn nên xem xét lại ở điểm: bạn có chắc là bạn HIỂU được hết các bài tập làm ở nhà hay không? Nếu có thì chỉ còn một cách để khắc phục đó là bạn cần practice nhiều nhiều nhiều hơn nữa.

4 Likes

Có những cái mình thấy bạn chưa biết tự đánh giá bản thân:

  • “code rất mượt”: lượng giá mơ hồ không dựa trên căn cứ nào hết
  • “lên lớp gặp một bài đã từng làm”: ảo giác cho bạn thấy rằng bài đó quen quen, nhưng thực ra bạn chưa nắm được cách tiếp cận vấn đề tổng quát, đây giống với trường hợp một số bạn không nắm được bản cửu chương, phép tính nhân 2 con số mà bấm máy tính bỏ túi
  • “có phải do mình luyện tập chưa đủ”: đúng thế, luyện tập chưa đủ cách để nhớ vấn đề, tạo được cố kết trong não, không thể học theo kiểu “bài văn mẫu” hoặc “học thuộc lòng”, “tầm chương trích cú” được, mà phải học theo cách tiêu hoá và diễn tả lại được sau khi đã “tiêu hoá”.

“Tư duy nhanh hơn khi làm bài tập”: tư duy nhanh để làm gì vào lúc này? Bạn cần có sự hợp lý, khi bạn cứ nghĩ đến “nhanh” thì chắc chắn là nó sẽ dễ dẫn đến nông cạn.

Vài ví dụ để hiểu: khi học Photoshop bạn phải nắm chắc được layer và thành thạo các thao tác với layer. Học làm web thì phải nắm được các khái niệm vài cài đặt của nó như tag, DOM, CSSOM, độ ưu tiên Specificity. Học lập trình thì phải nắm được syntax, giải thuật thì cài đặt nó nên phân rã ra các trường hợp như lặp/ đệ quy/ vấn đề đang cần giải quyết nó là toán hay là đơn thuần là cú pháp ngôn ngữ.

Cách xử lý: để biết chắc rằng bạn hiểu bài, sau khi học xong bạn bật điện thoại quay lại cảnh bạn “đứng lớp giảng bài” đó cho người khác, sau đó xem lại cái clip đó hoặc thử chia sẻ với người khác xem họ có hiểu gì không? Một khi bạn nắm được bài thì nghĩa là bạn giải thích được cho người khác, còn quá trình giảng bài của bạn rối nùi nghĩa là bạn chỉ mới nghĩ rằng bạn hiểu bài, mà bạn thực sự chưa hiểu bài. Cái đó gọi là: Illusions of competence - ở VN người ta hay dịch vui là “ảo tưởng sức mạnh”, nhưng quên cái cách dịch vui đó đi, mà hãy cảm nhận đó chính là:

Cần học với bảng, với tập vở, ánh sáng mặt trời. Trong trường hợp rất cần thiết (ban đêm hoặc nhà không có cửa sổ) lắm mới đụng đến “thiết bị điện tử”.

8 Likes

Với thời bạn bỏ ra cho việc học như bạn nói, thì chúc mừng bạn, bạn thuộc top những người siêng năng đó
Tuy nhiên, bỏ nhiều thời gian không có nghĩa là bạn sẽ giỏi lên ở mức tương xứng
Đồng ý với bạn @superthin , có vẻ như bạn đang hiểu sai về việc học

  1. Hoàn thành thêm bài tập không có nghĩa là bạn sẽ giỏi hơn, sau này đi làm cũng sẽ vậy, không phải cứ nhiều năm kinh nghiệm hơn thì là giỏi hơn
    Những bài lặp đi lặp loại, hoặc làm cho xong cũng không có mục tiêu chỉ là làm cho xong, để ghi nhận thành tích sẽ không làm người ta giỏi hơn. Nói học code cũng như học toán thì không hẳn là sai đâu, toán thì vô vàng thứ trong đó, nhưng nhìn lại thì cũng chỉ có cộng trừ nhân chia mà thôi, công thức này nọ cũng chỉ là thứ được người ta đúc kết, mà để đúc kết ra những cái đó thì cũng sử dụng + - * / mà thôi. Code cũng vậy, cũng chỉ có biến (hằng), kiểu dữ liệu, phép tính, lệnh gán, lệnh rẽ nhánh, lệnh lặp. Quan trọng là vận dụng như thế nào, nó nằm ở tư duy. cái bạn cần là rèn luyện tư duy. Code quá nhiều thì cũng chỉ nhớ nhiều cú pháp tí, gõ nhanh hơn và đỡ phải google thôi.
    Mình code php cũng vài năm nhưng nếu kêu mình code 1 đoạn php kết nối mysql thì mình cũngg không nhớ đâu, vì tên class hay tên của các option param của class/method mình không cần phải nhớ làm gì cả, vài giây là search ra. Với internet thì mình chỉ cần chưa tới 30s đã xong đoạn code như vậy
  2. Lập trình không phải chỉ là là viết code

Computer programming is the process of designing and building an executable computer program to accomplish a specific computing result or to perform a specific task.
Tạm dịch là: lập trình là quá trình thiết kế và xây đựng chương trình máy tính (có thể thực thi/chạy được, cái này hiển nhiên rồi) để chạy ra được kết quả tính toán nào đó hoặc thực hiện nhưng tác dụng nào đó

Ở cái định nghĩ trên, không có cái gì gọi là viết code ở đây cả, viết code chỉ là một phần trong quá trình lập trình thôi.
“Lập” = lập ra, xây dựng ra
“Trình” = chương trình
trong từ khóa lập trình cũng không có gì gọi là viết code ở đây cả

Nếu bạn thắc mắc, nếu không có viết code thì chương trình đâu mà ra? Bây giờ đã có rất nhiều công cụ giúp trực quan hóa vấn đề, dành cho người không biết code, một trong những công cụ đó, rất nổi tiếng chính là Wordpress

  1. Lập trình là sử dụng ngôn ngữ lập trình để mô tả lại công việc cho máy tính thực thi
    Viết code thì ai cũng có thể viết được, vì cú pháp cũng chỉ có bao nhiêu đó (có thể rất nhiều nhưng thường sử dụng thì cũng không nhiều). Nhưng quan trọng là viết cái gì để cho máy tính chạy đúng như ý muốn (đề bài)?
    Bạn tiếp cập với một đề bài như thế nào? viết code ngay?
    Trước ở trong công ty cũ, mình có làm mentor cho một vài bạn fresher, đặc điểm chung của những bạn code yếu là sau khi đọc đề (hoặc nhận task) là viết code ngay nhưng không biết mình code cái gì, cứ viết đại, có task là có code. Sau một buổi, mình hỏi kết quả, các bạn ấy show cho mình đoạn code chưa chạy được và đang fix, mình có hỏi biến này biến kia khai báo để làm gì, bạn ấy cũng không biết. Cuối cùng mình hỏi lại task, thì các bạn ấy không thật sự hiểu task được giao (nghĩ là không mô tả được task bằng kĩ thuật)

  2. Trở lại với câu hỏi Tại sao mình không thể tư duy nhanh hơn khi làm bài tập?
    Mình không đưa ra câu trả lời, mình chỉ hỏi lại, bạn đã có luyện tư duy chưa? (Như mình giải thích bên trên, viết code nhiều không có nghĩa là tư duy nhiều, đặc biệt là code theo lối mòn)

8 Likes

Cảm ơn bạn, sau khi đọc thì mh cũng hiểu dần ra. Mh thấy bản thân giống như trong ví dụ của b á. Cắm mặt code rồi ngồi fix, không biết sai ở đâu:( bây giờ tạo thói quen viết ra giấy tư duy của bài tập rồi mới code… liệu sau này có gặp vấn đề gì với thói quen này k??

5 Likes

Đó là good practice, đã được chứng minh trong thực tế và được áp dụng bởi rất nhiều người. Cậu nên thử làm và theo dõi xem cậu phản ứng sao với thói quen đó :smile:
Tớ không nghĩ cậu sẽ gặp vấn đề gì đâu. Vậy nên, đừng quá lo lắng, làm thôi cậu!

Giờ cậu không còn lý do gì để không thực hiện thói quen đó nữa rồi :smile:

4 Likes

Bạn chưa tư duy nhanh được là do bạn chưa hiểu sâu chương trình và máy tính sẽ thực hiện như thế nào. Bạn mới làm theo hướng dẫn để hình thành một thói quen nhưng chưa trả lời được nhiều câu hỏi tại sao.
Nên khi gặp phải một cái không giống thói quen bạn sẽ chịu.
Bởi vì không hiểu tại sao nên sẽ không biết sẽ làm thế nào.

6 Likes

Mọi người chưa nói tới vấn đề IQ ở đây. Tạm lạm bàn vậy:

Tư duy chậm đôi khi là do IQ bạn thấp hơn người khác.
Shock phải không? Mình đã gặp quá nhiều trường hợp những bạn mà vừa đưa đề đã nghĩ ra lời giải. Wew, nếu so sánh thì có thể nói là những bạn đó có CPU tốt, IQ cao.
Nhưng nó không có nghĩa là bạn tệ hơn những người đó.

Những vấn đề bạn gặp phải khi đi làm thường phức tạp hơn nhiều, đòi hỏi phải phân tích kỹ lưỡng, nghiền ngẫm, suy nghĩ thấu đáo, dự tính các trường hợp rủi ro, ước lượng xác suất xảy ra lỗi, đặt mình vào vị trí của khách hàng, vân vân. Để giải quyết được những vấn đề này, cần có kinh nghiệm, kỹ năng, giao tiếp, teamwork, và một mớ các thứ skills khác nữa.

Quay lại vấn đề ban đầu, bạn có thể có khả năng tư duy và giải quyết vấn đề, mặc dù hơi chậm. Cái bạn thiếu là hệ thống lại kiến thức, nghĩ nhiều hơn về kiến trúc và thiết kế thay vì lao vào code, cái mà các bạn khác đã trình bày khá kĩ ở trên.

Chúc bạn ngày mai tiến bộ hơn ngày hôm nay.

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?