C++ VC++ Interview - What to Focus ???

C++ VC++ Interview Preparation Spectrum:

General Concepts
1. Pointers
2. Algorithms/Programs for basic String Operations
3. Reverse of a String using Pointers
4. Swap 2 numbers without using temporary variables & Swap 2 numbers using XOR operator
5. Find the duplicate number in an NOT sorted Array of numbers ... Best Search alogorithm
6. Algorithms/Programs regarding Single Linked Lists, Double Linked Lists, Binary Search, Hash Tables, Tree, B-Tree
a. Reverse a Single Linked List
b. Finding whether a Loop is present in Single Linked List
c. Finding whether a Loop is present in Single Linked List & Break the Loop


C++ Concepts
1. Difference between Pointers and References, Why References in C++, C++ Function Pointers, extern "C"
2. Constructor, Private Constructor, Singleton, Initializer List, Destructor, Virtual Destructor,Pure Virtual Destructor, new, delete , Private Inheritance
3. Copy Constructor, Assignment Operator , Shallow Binding vs Deep Binding
4. Static Member Functions, Friend Functions
5. Runtime Polymorphism , Virtual Pointers, Virtual Tables, Abstract Classes
6. Templates, STL (Vector, List, Map ...)
7. C++ TypeCasting(dynamic_cast,reinterpret_cast,static_cast,constant_cast), dynamic_cast w.r.t C++ References ,Smart Pointers , auto_ptr


OS specific Concepts(Windows, Unix (AIX, Solaris, HPUX, Linux))

Windows
1. Inter Process Communication (Named pipes, WinSock, Memory Mapped Files, Window Messages (SendMessage, PostMessage))
2. MultiThreading
3. Thread Synchronization(Critical Section, Mutex, Events, Semaphore, WaitForSingleObject,WaitForMultipleObject)
4. Windows Hooks , Windows Timers, Windows Services
5. Component Object Model(COM), COM Threading Models, IDL, MIDL, IUnknown, IDispatch, Monikers
6. Microsoft Foundation Classes(MFC), Document View Architecture, Command Message Flow, Customizing MFC Controls, MFC Subclassing, MFC HTTP Programming(WinInet), MFC Wizards, MFC Panes , MVC Design Pattern
7. MFC Subclassing (1. Override the IsSubclassedControl and PreCreateWindow member functions of COleControl 2. Modify the OnDraw member function)
...

Unix
1. Inter Process Communication (Pipes, Named pipes, Sockets, Messages Queues & Shared Memory)
2. Multithreading (Pthreads, OS specific threads)
3. Thread Synchronization mechanisms (Semaphore, Mutex, Condition Variable)
4. UNIX Systems Calls, Signals


Database Programming (Sqlserver, Oracle on Windows & Sybase, Oracle on UNIX)
1. Accessing Database on Windows using ODBC, OLEDB, ADO
2. Accessing Database on UNIX using Database specific API (example: OCI/OCCI API to access Oracle)
3. Developing Stored Procedures using TSQL on SqlServer & Sybase
4. Developing Stored Procedures using PL/SQL on Oracle
5. Understand SqlInjection and how to prevent it
...

GUI Programming
1. GUI programming using Win32 API
2. MFC Programming in Windows , modal & modeless dialogs, SDI vs MDI, Message Command Flow in MFC , MFC Subclassing, Customizing MFC Controls
3. Developing ActiveX controls using MFC
4. Using Curses Library on Unix
5. Using Motif/QT/… on Unix


Advanced Topics
1. Design Patterns ( Read GOF book on Patterns)The link below explains Design Patterns in general & has C++/Java example code for each Design pattern.
Link :
http://www.vincehuston.org/dp/

2. SOA Architecture ; Developing WebServices (using either gSoap (or) Microsoft specific )

3. Popular Design Patterns : Singleton, Factory, Observer, Command, Decorator, Facade, Builder

Misc
1. XML (MSXML Parser on Windows, Xerces parser, Expat (Written in "C"))
2. XSLT Parser(Xalan C++ parser)
3. Boost Regular Expression Libray / PCRE
4. HTTP (GET/POST)
5. Curl library
...

Links:

C++/CLI Language Specification -
http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf

ACE(Adaptive Communication Environment) -
http://www.cs.wustl.edu/~schmidt/ACE.html

TAO(ACE Orb) -
http://www.cs.wustl.edu/~schmidt/TAO.html

Books:

C++ Books

1. "Thinking in C++" by Bruce Eckle -
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html

2. Charles Petzold Website -
http://www.charlespetzold.com/

3. Douglas C. Schmidt -
http://www.ece.uci.edu/~schmidt/

4. Vijay Mukhi's Website (Online Books) -
http://www.vijaymukhi.com/

5. Online Books -
http://www.esnips.com/

6. Online Books -
http://onlinebooks.library.upenn.edu/

7. Online Books -
http://safari.informit.com/

8. Safari Online Books -
http://safari.oreilly.com/

9. "Effective C++" by Scott Meyers (ISBN #0201924889) "More Effective C++" by Scott Meyers (ISBN #020163371X)

10. "The C++ Standard Library" by Nicolai Josuttis (ISBN #0201379260)

11. "Accelerated C++" by Koenig and Moo (ISBN #020170353X)

VC++ Books

1. "Programming Windows With MFC" by Jeff Prosise

2. "Programming Applications for Microsoft Windows" by Jeffrey Richter

3. "Microsoft Windows Internals" by Mark E. Russinovich, David A. Solomon

4. "Programming Windows" by Charles Petzold

C/C++(UNIX) Books

1. "UNIX Network Programming" by W. Richard Stevens

2. "Advanced Programming in the UNIX(R) Environment" by W. Richard Stevens

3. "Design of the UNIX Operating System" by Maurice J. Bach