Skip to main content

The C++ Job Seeker's Guide

Job guide
C++ Job Seek 



Whether youā€™re a fresh CS graduate with no prior experience or youā€™re a seasoned team leader looking for greener pastures, I have some useful tips that will help you find a job. The first part of this series focuses on the initial job seeking moves, including finding a professional recruiter and which beginnerā€™s mistakes to avoid.

Getting Started

Finding the first job as a C++ programmer is more difficult than finding subsequent jobs since most of the positions offered are aimed at experienced C++ programmers. However, beginners can certainly find good jobs, too. It may take longer, the salary and the compensations might not be much to shout about, but itā€™s doable.

Where should beginners look for their first job? Many startup companies are looking for fresh graduates to take care of software customization, porting and testing. Other companies may be in search of code maintainers. Yes, itā€™s not as fun as developing new applications but one can learn a lot from these jobs. Remember: whatever your initial job is, if you excel at what you do, you will be promoted quickly to "sexier" positions. Besides, those debutantsā€™ duties are a good way of discovering which application domain interests you most: GUI, system programming, Web programming or perhaps AI?

Calling all Recruiters
Your most important move is finding a professional recruiter. The benefits for you are significant:

Immediate or near immediate acceptance/rejection responses. Waiting for an answer after a job interview can take forever -- unless you were referred by a recruiter. A recruiter can call your interviewer to sniff around. You never have this privilege! If the interview went well, youā€™ll be told what to expect next. Otherwise, your recruiter will tell you why you were turned down. This information is priceless.

Professional recruiters rarely send your original rƩsumƩ to their clients. Instead, they transform it into their proprietary template, highlighting relevant skills while omitting unnecessary profuseness. Your potential employer gets a distilled and optimized rƩsumƩ tailored for a specific job position.

One question still remains, though: how do you find the right recruiter?

Getting it Right
Obviously, I cannot recommend specific brands. However, you can easily tell apart a professional recruiter from an amateur. Here are a few tests:

The personal touch factor. Does your recruiter settle for your emailed rƩsumƩ or does she also invite you for a personal interview? A professional recruiter should interview you to get further information about your background, skills, ambitions and personality. This preliminary interview is an essential part of a successful placement, no matter how detailed and neat your rƩsumƩ is.



Absolutely no fees or charges. Does your recruiter insist on registration fees or any other charges? If the answer is "yes", look elsewhere. Professional recruiters get their commission from the company that hires candidates, never from the candidates themselves.

Specialization. A decent recruiting company has several consultants, each specializing in a different area: real-time/embedded, Windows C++ development, Linux system programming etc. However, if you stumbled upon a recruiter of the "regular expression matching" kind, find another one. The regular expression matching recruiters are those who naively assume that any job position that contains the string "C++" is suitable for any candidate whose rƩsumƩ contains the same token. Such amateurs might assume that developing GUI in Managed C++ is suitable for a candidate whose specialty is Linux kernel optimization.

Effectiveness. Does your recruiter deliver? Consider the following scenario. You sent a rĆ©sumĆ© to a recruiting agency. They interviewed you and promised to be in touch. 10 days later, you still havenā€™t heard from them. Donā€™t hold your breath. Simply contact a better recruiter. During your interview, your recruiting consultant should tell you what to expect. A job interview per day is quite normal. In any event, donā€™t sit and wait forever for a call. Donā€™t buy lame excuses either -- itā€™s never a "weak season" in the C++ business.

Itā€™s a Small World
The Internet has opened the world for job seekers. A job vacancy in Emeryville, California isnā€™t necessarily limited to engineers living in that area. However, recruiters and employers alike tend to forget that. Itā€™s therefore best to specify upfront where you live, be it Indianapolis, Perth or Bangalore. More than once amateurs have offered me jobs in companies that were located 5,000 miles away.

In some cases, the employer is willing to pay relocation expenses. However, to reduce the noise level, always state where you live and ask whether the current position is open for non-locals.

Ask and you shall be Given (Answers)
In the past 15 years Iā€™ve met many candidates who were afraid to ask questions that are too important to be left unanswered such as:

What is my salary?

Which compensations do you offer?

Does the job require traveling abroad?

Do you pay for extra hours?

Will I get new projects or only code maintenance tasks?

What are the expected working hours?

Do you offer on site training or courses?

Which development tools and technologies do you use?

Is this job suitable for a student/a mother of a six month old baby?

Do I need a security clearance for this job?

Candidates are afraid to ask these questions because of unawareness, bashfulness, or even because they fear that these questions might deter their potential employee. This is a mistake. I once applied for a job, assuming that my traveling expenses would be paid in full. I learned the hard way that this wasnā€™t the case. Conclusion: itā€™s better to give up a job that isnā€™t right for you than having to quit a week after you started. Donā€™t leave anything to chance.

If you feel embarrassed to ask any of those important questions, I have a solution for you: ask your recruiter! She should have the answers to most of them at least. If she doesnā€™t, she wonā€™t hesitate to ask your potential employer.

Popular posts from this blog

What is iostream.h in C++ Programing Language ?

In C++ programing language, all header files end with .H extension. In standard C++, all devices are accessed and used as a file.  One such header file is iostream.h in C++ programming language. In this, all input and output devices are treated as files.  Let's quickly look at what are the input and output devices mean in C++ program.  Standard Input Device - Keyboard  Standard Output Device   - Monitor  Standard Error Device - Screen or monitor In C++, input and output are not defined within, and are implemented with the help of a component of the C++ standard library which is I/O library.  A file is read simply as a stream of bytes at the lowest level. But at a user level, a file consists of possibly mixed data types which can be characters, arithmetic values class, objects etc.  What are the predefined streams in I/O Library? As discussed above there are input, output and error library in c++, they have some predefined streams objects as well w...

C++ Program to find the sum, difference, product and quotient of two integers

#include <iostream.h> #include <conio.h> void main() {   clrscr();   int x = 10;   int y = 2;   int sum, difference, product, quotient;   sum = x + y;   difference = x - y;   product = x * y;   quotient = x / y;   cout << "The sum of " << x << " & " << y << " is " << sum << "." << endl;   cout << "The difference of " << x << " & " << "y <<  is " << difference << "." << endl;   cout << "The product of " << x << " & " << y << " is " << product << "." << endl;   cout << "The quotient of " << x << " & " << y << " is " << quotient << "." << endl;   getch(); }

What is Dynamic Memory Allocation in C++ Program

In the computer world, anything that is processed be it an instruction or any data first needs to be loaded and located in internal memory.  In C++ programs also any data that is processed while executing the program is held in the internal memory.  What is Dynamic Memory Allocation? Dynamic Memory allocation means that the memory that will be used during the program is not known beforehand and is allocated dynamically and on the go. It is allocated during the runtime as and when required by the program. In C++ there are two operators used in dynamic memory allocation  1. New  2. Delete New operator in dynamic memory allocation The new operator in C++ is used to create objects of all types. The new operator will allocate memory of the size of the data type specified in the program.  For Example iptr = new int ;  Storing initial values will allocate needed amount of memory from the free store to hold the value of the specified data-type and store the startin...