Cách học code thông minh nhất

2476

Có một thứ cứ làm tôi nhọc nhằn suy nghĩ khi tôi mới học code, mà giờ tôi gọi nó là “con đường sương khói”. Nó là một con đường dài và đen tối, nếu rẽ trái thì mọi thứ quá dễ dàng, còn rẽ phải thì mọi thứ quá khó. Vì thế mà bạn bị mắc kẹt giữa lạc loài không biết mình đang làm cái quái gì.

Hầu hết mọi người mới vào nghề đều phải chịu một sự bất lực: không thể tìm một task vừa sức, và không biết tìm đâu nguồn kiến thức để thu hẹp khoảng cách giữa “ma mới” và một coder chân chính. Những ai đã qua được con đường này rồi có lẽ đã phải trải qua vô vàn task lặt vặt và “bán thân” cho những project quá sức với chính mình.

Việc này đã gây ra nhiều khó khăn cho sinh viên và phải từ bỏ quá sớm. Họ kiệt sức. Không phải vì coding quá khó (không hề), mà là vì việc học code quá khó. Đáng lẽ ra không nên thế.

Vậy có cách nào tốt hơn không?

Tôi đã ròng rã đi tìm đáp án cho câu hỏi này suốt một năm vừa qua. Đâu là cách tốt nhất để học code? Nó làm ta tưởng chừng đây là câu hỏi đơn giản, nhưng rồi sẽ giải thích được tại sao học code ngay từ đầu đã khó. Nói cách khác là tại sao khi giải thích cách học cho người khác lại dễ bị hiểu sai lệch.

Nếu bạn hỏi 5 dev cách học lập trình tốt nhất là gì, bạn sẽ nhận được 5 câu trả lời khác nhau. Người sẽ tự tin rằng bạn phải bắt đầu từ build app. Người sẽ cho bạn một list dài ngoằn các bài blog, Youtube video và khóa học online. Có người sẽ gợi ý bạn tham gia bootcamp nào đấy. Một anh dev hơi cổ lỗ sĩ sẽ đưa bạn một link .edu của một khóa học CS, và người còn lại sẽ đưa cho bạn 2 3 tựa sách nào đấy.

Điều bực mình là, cách nào cũng đúng cả (căn bản là vậy)! Vậy tại sao sau tất cả bạn vẫn thấy hụt hẫn và thiếu động lực y như trước khi hỏi?

Đó là bởi học code dễ nhất khi học nó theo một thứ tự nhất định. Khi bạn thử làm gì đó ngẫu nhiên, bạn sẽ rất khó chịu hoặc chán ngay, cứ như học bảng chữ cái khi bạn đã biết đọc biết viết vậy.

Cách tốt nhất để đi là chia nó thành 3 phần riêng thuộc 3 nhóm khác nhau. Xem nó như những ranh giới trên bản đồ. Chúng hỗ trợ navigate nhưng lại không có thật.

  1. Học syntax
  2. Giải quyết vấn đề
  3. Làm thứ này thứ kia

Mỗi phần trước là điều kiện bắt buộc để có cái sau, nhưng mỗi cái thì không “khắc” với nhau. Nói cách khác, đây không nhất thiết là một quá trình quá gắt gao chính xác như vậy. Dù cho phần này ảnh hưởng tới cái khác, bạn chỉ nên tập trung mỗi lần một cái. Có thế bạn mới tiến nhanh hơn dễ hơn và đỡ bị nhức não.

Học syntax

Phần này sẽ cho bạn một dạng tự tin “ảo” mà khi qua giai đoạn xử lý vấn đề sẽ biến mất. Nó gồm một chuỗi vô hạn các sách, video và khóa học. Đoạn này cũng tốn rất nhiều tiền vì hầu hết mọi người học một chút syntax và từ bỏ (đó không phải lỗi của họ, tôi sẽ giải thích sau).

Phần này thật ra không thiếu gì. Tài liệu học căn bản thì vô hạn và không mấy người vượt qua được ải này. Một khi bạn đã đọc được 2 cuốn sách chính chuyên về ngôn ngữ của bạn, hãy hấp thụ nó và chuyển sang bước tiếp.

Giải quyết vấn đề  

Đây là phần cần rất nhiều tâm huyết. Nó hầu như bị bỏ quên vì không mấy người hoàn thành việc học syntax. Họ không có định hướng mà chỉ nghe khuyên răn của người ngoài, kiểu như ráng tập chạy xe mà chưa dùng tay lái an toàn. Nó vẫn khả thi nhưng không phải là cách học tối ưu.

Khi bạn lấy syntax từ đoạn đầu và tự động apply nó, tức là bạn đang ở đoạn giải quyết vấn đề. Đây là chìa khóa đến việc think like a developer, là một trong những bước khó nhất và quan trọng nhất của quá trình. Sự thật là, tôi đã dành 15 tháng qua để làm nó.

Bắt tay vào làm cái gì đó

Hầu như mọi developer mà tôi biết đều đi thẳng từ việc học syntax đến việc tạo lập (hoặc… đang cố làm vậy). Nó khá mệt mỏi vì bạn không chỉ học cách nghĩ như một programmer, bạn còn học về các framework, các quy tắc đi với framework, cách dùng IDE và hàng tá thứ tôi còn chưa được học.

Một khi bạn đã hiểu được syntax và có thể tự giải quyết những vấn đề trong coding, đã đến lúc nên dấn thân vào các project open source hoặc brainstorm ý tưởng mới. Việc này giúp bạn hứng khởi mỗi khi thức dậy và đam mê sẽ đưa bạn vượt qua những phần khó khăn.

Lí do nhiều người từ bỏ là vì quá trình học code gian nan, không phải vì code. Nó rất hỗn loạn và quá tải thông tin. Bạn cần phải học rất nhiều thứ, vì thế, hãy ráng giữ cho quá trình học đơn giản.

  1. Học syntax
  2. Giải quyết vấn đề
  3. Làm thứ này thứ kia

TopDev via Matt MacPherson