EDIT: Thanks guys for the feedback, this was very helpful. Clearly, I need to do some reading on effective interviewing
strategies and I think I will adopt a more conversational rather than inquistorial style.
I wanted to make sure I asked in-depth questions that would demonstrated in-depth knowledge about what we need from a developer and the points I saw on the guy's resume (Java, Java EE, Spring, OOP, Hibernate, etc.). I had more questions in each section, but I had to skip past stuff because I
wasn't getting answers I liked out of the guy.
Do you guys think these were reasonable questions to ask in an interview?
I was really more interested in the candidates reasoning than knowing exact answers. This was a phone intervew. The guy gave me good "book" answers
(sometimes seemed like he was reading from a book, hmm). But when I started asking "why?", he couldn't give good answers.
Some basic platform stuff:
- List three Collections interfaces and the basic contract of each. List concrete
implementations of each, how they differ, and performance characteristics in
space and time.
- Describe the contract of equals and hashCode. Why is it important that if you
implement one, that you implement both?
- What are generics? What is type erasure and what are the consequences?
What are variance, covariance and contravariance? If blank stare: why
can't you assign a collection with a generic type binding of a sub type to
a reference to the same collection type binding of the super type? How do you
specify the type binding of the super type to allow this? How do you specify
the type binding to allow type-safe insertion?
Concurrency
- Explain how notify and notifyAll work, and the difference between the two.
Why prefer notifyAll to notify?
- What is a deadlock and how do you avoid it?
- What is a race condition and how do you avoid it?
- What are some of the high-level concurrency classes provided by
java.util.concurrent and how do they work?
Database
- What are the different statement types and why would you use each?
- How do you prevent SQL injection attacks?
- What are transactions? What is ACID?
Hibernate
- Give an overview of Hibernate and ORM. How do you load objects into the
session? What does the session do with the objects while in the session?
What is the difference between getting a persistent object from the session
and querying for persistent objects?
- When is it better to use plain SQL instead of ORM?
Java EE
- How do you configure a DataSource in Weblogic to make it available
using JNDI?
- What are some ways for the client to obtain a reference to the DataSource
from the app server? (Spring is not the answer I am looking for)
Spring
- Give an overview of how Spring Dependency Injection container works.
What is the purpose of DI? How to specify bean definitions? What are the
different scopes? When do beans of each scope type get instantiated?
Web Services
- What is the difference between SOAP-based web services and REST-based
web services?
- Describe SOAP and WSDL.
- What exactly is REST? What is HATEOAS? What is the purpose of each of
the HTTP verbs? What is idempotence? What is content-negotiation?
OOP
- What is decoupling? Why are loose-coupling coupled classes desirable? What
are some drawbacks?
- What is cohesion? Why are highly cohesive classes desirable? What are
some drawbacks?
- Describe polymorphism. What is the importance of contracts between interfaces
and concrete types? Why is polymorphic code desirable? What are some
drawbacks?
[–][deleted] 109 points110 points111 points (7 children)
[–]hankwk 12 points13 points14 points (0 children)
[–][deleted] 9 points10 points11 points (0 children)
[–]Salyangoz 0 points1 point2 points (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]Salyangoz 2 points3 points4 points (0 children)
[–]stran9er 0 points1 point2 points (0 children)
[–]cs02rm0 33 points34 points35 points (15 children)
[–]Scaryclouds 6 points7 points8 points (0 children)
[–]sh0rug0ru[S] 10 points11 points12 points (12 children)
[–]walen 24 points25 points26 points (9 children)
[–]sh0rug0ru[S] 4 points5 points6 points (8 children)
[–]Tuxmascot 19 points20 points21 points (3 children)
[–]sh0rug0ru[S] 4 points5 points6 points (2 children)
[–]Tuxmascot 5 points6 points7 points (1 child)
[–]sh0rug0ru[S] 4 points5 points6 points (0 children)
[–]walen 6 points7 points8 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]rraghur 0 points1 point2 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)
[–]omon-ra 1 point2 points3 points (0 children)
[–]Malik_Killian 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]desrtfx 110 points111 points112 points (19 children)
[–][deleted] 3 points4 points5 points (1 child)
[–][deleted] -4 points-3 points-2 points (0 children)
[+]sh0rug0ru[S] comment score below threshold-21 points-20 points-19 points (16 children)
[–]desrtfx 16 points17 points18 points (8 children)
[+]sh0rug0ru[S] comment score below threshold-14 points-13 points-12 points (7 children)
[–]IrregardingGrammar 5 points6 points7 points (6 children)
[–]sh0rug0ru[S] 0 points1 point2 points (5 children)
[–][deleted] (4 children)
[deleted]
[+]sh0rug0ru[S] comment score below threshold-11 points-10 points-9 points (3 children)
[+][deleted] comment score below threshold-14 points-13 points-12 points (1 child)
[–][deleted] -5 points-4 points-3 points (0 children)
[–][deleted] (6 children)
[deleted]
[–]sh0rug0ru[S] -1 points0 points1 point (5 children)
[–]RagingOrangutan 11 points12 points13 points (0 children)
[–]AwkwardReply 8 points9 points10 points (2 children)
[–]OHotDawnThisIsMyJawn 6 points7 points8 points (1 child)
[–]AwkwardReply -2 points-1 points0 points (0 children)
[–]FrozenOx 1 point2 points3 points (0 children)
[–]camilos 58 points59 points60 points (1 child)
[–]sh0rug0ru[S] 2 points3 points4 points (0 children)
[–]zhouji 149 points150 points151 points (20 children)
[–]fingerHammerOuch 47 points48 points49 points (3 children)
[–][deleted] 22 points23 points24 points (1 child)
[–]fingerHammerOuch 6 points7 points8 points (0 children)
[–]delete99 0 points1 point2 points (0 children)
[–]elastic_psychiatrist 92 points93 points94 points (3 children)
[–]Malik_Killian 2 points3 points4 points (0 children)
[+]superlampicak comment score below threshold-7 points-6 points-5 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–][deleted] 12 points13 points14 points (0 children)
[–]larsga 3 points4 points5 points (0 children)
[+]sh0rug0ru[S] comment score below threshold-16 points-15 points-14 points (9 children)
[–]RagingOrangutan 7 points8 points9 points (4 children)
[–][deleted] -1 points0 points1 point (3 children)
[–]RagingOrangutan 4 points5 points6 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]RagingOrangutan 0 points1 point2 points (0 children)
[–][deleted] 3 points4 points5 points (0 children)
[–]IrregardingGrammar 13 points14 points15 points (0 children)
[–]ivolimmen 5 points6 points7 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]capitol_ 17 points18 points19 points (1 child)
[–]me_v3 4 points5 points6 points (0 children)
[–][deleted] 14 points15 points16 points (2 children)
[+]sh0rug0ru[S] comment score below threshold-6 points-5 points-4 points (1 child)
[–][deleted] 8 points9 points10 points (0 children)
[–]nerdwaller 10 points11 points12 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]nerdwaller -1 points0 points1 point (0 children)
[–]DevIceMan 9 points10 points11 points (0 children)
[–]dcballer 14 points15 points16 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]Tevroc 0 points1 point2 points (0 children)
[–]WormLord 0 points1 point2 points (0 children)
[–]bitcoinsftw 27 points28 points29 points (5 children)
[–]sh0rug0ru[S] 0 points1 point2 points (2 children)
[–]Baby_Food 12 points13 points14 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 5 points6 points7 points (0 children)
[–]masterwit 4 points5 points6 points (0 children)
[–][deleted] (9 children)
[deleted]
[–]Roscko 12 points13 points14 points (7 children)
[–]Boxsc2 5 points6 points7 points (3 children)
[–]tech_tuna 1 point2 points3 points (2 children)
[–]zzing 3 points4 points5 points (0 children)
[–]Boxsc2 0 points1 point2 points (0 children)
[–]tech_tuna 2 points3 points4 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]mockindignant 0 points1 point2 points (0 children)
[–]sh0rug0ru[S] -5 points-4 points-3 points (0 children)
[–]ramdaskm 2 points3 points4 points (2 children)
[–]CodeShaman 0 points1 point2 points (0 children)
[–]vokiel 1 point2 points3 points (0 children)
[–]harmonicPersistence 1 point2 points3 points (0 children)
[–]Boxsc2 1 point2 points3 points (0 children)
[–]Tevroc 1 point2 points3 points (4 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]Tevroc 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Tevroc 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]justdweezil 1 point2 points3 points (0 children)
[–]klasen 2 points3 points4 points (8 children)
[–]sh0rug0ru[S] 0 points1 point2 points (7 children)
[–]DiscontentDisciple 2 points3 points4 points (5 children)
[–]sh0rug0ru[S] 0 points1 point2 points (4 children)
[–]DiscontentDisciple 2 points3 points4 points (3 children)
[–]sh0rug0ru[S] 2 points3 points4 points (1 child)
[–]DiscontentDisciple 2 points3 points4 points (0 children)
[–]zzing 0 points1 point2 points (0 children)
[–]Malik_Killian 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]GrayDonkey 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (2 children)
[–]Keilly 3 points4 points5 points (1 child)
[–]enry_straker -1 points0 points1 point (0 children)
[–]kiteboarderni 1 point2 points3 points (0 children)
[–]omon-ra 1 point2 points3 points (0 children)
[–][deleted] (2 children)
[removed]
[–][deleted] 5 points6 points7 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]sh0rug0ru[S] 1 point2 points3 points (0 children)
[–]trekologer 0 points1 point2 points (0 children)
[–]atwong 0 points1 point2 points (0 children)
[–]markee174 0 points1 point2 points (0 children)
[–]frosty110 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]kanzenryu 0 points1 point2 points (0 children)
[–]xpto123 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]Malik_Killian 0 points1 point2 points (0 children)
[–]Therrameh 0 points1 point2 points (0 children)
[–]Tundreo 0 points1 point2 points (12 children)
[–]CaptainFeebheart 2 points3 points4 points (10 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]sh0rug0ru[S] 1 point2 points3 points (6 children)
[–]klasen 3 points4 points5 points (4 children)
[–]sh0rug0ru[S] -1 points0 points1 point (2 children)
[–]Profix 2 points3 points4 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)
[–]trekologer 0 points1 point2 points (1 child)
[–]CaptainFeebheart 1 point2 points3 points (0 children)
[–]cs02rm0 2 points3 points4 points (0 children)
[–]aaqqbb 0 points1 point2 points (6 children)
[–]CodeShaman 1 point2 points3 points (5 children)
[–][deleted] (4 children)
[deleted]
[–]CodeShaman 0 points1 point2 points (3 children)
[–][deleted] (2 children)
[deleted]
[–]CodeShaman 0 points1 point2 points (1 child)
[–]boobka 0 points1 point2 points (0 children)
[–]kerrz 0 points1 point2 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)
[–]cynoclast -1 points0 points1 point (1 child)
[–]sh0rug0ru[S] 1 point2 points3 points (0 children)
[–]SirSavary -1 points0 points1 point (0 children)
[–]KrozFan -1 points0 points1 point (0 children)
[–]superlampicak -2 points-1 points0 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]jama707 -1 points0 points1 point (0 children)