Cách học của mình
Cách học của mình
Xin
chào, lâu rồi mình chưa viết blog nhỉ, vì ngoài mấy cái cơ bản ra mình không biết
viết gì hơn, với lại sắp tới mình sắp có bài kiểm tra cuối kỳ nên sẽ tạm thời
ngưng viết blog để tập trung ôn thi. Cũng nhờ một bạn góp ý nên mình nghĩ sẽ viết
blog về chủ đề rộng hơn, thay vì chỉ liên quan đến học thuật. Hôm nay mình sẽ nói
về bản thân mình học lập trình như thế nào. Đây cũng chỉ là chia sẻ cách học của
riêng mình thôi nhé.
Đầu
tiên mình xác định ra rằng bản thân mình rất thích nghiên cứu từ việc làm
project. Mình để ý rằng mỗi lần mình muốn làm gì đó (làm web, làm robot,…) mình
đều cảm thấy có hứng và khi bắt tay vào làm mình làm rất là say sưa, nên mình tận
dụng điểm đó của mình để học tập. Chẳng hạn mình tạo project trò chơi nho nhỏ
như Tic Tic Tic hôm bữa chẳng hạn, thuật toán mình sẽ học được là minimax này,
cắt tỉa alpha beta, đồ họa mình học về java swing này. Và khi chọn project mình
luôn cân nhắc bản thân mình ở mức độ nào và project đó ở mức độ nào vừa với bản
thân mình, tránh chọn project quá với khả năng của mình, sẽ khiến mình dễ bị nản.
Thứ
hai, kiến thức căn bản rất quan trọng, nó là tiền đề giúp mình mỗi khi làm
project sẽ tốt hơn. Khi làm project có thể bạn sẽ đào xuống và tìm được những
kiến thức căn bản để học, nhưng không có nghĩa là bạn sẽ thấy hết được các kiến
thức căn bản đó. Thú thật khi mình làm java swing tới action listener mình khá
là bối rối về anonymous class vì không hiểu đó là cái gì, kiến thức về java
swing của mình lúc đó còn hạn chế nữa, cũng may nhờ công cụ Windows Builder để
mình đơn giản java swing hơn (kéo thả là chủ yếu), nhưng mình vẫn không thể
khai thác hết java swing vì kiến thức quá ít. Đó là ví dụ nhỏ khi mình không có
kiến thức căn bản thì làm project rất là cực. Mình chia ra làm 2 phần trong việc
xây dựng kiến thức căn bản, đó là thuật toán (về tư duy) và kỹ thuật (về hiểu
biết). Như mình đã nói mình luyện thuật toán qua hackerrank, mình thấy khá hiệu
quả, bây giờ mình có thể làm được một số bài mức độ trung bình trong đó. Còn kỹ
thuật ngoài việc học kiến thức trường lớp thì trong lúc học tập mình sẽ vô tình
đụng phải một vài kiến thức ngoài, cái này mình càng bỏ thời gian nhiều thì đụng
độ nhiều, mình sẽ tích lũy được nhiều hơn.
Một
chú ý mình rút ra được khi học là mình học cũng phải xét xem mức độ hiểu biết của
mình đối với loại kiến thức đó là như thế nào, nếu có vẻ hiểu được thì học sẽ ổn,
còn nếu đọc hoài không hiểu là do mức độ kiến thức cao hơn khả năng của mình, hoặc
là mình cố gắng giảm mức độ phức tạp của vấn đề lại, hiểu một cách đơn giản nhất,
hoặc nếu không làm được cách một thì không nên đụng vào. Có thể nếu mình siêng
sẽ học được đó, nhưng sẽ mất thời gian rất nhiều. Ví dụ đơn giản như mình vừa nói
là mình dùng công cụ kéo thả Windows Builder để hiểu về đồ họa một cách đơn giản
nhất (mình đã từng ráng đọc hiểu java swing nhưng tận mấy ngày liền không thể
hiểu nổi, chắc mình stupid quá ☹).
Ngoài
ra, trong lúc nghiên cứu vấn đề gì đó thì google là không thể thiếu được. Mình
không biết mình đã search bao nhiêu mẫu câu “Difference between…” nữa. Phải cố
gắng đọc tiếng Anh, trong lúc đọc cũng nên nhắm chỗ nào đọc hiểu ổn để đọc, đừng
đọc từ trên xuống như đọc bài văn. VD mỗi lần mình tra trên stack overflow mình
chả bao giờ đọc câu hỏi mà lướt thẳng câu trả lời để xem, vì câu hỏi người ta nói
khá nhiều thứ cộng với lại show những đoạn code nữa, đọc xong cũng khá mệt. Mà
cái hay là câu trả lời có lượt vote cao thường nói rất tổng quát, đúng ý mình
muốn tìm kiếm. Cám ơn bác Stack Overflow nhiều lắm, cám ơn bác Google translate
nữa!!!
Một
cách học bài nữa là mình hay đăng mấy cái mình tìm hiểu lên blog như thế này nè,
vì mình có cảm giác share kiến thức giúp mình học tốt hơn và nhớ lâu hơn. Vì thế
nên lúc đầu blog này mình có ghi là để học tập là thế đó.
Thôi
chia sẻ hôm nay thế là đủ rồi, không còn gì chia sẻ thêm nữa đó (haha). Tạm biệt
các bạn và chúc các bạn thi tốt!
Nội dung bài viết thuộc về Lê Công Diễn.
Người viết: Lê Công Diễn
Mang đi nhớ ghi nguồn
Nhận xét
Đăng nhận xét