Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia vào một môi trường làm việc chuyên nghiệp, em đã chọn FPT Software làm nơi bắt đầu
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH BACKEND VỚI GOLANG
Công ty thực tập : FPT Software Người phụ trách : Trương Phước Tấn Thực tập sinh : Lê Đoàn
Trang 2Ngày nay, với sự phát triển không ngừng của công nghệ trên toàn thế giới, con người chúng ta đã và không ngừng thay đổi, tạo ra vô số những giải pháp hữu ích góp phần nâng cao chất lượng cuộc sống cả về vật chất và tinh thần Ngành Banking cũng không phải là ngoại lệ, cũng đã có những thay đổi rất lớn kể từ khi khái niệm giao dịch trực tuyến ra đời
Nắm được xu thế đó, các ngân hàng trên thế giới nói chung và ở Việt Nam nói riêng cũng đã và đang áp dụng rất nhiều công nghệ mới giúp việc giao dịch diễn ra một cách nhanh chóng mà vẫn đảm bảo được tính bảo mật tối đa về thông tin người dùng Nhận thấy được sự hưởng ứng tích cực của người dùng đối với các hình thức giao dịch trực tuyến ngày nay, em đã quyết định chọn lập trình backend làm định hướng cho việc học tập cũng như công việc của mình
Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốn được tham gia vào một môi trường làm việc chuyên nghiệp, em đã chọn FPT Software làm nơi bắt đầu cho chuyến hành trình đầy hoài bão và không kém những thử thách trong ngành công nghiệp phần mềm này
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TNHH Phần mềm FPT (FPT Software) đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
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ị trainer, nhóm thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể trở thành một Golang developer Chân thành cảm ơn các anh/chị trong nhóm trainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Trương Phước Tấn đã training ngôn ngữ Golang, hướng dẫn, giúp
đỡ cho chúng em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới, cũng như hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật, về cách làm báo cáo, lên kế hoạch, và cách tham gia các buổi phỏng vấn với khách hàng một cách đầy
tự tin và chuyên nghiệp
Em 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ài báo cáo này
Lê Đoàn TpHCM, ngày 14 tháng 06 năm 2022
Trang 4NHẬN XÉT CỦA KHOA
MỤC LỤC
Trang 5MỤC LỤC 5 Chương 1: Giới thiệu công ty thực tập 6
1 Giới thiệu công ty FPT Software 6
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 7
Chương 3: Chi tiết về project 11
Trang 6Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu công ty FPT Software
FPT Software, được thành lập năm 1999 và tiền thân thuộc tập đoàn FPT, đã trở thành một trong những công ty gia công phần mềm lớn nhất Việt Nam Có chi nhánh ở 11 quốc gia, với thị trường chính ở Nhật Bản, Hoa kỳ, Châu Âu, Châu Á Thái Bình Dương, Việt Nam FPT Software hiện nay nằm trong top 100 nhà cung cấp dịch vụ phần mềm toàn cầu và được đánh giá là một trong 2 nơi làm việc tốt nhất Việt Nam trong lĩnh vực CNTT
2. Sản phẩm của công ty
Là công ty tiên phong trong chuyển đổi số, FPT Software cung cấp các dịch
vụ đẳng cấp thế giới về Nhà máy thông minh, Nền tảng kỹ thuật số, RPA, AI, IoT, Enterprise Mobility, Cloud, AR / VR, Business Applications, Application Services, BPO, v.v Công ty đã phục vụ hơn 700 khách hàng trên toàn thế giới và 100 trong số
đó là 500 công ty thuộc danh sách Fortune Global 500 trong các ngành Hàng không
& Vũ trụ, Ô tô, Ngân hàng và Tài chính, Logistics & Vận tải và hơn thế nữa
Trang 7Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình Backend với Golang” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình backend bằng ngôn ngữ Golang, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp, phỏng vấn Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường chuyên nghiệp
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 (như đã nhắc đến ở trê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
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ách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty FPT Software, 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 Nghiên cứu kỹ thuật
2.1 Các công cụ làm việc
Thời gian : Xuyên suốt quá trình thực tập
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, các admin và trainer đã hướng dẫn thực tập sinh tìm hiểu về các công cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như Goland – một IDE sử dụng trong lập trình Golang; Postman – một phần mềm dùng để tương tác với API, giúp ích cho việc testing API mà không đụng đến một dòng code nào; VMware Horizon Client – phần mềm máy ảo hỗ trợ WFH giúp tăng khả năng linh hoạt trong địa điểm làm việc
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Thành thạo trong việc sử dụng các công cụ kể trên để tối ưu hoá hiệu suất
làm việc
Trang 8Thời gian : 5 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật của ngôn ngữ Golang từ cơ bản đến nâng
cao, những kiến thức quan trọng cho việc tối ưu hiệu suất chương trình
- Golang cơ bản
Các kiến thức cơ bản về lập trình bằng Golang: kiểu dữ liệu, Array & Slice, Pointer, Struct, Interface, Goroutines, Channel,…
- Quản lý source code theo Dependency Injection pattern
Thực tập sinh sẽ được hướng dẫn về cách quản lý code theo Dependency Injection pattern nhằm hướng đến tối ưu hoá khả năng kiểm soát code một cách chuyên nghiệp
- Rèn về giải thuật
Áp dụng Golang để giải quyết các bài tập liên quan đến thuật toán để nâng cao khả năng giải quyết vấn đề và rèn về tư duy trong lập trình
- Unit testing:
Thực tập sinh sẽ được hướng dẫn cách thiết kế các unit test nhằm đảm bảo chương trình hoạt động đúng yêu cầu của khách hàng và khi có lỗi sẽ dễ dàng scope vào đoạn code gây ra lỗi
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Sử dụng tốt Golang trong việc lập trình backend
- Có được những kiến thức quan trọng cho việc lập trình backend sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu
2.3 Training Phỏng vấn thực tế với khách hàng nước ngoài
Thời gian : 3 ngày (1 tuần)
Nội dung: Rèn luyện khả năng trả lời phỏng vấn bằng tiếng Anh với khách hàng nước
ngoài
- Bộ câu hỏi thường xuất hiện trong buổi phỏng vấn.
Giúp thực tập sinh trả lời các câu hỏi phỏng vấn thực tế liên quan đến công nghệ
và các kỹ năng mềm của khách một cách tự tin và hoàn hảo nhất có thể
Trang 9Ngoài ra, trainer còn cung cấp cho thực tập sinh những kinh nghiệm quý báu trong tác phong khi phỏng vấn như góc camera, trang phục, sắc mặt khi trả lời phỏng vấn,…
- Học tiếng Anh giao tiếp:
Giúp thực tập sinh tự tin hơn trong tiếng Anh giao tiếp từ đó có thể tham gia các buổi phỏng vấn một cách tự tin hơn
Thực hiện :
- Tham gia đầy đủ các buổi training
- Tham gia các buổi phỏng vấn thử để cải thiện những thiếu sót
Kết quả :
- Tự tin hơn trong khả năng thuyết trình bằng tiếng Anh với khách hàng trong và ngoài nước
- Khả năng giao tiếp bằng tiếng Anh được cải thiện hơn
3 Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực
cơ bản về Golang, thực tập sinh đã có thể tham gia thực hiện fake một project thực tế
Chi tiết project sẽ được nói ở phần sau
4 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức của công ty
- Làm quen với các công cụ làm việc trong công ty
- Học cách trao đổi, làm việc qua email
Chị Admin Phan Thị Hồng Thắm
100% Hoàn thành tốt
2-4 - Tìm hiểu ngôn
ngữ lập trình Golang từ cơ bản
AnhTrương Phước
Trang 10- Viết Unit test
- Tìm hiểu các tools
hỗ trợ cho công việc(Goland, Postman, ) 5-7 - Tham gia mockproject thực tế AnhTrương PhướcTấn 100% Hoàn thành tốt
Suốt quá
trình thực tập
- Training phỏng vấn
- Tiếng Anh giao tiếp
AnhTrương Phước Tấn
Mr.Duy
100% Hoàn thành tốt
Trang 11Chương 3: Chi tiết về project
1 Giới thiệu về project
Thực hiện mock một số API để người dùng có thể đăng nhập vào một hệ thống bằng cách dùng JWT để đảm bảo về độ bảo mật
1.1 Tìm hiểu về Middlewares trong Golang
Thực tập sinh sẽ được hướng dẫn cách hoạt động của Middlewares nhằm
áp dụng vào quá trình xử lý các thao tác của người dùng trên hệ thống Middlewares sẽ đảm bảo người dùng đó chỉ được quyền thay đổi các thuộc tính
mà họ được cấp phép thông qua token được cấp bởi JWT
1.2 Tìm hiểu và áp dụng JWT (JSON Web Token)
Thực tập sinh sẽ được hướng dẫn sử dụng JWT để từ đó cung cấp mã định danh cho người dùng để hệ thống cấp phép cho người đó thao tác với các chức năng của services Trong quá trình training thực tập sinh sẽ follow DI pattern (Dependency Injection) để code dễ tối ưu hơn và bám sát với quy trình làm việc thực tế
2 Thực hiện
Mỗi thực tập sinh sẽ tự mình viết các API liên quan đến CRUD của người dùng dưới sự giúp đỡ tận tình của các anh trainer trong FPT Software.
3 Kết quả
Hoàn thiện các API mà các anh trainer đã yêu cầu bao gồm: Register & Login user using JWT, CRUD a product and store under mySQL database
Trang 12Trang chủ FPT Software: https://www.fpt-software.com/
Trang 13TỔNG KẾT
Như vậy, chỉ trong vòng 2 tháng ngắn ngủi, em đã có thể nắm được cách thiết kế các API trong lập trình backend, nắm được căn bản và nâng cao của ngôn ngữ Golang và một số tools hay thư viện hỗ trợ Ngoài ra em còn được trải nghiệm một môi trường làm việc rất chuyên nghiệp và mang tính thực tế rất cao Đây sẽ là bước đệm khởi đầu rất tốt cho việc phát triển sự nghiệp của em sau này
Em xin chân thành cảm ơn sự giúp đỡ của các anh chị nhóm trainer FPT Software đã giúp em hoàn thành kỳ thực tập lần này Em xin được cảm ơn các thầy cô khoa Công nghệ Phần Mềm đã cho em những kiến thức nền tảng thực sự quý báu để em có thể phát triển như ngày hôm nay đồng thời tạo điều kiện để em có thể hoàn thành bài báo cáo thực tập này