Hồ Bảo Tín Wiki
Vào thế giới

💡 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

8 phút đọc · cập nhật

Trong bài
  1. Phần mềm ở khắp nơi, lập trình viên cũng vậy
  2. Một ngày làm việc thật sự
  3. Vài mốc lịch sử đáng nhớ
  4. Những kỹ năng quan trọng hơn bạn nghĩ
  5. Đường học
  6. Thử làm: kiểm thử chỉ dẫn gấp thuyền giấy

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ảngHọ làm gìVí dụ gần gũi
WebLà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 độngLà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úngViết chương trình chạy bên trong máy mócNồi cơm điện hẹn giờ, máy giặt, ô tô
Dữ liệuXử lý lượng thông tin lớn để tìm quy luậtDự báo thời tiết, thống kê dịch bệnh
An toàn thông tinTìm và vá lỗ hổng để kẻ xấu không lợi dụngBảo vệ tài khoản ngân hàng
Khoa họcViết chương trình mô phỏng, tính toánMô 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:

  1. 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.
  2. Đọ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.
  3. Đọ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.
  4. Viết mã. Phần này nhiều khi không chiếm quá nửa ngày.
  5. 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.
  6. 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ã.
  7. 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.

  1. 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ữ.
  2. 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.
  3. Bạn A chỉ được ngồi xem, không được nói.
  4. 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".
  5. A sửa chỉ dẫn rồi đưa cho bạn C làm thử lần nữa.
  6. Đế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

Đọc tiếp

Nhà thiết kế đồ họa làm gì: logo, biển báo, bao bì và cách xếp chữNhà thiết kế đồ họa sắp xếp chữ, hình và màu để người xem hiểu đúng trong vài giây. Bài giải thích thứ bậc, tương phản, lưới, hình hiệu, biển báo và một bài thử ba giây.Nghề biên kịch làm việc với ai: đạo diễn, diễn viên và các vòng sửaBiên kịch viết bản đầu một mình, rồi kịch bản qua tay nhà sản xuất, đạo diễn, diễn viên, phòng biên kịch và nhiều vòng sửa. Bài kể buổi đọc quanh bàn và cách vào nghề.Nhà thiết kế đồ chơi làm gì: ý tưởng, mẫu thử và kiểm tra an toànNhà thiết kế đồ chơi đi từ hiểu trẻ theo từng tuổi, phác ý tưởng, làm mẫu thử, cho trẻ dùng thử tới kiểm tra an toàn và sản xuất. Kèm cách tự làm đồ chơi tái chế an toàn.Hồ sơ sáng tạo cho học sinh: lưu tác phẩm từ nhỏ gọn gàng và có íchHồ sơ sáng tạo là nơi lưu tranh, truyện, mô hình kèm ghi chú quá trình. Bài chỉ cách chọn gì để giữ, cất giấy và ảnh số, chọn bộ trưng bày và chia sẻ an toàn cho trẻ.Tư duy lập trìnhGỡ lỗi như thám tử: cách tìm chỗ sai từng bước khi làm không chạyGỡ lỗi là tìm vì sao một việc không chạy rồi sửa đúng chỗ: tái hiện lỗi, đặt giả thuyết, mỗi lần đổi một thứ. Kèm chuyện con bướm đêm năm 1947 và bài tập tìm lỗi.Thiết kế không gian & thử tháchChuỗi câu đố trong phòng thoát hiểm: cách nối manh mối thành một mạchCâu đố trong phòng thoát hiểm nối thẳng hàng, song song hoặc nhiều nhánh gom về câu đố tổng. Cách khớp đầu ra với đầu vào, gợi ý ba mức, an toàn và hộp câu đố tự làm.