I'll start this off with a little personal background. I have a bachelor�s degree in computer engineering, and masters in computer science from an academic institution consistently ranked amongst the top 5 in the country (US news and world report). Equipped with this degree, I started my job hunt (consisting of career fairs that target recent college graduates), and while I received various offers, ranging from Manhattan finance companies, to rural automotive industrials, to suburban insurance conglomerates, I also experienced significant disappointment and rejection. Certain interviewers focused on specific technologies (usually .NET or J2SE), and asked questions that really took me off guard. It wasn�t enough that I had a sound understanding of the conceptual �splay tree�/�red-black tree�/�hash table� (collision resolution, open addressing, separate chaining, etc�). Rather, I was required to know EXACTLY how Sun and/or Microsoft implements these concepts (constructor signatures, interfaces implemented, etc�) within their classes. At the time, I felt like requiring such sheer memorization, and elevating this memorization above conceptual understanding was not only petty, but insulting. Throughout my academic curriculum, I�ve used many different technologies to get the job done, and never considered that my mastery of one technology over another would qualify/disqualify me as a viable computer scientist.
I decided to tackle this quandary by attaining a certification in every major technology. That said, I very recently passed the SCJP 6, and SCJD exams fairly easily. Despite some of the horror stories I�ve encountered on this forum, I found both exams straight forward and comparable to an exam/project in an undergraduate computer science curriculum during the junior year. However, not EVEN REMOTELY close in complexity/depth to an assignment/exam at the graduate level.
I�m seeking responses from astute members of this community. Is there something I�m missing? Am I being unrealistic in thinking that I�ve proven myself, and should thus be granted immunity from such rudimentary probing? Traveling slightly off the beaten path, I have a colleague who is an M.D. practicing in emergency medicine, and while interviewing for positions at hospitals, is never confronted with medical questions at all. Quite the contrary, his interviews are mostly HR/behavioral related, and days later he is presented an offer.
I�d like to ask that responders resist the temptation to discount the credibility of having an advanced degree. Degrees from top ranked computer science departments are not handed out on street corners. During my admission cycle, roughly 1400 applications were received for less than 200 spots. In addition, unlike experiences at marginal universities, departmental faculty at top institutions are often the leaders in their respective areas (artificial intelligence, computer architecture, etc), and have either published or significantly contributed to text books that have become the academic standard (Hennessy and Patterson, Rivest and Leiserson, etc�). I have learned from the best, and my academic success speaks volumes of my ability.
I�ll end this rant with a brief, related personal experience. During my junior year, I took an advanced computer architecture course (score boarding, tomasulo�s algorithm, NUMA architecture, etc�). A student having trouble with an assignment raised his hand and asked �Do you know how to add two columns together in excel?�. The professor, with a frowned brow said �Don�t ask me questions like that.�, and continued the lecture.
I don't know what to say, but welcome to the Javaranch.
judging from your education, the SCJP and SCJP might be easy for you, but not for them including me. No wonder when someone passes the SCJD, he or she will be very happy and likely to share his/her experience.
I'm a Java instructor and I already met so many people who struggle when learn Java language for the first time. For Java beginner, passing the SCJP or SCJD is not easy.
Maybe you can share your SCJD score and share your experience in here, we'll always welcome everyone to share their experience.
We'll be pleased if someone like you who passed SCJD fairly easy to share your experience.
Jeffry Kristianto Yanuar (Java Instructor) SCJP 5.0, SCJA, SCJD (UrlyBird 1.3.2) --> Waiting for the result
Now, I'm just speculating about your real situation, I'm not from the USA, so I have no idea how an interview works overthere, but I suppose they're pretty much the same anywhere. Nevertheless...
I kind of understand both parties, I mean both you and the employer.
As a fresh graduate you expect that the real world requires exactly the knowledge that you've accumulated through your studies. Well, it's not always like this. The employer wants an employee who's capable of doing the requested amount of work in the minimum amount of time. If you don't know the exact technology he's using, he'll have to spend time and money for your training. Why would he do so, when there's somebody else out there with a SCJP +/- SCJD who already knows all that stuff?
It may be a little bit frustrating at the beginning, but once you'll have enough work experience (a few years maybe), nobody will probably ask you any more about "what is the interface of a Map".
But, since you now have all these certifications, it should probably be quite easy to successfully take any interview about Java. And, don't worry, all that theoretical knowledge might come in handy someday, when you least expect it.
Another option - why don't you go back to the academic environment and become a teacher/researcher yourself?
IT departments want to hire specialists to fit a position immediately. They want to make zero investment in their resources.
Being able to think or having general IT skills rarely enters into the picture.
Many people involved in hiring are confused between contractors and employees. What you are describing is a contractor interview not an employee interview.
People doing these technical interviews are often techies who don't understand anything more than the technology they are asking about.
My advice is to sell yourself. Technology continues to move forward, being able to adapt is invaluable. Point out that the specifics of these questions can be answered by on-line docs � understanding how and when to use these technologies is more important.
I read some conflict built in to your initial rant
The topics you discuss learning would probably be useful in 1 out of a 1000 software development jobs. In my experience the vast majority of commercial work is at a much higher level - most programmers never have to consider the inner workings of a red-black tree for instance. So, if you want to work at Google, it sounds like you've had the right kind of background - if you want to make a website for B to C your resume might be a little scary!
So, what kind of work are you looking for?
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Jeffry, to answer your question I scored a 388/400 on the SCJD (URLyBird). Surly you won�t have to search far to find members with higher scores. My point (which I think you�ve missed completely), is that many moons ago I demonstrated the ability to pass such an exam. By completing the SCJD, I simply drew the same picture with a different color marker.
Alecsandru and Tom, I do have a hunch that resource investment played a large part. I would argue that, the only constant in technology is change, and if the sole focus of a firm is to attract a J2SE 1.6 or .NET 3.5 developer, you�re dealing with a creature that will be superseded (if not obsolete) in the near future. On the other hand, if you�re attracting true software engineers who understand that these technologies are simply tools, and by no means the foundation of computer science, significant return on investment is assured, and will only increase as technology advances. Today, it�s Sun Microsystems. Tomorrow it may be Moon Gigasystems, yielding the same fundamental concepts, yet completely different implementations.
Bert, you�ve actually touched on another pet peeve of mine throughout my job hunt. Several of my interviewers browsed my resume, and, after noting my software testing internship, pigeon holed me as a software tester. As if I received a two-year certificate in software testing, and am inept in all other realms of computer science. My academic experience has prepared me for ANY position that can make use of a computer science background. From systems analysis, to device driver programming, to database development, I�ve done it all and can still do it all. I do follow your comment;
�if you want to make a website for B to C your resume might be a little scary!�
But ask yourself this� Is a chef any less capable of using a microwave? If computer science is The Matrix, I chose to take the red pill. I wanted to see how �deep the rabbit hole goes�, I didn�t expect to be punished for it.
This story does have a happy ending. I was offered several positions (embedded systems developer, 2 software test engineering positions, application developer, and lead application developer), and am currently very happy with my decision. If my future endeavors lead me to another career fair, and a �techie� asks� �I see you�ve mastered computer science, but can you develop in Java?�� I�ll kindly respond, �I�ve got my SCJD!��
I see your point, sometimes i think like you (let's say i have a very similar background). But be honest with yourself and assume that the red pill you took may not have been what you thought. I dont think your background demostrate that you can take ANY position computer science related. If you want to go to an extreme, i'd rather say you may not be prepared for almost ANY position as you go out from the university. Sad but true. You have demostrated a lot of capacity, a lot of potential. But now is time to produce and theoretical concepts are not going to help so much. I also found SCJP much easier than almost any of the exams i took in my first year at the university. Does it mean that you dont need SCJP? is any employee going to hire you because you know all the details of the OSI protocol's stack? or Tomasulo's algorithm? If anything, those who can afford training you will do it because you demostrated you can assimilate knowledge. I'm glad i finished a higher degree, and i have a global picture of everything going on in computer science. But this is just for my own pleasure. In the real world you have to do real things, using real tools.
If you could reach the top in the academical world, you can do it in the professional world aswell. But unfortunatelly they are not so related as we'd like, and there is still a lot to learn. SCJP is part of the knowledge you may need in this second round.
I qualified 20 years ago with a computer science degree. No employer wants to know about it now! They want to see what you can do for them straight away, what experience you have and recent qualifications. That's why I'm doing the SCJD exam - proof that I can write Java programs. And, despite a little voice saying "but you did this 20 years ago!", I am confident that it is worth doing it for the sake of (1) learning Java, and (2) proving to an employer that I'm ready to go.
There is only one basic path to become a physician -- an academic hoop jumping process followed by their practical internship, i.e. their equivalent of certification. There is no corresponding unique means to become a IT professional. Those with computer science degrees must compete with the motivated high school dropout who picked up a copy of "Java in 24 Days". Understanding the efficiency order of a sort algorithm might not be as desirable as getting the payroll out on time. Both skills are valuable but the relative value is dependent upon context.
If the job is Information Technology the job requirement is more oriented toward vocational expertise rather than holding academic credentials. Certification is one measure of said vocational expertise. Those kinds of individuals wouldn't have a prayer in getting into many doors that would be open to someone of your background. However if the name of the game is IT/DP/MIS then it is your skills as a programmer rather than that of a academic that are valued. Some of the best programmers that I've seen in a 30+ year career career have never seen the inside of a University classroom.
Best regards<br />Tom<br /> <br />SCJP4<br />SCJD6 (B&S in progress)
Alberto, the red pill is everything I dreamed of and more. The majority of my interviews focused on my conceptual understanding, and actually asked questions about kernel threads, thread scheduling, ordered lists, etc... Information not attainable in a �Java in 24 days� reading. I found that, with the breadth and wealth of knowledge acquired through my academic training, I was able to successfully interview for disjoint positions within the computer science discipline. I also think that you�re unaware of just how reliant industry is on the innovations of academia. Garbage collection, for instance, was founded within the confines of academia, yet has enormous practical application. Simultaneous multithreading (commercially known as Hyper-Threading Technology, implemented in the Pentium 4) was inspired in collaboration with multiple universities. Google spawned from the mutual academic interests of 2 students from Stanford University, not Stanford Inc. or Stanford Corp.
Bernard, computer science of today bares little resemblance to computer science of 20 years ago. Knowledge this stale would certainly benefit from an SCJD, if not another computer science degree altogether. My predicament is quite different, in that I recently graduated with an advanced degree in computer science.
Tom, I acknowledge the point that you�ve made, and it is the very reason that I have acquired the SCJP/SCJD certifications. Irrespective of their value to potential employers, in my opinion these certificates rank well below my previous accomplishments.
My parting shot before this thread heads off to the results forum...
I have been a software developer for many years, and I managed lots of software developers for many years. I've been involved in a wide range of systems; from device drivers and custom real-time OSs, to AI, to basic accounting, to advanced scheduling, time inventory, and on and on.
As a manager, if I read this thread I would have a lot of concerns about hiring you. I would be concerned about the attitudes that you bring to your work, I would be concerned about your ability to be a team player, and I would be concerned about you over-designing solutions. Obviously I don't know you apart from what I read in this thread, but I am giving you my honest and experienced opinion.
Spot false dilemmas now, ask me how!
(If you're not on the edge, you're taking up too much room.)
Bert, it should also be noted that you�re providing your opinion as a sheriff of the JavaRanch and strong advocate of the SCJD. That alone causes me to question your bipartisanship, and ability to provide an objective opinion on this matter.