Topics to Prepare for an Interview: (C, Linux and Networking Interview
Questions)
This article captures the list of topics to be
covered/prepared for an Interview in Networking domain with C as a programming
language and Linux as a work environment. This will help the candidate/employee
who is experienced, having no idea of how to prepare (begin with) for an
interview. All the topics covered here are collected from different experienced
employees who gave interview for different companies on Networking domain.
Following are the list of topics which needs to be
covered in order to prepare for an interview in Networking domain,
1. Storage classes in C
(Important)
>> Most of the questions will be on static and
extern variables
2. Memory layout of a process in
Linux
>> Correlation of memory layout with storage
classes
3. Inter Process Communication
(IPC)
>> Message queue, Shared memory, Pipes, FIFO,
Semaphore, IOCTL, Sockets -Learn each concept in detail with their use cases
4. Multi-threading
>> POSIX threads and mutex, critical section
problem
5. Process synchronization Techniques
>> Semaphores and Mutex and their use cases
6. Socket programming
>> Different types of sockets such as TCP, UDP,
RAW, NETLINK, UNIX Domain socket and their use cases (When to use)
7. C data structures
>> Linked list (Singly linked list and Doubly
linked list), Stack, Queue - (add a node (add a node to the front of the list
or at the end of the list), delete a node (delete first node or delete a node
from the end of the list), reverse a linked list, push-pop operations on stack,
detect a loop in linked list, intersection in linked list etc.
8. Knowledge about your core
domain you worked on (Important)
>> Prepare well on your domain (Ex. Firmware,
Wi-Fi, L2/L3 etc.) and you should be in a position to explain all the works
that you have done on your domain.
9. Pointers and de-referencing
>> Recall basics of pointers (Good to have deep
knowledge on pointers and its use cases)
10. Implementation of our own functions for memcpy,
strrev, memmove, sizeof, strlen etc.
>> Understand how each function is actually
implemented.
11. Concepts of networking protocols such as DHCP, ARP,
ICMP, TCP/IP, NAT, Routing, switching, VLAN etc.
>> Good to know the use cases and scenarios
12. Operations on bits (Important)
>> Toggle a bit, clear a bit, set a bit, count number
of bits set in a given number, reverse bits of a number etc.
13. Operating System concepts
>> Process states, scheduling, dispatching, paging,
page fault, virtual memory concept etc.
14. Linux internals
>> Interrupt, ISR, system boot up sequence,
software interrupts, system calls etc.
15. Dynamic memory allocation concepts
>> malloc, calloc, realloc (return value of these
functions and how these memory allocations implemented)
16. Good understanding of C programming language.
>> Brush up on C programming concepts such as
function pointer, call back function, pointer arithmetic, MACRO, inline functions,
structures padding and packing etc.
Hope this article will help you to start your preparation
for the interview. I will add more topics in future. Keep visiting this space
for more update.
No comments:
Post a Comment