Questions for C++/C developers

Programming and Unix/Linux


  1. How you understand the distributed client/server application structure?
  2. What is process and process environment?
  3. What is the coding, encoding and characters representation? What do you know about Unicode?
  4. How the Unix/Linux supports multi-byte characters?
  5. What are the libraries, components, interfaces and configuration management and how to use this in a developing of reusable Unix software?
  6. What is the lexical analysis and parsing? How to use it in a streaming data processing?
  7. Interpretation vs. compilation, hardware independent and machine code from your point of view.
  8. How you understand possible localization principles in application with UI and without?
  9. What do you know about well known libraries for Unix/Linux developers?

C/C++ language and programming in general


  1. What do you know about C preprocessor?
  2. How do you understanding the standard data types in C and C++?
  3. What are constants, variables, operators, expressions, casting and type conversion in C and C++ languages?
  4. How do you understand pointers and arrays language?
  5. How do you understand strings?
  6. How do you understand dynamic and static memory allocation?
  7. How do you understand process input/output management in C and C++ applications?
  8. How do you understand streamed and non-streamed I/O?
  9. How to make strings manipulation with multi-byte strings? Example of create/initialize copy, substring select etc. operations.
  10. What is a library? Static and shared libraries, what is it?
  11. What type of library load you know?
  12. How to use a shared library to create interfaces and API?
  13. How you understand threads and process threading in the Linux OS? Threads vs. process – your understanding.
  14. How you understand structuring the large project in C and C++. What do you know about headers, external variables, subdividing on several files, modules, classes, templates and libraries?
  15. How do you understand inheritance and virtualization in C++?
  16. How do you understand memory allocation in C++?
  17. How do you understand name spacing and scope in C++?
  18. How do you understand type casting differences in C and C++?

Unix/Linux C programming


  1. What does fork() do?
  2. What’s the difference between fork() and vfork()?
  3. Why use _exit rather than exit in the child branch of a fork?
  4. How can I get/set an environment variable from a program?
  5. How can I sleep for less than a second?
  6. How can I get a finer-grained version of alarm()?
  7. How can a parent and child process communicate?
  8. How do I get my program to act like a daemon?
  9. How can I look at process in the system like ps does?
  10. Given a pid, how can I tell if it’s a running program?
  11. What’s the return value of system/pclose/waitpid?
  12. How do I find out about a process’ memory usage?
  13. How do I change the name of my program (as seen by `ps`)?
  14. How can I find a process’ executable file?
  15. Why doesn’t my process get SIGHUP when its parent dies?
  16. How can I kill all descendents of a process?
  17. How to manage multiple connections?
  18. How do I use select()?
  19. How do I use poll()?
  20. How do I use epoll?
  21. How can I tell when the other end of a connection shuts down?
  22. What the best way to read directories?
  23. How can I find out if someone else has a file open?
  24. How do I `lock’ a file?
  25. How do I find out if a file has been updated by another process?
  26. How do I find the size of a file?
  27. How do I use named and unnamed pipes?
  28. How do I compare strings using wildcards?
  29. How do I compare strings using regular expressions?
  30. How can I debug the children after a fork?
  31. How to do inter process communications by standard libraries functions set (pipes, message queues, memory mapped IO, shared memory, signals, semaphores and sockets)?
  32. What is make, imake, CVS and RCS? How to use scripts to generate makefiles automatically?

Network programming and TCP/IP


  1. How you understand the main principles of TCP/IP?
  2. What are the TCP/IP services in the Internet, how you understand service application as a technology and how it works?
  3. What do you know about sockets?
  4. What do you know about TCP connections, data transferring, requesting and responses using TCP sockets?
  5. What are HTML, HTTP and WWW?
  6. What is MIME, how it is used in the WWW?
  7. What are cookies and sessions? How they used in WWW?
  8. What is content and content type header?
  9. What is HTML forms and form submission? How to handle forms submission?

Database programming


  1. What do you know about SQL as a declarative language?
  2. What do you know about the Data Definition Language (DDL) as a part of SQL?
  3. What do you know about the Data Manipulation Language (DML) part of SQL?
  4. What do you know about creating tables and indexes, selecting rows and columns, creating views, updating and deleting in SQL.
  5. What the relationship between C data types and Relational Database data types?
  6. What is embedded static and dynamic SQL?
  7. What is ODBC?
  8. What are embedded mysql libraries?
  9. What the main principles of database programming interface for C/C++ developers?
  10. What do you know about stored procedures and functions?
  11. What do you know about tablespaces, control files, memory structure, process structure in db servers?
  12. What do you know about principles of database analysis and tuning, CPU performance management, effective usage of indexes and SQL statements?