Làm thế nào để học lập trình mà không bị căng thẳng và áp lực
ngày 23-02-2016
Kiến thức lập trình có thể giúp bạn kiếm được một công việc tuyệt vời và đó là lý do mà ngày càng có nhiều người đổ xô đi học làm thế nào để viết code. Có lẽ bạn đã quyết định theo đuổi lập trình, dù cho đó là sự nghiệp hay chỉ là một sở thích. Điều đó thật tuyệt vời! Nhưng có lẽ bạn đang bắt đầu cảm thấy choáng ngợp. Không được tuyệt cho lắm phải không nào?
Trước đây chúng tôi đã viết bài về việc lựa chọn một ngôn ngữ lập trình và chúng tôi đã tổng hợp lại những nơi mà bạn có thể học lập trình, nhưng chưa nói nhiều về hướng tiếp cận làm thế nào để trong quá trình học đó bạn không bị cảm thấy căng thẳng và áp lực.
Tôi đã từng trải qua cảm giác chán nản và thất vọng trong khi học lập trình và tôi hy vọng rằng một số lời khuyên sau đây có thể giúp bạn dễ dàng hơn trong cuộc hành trình của mình.
Không phải chỉ mỗi bạn mới bị: Lập trình là việc rất khó
Đối với hầu hết mọi thứ, bạn phải có một suy nghĩ đúng đắn trước khi học làm thế nào để lập trình. Chắc chắn là bạn có thể làm điều này với một thái độ tiêu cực và bạn vẫn có thể tìm hiểu được các kiến thức đây đó, nhưng quá trình này sẽ mất nhiều thời gian hơn và bạn sẽ căm ghét nó trong toàn bộ chuyến hành trình tìm kiếm tri thức của mình.
Lập trình là một công việc rất khó, không còn nghi ngờ gì về điều đó cả. Ngay cả những lập trình viên thông minh nhất cũng bị vướng mắc trong những hoạt động cơ bản bởi các bug và lỗi trong code của họ. Nhiều lúc bạn cảm thấy như mọi người biết những gì mà họ đang làm và chỉ có bạn là người gặp khó khăn trong việc học, nhưng đó không phải là sự thật.
Bạn sẽ được an ủi với một thực tế rằng mọi người đều gặp phải rắc rối khi mới học lập trình. Bạn không đơn độc trong cuộc đấu tranh của mình. Việc nhầm lẫn và nản lòng là chuyện bình thường. Nếu bạn thấy việc học rất khó thì điều đó cũng không có gì là to tát cả, vì vậy đừng cảm thấy chán nản hoặc căng thẳng. Cái gì trên đời này cũng cần phải có thời gian.
Và đó là cách nghĩ mà bạn cần phải có nếu bạn muốn học lập trình: công việc này sẽ mất một thời gian dài. Chúng ta đang nói đến đơn vị tính bằng nhiều năm. Cách nhanh nhất để bị căng thẳng và áp lực trong khi học tập đó là hy vọng vào việc hiểu ngay lập tức, tiến bộ tức thời và có những kết quả nhanh chóng. Chúng ta sẽ nhận thấy trong phần sau rằng điều đó hoàn toàn không đúng.
Hãy cảm thấy bình tâm với một thực tế là chuyến hành trình tìm kiếm tri thức đó của bạn sẽ rất lâu dài và gian khó.
Học từng bước một, từ những thứ cơ bản nhất
Giống như các ngôn ngữ nói, các ngôn ngữ lập trình cũng phải học từ những thứ căn bản nhất rồi mới qua những kiến thức nâng cao. Hãy xem xét quá trình học một ngoại ngữ như tiếng Tây Ban Nha, Đức, hoặc Hàn Quốc.
Bắt đầu với những thứ căn bản. Những thành phần căn bản nhất của bất kỳ ngôn ngữ nào bắt đầu với các chữ cái, sau đó là các từ, và câu. Đối với lập trình, bạn phải bắt đầu với từ khóa, cú pháp, và bố cục của một chương trình phần mềm.
Đừng lo lắng về những kiến thức nâng cao cho đến khi lần đầu tiên bạn nắm vững những vấn đề cơ bản. Bạn sẽ không thể viết một bài thơ trước khi bạn hiểu được những quy tắc cơ bản về ngữ pháp, phải không nào? Hãy hoãn lại những kiến thức nâng cao cho đến khi bạn thực sự nắm được những kiến thức nền tảng đó.
Nói cách khác, đừng vội vàng. Hãy tập trung vào một chủ đề tại một thời điểm trước khi chuyển sang chủ đề tiếp theo. Bằng cách giới hạn phạm vi học tập của bạn theo cách này, bạn có thể giữ cho mình không bị choáng ngợp. Đó là một trong những quy tắc trong việc thiết lập mục tiêu hiệu quả: để ăn hết một con voi, bạn phải cắn từng miếng một.
Khoảnh khắc mọi thứ trở nên rõ ràng đối với bạn
Trong khoảng một năm rưỡi, tôi đã nghiên cứu về game engine Unity, nó dựa trên mô hình entity-component chứ không phải là mô hình hướng đối tượng mà tôi đã học từ trước đến nay. Đúng là trong khoảng 12 tháng đầu tiên tôi đã rất nản lòng bởi vì tôi không thể hiểu được nó.
Cho đến một ngày, tôi ngồi vào máy tính của mình và tất cả dường như rõ mồn một trước mắt tôi. Những kiến thức đã làm cho tôi vò đầu bứt tóc trong gần một năm qua là đây ư? Cuối cùng thì tôi cũng đã hiểu được tất cả. Không có một bài hướng dẫn hoặc bài giảng đặc biệt nào giúp tôi được như vậy cả. Hoàn toàn không. Nó chỉ đơn giản là một khoảnh khắc sau bao lâu nghiên cứu rồi mọi thứ bỗng rõ như ban ngày.
Bài học ở đây là: không phải là tất cả mọi thứ sẽ được hiểu rõ ngay lập tức. Trí thông minh hay năng khiếu của bạn cũng không phải là yếu tố quyết định trong trường hợp này. Lập trình là một trong những thứ mà hoặc là bạn hiểu nó hoặc là không và phải cần thời gian để bạn mới thực sự hiểu rõ.
Cuối cùng nó sẽ xảy ra miễn là bạn đừng bỏ cuộc. Sự kiên trì là một tính cách quan trọng của bất kỳ lập trình viên nào. Nếu bạn cạo một bức tường bằng một chiếc thìa kim loại đủ lâu thì cuối cùng bạn sẽ đục thủng được bức tường đó. Đừng nản lòng trên con đường mình đang đi.
Tìm nhiều nguồn tài liệu nhất mà bạn có thể
Giả sử một người nào đó đưa cho bạn tấm hình của một bức tượng. Tấm hình đó có thể cung cấp đủ thông tin để bạn có một cảm nhận khá đầy đủ về bức tượng đó, nhưng bạn sẽ không nhận được toàn bộ hình ảnh của bức tượng. Việc thu nhỏ bức hình sẽ làm mất những chi tiết phức tạp, còn nếu phóng to nó lên thì sẽ mất đi cài nhìn toàn cảnh về nó.
Tuy nhiên, với mỗi bức hình bổ sung, bạn có thể thực sự bắt đầu nhìn thấy đầy đủ về bức tượng đó trong kết cấu, kích thước, chi tiết, từ trước đến sau, từ bên này sang bên kia, và từ trên xuống dưới.
Với lĩnh vực lập trình, một sự giảng giải thường không đủ để thực sự nắm bắt được về một chủ đề cụ thể nào đó. Đó là lý do tại sao điều quan trọng là bạn nên khai thác triệt để nhiều nguồn tài nguyên nhất bạn có thể trong các thể loại như tài liệu, tutorial, video, bài giảng, v.v... Mỗi tài nguyên bổ sung có thể cung cấp cái nhìn sâu sắc thêm.
Ví dụ, bạn có thể không nhận được nhiều lợi ích từ Tutorial A và nó khiến bạn cảm thấy thất bại. Tutorial B cũng làm cho bạn bối rối, mặc dù nó có thể làm sáng tỏ một số vấn đề. Nhưng đến khi bạn đọc Tutorial C được trình bày theo cách kết hợp mọi thứ từ Tutorial A và B lại với nhau. Cuối cùng thì chủ đề đó cũng sáng rõ như ban ngày.
Sẽ rất hữu ích nếu bạn tìm được một mentor (người cố vấn) hoặc một người bạn thân cùng học lập trình. Tự học là điều rất tốt, nhưng sẽ còn tốt hơn nếu có một ai đó mà bạn có thể đặt câu hỏi và nhận được những câu trả lời nhanh chóng. Điều này có thể biến khoảng thời gian vài ngày nản lòng thành một cuộc trò chuyện đơn giản chỉ khoảng 5 phút thì đã ra được vấn đề.
Thực hành và vọc vậy - Hãy can đảm!
Từ cuối cùng trong lời khuyên này: lập trình là công việc đòi hỏi thực hành nhiều hơn lý thuyết. Không phải là không có bất kỳ khía cạnh lý thuyết nào và cũng không phải hoàn toàn là thực hành, nhưng dù cho bạn có ngồi nghiên cứu bao nhiêu đi chăng nữa mà nếu bạn chẳng bao giờ đưa nó vào thực hành thì sẽ chẳng mang lại kết quả gì.
Tôi không thể nói cho bạn biết đã bao nhiêu lần tôi đã dành rất nhiều thời gian ngồi đọc các tài liệu về một thư viện code mà tôi chẳng hiểu gì cả, nhưng chỉ trong khoảng một giờ ngồi vọc vậy với code của nó thì tất cả đã trở nên rõ ràng.
Đừng ngại việc thực hành bằng cách vọc vậy. Tạo ra một blank project và bắt đầu làm rối tung nó lên với những dòng code. Vọc vậy với nó, phá vỡ nó và sửa chữa lại nó. Những việc này không hề làm tốn thời gian của bạn. Bạn có thể không phải đang viết code để tạo ra một sản phẩm cuối cùng, nhưng bạn sẽ tiết kiệm được cho mình rất nhiều thời gian bằng cách học này.
Lập trình không phải là một cái gì đó có thể được học một cách thụ động. Bạn phải bắt tay vào làm thực hành. Thay vì lo sợ các bug và lỗi thì hãy ôm lấy chúng. Học cách làm thế nào để sửa chúng hoặc làm việc với chúng. Thực hành tạo ra kinh nghiệm, kinh nghiệm tạo nên lòng tự tin, và tự tin sẽ giúp bạn tránh được cảm giác choáng ngợp hoặc căng thẳng.
Đối với những bạn mới bắt đầu học lập trình, tôi hy vọng rằng một số điều trong bài viết này sẽ giúp ích cho bạn.