“Nếu niềm vui của kỹ sư phát triển là giấu bug thì niềm vui của kỹ sư thẩm định là moi ra bằng được bug đó”.
Bài viết liên quan
▶ Bùi Đức Minh: chủ động học hỏi và đồng hành với những “gã khổng lồ”
▶ Bỏ túi 4 kỹ năng công nghệ thiết yếu cho sinh viên trong thời đại 4.0
▶ Tự tin gia nhập thị trường lao động với 7 kỹ năng mềm cần thiết
▶ Biết thêm một ngoại ngữ, lương tăng thêm số “0”
Bùi Đức Minh (cựu sinh viên K2017 chương trình Tiên tiến ngành Kỹ thuật Điện – Điện tử) từng thực tập một năm ở Intel Products Vietnam và đang làm việc tại Công ty Ampere Computing với vị trí kỹ sư thiết kế và thẩm định. Cùng lắng nghe anh chàng tâm sự đôi điều về ngành công nghệ thông tin nha.
KỸ SƯ THẨM ĐỊNH VÀ THIẾT KẾ – CON NGHIỆN BUG CHÂN CHÍNH
Công việc của mình là thẩm định thiết kế và tạo ra những công cụ hỗ trợ công tác thẩm định. Nói một cách dễ hiểu, nếu lỗi trong thiết kế (bug) là thuốc phiện thì kỹ sư thẩm định tụi mình chính là con nghiện chân chính [cười]. Nếu niềm vui của kỹ sư phát triển là giấu bug thì niềm vui của kỹ sư thẩm định là moi ra bằng được bug đó. Cảm giác khi phát hiện ra bug giống như bạn vừa giải được một bài toán siêu khó hay chinh phục một ngọn núi hiểm trở. Bạn sẽ chỉ ra bug đó và nói với kỹ sư phát triển là: “Ông ơi, bug nè. Fix đi pa, haha. Còn tui sẽ ngồi chơi phè phỡn coi ông sửa sấp mặt”.
Theo mình, một kỹ sư thẩm định và thiết kế giỏi cần hội đủ yếu tố sau:
- Am hiểu ngôn ngữ lập trình: SystemVerilog(1), UVM(2), Verilog(3), Python(4) hoặc các ngôn ngữ script(5)
- Có kiến thức về phần cứng như: RAM, register (thanh ghi), công ghi logic AND, OR, XOR, NOT, mạch cộng (mạch adder), timing(6), xung clock, finite state machine(7)…
- Nắm vững kỹ năng lập trình, đặc biệt là phải hiểu OOP(8) cơ bản vì UVM dựa trên OOP
- Quen thuộc với hệ điều hành Linux và các dòng lệnh cơ bản vì phải biên dịch chương trình và chạy các bài kiểm tra trên các máy chủ Linux
- Giỏi tiếng Anh bởi kỹ sư thẩm định thiết kế cần đọc cực nhiều tài liệu tiếng Anh cũng như thường xuyên viết e-mail trao đổi công việc với đồng nghiệp, cấp trên; có thể nói, nếu không vững tiếng Anh, bạn sẽ bị chậm chạp, trì trệ trong công việc
CHÌA KHÓA THĂNG TIẾN: THÁI ĐỘ VÀ TRÌNH ĐỘ
Từ kinh nghiệm thực tập – làm việc của bản thân, mình nhận thấy công ty công nghệ đánh giá nhân viên dựa trên hai tiêu chí quan trọng là năng lực và thái độ, cụ thể:
Về năng lực, nhóm ngành nghề thuộc khối khoa học – kỹ thuật luôn đòi hỏi số năm kinh nghiệm và trình độ chuyên môn. Do đó, bạn buộc phải trải qua quá trình học tập chính quy bài bản. Nhà tuyển dụng sẽ hỏi mỗi ứng viên gần như tất cả kiến thức trong suốt bốn năm đại học.
Về thái độ, tinh thần ham học hỏi và khả năng thích nghi là bí quyết giúp bạn trụ vững với nghề. Chuyện “học cho đã ra trường không xài được gì” hoặc “học gì làm nấy” sẽ không xảy ra trong ngành công nghệ. Mỗi công ty đều thiết kế những công cụ riêng để hỗ trợ công việc của nhân viên và những công cụ này được nghiên cứu trên kiến thức nền tảng ở trường đại học. Vì vậy, chúng ta cần nắm chắc các khái niệm cơ bản để vận hành những công cụ đó một cách chính xác và hiệu quả, từ đó vừa khắc sâu kiến thức cũ vừa tiếp cận kiến thức mới.
Trong môi trường làm việc chuyên nghiệp, kỹ năng làm việc nhóm rất quan trọng. Một kỹ sư khó lòng hoàn thành dự án một cách đơn thương độc mã. Nếu chỉ ngồi một góc làm việc cặm cụi mỗi ngày mà không tương tác, trò chuyện với đồng nghiệp thì dù xuất sắc tới mấy, bạn cũng khó hiện thực hóa những mục tiêu lớn của công ty. Vì vậy, bộ phận nhân sự thường tìm kiếm các ứng viên vừa làm việc hết mình vừa thân thiện và chịu chơi. Bạn có thể thiếu kinh nghiệm, có thể chưa giỏi ngay từ đầu. Tuy nhiên, vẫn luôn có nhiều tiền bối sẵn sàng hướng dẫn, giúp đỡ nếu bạn chịu khó học hỏi.
Các trưởng phòng nhân sự rất quan tâm tới lòng trung thành và sự gắn bó của ứng viên. Không ai muốn tuyển dụng một người thường xuyên nhảy việc, ngoại trừ các công việc theo hợp đồng có thời hạn như thực tập sinh hay nhân viên thời vụ. Các công ty luôn tìm kiếm những ứng viên mong muốn cống hiến và cam kết làm việc lâu dài. Nhiều công ty lớn rất khuyến khích nhân viên học tiếp lên cao. Vậy nên việc những anh chị giàu kinh nghiệm đều đã tốt nghiệp thạc sỹ tại các trường đại học danh tiếng trong và ngoài nước cũng là điều dễ hiểu.
Chữ tín và kỷ luật phải luôn được người kỹ sư đặt lên hàng đầu. Không cần tới những bài giảng đạo đức sâu xa, chúng ta có thể nhìn thấy điều này từ những sản phẩm điện tử mà mọi người đang sử dụng hàng ngày. Tất cả đều được lên kế hoạch nghiên cứu rõ ràng và ra mắt đúng lịch dự kiến. Thử tưởng tượng, bạn sẽ đánh giá một công ty như thế nào nếu họ nhiều lần trì hoãn ra mắt sản phẩm hoặc sản phẩm có quá nhiều lỗi? Trong công việc, sẽ ít ai trực tiếp kiểm tra hay theo sát bạn từng li từng tí để bắt lỗi, phạt tiền nhưng mỗi chúng ta cần tự ý thức trách nhiệm của bản thân đối với tập thể.
—–
(1) SystemVerilog: Ngôn ngữ mô tả phần cứng thuần túy. Verilog là ngôn ngữ vừa có khả năng mô hình phần cứng khả tổng hợp vừa có khả năng mô hình các câu trúc hành vi dạng chỉ dùng cho mô phỏng, kiểm tra. Phần cứng là vi mạch hoặc các thành phần cụ thể của một vi mạch. Tuy nhiên, ngôn ngữ mô tả phần cứng Verilog không thể hỗ trợ mạnh mẽ cho quá trình kiểm tra thiết kế (verification) và mô hình hóa hệ thống (modeling). Do đó, SystemVerilog (ngôn ngữ kết hợp hai ngôn ngữ lập trình Verilog và C++) đã ra đời nhằm giải quyết vấn đề này.
(2) Phương pháp xác minh phổ quát (Universal Verification methodology – UVM): Phương pháp xác minh thiết bị số có thể tận dụng những ưu điểm của SystemVerilog về mức độ đa dạng và cách thức lập trình bậc cao. UVM sử dụng ngôn ngữ SystemVerilog để xây dựng phương thức xác minh thiết bị bằng cách cung cấp các thư viện lớp cơ bản cho việc cấu thành, sắp xếp các trường hợp kiểm tra. Phương pháp này phác thảo những quy tắc và quy trình để tiến hành xác minh một cách có hệ thống.
(3) Verilog: Đây là ngôn ngữ miêu tả phần cứng được sử dụng để mô hình hóa các hệ thống điện tử, phổ biến trong thiết kế và xác minh các mạch kỹ thuật số chuyển đổi thanh ghi ở mức cực cổng. Khi bạn lập trình xong và đem tổng hợp, mạch của bạn sẽ được biên dịch thành các tổ hợp AND, OR, XOR, NOT, D-Filplop… Đó là chuyển đổi mức cổng.
(4) Python: Đây là ngôn ngữ lập trình bậc cao với ưu điểm dễ đọc, dễ học, dễ nhớ, có thể phục vụ mục đích lập trình đa năng.
(5) Ngôn ngữ lập trình script: Đây là ngôn ngữ lập trình chạy cho môi trường chạy đặc biệt tự động hóa thực thi các tác vụ; trong đó người điều hình có thể thực thi từng tác vụ thay thế một. Ngôn ngữ lập trình script thường được diễn giải (thay vì biên dịch).
(6) Timing: Timing là sự đáp ứng về mặt thời gian của các linh kiện điện tử trong mạch. Hiện tượng trễ thời gian xuất hiện vì bản chất vật lý của linh kiện tạo nên các cổng logic và ảnh hưởng tới hoạt động thiết kế cùng chức năng của mạch.
(7) Máy trạng thái hữu hạn (finite-state machine): Máy trạng thái hữu hạn vừa là một mô hình tính toán toán học vừa là một máy trừu tượng có trạng thái nằm trong tổng hữu hạn các trạng thái tại bất kỳ thời điểm nào. Máy trạng thái hữu hạn có thể chuyển từ trạng thái này qua trạng thái khác để phù hợp với đầu vào. Sự thay đổi đó được gọi là quá trình chuyển đổi. Máy trạng thái hữu hạn được xác định nhờ danh sách các trạng thái của nó, trạng thái khởi đầu cùng những điều kiện cho từng sự chuyển đổi trạng thái.
(8) Lập trình hướng đối tượng (object oriented programming): Lập trình hướng đối tượng vừa là một mẫu hình lập trình dựa trên khái niệm công nghệ đối tượng (trong đó, đối tượng chứa đựng các dữ liệu trên các trường, thường gọi là các thuộc tính; mã nguồn được tổ chức thành nhiều phương thức). Phương thức giúp đối tượng truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà chính đối tượng đó đang tương tác.
Bài: BÙI ĐỨC MINH