Học ngôn ngữ mới chỉ trong 10 bước đơn giản

Bắt đầu học một ngôn ngữ mới là một nhiệm vụ khó khăn với nhiều lập trình viên. Dù vậy, cũng như mọi loại hình học tập khác, luôn có những kỹ thuật và phương pháp giúp ta học nhanh và hiệu quả hơn. Bài viết này liệt kê 10 phương pháp hữu hiệu nhất để giúp cho việc học và sử dụng một ngôn ngữ mới không còn là niềm đau trong sự nghiệp lập trình nữa.

1. Dành thời gian học đầy đủ, rõ ràng

Phần lớn chúng ta cho rằng ta có thể sử dụng được một ngôn ngữ mới mà chỉ cần bỏ ra một đến hai tiếng mỗi ngày trong vòng một tuần là đủ. Tất nhiên, sau một tuần, ta có thể sử dụng ngôn ngữ mới ở mức chấp nhận được, nhưng chắc chắn rằng việc này sẽ không hiệu quả bằng việc bỏ ra một đến hai ngày chỉ để học. Việc học trong một quá trình liên tục, không bị ngắt quãng sẽ giúp ta tiếp thu nhanh hơn.

Việc chia nhỏ thời gian học ra thành nhiều buổi trong nhiều ngày tỏ ra không hiệu quả, vì ta phải bỏ ra thêm thời gian để bắt nhịp và nhắc lại các kiến thức đã học. Đôi khi, việc đọc và hiểu lại những gì mình viết ngày hôm qua chiếm đến một nửa thời gian của buổi học.

2. Dùng "phao"

Vâng, bạn đang đọc đúng đấy, dùng "phao". Đây là cuộc sống, là công việc, chẳng ai bắt phạt hay đình chỉ bạn khi phát hiện bạn dùng "phao" cả. "Phao" chép lại những thông tin nhỏ và ngắn gọn về ngôn ngữ mà bạn đang học. Bạn có thể tự chép "phao" hoặc xin từ một ai đó sẵn lòng. "Phao" không chỉ giúp tra cứu nhanh mà còn giúp ta có một cái nhìn tổng hợp về những gì ngôn ngữ cung cấp. Và hơn hết là ta đỡ mất một khoảng thời gian lục lọi lại đống tài liệu hoặc google để tìm một syntax hay keyword nào đó.

3. Thu thập tất cả các tài liệu liên quan

Có hàng tất tài liệu trôi nổi khắp nơi liên quan đến ngôn ngữ bạn đang học. Một số phù hợp với bạn, số còn lại thì không. Để tìm được những tài liệu tốt, trước tiên phải thu thập hết đống tài liệu lại và review nhanh chúng trước khi lôi về và cất vào kho. Chỉ có bạn mới có thể quyết định xem tài liệu nào là phù hợp với bạn. Kiếm một cuốn sách dạy về ngôn ngữ cũng không phải ý tồi, vì sách hướng dẫn thường được viết theo hướng dễ tiếp cận với nhiều người. Nếu không, bạn có thể google một vào từ khóa để tìm các tài liệu cần thiết kiểu như:

  • Tutorials
  • Tips posts
  • Best practices
  • How to

... và sau đó đọc tất cả các kết quả phù hợp cũng với các references của chúng.

4. Nghiền ngẫm documentation

Nhiều người chỉ đọc lướt qua, thậm chí không biết đến sự tồn tại của documentation. Tôi cũng không ngoại lệ. Và cái giá phải trả là trong dự án đầu tiên, trang tôi hay phải truy cập vào nhất là ruby-doc.

Trong khi các tutorial đưa ra các phương pháp tiếp cận nhẹ nhàng, dễ hiểu, documentation lại ném vào mặt bạn cả đống thông tin, các hàm, các từ khóa, các syntax mà bạn chẳng biết là có cần đến hay không. Nhưng tutorial chỉ đưa ra những lời khuyên cơ bản nhất dành cho những người mới chập chững những bước đầu tiên làm quan với ngôn ngữ. Để thực sự sử dụng ngôn ngữ ta cần đến sự trợ giúp từ các documentation.

Chưa học bò chớ lo học chạy! Đừng đốt cháy giai đoạn mà lao thẳng vào documentation, nhưng cũng đừng tự thỏa mãn với tutorial. Đọc, hiểu được các nguyên tắc cơ bản và rút ra những điều cần thiết từ tutorial và documentation sẽ giúp xây dựng một nền tảng vững chắc cho việc sử dụng ngôn ngữ sau này.

5. Nghỉ ngơi

Sau khi đã tha về một đống tài liệu, từ các nguồn chính thức và không chính thức, rồi ngồi ngấu nghiến chúng, còn chờ gì nữa, bắt tay vào làm demo app luôn thôi! Khoan, từ từ đã nào, bây giờ cần nghỉ ngơi một chút. Đúng vậy, sau một thời gian dài là liên tục tiếp thu các kiến thức mới, bạn cần để cho não nghỉ ngơi để sắp xếp lại đống thông tin mà bạn vừa nhét vào đầu mấy tiếng vừa qua.

