C++ job expectations

Hello. I was recently wondering what are the expectations of an average day of a C++ programmer at his/her workplace. Thanks for answering.
It depends very much on the job and the expertise of the programmer, but here are some thoughts from a guy who's been programming professionally for 30+ years.

Programming in the workplace is different from programming in school. You have to check for errors. That means errors in the input, errors returned from library calls, errors anywhere they can occur. You also have to deal with each of these gracefully. I help maintain a core piece of my company's software and I often joke that it's main function is to check for errors. Actually doing useful work is just incidental.

Most of what you do will be modifying existing code, not writing new code. This is completely the opposite of school assignments where you'd be expelled if there was any hint of modifying someone else's code.

The actual coding part is relatively small. Most of your time is taken in developing and analyzing requirements and designing the code.

I spend about 50% of my time on support.
its all over the place.
my first job was at a tiny company, so we had to do everything … gather requirements, design, implement, test, debug, maintain, document, etc all done by a couple of people. I had to interface to hardware devices and help choose what systems to buy to run our code (we built stuff that had computers and code in it, not just pure software but a package).

Now I am at a huge company and someone else does the high level design, requirements, and 'real' testing; all I have to do is code it up (not in c++ now but its not relevant) and test it to my own satisfaction, then let the test engineer have it, and if its not right it will come back with complaints about what was wrong. So now my job is just code, sanity-test and document for the most part, coupled with a bit of support if something breaks and the support team can't fix it without a coder's help.





Since we are talking about C++, my expectations would depend a lot upon what we are doing. C++ can reasonably go both ways, below (system software, drivers, embedded etc.) and above (application software, native or hosted etc.) the kernel layer of the operating system.

For first case I will look for:

Algorithms
Data structures
Time and space optimisations
Low level operating systems and networking concepts
For latter:

API development
Databases
Scalability
Availability
Performance
Security
UI (if applicable)
Topic archived. No new replies allowed.