Thực tập tại công ty Samsung Vietnam Mobile R&D Center (SVMC)
tập 1.1 Thông tin về đơn vị thực tập
Hình 1.1: Logo công ty SVMC Địa chỉ: Tòa nhà PVI, Số 1 Phạm Văn Bạch, Yên Hòa, Cầu Giấy, Hà Nội
Tên: SVMC (Samsung Vietnam Mobile R&D Center)
Tên đầy đủ Trung tâm nghiên cứu và phát triển ĐTDĐ Samsung Việt Nam
Website: www.facebook.com/SamsungVietnamRnD
SVMC là gì? SVMC là trung tâm nghiên cứu lớn nhất của SAMSUNG tại khu vực Đông Nam Á Chúng tôi không ngừng đổi mới để tạo ra một nơi làm việc tốt nhất (Great Work Place), chính sách đào tạo phát triển nhân tài bài bản, cùng chế độ lương thưởng cạnh tranh, công bằng nhằm nâng cao hiệu quả làm việc và sự gắn bó lâu dài của nhân viên. Được thành lập năm 2012, đến nay Công ty SVMC đã xây dựng được một đội ngũ nhân viên với hơn 1.000 kỹ sư trong lĩnh vực nghiên cứu và phát triển phần mềm ĐTDĐ, trong đó có nhiều Tiến sỹ, Thạc sỹ được đào tạo chuyên sâu ở nước ngoài.
Trụ sở chính của SVMC được đặt tại Tòa nhà PVI, số 1 Phạm Văn Bạch, Cầu
Giới thiệu chung về đơn vị thực tập
Các công việc chủ yếu tại SVMC
Phát triển các phần mềm thương mại cho các thiết bị thông minh của
Samsung Nghiên cứu phát triển các giải pháp phần mềm và dịch vụ tiên tiến cho người dùng Samsung và cho doanh nghiệp
Nghiên cứu và thiết kế phần cứng: Bản mạch điện tử và cấu trúc cơ khí các dòng sản phẩm hàng đầu của Samsung.
Hỗ trợ cho quy trình sản xuất phần cứng chuyên sâu tại các nhà máy SEV/T
Kiểm thử chức năng và hiệu năng của các điện thoại di động mới nhất.
Kiểm thử dựa trên các test-case cho các hạng mục về giao diện người dùng (UIT, GUI test), đa phương tiện (MMT) và hiệu năng của điện thoại.
Sử dụng các quy trình vận hành tiêu chuẩn (SOP) và các yêu cầu chất lượng của Samsung.
Triển khai và vận hành các dịch vụ của Samsung trên Amazon Web Sevice
Nghiên cứu, tìm hiểu các chức năng của thiết bị viễn thông của Samsung dựa trên chuẩn 3GPP.
Kiểm thử chức năng và hiệu năng của các thiết bị viễn thông 4G-5G Samsung
Đánh giá và kết quả thu được
SVMC thực sự là công ty có môi trường làm việc hiện đại trong lĩnh vực ICT ở Việt Nam hiện nay SVMC tạo ra môi trường nghiêm túc trong công việc, bảo mật thông tin nghiệm ngặt Nhân viên thì chủ động trong công việc, giờ giấc Môi trường thì thoải mái hỗ trợ nhân viên tốt nhất SVMC có thể xem là một trong những nơi làm việc lý tưởng cho sinh viên ngành ICT hiện nay.
Khi đến với SVMC sinh viên phải tuân thủ tác phong của công ty và tòa nhà Sinh viên được tận hưởng phong cách làm việc chuyên nghiệp khác xa so với ở trường. Được sự hướng dẫn của các anh Trainer được tiếp thu nhiều kiến thức, kinhg nghiệm trong cuộc sống cũng như công việc.
Qua quá trình thực tập tại SVMC em đã có cơ hội trải nghiệm và học tập trong môi trường chuyên nghiệp và hiện đại, giúp em học hỏi được những kiến thức và kinh nghiệm quý báu:
Nâng cao được các kỹ năng lập trình với một số thuật toán nâng cao Trải nghiệm phong cách làm việc chuyên nghiệp.
Quá trình thực tập tại đơn vị thực tập
SVMC chương trình thực tập sinh
SVMC Internship Program là chương trình được tổ chức hàng năm của SVMC dành cho những sinh viên của khoa CNTT, ĐTVT, Toán – Tin của những trường có hợp tác với Samsung SVMC. Đây là chương trình rất thiết thực, ý nghĩa dành cho các bạn sinh viên năm cuối hoặc gần cuối Tham gia chương trình, sinh viên được hệ thống lại, đào tạo bài bản về thuật toán cơ bản; được đào tạo và tham gia làm các mini-project với các sản phẩm đầu ra cụ thể trên nền tảng Android hoặc C/C++ Application.
Ngoài ra, sinh viên cũng được tham gia trải nghiệm văn hóa làm việc của một trung tâm công nghệ hàng đầu của Samsung, được hướng dẫn về các kỹ năng cần thiết trên Microsoft office.
Quy trình và thời gian tham gia ứng tuyển:
1 Bài test phân loại đầu vào
- Thời gian: Ngày 14/05/2022, buổi sáng hoặc chiều tại SVMC (Hà Nội)
- Địa điểm: Samsung SVMC, số 1 Phạm Văn Bạch, Yên Hòa, Cầu Giấy, HN
- Hình thức bài test phân loại trình độ: Test trên máy tính với công cụ lập trình (IDE) là Visual Studio hoặc Eclipse, bằng 1 trong 3 ngôn ngữ C/C++/Java.
- Địa điểm: Samsung SVMC, số 1 Phạm Văn Bạch, Yên Hòa, Cầu Giấy, HN.
- Full time, từ 08:00 – 17:00, các ngày từ thứ 2 – thứ 6 (hoặc bù vào thứ 7) - tối đa 5 ngày/1 tuần.
Chương trình thực tập chi tiết
2.2.1 Giai đoạn 1 học thuật toán APS 1
- 06/07: Học các quy định tại công ty, nội quy của tòa nhà Gặp gỡ người hướng dẫn APS-1.
- 07/07 đến 18/07: Học thuật toán căn bản: Cách sử dụng mảng, string, for, while, if,… Làm bài tập trên hệ thống submit của công ty.
Học về cấu trúc dữ liệu stack, queue, cách cài đặt, làm bài tập submit, debug.
- 19/07: Tham gia làm bài thi INTERMEDIATE bài thi đánh giá của công ty.
2.2.2 Giai đoạn 2 đào tạo c++ application
2.2.2.1 Nội dung đào dạo chi tiết:
Hình 1.2: Thời gian biểu tại SVMC a Plan study và làm việc nhóm b Coding Convention
Code convention – tạm dịch là quy ước viết code, có thể được hiểu đơn giản là tập hợp những nguyên tắc chung khi lập trình như đặt tên biến, hàm, file, class, comment,… nhằm giúp cho code dễ đọc, dễ hiểu hơn vì vậy dễ bảo trì và sửa lỗi hơn.
Tiêu chuẩn viết code (coding standard) thường được công nhận và sử dụng bởi một nhóm các deverloper trong một môi trường để chia sẻ code một cách thống nhất Một ví dụ phổ biến của coding standard là tập hợp các quy ước được áp dụng trong các tài liệu của một ngôn ngữ lập trình Lấy ví dụ tiêu biểu như ngôn ngữ c có tiêu chuẩn K&R, tiêu chuẩn của Microsoft về C# hay tiêu chuẩn cho Java của Oracle,…
Thông thường, một code convention sẽ mô tả các thông tin sau:
Cách đặt tên biến (camel case: variableName, snake case: variable_name,…).
Kiểu thụt lề, độ rộng thụt lề, sử dụng tab hay space Phương pháp đặt dấu ngoặc.
Cách dùng khoảng trắng trong các biểu thức logic và số học Cách viết comment cho code và tài liệu.
Quy ước đặt tên class, tên file Cách viết câu lệnh.
Cách khai báo class và giao diện.
Phương pháp tổ chức file.
Những lợi ích mà Coding Convention mang lại: Đẩy cao năng suất làm việc nhóm nhanh hơn.
Quy tắc hoạt động của Code Convention theo tính thống nhất và tuân thủ theo tiêu chuẩn sẽ giúp bạn dễ dàng làm việc hơn.
Khi viết Code bằng Code Convention, sẽ khiến người khác dễ hiểu và nắm bắt được cái mà bạn truyền tải đến.
Phần mềm Code Convention dễ dàng nâng cấp và được cải tiến.
Code Convention có thể tái sử dụng trong nhiều phần mềm và các ứng dụng khác.
Việc bảo trì hệ thống với Code Convention trở nên thuận lợi và dễ dàng hơn bao giờ hết
Một số ví dụ về coding convention
Khi viết hàm phải viết hoa những chứ cái đầu: DestroyPlayer(), InstallProgram(). Đối với Define phải viết hoa hết: MAX, MIN.
Các biến trong class phải có dấu gạch dưới dưới và phải viết thường chữ cái m_maxNumber. hoặc chữ m trước dấu gạch đầu tiên: _max, m_min, c Variables and constant, Primary dada type, Array – Pointer Variable and constant
Auto Variable: tự động phát hiện và gán kiểu dữ liệu cho biến mà nó được sử dụng
Ví dụ auto age= 18; auto weight= 56.6.
Extern Variable: Extern giúp truy cập các biến từ tệp C
Register Variable: Thanh ghi yêu cầu trình biên dịch lưu trữ biến trong thanh ghi CPU thay vì bộ nhớ
Thực chất con trỏ cũng là mảng bản chất con trỏ là địa chỉ các ô nhớ của các dữ liệu Nhưng kích thước của mảng là cố định, kích thước của con trỏ có thể thay đổi.
Ví dụ: int i; int *p=&i; lúc này i, p= địa chỉ ô nhớ lưu giá trị i, &p sẽ là địa chỉ lưu giá trị địa chỉ p, *p =i. d Hướng đối tượng trong lập trình (OOP)
Lập trình hướng đối tượng là gì? Lập trình hướng đối tượng là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừu tượng hóa các đối tượng thực tế trong cuộc sống Hướng tiếp cận này hiện đang rất thành công và đã trở thành một trong những khuôn mẫu phát triển phần mềm, đặc biệt là các phần mềm cho doanh nghiệp.
Khi phát triển ứng dụng sử dụng OOP, chúng ta sẽ định nghĩa các lớp(class) để mô hình các đối tượng thực tế Trong ứng dụng các lớp này sẽ được khởi tạo thành các đối tượng và trong suốt thời gian ứng dụng chạy, các phương thức (method) của đối tượng này sẽ được gọi.
Lớp định nghĩa đối tượng sẽ như thế nào: gồm những phương thức và thuộc tính (property) Một đối tượng chỉ là một thể hiện của lớp Các lớp tương tác với nhau bởi các public API: là tập các phương thức, thuộc tính public của nó.
Tính đóng gói tức là quy tắc yêu cầu trạng thái bên trong của một đối tượng được bảo vệ và tránh truy cập được từ code bên ngoài (tức là code bên ngoài không thể trực tiếp nhìn thấy và thay đổi trạng thái của đối tượng đó) Bất cứ truy cập nào tới trạng thái bên trong này bắt buộc phải thông qua một public API để đảm bảo trạng thái của đối tượng luôn hợp lệ bởi vì các public API chịu trách nhiệm thực hiện kiểm tra tính hợp lệ cũng như trình tự cập nhật trạng thái của đối tượng đó.
Nói chung trạng thái đối tượng không hợp lệ thường do: chưa được kiểm tra tính hợp lệ, các bước thực hiện không đúng trình tự hoặc bị bỏ qua nên trong OOP có một quy tắc quan trọng cần nhớ đó là phải luôn khai báo các trạng thái bên trong của đối tượng là private và chỉ cho truy cập qua các public/protected/private method/property Khi sử dụng các đối tượng ta không cần biết bên trong nó làm việc như thế nào, ta chỉ cần biết các public API là gì và điều này đảm bảo những gì thay đổi đối tượng sẽ được kiểm tra bởi các quy tắc logic bên trong, tránh đối tượng bị sử dụng không chính xác.
Ví dụ với máy vi tính sẽ có các màu sắc, chiều dài, chiều rộng, các giá trị đó sẽ được bảo mật bạn chỉ có thể truy nhập qua các phương thức để có thể biết thông tin nếu các phương thức public
Tính kế thừa cho phép tạo ra 1 class con từ 1 class có sẵn và mở rộng class đó Các class con có thể kế thừa lại các thuộc tính (properties) và phương thức (methods) của class cha, có thể không cần định nghĩa lại các phương thức hoặc tái định nghĩa (override) hoặc thêm các phương thức sử dụng riêng ở lớp con Tính chất này giúp tái sử dụng, tận dụng mã nguồn có sẵn.
Ví dụ với ví dụ về máy tính thì đây sẽ được gọi là lớp cha các máy tính khác như Dell, ASUS sẽ kế thừa các đặc tính của máy tính như màu sắc, chiều dài, chiều rộng
Tính trừu tượng (Abstraction) Đó là quy trình để loại bỏ thông tin thừa: chỉ để lại thông tin phổ biến và cần thiết
Tập trung vào các đặc điểm cơ bản của thực thể: để có thể phân biệt nó với các thực thể khác
Tùy thuộc vào quan điểm: các thuộc tính quan trọng trong bối cảnh này, nhưng không có ý nghĩa trong bối cảnh khác
Tính đa hình là một hành động có thể được thực hiện bằng nhiều cách khác nhau Đây lại là một tính chất có thể nói là chứa đựng hầu hết sức mạnh của lập trình hướng đối tượng.
Hiểu một cách đơn giản hơn: Đa hình là khái niệm mà hai hoặc nhiều lớp có những phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau.
Ví dụ như ở phần trên, mỗi một máy tính kế thừa từ lớp cha máy tính nhưng có thể lưu trữ dữ liệu trên cloud theo những cách khác nhau Android lưu trữ bằng Google Drive, Macbook lưu trên iCloud.
Overriding: có thể sửa trực tiếp trong các phương thức Overloading: nạp chồng phương thức, thay đổi các toán tử Abstract và Interface
Abstact có thể kế thừaInterface gồm nhiều vittural không có thuộc tính e UML
UML (Unified Modeling Language) la ngôn ngư danh cho viêc đăc ta, hinh dung, xây dưng va lam tai liêu cua cac hê thông phân mêm.
UML tao cơ hôi đê viêt thiêt kê hê thông, bao gôm nhưng khai niêm như tiên trinh nghiêp vu va cac chưc năng cua hê thông.
Cu thê, no hưu dung cho nhưng ngôn ngư khai bao, gian đô cơ sơ dư liêu, thanh phân phân mêm co kha năng tai sư dung.
Thực tập đề cương tốt nghiệp chuyên sâu tại trường
Kiến trúc của vRAN
Thiết bị vô tuyến từ xa (RRU)
Thực hiện việc truyền và nhận lớp vật lý, hỗ trợ các công nghệ như Đa đầu vào Nhiều đầu ra (MIMO). Đơn vị phân tán (Distributed Unit)
Như trước đây với RRU đến BBU, kết nối từ RU đến DU được gọi là 'Front Haul'. Đơn vị phân tán (DU) bao gồm cả chức năng xử lý băng tần cơ sở và chức năng RF.
DU cần gần với RU hơn (