Tất nhiên để không bị phàn nàn ngồi chơi trong giờ làm việc, bạn nên kết thúc buổi học và cuối ngày, sau đó về nghỉ ngơi, và bắt đầu làm demo app vào ngày mai.

6. Bắt đầu làm demo app

Sau khi thu thập thông tin, dành thời gian đọc hiểu cách ngôn ngữ hoạt động, đã đến lúc bắt tay vào xây dựng một demo app.

Đa số các bài tutorial, các quyển sách nhập môn đều hướng dẫn xây dựng một ứng dụng đơn giản và hoàn chỉnh, để giúp cho người đọc có thể liên hệ và hình dung các bộ phận gắn kết và vận hành như thế nào trong một ứng dụng thật. Mục đích của demo app xây dựng một ứng dụng có giao diện và database đơn giản và hoàn chỉnh, ví dụ như blog hoặc todo list. Cũng nhờ đó mà ta có thể so sánh được sự giống và khác nhau, cũng như cái lợi và hại của ngôn ngữ này và ngôn ngữ khác.

7. Fix bugs

Sự thật là ta học được nhiều hơn trong quá trình fix bug so với quá trình phát triển. Điều này càng đúng hơn khi học một ngôn ngữ mới.

Với một newbie, việc gặp bug là một chuyện hết sức bình thường. Bằng việc tìm hiểu và fix bug, ta có thể hiểu được rõ ràng chương trình vận hành như thế nào. và đoạn code đó có tác động đến chương trình ra sao.

Tất nhiên, việc làm theo tuyệt đối những gì tutorial dạy thường dẫn đến một chương trình sạch sẽ và giống hệt tutorial. Như đã nói ở trên, không được thỏa mãn với tutorial, hãy thay đổi nó. Bắt đầu bằng việc chỉnh sửa những đoạn code, thay đổi yêu cầu, thay đổi chức năng, nói gọn lại là cố thử tạo ra bug, để hiểu rõ hơn chương trình hoạt động như thế nào.

8. Hỏi ý kiến chuyên gia

Cũng như mọi việc học khác, việc học một ngôn ngữ mới sẽ suôn sẻ hơn nhiều nếu có một chuyên gia hướng dẫn. Chuyên gia ở đây ý chỉ chung những người đi trước, những người biết hơn bạn về ngôn ngữ này. Chắc chắn có rất nhiều người đã trải qua quá trình làm quen giống bạn, cũng mắc những lỗi giống bạn, cũng gặp những bug tương tự bạn, và họ biết cách để vượt qua chúng. Nếu không thể tìm thấy ai bên cạnh bạn có thể tìm đến những địa chỉ sau:

  • Forum của ngôn ngữ đó
  • Stackoverflow: Đây là một mạng xã hội vận hành theo kiểu hỏi - đáp. Hãy tìm những câu hỏi có chủ đề tương tự hoặc post câu hỏi cho riêng mình. Nhiều lập trình viên trên thế giới rất sẵn lòng trả lời.
  • Mạng xã hội: Tìm đến các group công nghệ, cộng đồng người sử dụng ngôn ngữ hoặc đặt một câu hỏi vu vơ trên tường và hy vọng có cao nhân nào đó ghé qua cho lời khuyên
  • Google: Phương pháp cuối cùng, giành cho người không muốn mất thời gian sử dụng các phương pháp trên hoặc đã quá tuyệt vọng

9. Review

Sau khi đã hoàn chỉnh demo app và cảm nhận niềm vui sướng vì đã làm cho nó chạy được, bây giờ là lúc để review lại những gì đã học được. Hiểu được những gì đã tạo nên ứng dụng, cái gì đã làm cho nó chạy, biết được những gì ngôn ngữ có thể và không thể làm được và biến chúng thành kiến thức của riêng bạn. Sau này bạn sẽ không phải học và hiểu lại những yếu tố này nữa.

10. Áp dụng vào thực tế

Ít ai rảnh mà đi học cả một ngôn ngữ lập trình mới mà không có mục đích gì phải không nào. Với số vốn kiến thức tích lũy được từ demo app, bây giờ ta phải áp dụng nó để xây dựng những ứng dụng thực sự. Không ngừng lặp lại những gì đã học, dựa vào đó để tìm hiểu các kiến thức mới, bổ sung vào vốn kiến thức sẵn có là chìa khóa để mở mọi cánh cửa học vấn. Bằng không mọi thứ sẽ mai một theo thời gian.

Học được càng nhiều ngôn ngữ, thì việc học thêm ngôn ngữ mới càng trở nên đơn giản hơn. Các syntax, pattern của các ngôn ngữ tương tự giống như nhau. Có thể có nhiều sự khác biệt trong cách ngôn ngữ thể hiện và hoạt động, thì các ngôn ngữ vẫn thường tuân theo các quy luật nhất định, được xây dựng trên một nền móng giống nhau.