C/C++ What skills in C++ do employers value most in the real world?

AI Thread Summary
To enhance marketability in C++, focus on skills that align with industry expectations. Employers, particularly in large tech companies like Lockheed Martin, often prioritize knowledge of C/C++ for developing console applications, as these are more efficient for many tasks compared to GUIs. While console programming is essential, understanding GUI development can also be beneficial, especially for roles involving user-facing applications. Preparation should include gaining practical experience through internships, contributing to open-source projects, and studying existing code to understand real-world applications. Emphasizing sound programming principles is crucial, as specific job requirements can vary widely. Many positions require a deep understanding of particular areas rather than broad expertise across multiple domains. Ultimately, the ability to implement features in existing code and collaborate effectively within teams is highly valued.
alligatorman
Messages
113
Reaction score
0
I have been looking to improve my skills in C++ to make myself marketable for the future. What I'm wondering is what kind of skills employers are looking for.

I'm a pro at creating console applications, but I highly doubt tech companies would be working in that.

For example, I was looking at an entry level job offered by Lockheed Martin, and it said knowledge in C/C++ is desirable.

What do they mean? I should be able to write programs in consoles? I should be able to create GUIs, or create code that works with an existing GUI?

I know in the real world, things are done in teams, so I would not be responsible for everything, but how would I go about preparing for something like that? I know about programming structure and methods and all that stuff. I just don't know how or where an employer would want me to apply it.

Any insight would be appreciated, and please forgive my ignorance.
 
Technology news on Phys.org
alligatorman said:
I have been looking to improve my skills in C++ to make myself marketable for the future. What I'm wondering is what kind of skills employers are looking for.

I'm a pro at creating console applications, but I highly doubt tech companies would be working in that.

For example, I was looking at an entry level job offered by Lockheed Martin, and it said knowledge in C/C++ is desirable.

What do they mean? I should be able to write programs in consoles? I should be able to create GUIs, or create code that works with an existing GUI?

I know in the real world, things are done in teams, so I would not be responsible for everything, but how would I go about preparing for something like that? I know about programming structure and methods and all that stuff. I just don't know how or where an employer would want me to apply it.

Any insight would be appreciated, and please forgive my ignorance.

The simplest way of preparing yourself is to (i) learn as much as possible about using a given language to solve problems that interest you, (ii) try to get internships during your holidays that will help you see how things work in the real world, and (iii) see if you can find any open source projects in areas in which you're interested, study their code, and contribute.

If you eventually end up working as a coder, the requirements for a given job are highly variable. For example, I did an internship for Lockheed at the end of my first year at Cambridge working on some libraries for guidance systems. As such, I wasn't required to know *anything* about GUI programming, GUI toolkits, networking, and so on. All I had to know was how to (quickly) implement needed features in deep (and very often ancient) code. Obviously, if you went to work for the HIG at Apple you'd need to know an awful lot about Cocoa, Carbon, and Quartz. The moral is that jobs (particularly in large companies) tend to focus on small, well-defined skill sets, as well as the ability to interact with people who know other small, well-defined areas better than you. Pick an area in which you're interested, learn it well, and you'll be off to a good start. It's also far more important to have a good knowledge of sound programming principles than it is to be up to speed with the latest programming fad of the day; fashions come and go but sound knowledge is permanent.
 
Most tech companies like Lockheed are going to be writing primarily console programs. It is much more efficient to run things from the command line than with a GUI.

Software companies that produce programs to be used by end users are the ones doing a lot of GUI development, but really, GUI development is quite easy if you can write console programs and understand object-oriented programming.

In general, if you need graphical output for something, you can look up how to do it. It will be a matter of learning how to use a set of functions from certain header files. You probably won't have to know very much about the theory of computer graphics unless you are building a simulator, working on a video game, doing robot vision, or designing a graphics card.
 
Sometimes, the programming experience is important for the employer to value the employee's ability. You can't be an expert in everything from asm language to C++ to java. and I suggest you could gain your experience below:
  1. read other export's code, this mean's you can stand on the shoulder of gaint,:smile:
  2. read some books about design structures like <<design pattern>>
  3. If you have more time, you can attend some project in open source socity such as www.sourceforge.net.
A good company also has a training plan for its employee.
 
Most tech companies like Lockheed are going to be writing primarily console programs. It is much more efficient to run things from the command line than with a GUI.

This is 100% true. I am a PhD student at Penn State working with Boeing, NASA, Bell, and others. I have worked with them for about 8 years (I am relatively young) and have yet to see a GUI. Console programs are much easier to use with shell scripts and what not, and you will probably be doing a lot of trade studies (running the same program thousands of times, changing parameters only slightly).

All I had to know was how to (quickly) implement needed features in deep (and very often ancient) code.

Also extremely true. You will see code that will amaze you. Not because it's good, but because it's a wonder it ever worked. I once ran into a case of a CFD program written in fortran77 where the program reallocated the entire domain every time step and wondered why his code took forever to run (he had been using it for a decade).

I am not as experienced as these other guys, but I just thought I would throw in my 2 cents. However, I would like to say that knowing how to write a GUI is not always bad. They are easier to use if your going to export your code to others, I find.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top