C / C++ Developer / Engineer
Career Area: Information Technology
Occupation Group: Software Development
Salary
Percentile wages tell how much a certain percentage of an overall population in a geographic area or within a given industry or field makes. The percentile wage estimate is the value of a wage below which a certain percent of workers fall.
An example would be the 25th percentile, 25 percent of workers employed in that occupation earn less and 75 percent earn more than the estimated wage value. At the 75th percentile, 75 percent of workers employed in that occupation earn less and 25 percent earn more than the estimated wage value.
A typical C / C++ Developer / Engineer earns the following wages (national and state):
State
The average salary in North Carolina for those pursuing this career is $101,262
National
The average salary in the United States for those pursuing this career is $104,927
What Does a Professional in this Career Do?
Designs or improves computer software and applications using the C / C++ computer programming language. Oversees the entire C / C++ software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance.
Employment Trends
The job demand and job growth statistics shown here were derived from job posts over the past year. Expected job growth projections are extrapolated from year-over-year job post listing history.
Job demand and job growth is expected at the following rates:
Location | Growth | |
---|---|---|
North Carolina | 182 | +29.1% |
Nationwide | 5623 | +25.6% |
Skills
A professional in this position typically utilizes the following skills in the course of everyday work in this exciting and challenging field:
Baseline Skills
The following are baseline skills every C / C++ Developer / Engineer is expected to have in order to experience success in this field:
- Communication Skills: The ability to convey information to another effectively and efficiently.
- Teamwork / Collaboration: Experience working in collaborative efforts with a team to achieve a common goal or to complete a task in the most effective and efficient way.
- Problem Solving: Problem solving consists of using generic or ad hoc methods, in an orderly manner, for finding solutions to problems.
- Writing: Experience expressing business messages effectively in written form. This may include planning drafting and revising as necessary.
- Troubleshooting: Troubleshooting or dpanneuring is a form of problem solving, often applied to repair failed products or processes on a machine or a system.
Specialized Skills
These skills are specific to working in this career:
- C++: C++ (pronounced cee plus plus ) is a general-purpose programming language.
- Software Engineering: Working experience with the application of engineering to the development of software in a systematic method.
- Software Development: Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product.
- Linux: Linux (pronounced LIN-ks or, less frequently, LYN-ks) is a Unix-like computer operating system assembled under the model of free and open-source software development and distribution.
- Python: Python is a widely used high-level programming language for general-purpose programming, created by Guido van Rossum and first released in 1991.
Distinguishing Skills
Any C / C++ Developer / Engineer that possesses the following skills will stand out against the competition:
- .NET: .NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.
- Embedded Software: Working experience of Embedded Software, which is computer software, written to control machines or devices that are not typically thought of as computers. It is typically specialized for the particular hardware that it runs on and has time and memory constraints.
- Embedded Systems: An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints.
- Multithreading: Working experience of Multithreading. Multithreading is a type of execution model that allows multiple threads to exist within the context of a process such that they execute independently but share their process resources. A thread maintains a list of information relevant to its execution including the priority schedule, exception handlers, a set of CPU registers, and stack state in the address space of its hosting process.
- Bash: Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell.
Experience
This position typically requires the following level of experience. The numbers presented in the pie charts below were derived from actual job posts over the past year. Not all job postings list experience requirements.
Experience Required | % |
0 to 2 years | 17% |
3 to 5 years | 55% |
6 to 8 years | 17% |
Many of the programs offered through NC State are designed for working professionals who need additional credentials to enhance existing work experience.
Students who do not have the expected level of experience may wish to look into internship and employment opportunities.
Common Job Titles
It is possible to find work in this field in positions commonly listed as the following job titles:
- C++ Developer
- C++ Software Engineer
- Senior C++ Developer
- C/C++ Developer
- Software Engineer C++
Similar Occupations
If you are interested in exploring similar occupations, you may want to research the following job titles: