Thương lượng | Hanoi
Thương lượng | Ho Chi Minh
1.400 - $2.100 | Hanoi, South Korea
Một kỹ sư phần mềm C / C++ chịu trách nhiệm phát triển và / hoặc thực hiện các tính năng mới để cải thiện các chương trình và phần mềm hiện có. C / C++ là ngôn ngữ có mục đích chung trong lập trình máy tính. Nó là một ngôn ngữ cấp trung có thể được sử dụng cho một số mục đích trong ngành công nghiệp máy tính. Ngôn ngữ C / C++ có thể không phải luôn luôn là ngôn ngữ lập trình được ưa thích nhất, nhưng có nhiều khía cạnh của lập trình phần mềm không thể thực hiện được khi sử dụng C / C++. Khi phát triển hoặc cải tiến hệ thống máy tính, các kỹ sư thực hiện các kỹ thuật về khoa học máy tính, kỹ thuật và phân tích toán học để tạo ra giải pháp tối ưu nhất hoặc đổi mới.
C / C++ là một mục đích chung, ngôn ngữ lập trình đa mô hình. Các C,C++ Developer thường làm việc trên cả ứng dụng máy tính để bàn và thiết bị di động, cũng như phần mềm tương tác với tài nguyên phần cứng và hệ thống cấp thấp. Các C,C++ Developer có thể sử dụng C / C++ để xây dựng các mô-đun và ứng dụng gốc cho một số nền tảng, chẳng hạn như Android sử dụng Android NDK. C / C++, là một ngôn ngữ khó thành thạo, đòi hỏi C,C++ Developer phải dành nhiều thời gian cho nó.
Một lập trình viên C / C ++ thiết kế và phát triển các giải pháp phần mềm với ngôn ngữ lập trình cùng tên. Ngoài lập trình, phát triển hơn nữa và tối ưu hóa, các nhiệm vụ của họ cũng bao gồm bảo trì các hệ thống phần mềm này.
Một lập trình viên C / C ++ thường chịu trách nhiệm xây dựng các ứng dụng có thể bao gồm từ ứng dụng máy tính để bàn đến ứng dụng di động và hệ thống nhúng hàng ngày.
Mã hóa chỉ đơn giản là cơ sở của khối lượng công việc của họ. Các lập trình viên C / C++ trong vai trò lãnh đạo làm nhiều hơn so với mã hóa đơn giản. Họ có thể chịu trách nhiệm xác định các yêu cầu, viết thuật toán và giám sát việc triển khai. Họ thường làm việc như một phần của các đội lớn. Có một luồng thông tin liên tục giữa các nhà thiết kế và lập trình viên C / C++.
Ngoài ra, họ cũng liên quan đến các vấn đề quản lý dự án. Liên quan đến năng lực cốt lõi của họ, họ cũng thực hiện các nhiệm vụ tài liệu và chăm sóc bảo trì kiến trúc phần mềm.
Kỹ năng cứng và Kỹ năng mềm
- Một lập trình viên C và C++ cần thông thạo ngôn ngữ C và C++. Ngoài ra, điều quan trọng là họ phải để mắt đến cấu trúc mã. Điều này đòi hỏi kỹ năng tự quản lý tốt và mức độ tự thúc đẩy cao.
- Thuật ngữ phát triển hướng đối tượng, không nên là một từ xa lạ đối với các lập trình viên và việc làm quen với các thuật toán khác nhau được khuyến nghị để giải quyết vấn đề hiệu quả.
- Hơn nữa, các lập trình viên C++ nên có ít nhất một sự hiểu biết cơ bản về cả cơ sở dữ liệu quan hệ và cơ sở dữ liệu tài liệu. Họ phải cập nhật về kiểm soát phiên bản.
- Các kỹ năng phi môn học khác bao gồm hiểu nhanh, khả năng phát triển nhanh chóng và hiệu quả các giải pháp khả thi và sẵn sàng học hỏi liên tục. Không có gì gây tử vong cho lập trình viên khi giữ nguyên hiện trạng.
Lập trình viên C / C++ cần phải làm gì?
- Các lập trình viên C và C++ làm việc trên một loạt các công cụ và phần mềm kỹ thuật hàng ngày. Chúng có thể bao gồm từ các ngôn ngữ cấp cao như Node.js, Python, Go, Valgrind, v.v., đến các công cụ phiên bản mã như Git, SVN và Mercurial.
Ngoài các công cụ được đề cập ở trên, các lập trình viên C và C++ có thể hưởng lợi từ việc tích lũy kinh nghiệm với những điều sau:
- Các ngôn ngữ tuân thủ C ++ như Java, C, Python, v.v.
- Hệ điều hành thay thế như Linux
- Cơ sở dữ liệu, SQL, NoQuery
- JavaScript
- XML và sự hiểu biết về phần mềm nhanh
C++ cho phép hầu hết các cấu trúc và mã C được biên dịch thành mã C++, đồng thời cho phép nhiều công cụ lập trình hơn như mẫu, RAII (Khởi tạo tài nguyên là khởi tạo), các lớp, biểu thức lambda, thư viện chuẩn lớn hơn và mạnh hơn và hệ thống loại mạnh hơn.
Đồng thời, C có một số công cụ mà C ++ thiếu. Chúng bao gồm các bộ khởi tạo được chỉ định và mảng chiều dài thay đổi (VLAs). Một nguyên tắc chung là nếu có môi trường C++, thì bạn có thể chắc chắn một trăm phần trăm rằng môi trường C có mặt. Điều ngược lại không nhất thiết là đúng.
C đã thay đổi trong một thời gian. Hai phiên bản mới nhất, C11 và C18, chúng tôi có thể thay đổi cả hai thứ nhỏ và không thay đổi. C21 tương lai không có vẻ gì là đột phá.
C++, mặt khác, đang bắt đầu đạt được tiến bộ sau khi không làm được gì nhiều trong thập kỷ qua. Hiện tại, một bản sửa đổi được phát hành ba năm một lần kể từ C++ 11 với C++ 20 được dự đoán sẽ đến đúng giờ.
Gần như tất cả các thư viện có sẵn đều hiển thị API C hoặc ràng buộc, ngay cả khi chúng được viết bằng ngôn ngữ khác. C++ có thể được sử dụng cho tất cả các thư viện đó. Ngoài ra còn có một số thư viện chỉ C++ như Boost, Qt và POCO.
Có lẽ điều quan trọng nhất đối với một lập trình viên C là phải hiểu về số học con trỏ và những gì cấu thành hành vi không xác định. Ngoài ra, lập trình viên C nên thoải mái với việc sử dụng các công cụ gỡ lỗi như Địa chỉ / Bộ nhớ / Không xác địnhBehavior Sanitizer, Valgrind, trình gỡ lỗi (ví dụ: GDB) và các công cụ phân tích mã tĩnh.
Một lập trình viên C++ sẽ có thể hiểu tất cả các công cụ C cũng như các thư viện Boost và Qt, đủ để có thể sử dụng chúng.
Ngoài ra, khi nhìn vào trải nghiệm của các lập trình viên, các dự án thương mại và nguồn mở nói nhiều nhất về những gì họ có khả năng.
CV là nơi đầu tiên mà bạn có thể tìm kiếm để tìm manh mối về những gì ứng viên của bạn có thể làm. Đối với một nhà tuyển dụng phi kỹ thuật, đây thường có thể là một nơi khó bắt đầu vì thông tin thường mang tính kỹ thuật cao. Để giúp bạn giải quyết, chúng tôi đã đưa ra một danh sách những điều cần tìm kiếm trong bản lý lịch của nhà phát triển C và C++.
Hiện tại Recruitery có khá nhiều vị trí C và C++ cần tuyển, các bạn có thể tham khảo tại đây: https://recruitery.co/job.html?location=0&jobtype=0&keyword=C++
- Thiết kế, xây dựng và duy trì mã C ++ hiệu quả, có thể tái sử dụng và đáng tin cậy
- Thực hiện các mô-đun hiệu suất và chất lượng
- Xác định các tắc nghẽn và lỗi và đưa ra giải pháp cho các vấn đề này
- Giúp duy trì chất lượng mã, tổ chức và tự động hóa
- Thành thạo C ++, với kiến thức công bằng về đặc tả ngôn ngữ
- Hiểu biết kỹ về thư viện chuẩn, bộ chứa STL và thuật toán
- Hiểu biết tốt về quản lý bộ nhớ trong môi trường không được thu gom rác
- Hiểu về đa hình động và các khái niệm cụ thể của C ++
- Làm quen với tạo khuôn mẫu trong C ++
- Làm quen với thiết kế hệ thống nhúng
- Kiến thức về các thư viện tiêu chuẩn và các chức năng thư viện trình bao bọc cuộc gọi hệ thống
- Kỹ năng lập trình với Python, Java, Node.js, Go,