ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP LẬP TRÌNH WEB Công ty thực tập: Công ty Manabie Vietnam Người phụ trách
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH WEB
Công ty thực tập: Công ty Manabie
Vietnam
Người phụ trách: Trần Nguyễn Đức Duy
Thực tập sinh: Nguyễn Lê Minh
Mã số sinh viên: 18520100
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH WEB
Công ty thực tập: Công ty Manabie
Vietnam
Người phụ trách: Trần Nguyễn Đức Duy
Thực tập sinh: Nguyễn Lê Minh
Mã số sinh viên: 18520100
TP Hồ Chí Minh, tháng 12 năm 2022
Trang 3LỜI CẢM ƠN
Em xin chân thành cảm ơn nhà trường và quý thầy cô trường Đại học Công Nghệ Thông Tin đã tận tâm hướng dẫn, giảng dạy cho em những kiến thức chuyên môn cũng như kỹ năng mềm trong hơn 3 năm ngồi trên giảng đường đại học, từ đó đã xây dựng cho
em nền tảng vững chắc tạo giúp em thực hiện hóa ước mơ
Trân trọng gửi lời cảm ơn Công ty Manabie Vietnam đã tạo điều kiện cho em có cơ hội được thực tập tại công ty, cho em trải nghiệm một môi trường làm việc cực kỳ chuyên nghiệp và hiệu quả Cùng với các người đồng đội trong kỳ thực tập, em mong rằng chúng
em đã để lại một dấu ấn, những kỷ niệm đẹp trong kỳ thực tập vừa qua
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị hướng dẫn, em đã tiếp thu được những kiến thức quan trọng để có thể làm được một sản phẩm phần mềm hoàn chỉnh Chân thành cảm ơn các anh chị trong nhóm hướng dẫn đã
bỏ ra nhiều thời gian, công sức để hướng dẫn em hoàn thành đợt thực tập này
Bên cạnh kinh nghiệm quý báu về kỹ năng chuyên môn về lập trình web, còn có những kỹ năng về làm việc nhóm, quy trình làm việc chuyên nghiệp Các anh chị hướng dẫn đã dạy em những kỹ thuật cần thiết trong giao tiếp và truyền đạt cho em những kinh nghiệm của anh chị trong quá trình làm việc, trao đổi với khách hàng và tinh thần trách nhiệm với công việc và với đồng đội Các anh chị đã tạo cho em nhiều cơ hội để ứng dụng những kiến thức đó vào thực tế để xây dựng dự án thực tiễn đi từ lúc ban đầu, nâng cao trình độ, cũng như tốc độ lập trình và trí thức thêm một bậc
Em xin chân thành cảm ơn!
Nguyễn Lê Minh TP.Hồ Chí Minh, tháng 12 năm 2022
Trang 4LỜI MỞ ĐẦU
Vào thế kỷ 21, cuộc cách mạng Công nghiệp 4.0 Internet bùng nổ kéo theo rất nhiều những đổi mới với các công nghệ kỹ thuật số sắp tới, giúp mọi việc trở nên dễ dàng, thuận tiện hơn bao giờ hết Điển hình có thể kể đến các ứng dụng học trực tuyến đã cung cấp cho học sinh những điều kiện và sức mạnh to lớn song song với cách học truyền thống, đồng thời thầy cô và phụ huynh cũng dễ dàng tương tác và nắm bắt được tình hình học tập của các em
Manabie với xuất phát điểm là ứng dụng học tập trực tuyến cho học sinh phổ thông với hệ thống bài giảng video hoạt hình vui nhộn, kích thích khả năng học tập và có nội dung được cập nhật liên tục phù hợp với thay đổi mới
Sau quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin chúng em đã được trang bị các kiến thức về chuyên môn và kỹ năng mềm Với mong muốn bổ sung thêm kinh nghiệm và các kỹ năng làm việc trong một môi trường chuyên nghiệp, em lên kế hoạch cho một khóa thực tập trong học kỳ này Sau khi tìm hiểu về lịch sử phát triển và văn hóa thì em quyết định chọn Công Ty Manabie Vietnam - một môi trường lý tưởng, hiện đại, chuyên nghiệp, đa quốc gia - là nơi sẽ giúp
em thực hiện hóa dự định này
2 | Page
Trang 5NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 6MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 5
1.2.2 Website quản lý học tập phụ huynh - giáo viên 6
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
4 | Page
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
Hình 1-1 Logo công ty Manabie
1.1 Giới thiệu công ty Manabie Vietnam
- Tên đơn vị: Công ty Manabie Vietnam
- Lĩnh vực hoạt động: Edtech
- Địa chỉ: 13 Tôn Đản quận 4, tp Hồ Chí Minh
- Trang web: https://www.manabie.vn/
- Thời gian làm việc: Thứ 2 đến thứ 6: 09h00 - 18h00
- Sứ mệnh: Xây dựng các sản phẩm phần mềm mang lại nhiều giá trị cho người dùng
1.2 Sản phẩm của công ty
1.2.1 App manabie
Hình 1-2 Manabie Thumbnail
- Giá trị cốt lõi:
● Truy cập không giới hạn kho video bài giảng sinh động và bộ câu hỏi trắc nghiệm phong phú ngay trên ứng dụng thông minh
● Cải thiện kết quả học tập rõ rệt cùng đội ngũ cố vấn và giáo viên chuyên môn, giúp xây dựng kế hoạch và mục tiêu học tập dựa trên năng lực
Trang 8● Giáo viên theo sát và kèm cặp từng học viên, thống kê báo cáo học tập hàng tuần, cải thiện điểm số nhanh chóng
Download tại: https://www.manabie.vn/
1.2.2 Website quản lý học tập phụ huynh - giáo viên
- Giá trị cốt lõi:
● Video hoạt hình độc quyền và bộ đề trên ứng dụng trực quan và dễ hiểu, học bất cứ nơi đâu, bất cứ lúc nào!
● Lấy học viên làm trọng tâm, dựa trên phân tích dữ liệu giúp cá nhân hóa lộ trình học tập theo sức học
● Đội ngũ chuyên môn đến từ trong và ngoài nước với nhiều năm kinh nghiệm giúp học viên đạt kết quả cao
● Trải nghiệm học tập mới mẻ, hiện đại giúp học viên phát triển toàn diên theo
xu thế giáo dục 4.0
Hình 1-3 Manabie
Địa chỉ website: https://hub.manabie.vn/
6 | Page
Trang 9CHƯƠNG 2: NỘI DUNG THỰC TẬP
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Thời gian: 0.5 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được bộ phận tuyển dụng giới thiệu về công ty, nhân sự, bộ phận lãnh đạo, quá trình thành lập và phát triển, quy trình làm việc, cách tổ chức của công ty, văn hóa, phúc lợi của nhân viên…
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, các bước cần thực hiện trước khi bắt đầu vào làm, trong quá trình làm việc và khi kết thúc một ngày làm việc
Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc Cũng trong thời gian này, các anh chị hướng dẫn thực tập sinh tìm hiểu các công cụ phục vụ cho từng mục đích cụ thể khi làm việc Có các ứng dụng, phần mềm hỗ trợ như Google Meet – phục vụ cho mục đích gặp và trao đổi trực tiếp khi work from home, tham gia các buổi Workshop, Tech Talk hay Meeting diễn ra thường xuyên và đều đặn trong công ty
Kết quả: Hiểu thêm về công ty, quá trình thành lập và phát triển cho đến hiện tại.
Cách vận hành trong công ty, cách phối hợp với nhau giữa các thành viên Có thêm các
kỹ năng về việc quản lý dự án, tinh thần trách nhiệm, kỹ năng giao tiếp qua các công cụ
do công ty cung cấp
2.2 Nghiên cứu kỹ thuật
2.2.1 Mô hình Agile
Thời gian: 2 ngày song song với thực hành trong suốt quá trình thực tập.
Nội dung: Được training về các kiến thức chung và tìm hiểu về việc áp dụng mô
hình vào quy trình làm việc nhóm trong quá trình thực tập Đây là mô hình làm việc mà công ty đã apply vào sử dụng trên mọi product của công ty
Trang 10Khái niệm Agile (viết tắt của Agile Software Development) có nghĩa là phương thức phát triển phần mềm linh hoạt, được ứng dụng trong quy trình phát triển phần mềm với mục tiêu là đưa sản phẩm đến tay người dùng càng nhanh càng tốt
Rất nhiều nơi định nghĩa Agile như một phương pháp Thực chất, Agile giống như một phương pháp luận, một triết lý dựa trên hơn nguyên tắc phân đoạn vòng lặp (iterative) và tăng trưởng (incremental)
Ngày nay, triết lí Agile đã vượt xa khỏi khu vực truyền thống của mình là phát triển phần mềm để đóng góp sự thay đổi trong cách thức làm việc, quản lý, sản xuất ở các ngành khác như sản xuất, dịch vụ, sales, marketing, giáo dục và trở thành một phương thức quản lý dự án phổ biến nhất hiện nay với nhiều đại diện được gọi là các phương pháp
“họ Agile”
Bốn tôn chỉ cần tuân thủ trong phương pháp Agile:
- Cá nhân và sự tương hỗ quan trọng hơn quy trình và công cụ: Trọng tâm đặt
lên con người, xây dựng tương tác và hỗ trợ giữa các thành viên trong nhóm Những thành viên có năng lực, chịu tương trợ nhau trong công việc sẽ mang đến thành công cho dự án
- Sản phẩm dùng được tốt hơn tài liệu đầy đủ: Tập trung thời gian để làm ra
phần mềm hoàn chỉnh đáp ứng hoàn hảo yêu cầu khách hàng
- Cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng: Hiểu được
khách hàng cần gì để tư vấn và điều chỉnh sản phẩm thay vì chỉ dựa vào các điều khoản trong hợp đồng
- Phản hồi thay đổi hơn là bám sát kế hoạch: Agile khuyến khích thích nghi với
sự thay đổi, đó có thể là thay đổi về công nghệ, nhân sự, deadline…
12 nguyên tắc quan trọng trong Agile:
- Đáp ứng toàn diện nhu cầu khách hàng thông qua việc giao hàng sớm và sản phẩm có giá trị
- Thay đổi yêu cầu được chào đón, thậm chí là rất muộn trong quá trình phát triển
- Giao phần mềm chạy được cho khách hàng một cách thường xuyên
- Nhà kinh doanh và các kỹ sư phần mềm cần làm việc cùng nhau trong suốt dự án
8 | Page
Trang 11- Xây dựng dự án xung quanh các cá nhân có động lực Cung cấp sự hỗ trợ cần thiết, môi trường làm việc và niềm tin để hoàn thành công việc
- Trao đổi trực tiếp là cách truyền đạt thông tin hiệu quả nhất
- Thước đo chính của tiến độ là phần mềm chạy tốt
- Phát triển liên tục và bền vững
- Cải tiến sự linh hoạt bằng cách quan tâm đến kỹ thuật và thiết kế
- Nghệ thuật tối đa hóa lượng công việc chưa xong - Sự đơn giản là cần thiết
- Nhóm tự tổ chức
- Thích ứng thường xuyên với những thay đổi
Điểm mạnh:
- Thực hiện thay đổi dễ dàng
- Không cần phải nắm mọi thông tin ngay từ đầu
- Bàn giao nhanh hơn
- Chú ý đến phản hồi của khách hàng và người dùng
- Cải tiến liên tục
Agile ở Manabie:
- Sprint Planning (Họp Kế hoạch Sprint- Iteration): Nhóm phát triển gặp gỡ với
Product Owner để lên kế hoạch làm việc cho một Sprint (xem thêm phần Sprint bên dưới) Công việc lập kế hoạch bao gồm việc chọn lựa các yêu cầu cần phải phát triển, phân tích và nhận biết các công việc phải làm kèm theo các ước lượng thời gian cần thiết để hoàn tất các tác vụ Chia nhỏ công việc thành các backlog (task) để có thể theo dõi tiến độ dự án dễ dàng hơn Scrum sử dụng cách thức lập
kế hoạch từng phần và tăng dần theo thời gian, theo đó, việc lập kế hoạch không diễn ra duy nhất một lần trong vòng đời của dự án mà được lặp đi lặp lại, có sự thích nghi với các tình hình thực tiễn trong tiến trình đi đến sản phẩm
- Daily Scrum (Họp Scrum hằng ngày): Scrum Master tổ chức cho Đội sản xuất
họp hằng ngày trong khoảng 15 phút để Nhóm Phát triển chia sẻ tiến độ công việc cũng như chia sẻ các khó khăn gặp phải trong quá trình phát triển phần mềm suốt một Sprint
Trang 12- Sprint Review (Họp Sơ kết Sprint): Cuối Sprint, nhóm phát triển cùng với
Product Owner sẽ rà soát lại các công việc đã hoàn tất (DONE) trong Sprint vừa qua và đề xuất các chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm
- Sprint Retrospective (Họp Cải tiến Sprint): Dưới sự trợ giúp của Scrum
Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm
Kết quả: Tham gia đầy đủ các buổi training, hiểu được những khái niệm của Agile
và áp dụng tốt vào quá trình deliver sản phẩm
2.2.2 Tìm hiểu về Web
Thời gian: 3 ngày
Nội dung: Nắm kiến thức tổng quát về client-server, các lý thuyết liên quan, tìm
hiểu và triển khai lên dự án thực tế, kèm theo đó là testing các chức năng đã hoàn thiện
Client-server: là mô hình mạng máy tính gồm có 2 thành phần chính đó là máy
khách (client) và máy chủ (server) Server chính là nơi giúp lưu trữ tài nguyên cũng như cài đặt các chương trình dịch vụ theo đúng như yêu cầu của client Ngược lại, Client bao gồm máy tính cũng như các loại thiết bị điện tử nói chung sẽ tiến hành gửi yêu cầu đến server
Unit test: là một loại kiểm thử phần mềm trong đó các đơn vị hay thành phần riêng
lẻ của phần mềm được kiểm thử Kiểm thử đơn vị được thực hiện trong quá trình phát triển ứng dụng Mục tiêu của Kiểm thử đơn vị là cô lập một phần code và xác minh tính chính xác của đơn vị đó
Về các thư viện xây dựng web:
Client - Reactjs: là một thư viện JavaScript front-end mã nguồn mở và miễn phí để xây dựng giao diện người dùng dựa trên các thành phần UI riêng lẻ Nó được phát triển và duy trì bởi Meta và cộng đồng các nhà phát triển và công ty cá nhân
Server - Golang: là ngôn ngữ lập trình mã nguồn mở, được thiết kế tại Google bởi Robert Griesemer, Rob Pike, and Ken Thompson
10 | Page
Trang 13Database - Postgresql: là một hệ quản trị cơ sở dữ liệu quan hệ và đối tượng dựa trên POSTGRES, bản 4.2, được khoa điện toán của đại học California tại Berkeley phát triển
Trang 14CHƯƠNG 3: TỔNG KẾT
3.1 Thành quả
Hoàn thành sản phẩm với team gồm 14 thành viên, trải nghiệm thực tế quá trình phát triển một ứng dụng Áp dụng tốt quy trình Agile, làm việc nhóm hiệu quả Nâng cao
kỹ năng giao tiếp
Học hỏi và phát triển rất nhiều về kiến thức lẫn kỹ năng trong lập trình web Hiểu và
áp dụng tốt được SOLID Principles, Event Driven Architecture, Git, CI/CD pipeline Hơn hết, được phát triển khả năng làm việc nhóm, tư duy trong lập trình, kỹ năng xử lý tình huống dần được hoàn thiện
Cảm nhận được tâm huyết của mọi người trong quá trình xây dựng một sản phẩm, tinh thần trách nhiệm của mỗi cá nhân làm nên một tập thể lớn Được trải nghiệm tất cả các công việc phát triển sản phẩm từ việc lên các ý tưởng, xây dựng concept, lên kế hoạch cho đến các công việc hằng ngày, trao đổi giữa các thành viên, rút kinh nghiệm sau mỗi giai đoạn ngắn Từ những bước nhỏ nhưng không thể thiếu đó, các thành viên đã cùng nhau tạo nên một sản phẩm hoàn chỉnh
3.2 Bài học
Sau khi hoàn thành kỳ thực tập, tự bản thân em và các anh chị trong công ty đánh giá là có kiến thức cơ bản tốt về lập trình nhưng cần phải rèn luyện thêm, học thêm nhiều kiến trúc hệ thống, thiết kế hạ tầng để xây dựng nền tảng vững chắc tạo bàn đạp để phát triển cho tương lai
3.3 Cảm nhận của bản thân về công ty
Em cảm thấy thật sự may mắn khi có cơ hội thực tập tại công ty Em đã được hướng dẫn và hỗ trợ tận tình bởi các anh chị, có cơ hội làm việc với những dự án thực tế và học được nhiều kiến thức, nâng cao kinh nghiệm chuyên môn Công ty cũng đã cung cấp các
cơ hội học hỏi và phát triển kỹ năng qua các chương trình huấn luyện và các sự kiện trong công ty Em xin chân thành cảm ơn công ty đã cho em cơ hội thực tập, làm việc tại công ty
12 | Page
Trang 15DANH MỤC TÀI LIỆU THAM KHẢO