Knock Knock Naukri !!
February 10, 2010
If you meet your Hari Sadu(HS) daily alive and kicking or you are convinced that those 4 years of engineering were a conspiracy as nothing taught there is actually applied or you are sure that the last economic recession was actually a hallucination crafted out by your nasty boss so that he/she doesn’t have to pay you appraisal for another year then i would like to tell you that all these are symptoms of Deadly J1C1(Job Change) virus, which immediately requires a New office, more hard cash and completely new HS. So here by I help you to get the vaccination.
Switch directly means that it is time to study and open those books which have been abandoned ages before. Taking out time to study and prepare is not very easy as we usually drop that habit some here on the way and with job there is little time shortage also(yes that’s how our mind thinks and u know we might have time to catch that new movie or to check out that superb Upto 51% off sale:P ) That’s okay if you think like this no worries you are part of most.
So here by I am putting some of my observations( I have had few chances to see how the world looks like from the other side of table
) out of my own experiences and some of the inputs from my friends.
I would like to mention that this content is mainly around the Java Background Interviews but some of the resources are generic and can be used at multiple places.
So here is a recommended war plan:
1) Core Java
This is first and foremost area that should be brushed up.
Most Important slices: Collections,Threads and concurrent collections, Exceptions, Inheritance and Serialization.
These are the topics which usually form the core and if you are good at them consider half the battle won .
Once you are comfortable with these then next Strings, I/O,Regular expression can be covered.
2) The Bifurcation
Now comes the fork , there are basically two types of companies depending on which type of company you are aiming at the preparation approach should be customized.
2.1) Type 1 :
These companies judge mainly on the skills of first Core java and then Data structure. You might have to face some DS and non DS coding problems and come up with their solutions and their optimized solutions.
These companies check your cerebrum not only for computer science fundas but also analytical skills by posing challenging puzzle problems . Biggies( like Google) will go for newer and really weird puzzles and they will rarely appear on the web because of NDA(Non Disclosure Agreement) you are supposed to sign, but some companies a notch below them wont hesitate asking the standard puzzles which can be easily find on the web. So don get surprised if you see same puzzles again and again in diff companies. This much should be good enough if you are around 2-3 years of experience, but if you are more than that there are some more snags for you. You might have to face few of the design implementation problem which requires thorough understanding of design patterns. You might have to draw the class diagrams, write use cases or sequence diagrams for a given functionally. All in all ur design and coding skills need to be A-OK even if you don know the latest frilly- fancy stuff.
Summarizing the topics
- Core Java
- Data Structures
- Programming/Coding Problems
- Puzzles
- Design patterns
2.2) Type 2:
Now comes the second type of companies, quite same as first ur Core Java needs to be deep and strong and then you also know the whole surrounding package. Good Knowledge of JSP, Servlets , bits and pieces of EJB are required. You are expected to know one frame work at least the most famous ones are Spring (Super high in demand !!), Struts etc. Other than this you should be aware of any ORM tool (Hibernate and ibatis are most popular ones) .
These type of interviews usually don have data structures but can have traces of programming problems( usually easy ones) and puzzles.
Design patterns are very much required here also, but even if you are not able to solve the actual problem but do understand and can explain the need and use of pattern, should be good enough.
Summarizing the topics
- Core Java
- J2EE – JSP , Servlets, EJB
- Frameworks – Spring, Struts.
- ORM Tool – Hibernate
- Coding Problems
- Puzzles
Note: Type 1 companies are usually product based and Type 2 are Service based, but the content asked can vary depending upon the actual requirements and nature of job.
3) The Extras
Then there are some extras which can be asked depending upon the specific need.
- SOAP/XML
- WebServices
- Version Control Tools
- Build and Release Tools
These topics are not usually asked in detail unless you are appearing for a specific need, so even knowing the basics is fine.
4) The Domain
Domain is usually probed in product based companies, domain knowledge is even more important if you are appearing in the company same domain as urs.
5) The Last Project
Last but not the least your last project holds lot of importance, complete functionality of the project(don forget to read your Design docs), your roles and responsibilities, functionalists implemented independently would usually form a major chunk of the interview.
Here by are some excellent resources which will come handy while preparation:-
Resources
1) Core Java
I have seen that people while preparing for Java they prefer Java Certification books, the problem with the same is that coverage of the book is customized as per the needs of the Certification, which may not be applicable for interviews.
I find Sun Java documentation sufficing, the best part is extensive coverage, then up to date content and its Free
http://java.sun.com/docs/books/tutorial/index.html
Now comes the turn of a legend, One of finest book available in market about best programming practices is
Effective Java by Joshua Bloch
http://java.sun.com/docs/books/effective/index.html
I recommend the book because of its excellent content and superb depth, just go for it.
Other good books which might not be exactly for interviews, but definitely a good read are
Java Puzzlers by by Joshua Bloch, Neal Gafter
Better, Faster, Lighter Java by Justin Gehtland, Bruce A. Tate
2) Data Structures
I would suggest to first comprehend the basic concepts of DS ( as we dont use them regularly) and then steadily move towards actual problems .
One of the excellent resource to understand what and why of DS is
http://cslibrary.stanford.edu/
and now the actual resource
I would like to add that this web site has perfect mix of questions , impeccably classified. You can get questions company wise Yahoo,Amazon, topic wise like Link list questions, Algorithms and Job title wise.
Also you can enroll for new questions of the day and u will get the questions directly in your mail box.
3) Coding Problems
3.1) http://careercup.com/ is the again the answer. The posted questions on this web site actually are a good mix of DS, non DS problems.
3.2 ) http://www.premski.com/page_gen.php?puzzles is another good web site. Questions are little easier than careercup.com but good medley of various genre.
4) Puzzles
http://research.microsoft.com/en-us/um/people/leino/puzzles.html
http://www.ocf.berkeley.edu/~wwu/riddles/intro.shtml
5) Design Patterns
One of the issue that people usually face with Design pattern is How many are Enough , I suggest that first of all be completely comfortable with the ones you have used urself, then pick up few popular ones from diff categories.
Here are some of the crowd-pleasing ones
Creational Patterns
1) Factory
2) Abstract Factory
3) Builder
4) Singleton( This one is so simple and so popular !!)
Structural Patterns
1) Decorater
2) Adapter
3) Flyweight
Behavioral Patterns
1) Visitor
2) Template
3) Chain of responsibility
4) Observer
5) Strategy
Note: This list is completely out of my experiences and valuable inputs of friends.
http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
Book:
Head first Design Patterns - by Kathy Sierra , O’Reilly Publication.
6) J2EE
Head First JSP and Servlets - By Kathy Sierra , Bert Bates , O’Reilly Publication.
Head first EJB – By Kathy Sierra , Bert Bates , O’Reilly Publication.
7) ORM Tools and Frameworks
Hibernate - Professional Hibernate By Eric Pugh, Joseph D. Gradecki
Spring - Spring in Action by Craig Walls and Ryan Breidenbach
8) Other useful resources which provides one stop solution are:
http://www.acetheinterview.com
http://placementsindia.blogspot.com
Useful Blogs:
http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
Complete courses
MIT
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm
IIT Mumbai
http://www.nptel.iitm.ac.in/courses.php?branch=Comp
These complete courses are really useful if you are looking beyond interviews and want to good grip on the subjects.
Finally, I would liked to footnote that mentioned resources are the ones which I came across and find them valuable. I am sure there would be plenty of other good resources available so amigos if you are aware of any of them don forget to share with the us.
Let me know if the content is useful and or if any other details are required.
Wishing You all the Best , May Lady luck smiles upon You.
Love
P
February 11, 2010 at 12:16 PM
I am done with all sort of nuts…
I would settle for Nutella this time…
I mean not Peanuts, not doughnuts… but pure dark chocolate….
February 11, 2010 at 2:03 PM
uhmmm hmmm…someone has written such a useful post and so am all gaga about it yaaa
really really useful post and comes at the right time for me
no need to tell you why. your experience is shone through this post
Way to go Preeti !!
Now this is going to be my reference to deserve some doughnuts in my plate
Although dark chocolate would be on the healthier side, I would take sides with the previous commentator
February 12, 2010 at 11:42 AM
Phew!And you are only 2 posts old!

