Theo mọi người, để trở thành một lập trình viên chúng ta cần những gì? Điều đầu tiên có thể là máy tính, thứ hai là biết ngôn ngữ lập trình, thứ ba là viết được một chương trình. Ba điều này có đủ không nhỉ? Đó là câu trả lời của mình cách đây khoảng 5 năm. Nhưng hôm nay, nếu có ai đó hỏi mình câu hỏi tương tự, thì mình sẽ có câu trả lời khác. Cùng xem sẽ có những thay đổi gì nhé.
Yếu tố 1: Tư Duy Lập Trình
Tư duy lập trình là gì?
Theo một cách không phải là sách vở, tư duy là cách chúng ta suy nghĩ để giải quyết vấn đề. Lập trình là chỉ ra các bước để máy tính giải quyết vấn đề. Vậy tư duy lập trình, là biết cách suy nghĩ để giải quyết một vấn đề bằng máy tính.
Hồi nhỏ, ai tính toán nhanh thì được coi là thông minh. Nếu lấy tốc độ tính toán làm thước đo cho sự thông minh, thì máy tính chắc chắn là công cụ thông minh nhất. Nhưng thực tế thì hoàn toàn ngược lại, máy tính rất ngu. Một đứa trẻ có thể tính toán chậm, nhưng nếu gặp người không quen biết, bé sẽ nhớ lại lời bố mẹ dặn rằng “không được tiếp xúc với người lạ” và tự động tránh xa đối tượng đó. Còn máy tính, tuy tính toán nhanh, nhưng nếu bị một người lạ sử dụng thì nó không thể phân biệt được, đó cũng là lý do tại sao người ta thường đặt mật khẩu cho máy tính.
Thế mới nói, máy tính thực sự rất “ngu”. Chúng không tự nhìn nhận vấn đề, cũng không tự giải quyết vấn đề trừ khi bạn lập trình cho chúng. Tuy nhiên, việc giao tiếp với máy tính không phải là điều dễ dàng vì máy tính và con người là hai 'loài' khác biệt. Để giao tiếp với máy tính, bạn cần phải học ngôn ngữ của chúng, tức là ngôn ngữ lập trình. Bạn cũng cần phải học cách giải quyết vấn đề như một máy tính - đó chính là tư duy lập trình.
Không có một tiêu chuẩn cố định để đánh giá, nhưng có thể dựa vào một số dấu hiệu sau đây.
1. Với mỗi bài toán, bạn hứng thú tìm ra cách giải hơn là tìm ra kết quả cuối cùng.
Nhớ lại thời cấp 2, môn toán thường khiến mình bị trừ điểm vì phép tính sai, mặc dù hướng giải là đúng. Khi gặp khó khăn, việc 3 + 3 = 9 là điều dễ hiểu. Nhưng với máy tính, bạn không cần lo lắng về kết quả cuối cùng, chỉ cần tìm ra cách giải. Kết quả có thể sai, nhưng quan trọng là cách giải của bạn.
Nói như vậy không có nghĩa là bạn thích tìm cách giải mà không quan tâm đến kết quả cuối cùng là bạn không có tư duy lập trình. Nếu bạn có cả hai yếu tố đó, có lẽ trong tương lai bạn sẽ trở thành một lập trình viên xuất sắc.
2. Bạn luôn nối kết mọi sự kiện hàng ngày với nhau
Nếu bạn để ý, bạn sẽ thấy rằng mọi sự kiện trong ngày đều có một nguyên nhân. Ví dụ, do tối qua bạn ngủ muộn nên sáng nay bạn dậy muộn, dậy muộn nên bạn bị tắc đường khi đi làm, bị tắc đường nên bạn đi làm muộn, đi làm muộn nên bạn bị phạt tiền,... Tóm lại, các sự kiện trong ngày tạo thành một chuỗi liên kết, sự kiện xảy ra trước đó sẽ ảnh hưởng đến sự kiện tiếp theo.
Trong lập trình cũng vậy, chương trình sẽ thực hiện từ trên xuống dưới và từ trái qua phải, kết quả của bước trước đó sẽ làm tiền đề cho bước tiếp theo. Ví dụ, tính năng mở khóa bằng mật khẩu trên điện thoại có thể diễn giải như sau:
Bước 1: Hiển thị giao diện nhập mật khẩu
Bước 2: Nhận mật khẩu từ người dùng
Bước 3: Kiểm tra mật khẩu có chính xác hay không? Nếu đúng, thực hiện bước 4. Nếu sai, quay lại bước 2
Bước 4: Mở khóa và hiển thị màn hình chính
Bạn có thấy không, lập trình là một chuỗi các bước mà mỗi bước đều liên quan tới nhau, giống như các sự kiện trong ngày vậy.
3. Khi được giao việc, bạn luôn tìm cách chia nó thành các bước nhỏ
Khi được giao một công việc, bạn thường phân chia thành các bước nhỏ để dễ dàng hoàn thành. Tương tự, khi lập trình một phần mềm, bạn cũng chia nó thành các phần nhỏ để hiểu và xử lý một cách hiệu quả.
Yếu tố 2: Tự học
Tự học là kỹ năng quan trọng để tiến xa trong lĩnh vực lập trình. Với sự phát triển nhanh chóng của công nghệ, việc cập nhật kiến thức mới là rất quan trọng.
Yếu tố 3: Đam mê
Lập trình có thể khá khô khan, nhưng nó yêu cầu sự kiên nhẫn và đam mê. Bạn phải sẵn lòng làm việc đến nhiều giờ, đối mặt với các lỗi và áp lực từ deadline.
Là lập trình viên, bạn thường phải làm thêm giờ khi cần thiết. Điều này yêu cầu tinh thần kiên nhẫn và sẵn lòng đối mặt với các thách thức.
Nếu không có đam mê, bạn sẽ khó duy trì được trong lĩnh vực này lâu dài, cũng như không thể tiến xa.
Những yếu tố khác
Cần có lòng kiên nhẫn: Việc chỉnh sửa code thường chiếm phần lớn thời gian của lập trình viên. Mặc dù không thú vị bằng việc viết code mới, nhưng nó rất quan trọng để cải thiện và sửa lỗi.
Chăm sóc sức khỏe: Việc ngồi làm việc nhiều khiến sức khỏe suy giảm. Vì vậy, ngoài việc trau dồi kiến thức chuyên môn, bạn cũng cần đầu tư thời gian cho sức khỏe.
Luôn sẵn lòng làm việc: Các vấn đề liên quan đến phần mềm có thể xảy ra bất cứ lúc nào, đòi hỏi sự sẵn sàng làm việc 24/7.
Cẩn thận, tỉ mỉ: Phần mềm phải đảm bảo tính chính xác, đặc biệt là khi ứng dụng trong các lĩnh vực nhạy cảm như ngân hàng, y tế, giáo dục, quân sự.