💡 Nghề sáng tạo
Lập trình viên làm gì cả ngày: đọc mã, viết mã, tìm lỗi và làm nhóm
Trong bài
Lập trình viên viết ra những chỉ dẫn để máy tính làm việc thay con người: từ ứng dụng trên điện thoại, trang web, đến phần mềm điều khiển máy giặt, đèn giao thông hay vệ tinh. Nhưng nếu theo dõi một lập trình viên cả ngày, bạn sẽ thấy họ dành rất nhiều thời gian cho những việc khác ngoài gõ mã: đọc mã của người khác, tìm lỗi, kiểm thử, viết giải thích và bàn bạc với đồng đội.
Phần mềm ở khắp nơi, lập trình viên cũng vậy
Khi nghe "lập trình", nhiều bạn chỉ nghĩ tới ứng dụng trên điện thoại. Thật ra lập trình viên làm ở rất nhiều lĩnh vực khác nhau:
| Mảng | Họ làm gì | Ví dụ gần gũi |
|---|---|---|
| Web | Làm trang web và phần chạy phía sau nó | Trang tra điểm thi, trang đặt vé tàu |
| Ứng dụng di động | Làm ứng dụng cho điện thoại, máy tính bảng | Ứng dụng học từ vựng, xem lịch học |
| Hệ thống nhúng | Viết chương trình chạy bên trong máy móc | Nồi cơm điện hẹn giờ, máy giặt, ô tô |
| Dữ liệu | Xử lý lượng thông tin lớn để tìm quy luật | Dự báo thời tiết, thống kê dịch bệnh |
| An toàn thông tin | Tìm và vá lỗ hổng để kẻ xấu không lợi dụng | Bảo vệ tài khoản ngân hàng |
| Khoa học | Viết chương trình mô phỏng, tính toán | Mô phỏng dòng chảy sông, quỹ đạo vệ tinh |
Mỗi mảng dùng ngôn ngữ lập trình và công cụ khác nhau, nhưng cách nghĩ nền thì giống nhau: chia vấn đề thành bước nhỏ, mô tả thật chính xác, rồi kiểm tra xem máy có làm đúng không.
Một ngày làm việc thật sự
Mỗi nơi một khác, nhưng một ngày của lập trình viên trong một nhóm thường xoay quanh những việc sau:
- Họp ngắn đầu ngày. Mỗi người nói hôm qua làm gì, hôm nay làm gì, đang bị vướng ở đâu.
- Đọc yêu cầu. Người dùng muốn gì? Ví dụ: "Thêm nút để học sinh xem lại bài kiểm tra cũ." Lập trình viên phải hỏi lại cho rõ: xem được bao lâu, ai được xem, xem trên điện thoại có vừa màn hình không.
- Đọc mã có sẵn. Phần mềm thật thường có hàng chục nghìn, có khi hàng triệu dòng do nhiều người viết qua nhiều năm. Trước khi thêm gì, phải hiểu phần cũ chạy thế nào.
- Viết mã. Phần này nhiều khi không chiếm quá nửa ngày.
- Kiểm thử. Viết thêm những đoạn mã nhỏ để tự động kiểm tra phần mình vừa làm có đúng không, và không làm hỏng chỗ khác.
- Nhờ người khác đọc lại. Đồng đội xem mã mình viết, góp ý chỗ khó hiểu hoặc chỗ có thể sai. Đây gọi là duyệt mã.
- Tìm và sửa lỗi. Người dùng báo "bấm nút thì trắng màn hình". Lập trình viên phải lần ra vì sao, giống thám tử.
Có một sự thật làm nhiều người mới vào nghề ngạc nhiên: mã được đọc nhiều hơn được viết. Vì vậy lập trình viên giỏi viết mã sao cho người khác (và chính mình sáu tháng sau) đọc dễ hiểu, đặt tên rõ ràng, ghi chú chỗ khó.
Vài mốc lịch sử đáng nhớ
- Năm 1843: Ada Lovelace, nhà toán học người Anh, viết những ghi chú về cỗ máy tính toán do Charles Babbage thiết kế. Trong đó có một chuỗi bước để máy tính ra dãy số Bernoulli, thường được xem là một trong những chương trình máy tính đầu tiên, dù cỗ máy chưa bao giờ được chế tạo xong.
- Năm 1947: nhóm làm việc với máy tính Harvard Mark II, trong đó có nhà khoa học máy tính Grace Hopper, tìm thấy một con bướm đêm kẹt trong máy và dán nó vào sổ nhật ký, kèm dòng chữ ghi đó là "trường hợp thật sự đầu tiên tìm thấy bọ". Chữ "bug" (con bọ) để chỉ lỗi kỹ thuật đã có từ trước, nhưng câu chuyện này khiến nó gắn chặt với máy tính.
- Thập niên 1950: Grace Hopper và nhiều người khác phát triển những ngôn ngữ cho phép viết chương trình gần với chữ của con người hơn, thay vì toàn số 0 và 1.
Từ đó đến nay đã có hàng trăm ngôn ngữ lập trình ra đời. Lập trình viên lâu năm thường biết vài ngôn ngữ và học thêm cái mới khi cần, vì cách nghĩ thì giữ nguyên.
Những kỹ năng quan trọng hơn bạn nghĩ
Kiên nhẫn với lỗi
Máy tính làm đúng từng chữ bạn viết, không đoán ý. Thiếu một dấu chấm phẩy, gõ nhầm một chữ hoa, chương trình có thể không chạy. Tìm lỗi chiếm nhiều thời gian của mọi lập trình viên, kể cả người giỏi nhất. Người hợp nghề là người thấy việc lần ra lỗi giống giải câu đố, chứ không bực bội bỏ cuộc.
Diễn đạt rõ bằng lời
Phải hiểu người dùng muốn gì, phải giải thích cho đồng đội vì sao mình làm thế này, phải viết hướng dẫn sử dụng. Viết tiếng Việt mạch lạc là kỹ năng lập trình bị đánh giá thấp nhất.
Tiếng Anh
Phần lớn tài liệu, câu hỏi đáp và tên lệnh trong các ngôn ngữ lập trình dùng tiếng Anh. Đọc hiểu tiếng Anh kỹ thuật giúp tự học nhanh hơn rất nhiều.
Toán và logic
Không phải công việc nào cũng cần toán cao cấp, nhưng tư duy logic (nếu thì, và, hoặc, không) thì dùng hằng ngày. Các mảng như dữ liệu, đồ họa, trí tuệ nhân tạo cần nhiều toán hơn.
Nghĩ cho người dùng
Phần mềm tồn tại để giúp người. Lập trình viên giỏi hay tự hỏi: người ông không quen điện thoại có bấm được không? Bạn nhỏ gõ nhầm thì chuyện gì xảy ra?
Đường học
Theo chương trình giáo dục phổ thông 2018, Tin học là môn học bắt buộc từ lớp 3, nên học sinh Việt Nam đều được làm quen với máy tính và tư duy giải quyết vấn đề từ tiểu học. Các bước tiếp theo có thể là:
- THCS: học kỹ môn Tin, Toán. Thử các công cụ lập trình kéo thả để làm hoạt hình, câu đố nhỏ. Tham gia câu lạc bộ tin học, robot nếu trường có.
- THPT: học một ngôn ngữ viết bằng chữ. Làm những dự án nhỏ có ích: chương trình tính điểm trung bình, trang web giới thiệu lớp. Có thể tham gia các cuộc thi tin học dành cho học sinh.
- Sau THPT: các ngành công nghệ thông tin, khoa học máy tính, kỹ thuật phần mềm ở đại học, cao đẳng; hoặc các khoá học nghề, khoá ngắn hạn. Không ít người học ngành khác (vật lý, kinh tế, sinh học) rồi tự học lập trình để giải quyết việc trong ngành mình.
Nghề này thay đổi rất nhanh, công cụ năm nay có thể khác hẳn mười năm sau. Vì vậy thói quen tự học quan trọng không kém tấm bằng.
Thử làm: kiểm thử chỉ dẫn gấp thuyền giấy
Hoạt động này cho bạn nếm thử việc tìm lỗi và duyệt mã, không cần máy tính. Cần hai bạn, giấy A4, bút.
- Bạn A tự gấp một chiếc thuyền giấy, vừa gấp vừa viết lại từng bước bằng lời. Không vẽ hình, chỉ dùng chữ.
- Bạn B nhận tờ chỉ dẫn và một tờ giấy trắng, làm đúng từng chữ được viết, không đoán ý. Ví dụ: chỉ dẫn viết "gấp đôi" mà không nói gấp theo chiều nào thì B được chọn bất kỳ chiều nào.
- Bạn A chỉ được ngồi xem, không được nói.
- Mỗi khi B làm khác ý A, ghi vào bảng ba cột: Bước số mấy · Chỉ dẫn viết gì · B đã làm gì. Mỗi dòng là một "lỗi".
- A sửa chỉ dẫn rồi đưa cho bạn C làm thử lần nữa.
- Đếm số lỗi sau mỗi lần. Thường lần đầu có rất nhiều, lần ba còn rất ít.
Để ý loại lỗi hay gặp: thiếu bước, dùng từ mơ hồ ("gấp lại cho đẹp"), giả định người đọc đã biết điều mình biết. Đó chính là những lỗi lập trình viên gặp mỗi ngày.
Câu hỏi thường gặp
Lập trình viên làm những công việc gì?
Lập trình viên viết, đọc, kiểm thử và sửa chương trình máy tính. Ngoài gõ mã, họ dành nhiều thời gian tìm hiểu yêu cầu người dùng, đọc mã có sẵn, tìm lỗi, duyệt mã cho đồng đội và viết tài liệu.
Học lập trình có cần giỏi toán không?
Cần tư duy logic, còn mức toán thì tùy mảng. Làm trang web hay ứng dụng thường chỉ cần toán phổ thông, còn dữ liệu, đồ họa 3D hay trí tuệ nhân tạo cần toán sâu hơn. Toán và lập trình bổ trợ cho nhau, học cái này giúp cái kia.
Nên học ngôn ngữ lập trình nào trước?
Với trẻ nhỏ, công cụ kéo thả giúp hiểu ý tưởng mà không lo gõ sai. Lên cấp hai, cấp ba có thể chuyển sang một ngôn ngữ viết bằng chữ mà trường đang dạy hoặc thầy cô gợi ý. Ngôn ngữ đầu tiên không quan trọng bằng việc học cho vững cách nghĩ.
"Bug" trong lập trình nghĩa là gì?
"Bug" là lỗi khiến chương trình chạy sai hoặc không chạy. Chữ này đã được dùng cho lỗi kỹ thuật từ trước khi có máy tính, và trở nên nổi tiếng sau chuyện một con bướm đêm bị tìm thấy trong máy Harvard Mark II năm 1947. Việc tìm và sửa lỗi gọi là gỡ lỗi.
Lập trình viên có phải ngồi một mình cả ngày không?
Ít khi. Phần lớn phần mềm do nhóm làm, nên lập trình viên họp, trao đổi, duyệt mã cho nhau và làm việc với người thiết kế, người kiểm thử, người dùng. Biết hợp tác là kỹ năng quan trọng của nghề.
lập trình viênnghề lập trìnhgỡ lỗikiểm thửduyệt mãAda LovelaceGrace Hoppermôn Tin họctư duy logiclàm việc nhóm