That was a baggage full of information and looks like a lot of R&D and exploration went through it
I would like to add 2 of my fav. sites on which u can do ur sh*t(I mean code) and also apply the things u learnt back in college days
topcoder.com
codechef.com
Waiting for ur next post, blogging bard
February 12, 2010 at 1:07 PM
Thanks a lot ppl !! ur good words give lot of motivation .
yes yours_truly u are very correct i would definitely add
these 2 superb web sites. These web sites are i think provides first – class problems if u r preparing for A list companies(like Google ).
Thanks a lot for sharing information.
March 1, 2010 at 3:08 PM
Hi Preeti, Lot of information and resources… and it is also covering the basic aspect of blogging – Useful to someone out there. Good Blog post.
Just my comment on Core java part – You need to cover the couple of main Java 5 features – Generics and Annotations. If you have not written @ – annotation so far either in your java code or in your twitter/blogger, you are out of date, just kidding. All the famous frameworks Hibernate , Spring are all heavily coded with the Annotations. Most of the people are moving away from the external configuration and adopting annotation based coding.
March 1, 2010 at 6:15 PM
Hey Raffi,
First of all thanks a lot for dropping by, yes i agree generics and annotations are highly used today, bt as per my own exp(recently participated a bit in hiring) and feed back from ppl , these topics were usually not among the top on interviewer’s list. But yes i definitely agree these topics are very cool and must be covered, would update the post with the same.
Thanks a lot for ur input again.
Keep Dropping by
June 23, 2010 at 9:34 PM
Thanks for the wonderful post, its inspiring me and will help me lot. Thanks for it and ya you did a good job for positing stanford, berkley, MIT and IIT Links.
June 23, 2010 at 9:50 PM
Thanks for the comments, hope this helps you out and u get what u r looking for. Keep Visiting.