# ThoughtWorks Placement Experience coderinme

#### ThoughtWorks Placement Drive Experience AMU 2017

The selection process was spanned in 8 rounds, consisting of 2 coding rounds, 2 technical interviews, 2 HR interviews and a group discussion.

ROUND 1 (Short Coding Puzzle)

We were given a pattern which we had to make within 20 minutes. We had choice of any programming language we like.

``````int main()
{
int i,j,k,M=4;
//M can be 1 2 3
for(i=1;i<=M;i++)
{
for(j=M;j>=(i-1)*2-1;j--)
printf(" ");
printf("%d",i);
for(j=2;j<=(i-1)*4;j++)
printf(" ");
if(i>1)
printf("%d",i);
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=4;j>=(i-1)*2-1;j--)
printf(" ");
printf("%d",i);
for(j=2;j<=(i-1)*4;j++)
printf(" ");
if(i>1)
printf("%d",i);
printf("\n");
}
return 0;
}``````
``````int main()
{
int i,j,k,M=4;
for(i=1;i<=M;i++)
{
for(j=M;j>=(i-1)*2-1;j--)
printf(" ");
printf("%d",i);
for(j=2;j<=(i-1)*4;j++)
printf(" ");
if(i>1)
printf("%d",i);
printf("\n");
}
for(i=3;i>=1;i--)
{
for(j=M;j>=(i-1)*2-1;j--)
printf(" ");
printf("%d",i);
for(j=2;j<=(i-1)*4;j++)
printf(" ");
if(i>1)
printf("%d",i);
printf("\n");
}
return 0;
}``````

Conclusion: The program was not much difficult, but you were given very limited time to think for the solution. In this round, they were just checking the final output, not the approach. Hence even if a person were going in the right direction or he/she were close to the output, but could not produce final output correctly; chances are high that he/she won’t qualify the round. Because being the first round, there are a lot of students participating and it is not feasible to check logic or approach of every students. So it’s just like either your program is correct: qualified, or it is wrong: disqualified.
16 students cleared this round out of total 165 students from different courses (B.Tech/M.Tech/MCA).

ROUND 2 (CODE PAIRING ROUND)

In this round we were given a long question, and the time limit was 1:15 Hours.
They explained the problem statement, and told that they will also be checking the structure of your code, like how modular it is, how easily readable etc.
They were checking what you are doing at regular intervals. Though several people were roaming around, probably one person was appointed to observe you specially (pairing).
They were occasionally asking questions about our code, and they were even giving hints/suggestions at times.
No one could solve the problem completely within the given time, hence they judged on partial completion basis.

##### Problem Statement (Based on memory):

I don’t remember the exact problem statement, but we had to make a program which will give the score of a cricket match after a certain overs.
There were certain rules, which were mostly the rules being followed in real cricket matches.
Some of the rules were like:
 There are two teams, India and West Indies. India won the toss and will do batting first.
 There are 11 players in a team, in which 5 are bowlers.
 After a batsman will be out, next one will play.
 On odd numbers of runs, strike will change.
 Batsman’s strike will change at every over.
 Bowlers will change at every 2 overs.
 After 10 (not sure) batsmen will be out, the innings will change.
The inputs were like:
Sequence of score: 2 0 1 W 2 1 0 0 3 4 1 W 0 1
Overs to be considered for scoreboard generation: 2.3
You had to print the scoreboard in the output; containing data like which player got out at how many runs, total runs etc.
7 students cleared this round.

ROUND 3 (TECHNICAL INTERVIEW 1ST)

This interview lasted for around an hour. There were 2-3 panelists for each interviewee. They could ask questions from anywhere, but a lot of questions were derived from things mentioned in your CV.
They also went in much detail of topics like Operating Systems & DBMS etc. for some people (not asked me much from these topics)

##### Some of the questions I remember that were asked:

