HỌ ĐÃ LÀM ĐIỀU ĐÓ NHƯ THẾ NÀO?


Đó là câu hỏi thường trực trong đầu mình kể từ ngày bắt đầu học máy tính.

Làm thế nào mình gõ vài dòng code mà máy tính lại hiểu được mình muốn làm gì?

Khi mình gõ một nút trên bàn phím, họ làm thế nào để biết mình gõ chữ gì và làm sao đọc nó vào được?

Làm sao chuỗi ký tự từ câu lệnh printf lại chạy ra được màn hình?

Khi mình bấm nút nguồn thì quá trình khởi động bắt đầu, mà quá trình khởi động này nó làm gì nhỉ?

Làm sao khi mình gõ một địa chỉ thì nó biết được cần phải kết nối với máy tính nào? Và làm sao gửi được yêu cầu đến đúng máy đó mà không phải máy khác?

Cứ như vậy, các câu hỏi ngày càng khó hơn, nhưng chẳng bao giờ ngừng xuất hiện cả, đôi khi chúng cứ lẩn vẩn trong đầu, cả lúc ăn, lúc ngủ, và cảm giác khi tìm ra câu trả lời thật tuyệt. Hồi đó không có Internet nên thường phải đi tìm sách để đọc, mà làm gì có tiền để mua, vậy nên nhiều lúc cứ phải lang thang các nhà sách, tìm đúng cuốn mình cần, đứng đó học thuộc lòng, rồi đi ra ngoài viết vào giấy, cuốn nào dài quá thì lại sang nhà sách khác … đọc tiếp. Bây giờ nhiều thứ để học, nhưng tài nguyên cũng vô tận, nếu bạn thấy khó, hãy tưởng tượng bạn phải bắt đầu học một ngôn ngữ lập trình mới mà chỉ thông qua một cuốn sách cơ bản, không có người để hỏi, không Internet, không Stack Overflow, không có những trình soạn thảo hỗ trợ tận răng… Thật ra tôi nghĩ, học lập trình không khó, thậm chí còn khá dễ, nếu bạn có thể hiểu được tích phân, đạo hàm, chứng minh được các định lý, giải được các phương trình phức tạp, vậy chẳng có lý do gì bạn không thể học lập trình được.

Thứ các bạn thiếu có lẽ là lòng đam mê, nó giống như khi bạn xem một bộ phim thuộc thể loại bạn không thích vậy, bạn hoàn toàn có thể hiểu nội dung phim nếu tập trung, nhưng đa số trường hợp bạn sẽ chẳng nhớ gì và chuyển kênh trước khi kết thúc. Đáng tiếc là việc “chuyển kênh” trong đời sống thực rất phức tạp, và thường phải trả cái giá rất đắt, chí ít cũng mất vài năm cuộc đời. Vậy nên nếu vẫn muốn tiếp tục ở lại, bạn phải tập đam mê nó.

Hãy tập đặt câu hỏi, đừng đặt những câu hỏi mông lung mà chẳng ai biết đáp án, đại loại như: Làm sao để giỏi lập trình .NET? Đây chính là một câu hỏi không có đáp án, hay nói chính xác hơn, chỉ có những đáp án chung chung, áp dụng cho tất cả mọi người, mà mọi người đôi khi lại chẳng phải ai cả, còn bạn là một người cụ thể, bạn thích đi chơi hơn ngồi học, bạn cũng thích đi ngủ hơn đi chơi… vậy nên đáp án đó dành cho “mọi người” nhưng chưa chắc đã dành cho bạn.

Hãy đặt một câu hỏi cụ thể, ví dụ: Làm sao viết ra được chương trình quản lý sinh viên bằng C++ mà chỉ dùng file để lưu trữ dữ liệu thay vì dùng một database? Một câu hỏi như vậy sẽ có một đầu ra cụ thể, và bạn phải bắt tay vào làm, và bạn cũng có một mục tiêu cụ thể, hơn là một thứ mông lung mà chính chúng ta cũng không biết thế nào là hoàn thành.

Vậy đấy, hãy tập đặt ra các câu hỏi cho tất cả những vấn đề bạn gặp. Người ta đã làm điều đó thế nào? Và tập tìm câu trả lời. Chẳng phải khi đi phỏng vấn, nhiệm vụ của bạn là tìm đáp án cho các câu hỏi của nhà tuyển dụng, và khi đi làm, nhiệm vụ của bạn cũng là tìm giải pháp cho các vấn đề của khách hàng?

Leave a comment