your image

C and C++ Developers Key Skills Set Requrements

C++ Developer key skills
Related Topic
:- C language

What tools and techniques should a C or C++ developer be familiar with?

Probably the most important thing for a C developer is to have an understanding of is pointer arithmetic and what constitutes undefined behavior. In addition, a C developer should be comfortable with using debugging tools such as Address/Memory/UndefinedBehavior Sanitizer, Valgrind, debuggers (e.g. GDB), and static code analysis tools.

A C++ developer should be able to understand all of the C tools as well as the Boost and Qt libraries, well enough to be able to use them.

Beyond that, when looking at a developers experience, commercial and open source projects say the most about what they are capable of.

How to verify C and C++ developer skills in the screening phase

Technical interviews are expensive and time consuming for you and your candidates. You don’t want to interview everybody who applies. Instead, it is important to screen your candidates so that the only ones who make it to the interview stage have the technical skills needed for the job.

RECOMMENDED READING: Complete C++ developer salary data

4. Screening a C developer or a C++ developer using their resume

The resume is the first place that you can look to find clues about what your candidate can do. For a non-technical recruiter, this can often be a difficult place to start as the information is often highly technical. To help you out, we’ve put together a list of things to look for on a C and C++ developer’s resume.

4.1 C and C++ glossary for technical recruiters

C librariesThe C Standard Library

 

  • The library described by the C standard document, shipping with each compiler

Other, less universally used, but still popular libraries:

GTK

  • A library for creating graphical user interfaces

Cairo

  • A 2d graphics library

ALSA

  • A library to interface with Advanced Linux Sound Architecture

BLAS

  • Basic Linear Algebra Subprograms. This library is used for efficient vector and matrix operations

GMP

  • GNU Multi Precision. A library providing for arithmetic operations on arbitrary-precision numbers

cURL

  • The multiprotocol file transfer library. Most commonly used for HTTP communications

OpenSSL

  • A commercial-grade and wildly popular library used for cryptography support

C++ LibrariesThe C++ Standard Library

 

  • The library described by the C++ standard document, shipping with each compiler

Boost

  • One of the most popular libraries for C++, a set of several dozen disconnected libraries that can be freely used in C++ programs

Qt

  • The go-to GUI framework for C++

STL

  • A controversial acronym, which usually means C++ Standard Library, but is understood as Standard Template Library, as if the non-template parts weren’t a part of it

Other, less universally used, but still popular libraries:

Eigen

  • C++ template library for linear algebra (matrices, vectors, numerical solvers and related algorithms)

GSL

  • Guidelines Support library implementation, recommended by Bjarne Stroustrup, Herb Sutter, and Co. in C++ Core Guidelines

Loki

  • design patterns

Folly

  • A set of C++11 components extending the standard library. Designed with efficiency and practicality in mind. Developed by Facebook

Abseil

  • A collection of C++ libraries extending the standard library. Created by Google

POCO

  • A set of libraries supporting HTTP, networking, encryption and zip file support

WxWidgets

  • A library allowing the creation of system-independent GUI applications

OpenCV

  • A computer vision library, designed for computational efficiency with a focus on real-time applications

OpenMP

  • Less of a library, and more of a specification for compilers how to extend C++ to allow simple and well-designed parallelism

IntelTBB

  • A template library for task parallelism. Designed by Intel

CompilerThe tool used to create an executable (an application) from the C/C++ source, most popular:

 

  • GCC – GNU Compiler Collection
  • MinGW GCC – Windows version of GCC
  • Clang – Compiler by the LLVM project
  • MSVC (also called, somewhat incorrectly, MSVS or Visual Studio) – Microsoft’s Compiler
  • ICC – Intel’s compiler

DebuggerA tool to find bugs in running programs

 

  • Valgrind
  • GDB
  • LLDB
  • WinDBG

Code instrumentationThis is an extension to the compiler to produce an application version that is aimed at finding bugs instead of performance

 

  • Address/Memory/UndefinedBehavior Sanitizer

Static analysisAn analysis of the source code in terms of bugs. Commercial software exists that can find some classes of bugs this way

 

  • CppCheck
  • Clang
  • Klocwork Static Code Analysis
  • PC-Lint
  • Coverity
  • PVS-Studio

4.2 The most common C and C++ technology names that are used interchangeably

  • The C++ Standard Library and STL are sometimes used interchangeably, but not correctly

4.3 The different versions of C and C++

Versions of C

Versions of C are labeled with the year they were released (e.g. C89 is C from 1989). There are no in-between versions (e.g. C06), but some may refer to pre-C89

The most popular revisions are:

  • C89
  • C95
  • C99
  • C11
  • C18
  • C21 (not published yet),
  • ANSI C

Versions of C++

Versions of C++ are labeled the same way as versions of C with the year they were published.

Comments