Q. Which computer language do you like the most?
Q. If there is a variable **p, what does it indicate?
Q. What may be the usage of double pointers?
[And some other questions related to pointers]
Q. What are templates in C++?
Q. Is there any alternative of templates in Java?
Q. What are private variables in C-language?
(I got confused, never heard of a private variable in C. I explained them about Local variables)
Q. That’s local variable which you are telling us. Is there something like private variables in C-language?
(My Ans: No sir, private variables are in C++, there is nothing like this in C. (They looked satisfied now))
Q. How will you do Multiple Inheritance in Java?
Q. How to make a class in PHP?
Q. In your CV it is mentioned that you’re maintaining College Registration website. So what exactly is it doing?
[Explained in detail]
Q. What are the database tables that are being used? Draw on paper.
[Done]
Q. Is there a way to optimize the table you’ve just mentioned?
Q. What challenges did you face while doing this (Registration) project?
[My answer included the point that there were some problems due to different PHP versions at my local server and AMU servers]
Q. So which version you are running and which version do AMU have?
Q. Do you know how to upgrade the PHP version there, and who does that?
Q. So what are the basic differences between those two versions of PHP? (one was 4.4 and another was perhaps 5.2)
Q. How would you establish a database connection in PHP?
Q. How are the database connection methods different between these two versions of PHP?
Q. Any questions for us?

2 students cleared this round.

ROUND 4 (TECHNICAL INTERVIEW 2nd)

This round was similar to the 1st technical interview round, except that the panelists were changed. This round lasted for more than 1:30 hours.
Most of the questions asked in this round were deep and time taking. Some of the questions that I remember were:
Q. What are pointers? What is the use of ‘&’ operator?
Q. How can you implement RecyclerView class of your own if you are given ListView class implementation?
[RecyclerView and ListView are classes used in Android Application Development. They told me in detail about both the classes, and the differences between them, as I was unaware of those.
First they asked me to explain them my approach and what database I would use. We discussed about it for around 7-10 minutes, Then I was asked to write the code for what I
had explained. I had choice to select any language of my choice (I preferred C). They were even helping and hinting at various places.
The discussion on this question would have lasted for around 20-25 minutes]
Q. Suppose you have to develop something like LinkedIn. How will you do that? What algorithm will you use for its implementation? You also have to implement it.

[To be noted that they were concerned about background algorithm only. I had to make a way to represent 1st connection, 2nd connection, 3rd connection and so on, as is the case with LinkedIn.
I started from telling them my approach (I used Graph to represent connection between friends). Then they asked me to design the database I would use, and also write the queries. Then I was told to implement my approach in language of my choice (on paper). I chose C language again. I asked him if I can assume some functions to fetch the data from database as I didn’t know how to connect with databases in C-language. They agreed but asked me to write the prototype of functions I was willing to assume. Apart from that, I had to write the whole program, NO PSEUDO CODE. They were constantly monitoring almost each and every line of code as I was writing.
The discussion on this question would have lasted for around 30-35 minutes.]

Q. How a session is maintained in PHP?
Q. What happens when you type an address in URL bar and press Enter key?
Q. What is your approach to learn something?
Q. How do you keep yourself updated (with latest trends and technologies)?

Round 5 was aptitude round 6 leadership round 7 GD and last HR

##### ROUND Last(HR ROUND 2: LEADERSHIP)

In this round, we were interviewed by the General Manager of Gurgaon office who had come for the drive. Some of the questions that I remember were:
Q. Which is your favorite (technical) book? What do you like the most in that book?
Q. Can you explain to me dynamic programing in appropriate words?
Q. Can you give an example of Dynamic Programming problem?
Q. What will you prefer between Java and C++ and why?
Q. How would you define an object oriented approach?
Q. Why do you think that OOP is better? give your reasons?
Q. What is the hardest problem you ever encountered? (in context to programming)
Q. Suppose you are asked to do a certain project, how will you decide that you are going in the right direction?
Q. What is you approach to learn something new?
Q. You’ve mentioned in your resume that you’re mentor at Programmers’ Forum. What is your role there? [I told the purpose of the forum]
So what methodology do you follow at programmers’ Forum?
The round would have lasted for around 25-30 minutes approximately

Finally, they congratulated and gave us good news of being selected (both of us) after a little prank, and we had a photo session.

by Abu Talha Danish

All rights reserved. No part of this Post may be copied, distributed, or transmitted in any form or by any means, without the prior written permission of the website admin, except in the case of brief quotations embodied in critical reviews and certain other noncommercial uses permitted by copyright law. For permission requests, write to the owner, addressed “Attention: Permissions Coordinator,” to the admin@coderinme.com

### Community Contribution

We as Coder in Me appreciate the efforts to people who contribute their precious time for making this Community Contribution.We are open to guest Contribution, If you have interesting stuff to share please contact us