Professional C__ - Marc Gregoire [505]
The authors spend a dizzying amount of their time reading resumes and one trend is clear — everybody is listing Extreme Programming as a skill these days. While there’s little hard data on the subject, it certainly seems unlikely that strict adherence to XP is commonplace in programming environments. What we’ve found is that many organizations have started to look into XP and have adopted some of its principles without subscribing to it in any formal way.
If the interviewer asks you about XP, he or she probably doesn’t want you to simply recite the textbook definition — the interviewer knows that you can read the table of contents of an XP book. Instead, pick a few ideas from XP that you find appealing. Explain each to the interviewer along with your thoughts on them. Try to engage the interviewer in a conversation, proceeding in a direction in which he or she is interested based on the cues that person gives.
If you get a question regarding source code control it will most likely be a high-level question. You should explain the general principles behind source code control solutions, mention the fact that there are commercial and free open-source solutions available, and explain how source code control happened at your previous employer.
CHAPTER 24: WRITING EFFICIENT C++
Efficiency questions are quite common in interviews because many organizations are facing scalability issues with their code and need programmers who are savvy about performance.
Things to Remember
Language level efficiency is important, but it can only go so far; design-level choices are ultimately more significant.
Reference parameters are more efficient because they avoid copying.
Object pools can help avoid the overhead of creating and destroying objects.
Profiling is vital to determine which operations are really consuming the most running time.
Types of Questions
Often, the interviewer will use their own product as an example to drive efficiency questions. Sometimes the interviewer will describe an older design and some performance-related symptoms they experienced. The candidate is supposed to come up with a new design that alleviates the problem. Unfortunately, there is a major problem with a question like this — what are the odds that you’re going to come up with the same solution that the company did when the problem was actually solved? Because the odds are slim, you need to be extra careful to justify your designs. You may not come up with the actual solution, but you can still have an answer that is correct or even better than the company’s newer design.
Other types of efficiency questions may ask you to tweak some C++ code for performance or iterate on an algorithm. For example, the interviewer could show you code that contains extraneous copies or inefficient loops.
The interviewer might also ask you for a high-level description of profiling tools and what their benefits are.
CHAPTER 25: DEVELOPING CROSS-PLATFORM AND CROSS-LANGUAGE APPLICATIONS
Few programmers submit resumes that list only a single language or technology, and few large applications rely on only a single language or technology. Even if you’re interviewing for only a C++ position, the interviewer can still ask questions about other languages, especially as they relate to C++.
Things to Remember
The ways in which platforms can differ (architecture, sizes, etc.)
The fine line between programming and scripting
The interactions between C++ and other languages
Types of Questions
The most popular cross-language question is to compare and contrast two different languages. You should avoid saying just positive or just negative things about a particular language, even if you really love or hate that other language. The interviewer wants to know that you are able to see tradeoffs and make decisions based on them.
Cross-platform questions are more likely to be asked while discussing previous work.