Giải Tin Học 10 trang 160
Lời giải chi tiết SGK Lớp 10 · Môn Tin Há»c · Trang 160–165
Bài 34: Nghề phát triển phần mềm
🔍 Kiến thức cần nhớ
Bài học này thuộc nhóm bài định hướng nghề nghiệp, nội dung chủ yếu là lý thuyết và liên hệ thực tế. Em cần nắm vững các ý chính sau:
- Phát triển phần mềm (Software Development) là cả một quá trình gồm nhiều công việc, không chỉ là viết mã lệnh (lập trình). Các công đoạn cơ bản gồm:
- Điều tra, khảo sát
- Phân tích hệ thống
- Thiết kế hệ thống
- Lập trình
- Kiểm thử (Test)
- Chuyển giao
- Bảo trì
- Quản trị dự án (bao trùm toàn bộ quá trình)
- Ba hoạt động chính trong phát triển phần mềm:
- Lập trình
- Tổ chức phát triển phần mềm
- Quản trị dự án phát triển phần mềm
- Các vị trí công việc tiêu biểu:
- Lập trình viên (Programmer): viết mã thực hiện chức năng theo thiết kế.
- Kĩ sư phần mềm (Software Engineer): tổ chức làm phần mềm, phụ trách phân tích, thiết kế, có thể chủ trì quản trị dự án.
- Người quản trị dự án: lập kế hoạch, điều phối nguồn lực, giám sát để đảm bảo dự án thành công.
- Cơ hội nghề nghiệp rất đa dạng và nhu cầu nhân lực không ngừng tăng cao, đặc biệt trong bối cảnh Cách mạng công nghiệp lần thứ tư (AI, IoT, điện toán đám mây, Blockchain).
💡 Mẹo nhớ: Ghi nhớ 8 công đoạn theo dòng chảy "Khảo sát → Phân tích → Thiết kế → Lập trình → Kiểm thử → Chuyển giao → Bảo trì", với Quản trị dự án "ôm" toàn bộ.
⚙️ Bài tập
Câu Hoạt động 1
Đề bài: Theo em điều nào là đúng nhất trong các điều sau khi nói về phát triển phần mềm?
A. Phát triển phần mềm là lập trình
B. Phát triển phần mềm là quá trình gồm nhiều công việc và hoạt động
C. Phát triển phần mềm là quá trình gồm nhiều công việc và hoạt động có thể lặp đi lặp lại
D. Phát triển phần mềm là quản trị dự án phần mềm
Cách 1 — Phân tích loại trừ
- A sai: Lập trình chỉ là một hoạt động trong phát triển phần mềm.
- D sai: Quản trị dự án cũng chỉ là một hoạt động (dù có tính bao trùm), không phải toàn bộ.
- B đúng một phần: phát triển phần mềm đúng là gồm nhiều công việc và hoạt động.
- C đúng và đầy đủ nhất: ngoài việc gồm nhiều công việc và hoạt động, công đoạn bảo trì còn có thể tạo ra một vòng phát triển mới, nghĩa là quá trình có thể lặp đi lặp lại.
Đáp án: C.
Cách 2 — Chọn theo nguyên tắc "đầy đủ nhất"
Khi câu hỏi yêu cầu chọn ý "đúng nhất", ta ưu tiên phương án bao trùm được nhiều đặc điểm chính xác nhất. C bao trùm cả ý của B, đồng thời bổ sung tính lặp lại (qua công đoạn bảo trì). Do đó C là đáp án tối ưu.
⚠️ Lưu ý thi: Rất dễ chọn nhầm B. Hãy nhớ đặc trưng "lặp lại" của quy trình phần mềm để chọn C.
Câu Hoạt động 2
Đề bài: Theo em phát biểu "tất cả những người phát triển phần mềm đều có vai trò như nhau" là đúng hay sai?
Cách 1 — Dựa vào nội dung bài học
Phát biểu này sai. Lý do:
- Người phát triển phần mềm đảm nhận nhiều vị trí khác nhau: lập trình viên, kĩ sư phần mềm, người quản trị dự án...
- Mỗi vị trí có yêu cầu kiến thức, kĩ năng và mức độ trách nhiệm khác nhau. Ví dụ kĩ sư phần mềm cần kiến thức sâu về thuật toán, cấu trúc dữ liệu, phân tích thiết kế; lập trình viên khởi đầu chỉ cần hiểu biết cơ bản về một ngôn ngữ lập trình.
- Bài học so sánh: kĩ sư phần mềm và lập trình viên giống như "kiến trúc sư và thợ xây" trong xây dựng công trình. Vai trò rõ ràng là khác nhau.
Cách 2 — Phản ví dụ
Chỉ cần đưa ra một phản ví dụ là đủ chứng minh phát biểu sai: người quản trị dự án phụ trách lập kế hoạch, điều phối nhân sự, tài chính; còn lập trình viên viết mã. Hai vai trò này hoàn toàn khác nhau → phát biểu sai.
Câu hỏi củng cố mục 2 — Câu 1
Đề bài: Công việc của kĩ sư phần mềm gồm có:
A. Phân tích, thiết kế, phát triển phần mềm
B. Kiểm định và bảo trì phần mềm
C. Định hướng những người phát triển phần mềm
D. Tất cả những điều trên
Cách 1 — Đối chiếu vai trò kĩ sư phần mềm
Kĩ sư phần mềm là người tổ chức làm phần mềm, có thể phụ trách các khâu quan trọng. Cả ba ý A, B, C đều thuộc phạm vi công việc của họ:
- A: phân tích, thiết kế, phát triển — đúng.
- B: kiểm định và bảo trì — đúng.
- C: định hướng những người phát triển phần mềm — đúng (vai trò dẫn dắt, tổ chức).
Đáp án: D. Tất cả những điều trên.
Cách 2 — Suy luận theo cấp độ
Kĩ sư phần mềm ở "cấp độ cao hơn lập trình viên", bao quát toàn bộ quá trình. Khi một phương án liệt kê nhiều nhiệm vụ đều hợp lý và có lựa chọn "tất cả", chọn D là an toàn và chính xác.
Câu hỏi củng cố mục 2 — Câu 2
Đề bài: Theo em thì những kĩ năng, kiến thức nào là quan trọng nhất đối với nghề phát triển phần mềm?
Cách 1 — Trình bày theo nhóm kiến thức và kĩ năng
Những kiến thức, kĩ năng quan trọng nhất gồm:
Về kiến thức chuyên môn:
- Thành thạo ít nhất một ngôn ngữ lập trình.
- Hiểu biết về thuật toán và cấu trúc dữ liệu.
- Kiến thức nền tảng về khoa học máy tính, toán học, logic.
Về kĩ năng:
- Tư duy logic, phân tích và giải quyết vấn đề.
- Đức tính cẩn thận, tỉ mỉ (rất quan trọng khi viết và kiểm thử mã).
- Khả năng tự học, cập nhật công nghệ mới.
- Kĩ năng làm việc nhóm và giao tiếp.
Cách 2 — Nêu kĩ năng cốt lõi nhất
Nếu phải chọn một yếu tố quan trọng nhất, đó là tư duy giải quyết vấn đề kết hợp khả năng tự học. Công nghệ thay đổi liên tục, nên người biết tự học và biết phân rã, giải quyết vấn đề sẽ thích ứng tốt ở mọi vị trí.
💡 Mẹo nhớ: Nhớ bộ ba "Thuật toán – Cấu trúc dữ liệu – Tư duy logic" là nền móng của mọi người phát triển phần mềm.
Câu Hoạt động 3
Đề bài: Em có biết làm thế nào để trở thành người tham gia phát triển phần mềm? Theo em có những cơ hội nghề nghiệp nào cho người phát triển phần mềm?
Cách 1 — Trình bày theo con đường học tập
Để trở thành người phát triển phần mềm, em có thể:
- Bắt đầu với các khoá đào tạo về lập trình tại trung tâm, trường dạy nghề, hoặc công ty, tập đoàn.
- Học bậc đại học về tin học/công nghệ thông tin nếu muốn làm ở vị trí kĩ sư phần mềm.
- Dần dần tích luỹ kinh nghiệm qua các công việc thực tế.
Các cơ hội nghề nghiệp đa dạng:
- Lập trình ứng dụng.
- Phát triển giao diện người dùng.
- Phát triển ứng dụng trên web, phần mềm hệ thống, quản trị hệ thống thông tin.
- Lập trình trí tuệ nhân tạo, máy học.
- Phát triển games.
- Phát triển ứng dụng di động.
Cách 2 — Liên hệ thực tế tìm việc
Có thể tìm kiếm cơ hội qua hội chợ việc làm do các tỉnh, thành phố tổ chức; các công ty, tập đoàn công nghệ (FPT, Viettel, VNPT...); hoặc trên các trang tuyển dụng trực tuyến như TopDev, Vietnamworks, LinkedIn. Nhu cầu nhân lực ngành này chiếm tỉ lệ cao nhất trong tuyển dụng Công nghệ thông tin.
Câu hỏi củng cố mục 3 — Câu 1
Đề bài: Em đánh giá thế nào về cơ hội việc làm trong tương lai đối với nghề phát triển phần mềm?
Cách 1 — Đánh giá dựa trên xu hướng công nghệ
Cơ hội việc làm rất rộng mở và ngày càng tăng, vì:
- Nhu cầu nhân lực phát triển phần mềm chiếm tỉ lệ cao nhất trong ngành Công nghệ thông tin.
- Cách mạng công nghiệp 4.0 với AI, IoT, điện toán đám mây, Blockchain liên tục mở ra cơ hội mới.
- Phần mềm được ứng dụng trong mọi lĩnh vực của đời sống xã hội, nên nhu cầu không ngừng phát triển.
Kết luận: đây là nghề có triển vọng tốt, thu nhập được đánh giá cao và ổn định trong tương lai.
Cách 2 — Đánh giá theo góc nhìn cá nhân
Em có thể nêu đánh giá riêng, miễn là có căn cứ: ví dụ "Em cho rằng cơ hội rất lớn vì hầu hết các thiết bị, dịch vụ hiện nay đều cần phần mềm, và số lượng việc tuyển dụng lập trình viên luôn nhiều hơn nguồn cung."
Câu hỏi củng cố mục 3 — Câu 2
Đề bài: Theo em người tốt nghiệp các trường đại học về công nghệ thông tin có thể làm những công việc gì? Cho những đơn vị như thế nào?
Cách 1 — Liệt kê công việc và đơn vị
Công việc có thể làm:
- Lập trình viên, kĩ sư phần mềm, người phân tích – thiết kế hệ thống, kiểm thử, quản trị dự án.
- Phát triển ứng dụng web, ứng dụng di động, games, trí tuệ nhân tạo, quản trị hệ thống thông tin và cơ sở dữ liệu.
Đơn vị có thể làm việc:
- Các công ty, tập đoàn công nghệ (FPT, Viettel, VNPT...).
- Các doanh nghiệp phần mềm trong và ngoài nước.
- Các cơ quan, tổ chức, ngân hàng, trường học có bộ phận công nghệ thông tin.
- Khởi nghiệp tự thành lập công ty công nghệ.
Cách 2 — Phân theo định hướng nghề
Người tốt nghiệp có thể đi theo hai hướng: hướng kĩ thuật chuyên sâu (lập trình, AI, an ninh mạng) hoặc hướng quản lý – tổ chức (kĩ sư phần mềm, quản trị dự án). Cả hai đều có nhu cầu tại doanh nghiệp công nghệ, cơ quan nhà nước và tổ chức quốc tế.
⚙️ Phần Luyện tập
Câu 1
Đề bài: Mô tả quy trình phát triển phần mềm.
Cách 1 — Mô tả tuần tự từng công đoạn
Quy trình phát triển phần mềm gồm các công đoạn:
- Điều tra, khảo sát: tiếp xúc khách hàng, tìm hiểu yêu cầu nghiệp vụ, xây dựng hồ sơ yêu cầu của hệ thống.
- Phân tích hệ thống: dựa trên tài liệu khảo sát, chuyên viên phân tích tạo ra tài liệu mô tả đầy đủ yêu cầu của phần mềm.
- Thiết kế hệ thống: đưa ra thiết kế tổng thể, thiết kế dữ liệu, thiết kế chức năng và giao diện chi tiết.
- Lập trình: tạo cơ sở dữ liệu (nếu cần) và viết các đoạn mã thực hiện các chức năng.
- Kiểm thử: phát hiện và loại bỏ các lỗi, kiểm tra kết quả thực hiện theo chức năng đã thiết kế.
- Chuyển giao: cài đặt, khởi tạo dữ liệu, hướng dẫn sử dụng và bàn giao cho người dùng.
- Bảo trì: khắc phục triệt để các lỗi, nâng cấp tính năng và giao diện; có thể tạo ra một vòng phát triển mới.
Bao trùm toàn bộ là hoạt động quản trị dự án (lập kế hoạch, điều phối nhân sự, tài chính, kiểm soát chất lượng).
Cách 2 — Mô tả theo sơ đồ dòng chảy
Có thể tóm gọn quy trình bằng sơ đồ:
Khảo sát → Phân tích → Thiết kế → Lập trình → Kiểm thử → Chuyển giao → Bảo trì → (quay lại vòng mới nếu cần). Toàn bộ vòng này được Quản trị dự án giám sát từ đầu đến cuối.
Câu 2
Đề bài: Theo em để theo học ngành phát triển phần mềm em cần chuẩn bị tốt những môn học nào?
Cách 1 — Theo nhóm môn học
Các môn cần chuẩn bị tốt:
- Tin học: nền tảng quan trọng nhất, đặc biệt là tư duy lập trình và thuật toán.
- Toán học: rèn tư duy logic, hỗ trợ thuật toán và cấu trúc dữ liệu.
- Tiếng Anh: đọc tài liệu kĩ thuật, ngôn ngữ lập trình đều dùng tiếng Anh.
- Vật lí (với một số định hướng phần cứng, hệ thống nhúng).
Cách 2 — Theo khối thi đại học
Ngành Công nghệ thông tin thường tuyển các khối có Toán, Lý, Hoá hoặc Toán, Lý, Tiếng Anh (khối A00, A01). Vì vậy em nên đầu tư mạnh vào Toán, Tiếng Anh, Tin học để vừa đủ điều kiện xét tuyển vừa có nền tảng tốt khi học chuyên ngành.
💡 Mẹo nhớ: Bộ ba "Toán – Tin – Tiếng Anh" là hành trang cốt lõi cho người học phát triển phần mềm.
Câu 3
Đề bài: Hãy liệt kê một vài phần mềm ứng dụng mà em biết.
Cách 1 — Liệt kê theo nhóm chức năng
- Soạn thảo văn bản, bảng tính, trình chiếu: Microsoft Word, Excel, PowerPoint.
- Trình duyệt web: Google Chrome, Cốc Cốc, Microsoft Edge.
- Nhắn tin, gọi điện: Zalo, Messenger, Zoom.
- Giải trí: YouTube, Spotify, các phần mềm trò chơi.
- Học tập: phần mềm từ điển, GeoGebra.
Cách 2 — Liệt kê theo thiết bị sử dụng
- Trên máy tính: Word, Excel, Photoshop, trình duyệt web.
- Trên điện thoại di động: Zalo, Facebook, Google Maps, các app ngân hàng.
⚙️ Phần Vận dụng
Các câu Vận dụng yêu cầu em tìm hiểu thực tế tại địa phương, nên đáp án thay đổi tuỳ nơi em sinh sống. Dưới đây là hướng làm và ví dụ minh hoạ.
Câu 1
Đề bài: Ở khu vực nơi em sinh sống hay các tỉnh thành phố lân cận, trường đại học nào đào tạo nghề phát triển phần mềm? Khối thi ngành liên quan đến phát triển phần mềm của trường đó là gì?
Cách 1 — Hướng dẫn tra cứu
Em tìm trên website của các trường đại học gần nơi em ở, vào mục tuyển sinh ngành Công nghệ thông tin / Kĩ thuật phần mềm để biết khối thi.
Ví dụ minh hoạ:
- Đại học Bách khoa Hà Nội — ngành Khoa học máy tính, Kĩ thuật phần mềm — khối A00, A01.
- Trường Đại học Công nghệ (ĐHQG Hà Nội) — ngành Công nghệ thông tin — khối A00, A01.
- Đại học FPT — ngành Kĩ thuật phần mềm — khối A00, A01, D01.
Cách 2 — Theo khu vực miền Nam (ví dụ khác)
- Đại học Bách khoa TP.HCM, Đại học Khoa học Tự nhiên (ĐHQG TP.HCM) — ngành Công nghệ thông tin — khối A00, A01.
Câu 2
Đề bài: Ở tỉnh thành phố nơi em cư trú có Trung tâm dạy nghề phát triển phần mềm nào không? Liệt kê một vài khoá học tiêu biểu mà họ cung cấp. Chia sẻ thông tin em tìm hiểu được với các bạn.
Cách 1 — Hướng dẫn tìm hiểu
Em tìm trên Internet hoặc hỏi người quen về các trung tâm đào tạo lập trình tại địa phương.
Ví dụ các khoá học tiêu biểu thường gặp:
- Khoá lập trình Python cơ bản.
- Khoá lập trình web (HTML, CSS, JavaScript).
- Khoá lập trình ứng dụng di động (Android/iOS).
- Khoá Java, C/C++ cho người mới bắt đầu.
Cách 2 — Gợi ý các đơn vị phổ biến
Một số hệ thống đào tạo có nhiều cơ sở trên cả nước như FPT Aptech, CodeGym, các trung tâm tin học của trường đại học. Em ghi lại tên trung tâm, địa chỉ, học phí và khoá học rồi chia sẻ với bạn bè.
Câu 3
Đề bài: Ở tỉnh thành phố nơi em cư trú có doanh nghiệp nào chuyên về phát triển phần mềm không? Họ có cung cấp các chương trình đào tạo cho người muốn trở thành người phát triển phần mềm của công ty hay không?
Cách 1 — Hướng dẫn tìm hiểu
Em tìm thông tin doanh nghiệp công nghệ tại địa phương qua website, trang tuyển dụng hoặc người quen làm trong ngành.
Ví dụ minh hoạ: Nhiều công ty lớn như FPT Software, Viettel, VNPT có chương trình tuyển dụng và đào tạo cho sinh viên mới (fresher) hoặc thực tập sinh, nhằm bổ sung nguồn nhân lực cho chính công ty.
Cách 2 — Tìm theo hình thức "đào tạo gắn tuyển dụng"
Nhiều doanh nghiệp tổ chức các chương trình "fresher academy" hoặc "internship": người học được đào tạo miễn phí hoặc có hỗ trợ, sau đó nếu đạt yêu cầu sẽ được nhận vào làm. Em ghi lại tên doanh nghiệp và hình thức đào tạo họ cung cấp.
🎯 Ghi nhớ: - Phát triển phần mềm là cả một quá trình gồm nhiều công việc, có thể lặp lại, chứ không chỉ là lập trình. - Ba hoạt động chính: lập trình, tổ chức phát triển, quản trị dự án. - Ba vị trí tiêu biểu: lập trình viên, kĩ sư phần mềm, người quản trị dự án — vai trò khác nhau. - Nghề phát triển phần mềm có cơ hội việc làm rộng mở và nhu cầu nhân lực không ngừng tăng. - Hành trang quan trọng: tư duy logic, thuật toán, cấu trúc dữ liệu, khả năng tự học và các môn Toán – Tin – Tiếng Anh.
