How do I prepare for Technical Interview ?



Lets look at the basic things you must know if you are interviewing for a software engineering position : 



  • Programming in a language of your choice : You should have a strong hold on at least one programming language.  You should be quickly able to understand reasonably complex piece of codes and mentally dry run them. You should be able to code a complex scenario in the said language.
  • Problem solving / Algorithms : Algorithms in itself is a huge field. You are expected to know about basic algorithms. You will be at a great advantage if you know about basic problem solving approaches.


    The above 2 topics make up for 50-75% of a software engineering interview process.   
  • System Design : This is extremely important if you are an experienced software engineer. You need to be good at :
    • Understanding the requirements of a system
    • Designing scalable, fault tolerant systems ( Horizontal vs vertical scaling ) 
  • Basics of the following[2] :
    • Operating Systems : Threads and Processes, Thread synchronization primitives ( semaphores and mutex ),  Memory management ( Paging, Swapping )
    • Databases : Querying a Relational DBMS, Indexing, Primary and Foreign Key constraints, Normalisation, Internal storage
    • Networks : Network Layers, TCP and UDP, TCP packet structure, Packet routing,  Subnetting
    • Web : Cookies, Session management, Caching, Http / Https    
Where to learn them

  • Programming in a language of your choice : Just assume you know the basics of programming in at least one language. Don't take to prepare more langaguges choose best for you.
  • Problem solving / Algorithms : Personally, I feel mycodeschool does a good job of teaching the basics of algorithms required. 
     InterviewBit has topic wise video tutorials augmented with related historical interview problems to practice on. 
    Leetcode has a great selection of problems to build problem solving skills. 
    If you feel a bit more adventurous, you can checkout http://www.spoj.comand Problemset - Codeforces. However, most of these problems might be too hard to qualify for a technical interview question.
  • System Design : I feel http://www.hiredintech.com/syste... is a great point to start with. http://book.mixu.net/distsys/ebo... makes for an interesting read.   
Final Execution

Now that you are done with the preparation, following few final tips might help you do well in an actual interview : 


  • Avoiding misunderstanding : A lot of candidates do badly in a programming interview because they start solving a problem different than the intended one. Make sure you spend 2-5 minutes asking the interviewer about corner cases on the problem. This will ensure that you have understood the problem correctly, and you understand corner cases to take care of in your solution. 
  • Code structure : This is not just applicable to interviews. Spending some time to think about how you would structure the code can save you coding and debugging time.
  • Communicate : You should be able to communicate your thoughts to the interviewer. The interviewing process ( especially the system design round ) is mostly bouncing around ideas, and explaining to them your thought process.
  • Company fit : Make sure you do your research about the company prior to applying for a job there. Most companies would want to hire candidates who feel passionately about the work the company is doing.
    Avoid asking questions which you could easily find on Google. Think about exciting additions you could make to the company product / service if you had your way at the company. 

Programming Interview Questions and Answers

C Aptitude Questions and Answers

Predict the output or error(s) for the following:

1. void main()
{
int const * p=5;
printf("%d",++(*p));
}

Answer:
Compiler error: Cannot modify a constant value.

Explanation:
p is a pointer to a "constant integer". But we tried to
change the value of the "constant integer".

2. main()
{
char s[ ]="man";
int i;
for(i=0;s[ i ];i++)
printf("\n%c%c%c%c",s[
i ],*(s+i),*(i+s),i[s]);
}

Answer:
mmmm
aaaa
nnnn

Explanation:
s[i], *(i+s), *(s+i), i[s] are all different ways of
expressing the same idea. Generally array name is the
base address for that array. Here s is the base address. i
is the index number/displacement from the base
address. So, indirecting it with * is same as s[i]. i[s] may
be surprising. But in the case of C it is same as s[i].

3. main()
{
float me = 1.1;
double you = 1.1;
if(me==you)
printf("I love U");
else
printf("I hate U");
}

Answer:
I hate U

Explanation:
For floating point numbers (float, double, long double)
the values cannot be predicted exactly. Depending on
the number of bytes, the precession with of the value
represented varies. Float takes 4 bytes and long double
takes 10 bytes. So float stores 0.9 with less precision
than long double.
Rule of Thumb:
Never compare or at-least be cautious when using
floating point numbers with relational operators (== , >,
<, <=, >=,!= ) .

4. main()
{
static int var = 5;
printf("%d ",var--);
if(var)
main();
}

Answer:
5 4 3 2 1

Explanation:
When static storage class is given, it is initialized once.
The change in the value of a static variable is retained
even between the function calls. Main is also treated like
any other ordinary function, which can be called
recursively.

5. main()
{
int c[ ]={2.8,3.4,4,6.7,5};
int j,*p=c,*q=c;
for(j=0;j<5;j++) {
printf(" %d ",*c);
++q; }
for(j=0;j<5;j++){
printf(" %d ",*p);
++p; }
}

Answer:
2 2 2 2 2 2 3 4 6 5

Explanation:
Initially pointer c is assigned to both p and q. In the first
loop, since only q is incremented and not c , the value 2
will be printed 5 times. In second loop p itself is
incremented. So the values 2 3 4 6 5 will be printed.

6. main()
{
extern int i;
i=20;
printf("%d",i);
}

Answer:
Linker Error : Undefined symbol '_i'
Explanation:
extern storage class in the following
declaration,extern int i;


specifies to the compiler that the memory for i is

allocated in some other program and that address will

be given to the current program at the time of linking.

But linker finds that no other variable of name i is

available in any other program with memory space

allocated for it. Hence a linker error has occurred .




Download Important C Technical Interview Questions below link

Download All C concepts in single page(ANSI C Card ) from below link


Download commonly asked C programs PDF from below link

Download Latest C Interview Questions PDF from below link

Download DataStructure Interview Questions from below link

Download LinkedList InterView Questions from below link

Download All Core JAVA Interview Questions from below link

Download All OOPS Interview Questions from below link

Download Full Computer Networks Interview Questions ZIP file from below link

Click Next To HR Interview Preparation

No comments:

Send free SMS Text Messages with Python

Short Message Service (SMS) text messages are ubiquitous for communication all over the world. It is easy to send SMS text messages fro...

Data Science

WEB Development