Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia vào Công ty TNHH AIO
Trang 1TRƯỜ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 viên Backend
Công ty thực tập: Công ty TNHH
AIOZ Việt Nam Người phụ trách: Cao Trọng Đại Thực tập sinh: Đoàn Ngọc Lãm
Trang 2TP Hồ Chí Minh, tháng 7 năm 2023
LỜI MỞ ĐẦU
Trong cuộc cách mạng công nghiệp 4.0, công nghệ thông tin nói chung và ngành Công nghệ phần mềm nói riêng luôn là nhân tố đóng vai trò quan trọng trong quá trình phát triển của xã hội
Công nghệ Web, hay công nghệ sản xuất các trang web đã phục vụ hầu hết các nhu cầu của con người từ bán hàng, cung cấp kiến thức đến thông tin liên lạc, lưu trữ dữ liệu, Hiện nay đã có đến hơn 1.5 tỷ trang web, nhưng nhu cầu tạo ra những trang web mới vẫn chưa có dấu hiệu giảm
Do đó, một trang web muốn được nhiều người sử dụng phải đáp ứng được yếu tố hình thức và nội dung Khi truy cập vào một trang web, những thông tin chúng
ta nhìn thấy và tiếp nhận như âm thanh hình ảnh, chữ viết đó chính là Frontend Đối lập với Frontend, Backend chính là những phần bên trong bao gồm các cơ sở dữ liệu, các ứng dụng
và máy chủ Sự phối hợp của 2 phần này giúp cho website hoạt động tốt và cung cấp đầy đủ thông tin cần thiết cho người dùng một cách nhanh chóng và kịp thời Bản thân là người không có thế mạnh về nghệ thuật nên em lựa chọn Backend developer là định hướng cho việc học cũng như nghề nghiệp trong tương lai
Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong môi trường thực tế,
em đã quyết định tham gia vào Công ty TNHH AIOZ Việt Nam – một công
ty về Công nghê Blockchain và là một môi trường lý tưởng và chuyên nghiệp để em thử thách bản thân cũng như thực hiện dự định
Trang 3LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn toàn thể các anh chị ở Công ty TNHH AIOZ Việt Nam đã tạo điều kiện cho em cơ hội được thực tập tại công ty
Dù trong thời gian ngắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Cao Trọng Đại, em đã tiếp thu những kiến thức quan trọng để có thể tham gia một dự án thực tế
Chân thành cảm ơn Công ty TNHH AIOZ Việt Nam và các anh chị trong team Blockchain đã bỏ ra nhiều thời gian, công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khi làm quen môi trường mới cũng như trong việc tiếp cận kiến thức công nghệ, kỹ năng lập trình và tư duy sản phẩm để có thể thực hiện tốt dự án cá nhân và dự án thực tế trong thời gian qua
Trong khoảng thời gian thực tập tại công ty, em đã có nhiều kinh nghiệm hơn trong công việc nhưng vì kiến thức còn hạn chế và có nhiều bỡ ngỡ trong quá trình thực tập, khó tránh khỏi sai sót, rất mong quý thầy, cô bỏ qua Đồng thời trong quá trình làm báo cáo có thể có nhiều thiếu sót nên
em rất mong được nhận các ý kiến đóng góp từ thầy cô, để em có thêm nhiều kinh nghiệm và rút ra được bài học cho mình
Vì yêu cầu và chính sách bảo mật của quý doanh nghiệp nên các tài liệu, hình minh hoạ và sản phẩm của phía công ty không được tiết lộ ra bên ngoài.
Em cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm báo cáo này
TP HCM, ngày 17 tháng 7 năm
2023
Đoàn Ngọc Lãm
Trang 4NHẬN XÉT CỦA KHOA
Trang 5
MỤC LỤC LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
NHẬN XÉT CỦA KHOA 4
MỤC LỤC 5
CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 6
1.1 Giới thiệu Công ty TNHH AIOZ Việt Nam 6
1.2 Sản phẩm công ty 6
1.3 Lịch làm việc khi thực tập tại công ty 7
CHƯƠNG 2: NỘI DUNG THỰC TẬP 8
2.1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 8
2.2 Nghiên cứu kỹ thuật 8
2.2.1 Các công cụ làm việc 8
2.2.2 Ngôn ngữ lập trình Golang 8
2.2.3 Thực hiện viết api để tạo server lưu trữ dữ liệu 8
2.3 Tham gia dự án thực tế 9
2.3.1 9
Trang 6CHƯƠNG 3: TỔNG KẾT 10
3.1 Điểm mạnh 10
3.2 Điểm yếu 10
3.3 Chuẩn đạt được 10
TÀI LIỆU THAM KHẢO 12
Trang 7CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.1 Giới thiệu Công ty TNHH AIOZ Việt Nam
Hình 1.1 Logo Công ty TNHH AIOZ Việt Nam
AIOZ VN (AIOZ Network: Infrastructure Web3 Media Blockchain) là một công ty trẻ về
Công nghệ Blockchain, hiện đang xếp hạng #665 của thế giới (Coin Market Cap) – tính tới
thời điểm [29/06/2023], với đội ngũ lãnh đạo và nhân viên trẻ, nhiệt huyết Công ty có 100% vốn từ Singapore Công ty đang có nhiều dự án sáng tạo ra các sản phẩm Công nghệ thiết thực đóng góp cho sự phát triển của ngành Blockchain
Địa điểm làm việc: Công ty TNHH AIOZ Việt Nam, tầng 4, 246 Cống Quỳnh, phường Phạm Ngũ Lão, quận 1, Thành phố HCM, Việt Nam
Email: contact@aioz.network Website: https://aioz.network/
1.2 Sản phẩm công ty
- AIOZTube: Trang web phục vụ mục đích xem và stream video
- AIOZ node app: Ứng dụng lưu trữ dữ liệu, tập tin
- AIOZ token: Đơn vị tiền mã hóa trên sàn tiền điện tử thế giới
…
Trang 81.3 Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ ngày 1/8/2022 tới 30/9/2022,
em làm việc với tư cách là một thực tập sinh làm việc toàn thời gian (full-time), làm việc từ thứ 2 tới thứ 6 Công việc hằng ngày bắt đầu từ lúc 9h00 đến 18h30 Thời gian nghỉ trưa khoảng 1.5 tiếng Hằng ngày, em sẽ giải quyết các công việc mà anh hướng dẫn đã giao, sau mỗi ngày làm việc em sẽ báo cáo tiến độ công việc trong ngày, đặt câu hỏi và nhận chia
sẻ, giải đáp từ anh hướng dẫn
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: 1 ngày
Nội dung: giới thiệu về công ty, cách tổ chức của công ty, được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty, các phòng ban
về IT, HR, … Ngoài ra, thực tập sinh còn được giới thiệu về văn hóa làm việc trong công ty như thời gian đi làm, các quy định, cách sử dụng email trong công việc, …
Kết quả: hiểu thêm về văn hóa doanh nghiệp, quá trình thành lập và phát triển Có thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2.2 Nghiên cứu kỹ thuật
2.2.1 Các công cụ làm việc
Thời gian: 2 ngày
Nội dung: Tìm hiểu các công cụ sẽ được sử dụng trong quá trình làm việc Một số phần mềm trong số đó như GITLAB – hệ thống quản lý phiên bản phân tán; Goland - một phần mềm rất hữu ích và phổ biến với lập trình viên với các đặc điểm như đơn giản, gọn nhẹ, dễ dàng cài đặt; Slack – ứng dụng hỗ trợ cho việc giao tiếp, chia sẻ tài liệu; PostgreSQL, SQLite, MongoDB Compass - các công cụ hỗ trợ lưu trữ dữ liệu
Kết quả: Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ với nhau
2.2.2 Ngôn ngữ lập trình Golang
Thời gian: 3 ngày
Nội dung: Tìm hiểu về ngôn ngữ lập trình Golang bao gồm cú pháp, các kiến thức cơ bản và nâng cao, cách viết một chương trình và các thư viện liên quan
Kết quả: Hiểu và sử dụng được ngôn ngữ Golang
2.2.3 Thực hiện viết api để tạo server lưu trữ dữ liệu
Thời gian: 3 ngày
Nội dung: Sử dụng ngôn ngữ lập trình Golang kết hợp với AWS S3 viết một RESTful API cơ bản để upload, get, delete files
Trang 10Kết quả: Làm quen được với cách xây dựng 1 server bằng ngôn ngữ Golang.
2.3 Tham gia dự án thực tế
2.3.1 Quá trình thực hiện
Trong suốt 2 tháng thực tập tại công ty, em đã tham gia vào dự án AIOZ Storage, một dự án
để quản lý lưu trữ dữ liệu, tập tin Nhiệm vụ của em là hỗ trợ xây dựng server để quản lý các hoạt động của dự án bao gồm: quản lý đăng ký, đăng nhập tài khoản; nâng cấp tài khoản dựa trên việc người dùng đăng ký supscription và hệ thống sẽ bắt và xử lý các events đó theo thao tác của người dùng (ở đây có cơ chế tự gia hạn hoặc hủy tự động dựa theo số tiền người dùng thanh toán cho dịch vụ); quản lý tập tin người dùng upload bằng các đóng gói chúng thành các tệp zip sau đó upload lên cdn công ty, hoạt động sao chép, chuyển, tải xuống tập tin (tải
1 phần hoặc toàn bộ tập tin), ngoài ra còn xây cơ chế xóa tập tin (dựa theo thao tác người dùng hoặc là xóa tự động theo mô tả của dự án); tạo báo cáo thống kê về dữ liệu, băng thông, giá tiền theo từng khoảng thời gian
Để tổ chức công việc, em sẽ trao đổi với anh hướng dẫn và nhận yêu cầu và mô tả công việc, sau đó em thực hiện công việc cùng với sự hướng dẫn giúp đỡ từ anh Sau khi em hoàn thành công việc sẽ báo cáo với anh hướng dẫn, nhận được những nhận xét và những góp ý từ anh
để em hoàn thiện công việc đồng thời cũng sẽ nhận những yêu cầu công việc mới Khi đã hoàn thiện tương đối server thì em sẽ hướng dẫn, giải thích công dụng của các API và phối hợp cùng team front-end hoàn thiện dự án, trong quá trình này thì em cùng anh hướng dẫn sẽ nhận những báo cáo về lỗi của team front-end và sẽ tiến hành sửa chữa các lỗi đó
2.3.2 Kết quả
Tuy dự án vẫn đang trong giai đoạn phát triển và chưa được phát hành nhưng dựa trên quá trình làm việc, em đã có cơ hội làm việc trên một dự án quy mô lớn và tham gia vào việc xây dựng server cung cấp API cho team front-end hoàn thiện dự án, hoàn thành các yêu cầu được giao, đồng thời làm quen với ứng dụng blockchain vào dự án
2.3.3 Thuận lợi
Một ưu điểm lớn trong quá trình thực hiện dự án là sự quen thuộc với các ngôn ngữ lập trình
và kiến thức đã học ở giảng đường từ trước đó, giúp em tiếp cận và làm quen với ngôn ngữ mới một cách dễ dàng hơn Chịu được áp lực công việc vì đã làm quen với nó từ giảng đường đại học Với tính cách cởi mở giúp em dễ dàng giao tiếp với các anh, chị trong công ty cũng như không mất quá nhiều thời gian làm quen mới môi trường làm việc mới
2.3.4 Khó khăn
Tuy nhiên có nhiều thuận lợi trong quá trình thực tập những em cũng gặp không ít khó khăn trong thời gian này Thứ nhất, việc tiếp nhận nhiều kiến thức mới liên quan tới công nghệ blockchain làm em có khá nhiều bối rối trong việc tiếp thu những kiến thức này Đây là một thách thức lớn đối với em trong quá trình thực hiện nhiệm vụ Thứ hai, mặc dù em đã có kinh nghiệm xây dựng các web trước đó, nhưng việc tham gia vào một dự án lớn vẫn đòi hỏi sự thích nghi và hiểu biết sâu hơn cũng như yêu cầu tính logic và độ hoàn thiện cao hơn, điều này đôi khi khiến em cảm thấy áp lực Cuối cùng, việc phải cân nhắc và sắp xếp thời gian giữa công việc tại công ty và các đồ án môn học cũng như hoạt động thể thao rèn luyện sức khỏe đã khiến em trải qua một khoảng thời gian vất vả
Trang 11CHƯƠNG 3: TỔNG KẾT
Quãng thời gian thực tập tại Công ty TNHH AIOZ Việt Nam đã giúp em cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phần mềm Được làm việc tại đây, em đã học thêm được những kiến thức mới về blockchain, ngôn ngữ lập trình Golang ngoài ra còn cản thiện được kỹ năng mềm như kỹ năng quản lý thời gian, quản lý source code (git lab), làm việc nhóm, giao tiếp với cấp trên, …
Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạt chất lượng tốt
3.1 Điểm mạnh
Trong quá trình làm việc em đã nhận ra mình có những điểm mạnh như sau: khả năng tự học, đọc hiểu code nhanh, tự tìm ra vấn đề và giải quyết vấn đề một cách logic, giao tiếp với cấp trên và các anh chị lớn của các team khác trong công ty, dám mạnh dạn đưa ra các góp ý về sản phẩm đối với anh hướng dẫn
3.2 Điểm yếu
Trong quá trình làm việc, em cũng nhận ra mình có một vài điểm yếu như sau: khả năng làm việc chưa được tối ưu và khả năng trình bày ý kiến chưa tốt, khả năng đọc hiểu tiếng anh chuyên nhành chưa tốt
3.3 Chuẩn đạt được
Tổng kết lại, em có thể tự đánh giá các mục tiêu của môn học như sau:
Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp (G1): 8/10
Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự án (G2): 7/10
Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại doanh nghiệp (G3): 7/10
Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn đề (G4): 8/10
Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày (G5): 6/10
Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh (G6): 7/10
Goal Mục tiêu môn học
G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp
G2 Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống trong dự
án
G3 Nắm được quy trình, phương pháp và công nghệ phát triển sản phẩm phần mềm tại
doanh nghiệp
Trang 12G4 Có khả năng tìm hiểu vấn đề, mô hình hóa vấn đề và tham gia giải quyết vấn đề G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày
G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh
Trang 13TÀI LIỆU THAM KHẢO
1 Trang web: 200Lab Blog - Chia sẻ kỹ thuật lập trình và hệ thống Truy cập lần cuối: 19/06/2023
2 Trang web: Documentation - The Go Programming Language Truy cập lần cuối:
19/06/2023
3 Trang web: MinIO Object Storage for Linux — MinIO Object Storage for Linux Truy cập lần cuối: 19/06/2023