Những điều tôi ước giá như mình đã biết được khi mới bắt đầu học code

Trước khi bạn học code, hãy nghĩ về những thứ mà bạn muốn code

Học lập trình, về cơ bản, cũng giống như xây dựng cho mình để đến đích và quá trình đó chắc chắn sẽ dễ thở hơn rất nhiều khi bạn tự đặt được mục tiêu kết thúc cho mình trước khi bắt đầu. Nếu cái đích của bạn chỉ đơn thuần là “học cách code” mà không có bất cứ một ý tưởng cụ thể nào về chương trình hay ngôn ngữ bạn sẽ học, và xa hơn là cách thức cụ thể mà bạn có thể tưởng tượng ra, về việc lập trình có thể giúp tương lai của bạn trở nên tốt đẹp hơn như thế nào thì lập trình lúc đó với bạn cũng chỉ là một ''bài học khó nhằn" không hơn không kém.

Vậy thì, tại sao bạn lại muốn học lập trình? Tại sao bạn lại lao đầu vào những dòng code? Vì một trang web, vì muốn tạo cho mình một trò chơi, một ứng dụng sẽ khiến bạn giàu có, hay chỉ đơn giản là muốn gây ấn tượng lúc đi phỏng vấn việc làm? Có lẽ lý do cuối cùng, để có thể có một CV đẹp hơn, để tăng thêm danh sách khả năng của mình thường được phần lớn người lựa chọn, tuy nhiên, tất cả lý do để bạn bắt đầu đều chính đáng và hi vọng bạn luôn có cho mình một mục tiêu cụ thể trước khi lập trình.

Lập trình chẳng có gì gọi là huyền bí hay khó nhằn cả

Coding cũng chỉ là một kỹ năng giống như bất kỳ một kỹ năng nào khác mà bạn cần. Cũng như việc học một ngôn ngữ mới, lập trình cũng có ngữ pháp và những thuật ngữ mới - từ mới mà bạn phải học. Giống như các nghề thủ công hay nghệ thuật, coding cũng cần có những kỹ năng hay công cụ đặc biệt để giải quyết các vấn đề cụ thể.

Sẽ rất vô ích nếu bạn bỏ thời gian ra để cảm thấy bản thân vô cùng nhỏ bé, để tự ti trong việc bắt tay vào học lập trình, để tự hỏi chính mình rằng liệu mình có đủ thông minh để “thẩm thấu” các dòng code được hay không. Chắc chắn, đối với các tác vụ khó nhằn và nâng cao hơn, bạn sẽ cần đến một trình độ lập trình hay chính xác là khả năng tư duy cao hơn. Nhưng điều này cũng đúng với tất cả các ngành nghề khác mà. Cuộc sống này cũng vậy, càng trưởng thành thì những sự kiện hay những thử thách mà bạn tưởng chừng như không thể vượt qua được lại xuất hiện nhiều hơn.

Dòng code bạn gõ sẽ không bao giờ chạy được ngay trong lần đầu tiên

(…và kể cả lần thứ hai, thứ ba cũng chưa chắc…)

Khi bạn học code lần đầu tiên, bạn sẽ nhanh chóng được nếm trải mùi vị đau thương này cho mà xem. Bạn chắc mẩm rằng mình đã code và thiết lập mọi thứ đúng cách, theo đúng quy trình, bạn kiểm tra lại dòng code của mình nhiều lần, và DÒNG. CODE. VẪN. ĐÍU. CHẠY. Tệ hơn nữa, bạn không hề có chút manh mối nào về việc lỗi sai nằm ở đâu, và tin nhắn báo lỗi (nếu bạn may mắn được nhận) cũng không giúp gì được cho bạn.

Những lúc như vậy, bạn không thể nở nụ cười tự tin được nữa, bạn chỉ muốn từ bỏ đống code đã dày công build up, suy nghĩ rằng mình chả hợp làm cái nghề fix bugs mệt mõi này rồi. Cái cảm giác như khi bạn cố viết một chương trình bằng C++ và khi chạy thử thì không nhận được gì ngoài thông báo “segmentation fault”…

Nhưng bạn biết không, trải nghiệm này thực sự phổ biến hơn bạn nghĩ, và không chỉ các beginner coder mới gặp, mà cả những người có kinh nghiệm, các seniors developer vẫn có thể ôm đầu kêu khóc vì điều này. Và việc code không thể chạy không thể nói lên điều gì về trí thông minh, sự hiểu biết hay sự phù hợp của bạn đối với cuộc sống lập trình. Fix bugs không phải là việc bạn sẽ phải làm khi là một người mới bắt đầu mà kể cả khi bạn đã là một developer có kinh nghiệm. Điều khác biệt không nằm ở kinh nghiệm và vị thế của bạn, mà nó ở cách mà bạn sẽ phản ứng với nó.

Sự khác biệt lớn nằm giữa những người mới bắt đầu và các lập trình viên có kinh nghiệm đó chính là niềm tin của họ: Niềm tin về việc có một lỗi sai là được bắt nguồn từ một lý do hợp lý nào đó và bạn có thể tìm ra, niềm tin rằng các vấn đề hoàn toàn có thể sửa chữa được. Đi từ việc “code không chạy” đến “code đúng” có
thể không có giới hạn rõ ràng để bạn tìm thấy, nhưng với sự kiên nhẫn, có thể bạn sẽ tìm thấy nó.