A mechanical engineer who changed his career to Java/JEE in 1999. Maintains a Java/JEE career website at http://java-success.blogspot.com. Published 2 books on Java/JEE entitled: 1. Java/J2EE Job Interview Companion. 2. Core Java Career Essentials The above books are available via Amazon.com. Arul has posted 15 posts at DZone. You can read more from them at their website. View Full User Profile

How to Stand Out From Other Java/JEE Professionals?

01.14.2009
| 10202 views |
  • submit to reddit

The developer world is a competitive one, especially these days. It's difficult to stand out from the pack, but this article will illustrate three different scenarios where you can make yourself shine - at an interview, in your resume and at work.

Java/JEE Job Interviews

Let’s have a look at a typical Java/JEE Job interview scenario, where a candidate is asked the following popular interview question:

Q. What are the two main OO techniques for code reuse? Which one of those two will you favour and why? 
Most candidates will correctly say:   

  • Class inheritance.
  • Object Composition.

Some will then go on to say that "Object composition should be preferred over class inheritance (implementation inheritance). A few will then continue to briefly explain that…. “If there is no ‘is a’ relationship then use composition for code reuse. Overuse of implementation inheritance can break all the subclasses, if the superclass is modified. Do not use inheritance to just get polymorphism. If there is no ‘is a’ relationship and all you want is polymorphism, then use interface inheritance with composition, which gives you code reuse."

Some interviewers will be digging a bit deeper to make sure that the candidate really understands the OO concepts. Only a handful of candidates fully understand OO concept and will be able to elaborate with all the vital information as discussed below. This will enable those candidates to stand out and make a real impression on the interviewer(s) or prospective employers.   

 "Class inheritance is static and it is done at compile time. In object composition, functionality is acquired dynamically at runtime by objects collecting references to other objects. This is possible because objects are accessed via their interfaces. So, one object can be replaced by other objects as long as they have the same type."

 If permitted, these candidates will also continue illustrating...  
  "Interface inheritance should be preferred over implementation inheritance because it promotes the design concept coding to interface and reduces coupling. If you look at Gang of Four (GoF) design patterns, you can see that it favours interface inheritance to implementation inheritance. For example, the decorator design pattern used in java.io.* classes where responsibilities to objects are attached at runtime." 

Note: Before you elaborate, ask the interviewer if it is okay to do so. In some interviews, you will be given a sample problem to code, where interviewer will be expecting good understanding of OO concepts.

In most cases, most of us know the basic answer and have worked with these practically, but being able to give a clear and concise answer will make you stan dout from the pack and get a job offer as a first preference and also power to negotiate your salary or rates. So, refreshing prior to interviews can really pay off. Also, being thorough in key fundamentals can make the interviewer over look any other weaknesses like not having worked extensively with a particular framework or an application server.

Java/JEE Resumes

Today many prospective employers embrace networking as the key source for finding a new position. Even when candidates are brought through a networked source, the first thing one would say is "Ask them to send their resume and I will see what I can do".  There are no clear cut definitions in separating an ordinary resume from a resume that stands out. This is always subjective based on the prospective employer. Some guidelines can be drawn to compare an ordinary resume with a one that is more effective.

An ordinary resume markets you just as a techie, uses ordinary phrases, information is not quantified, packed with irrelevant and trivial information fulfilling your needs not the employers’ needs, one size fits all, lots of responsibilities included…. phrases, and vital information is scattered throughout.

An outstanding resume markets you as well balanced candidate with technical skills, soft skills, and business focus, uses perfect phrases in a clear and concise manner, achievements are quantified, addresses employers’ real needs, replaces responsibilities included… phrases with on the job accomplishments, resume is customized to the position applied for, and the important information is in the first page.  

So taking the effort to writing a resume that stands out from the pack can open more doors for you than people who are better qualified than you.    

At Work

Being a well-balanced developer with good technical skills, outstanding soft skills, and business focus can do wonders to your career. Being a visible contributor is the key. Knowing the key areas and core concepts can save a lot of development time and improve the overall quality of the software. One example that comes to my mind is the very common "Concurrent Modification" Exception. Many of us get through solving this by trial-and-error in a time consuming manner. But if your fundamentals are clear then you would save heaps of time by knowing what exactly to be done to solve the problem. More often you make a good impression on your superiors and peers by pro-actively identifying potential issues related to performance, multi-threading, transaction management, security, etc and fixing these issues before they become a major headache. Just being a techie alone not enough. One needs to have good technical skills complemented with excellent soft skills and good domain knowledge to scucceed in his/her career. So, just piling up on certifications alone is not going to cut it.

These gestures will make you stand out from the pack and consequently can do wonders to your career. You don’t have to wait for 2-3 years to be what you dream of becoming. Just technical skills alone can be easily replaced. One needs to be well balanced with good technical skills, domain knowledge and soft skills to succeed in his/her career.

Get more career tips http://www.lulu.com/java-success

5
Your rating: None Average: 5 (1 vote)
Published at DZone with permission of its author, Arul Kumaran.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Slava Imeshev replied on Wed, 2009/01/14 - 1:31pm

 

How about writing good code? 

 

Regards,

 

Slava Imeshev

 

Liam Knox replied on Wed, 2009/01/14 - 8:27pm

[quote]More often you make a good impression on your superiors and peers by pro-actively identifying potential issues related to performance, multi-threading, transaction management, security, etc and fixing these issues before they become a major headache. Just being a techie alone not enough. [/quote]

This to me is exactly the job of a techie. Are you trying to distiguish between some hacker and a good or even average caring developer?  The above has nothing todo with soft skills.  Sure soft skills are important in life and work but I would always employ someone on their ability todo the Job in hand.  In development this is the the predominant ability to design, code etc and not sell to clients.   Put another way, look what the 'vote for the bloke next door' has done to the world economy. 

avdhesh replied on Thu, 2009/01/15 - 12:36am

Dependency injection and inversion of control is also very important concept which developers should know to write good code.

 

Arul Kumaran replied on Thu, 2009/01/15 - 7:56pm in response to: Slava Imeshev

Coding and design come under technical skills. Yes they are important, but my point is that good technical skills must be complemented with good soft skills and business focus. For example, place where I am currently contracting, all contractors are asked to leave and these positions are replaced by permanent staff. Only a handful of contractors survived this and got a special extension because they posses strong busniess knowledge and soft skills. They are kept a bit longer to train the perms. I have also seen people with technical brilliance let go due lack of their soft skills. New technical skills can be acquired in days and new frameworks can be learnt in weeks, but improving on soft skills can take months if not years. You need to grow not just as a 'techie' but as a well-rounded person with good technical skills.  

 Would like to hear from fellow professionals as to what made them stand out?   

Alex(JAlexoid) ... replied on Thu, 2009/01/15 - 7:56pm

[quote]What are the two main OO techniques for code reuse? Which one of those two will you favour and why?[/quote]

If I would have been asked that question, I would probably be insulted. Really, as mentioned above, soft skills are much more important in the market. Understanding the client and their business(or at least actively trying to understand some function) is valued much more than pure tech skills.

And, FYI, last time I had an interview the most technical question was related to interpreting and implementing based on a UML diagram or UseCase/User Stories. And that is exactly what, non academic, market wants - people who can transform those design/architecture elements into working software, not someone who just memorized all the OO concept names and their descriptions.

Unless, you are hiring fresh graduates.

Arul Kumaran replied on Thu, 2009/01/15 - 8:08pm in response to: Alex(JAlexoid) Panzin

[quote=jalexoid]

[quote]What are the two main OO techniques for code reuse? Which one of those two will you favour and why?[/quote]

If I would have been asked that question, I would probably be insulted. Really, as mentioned above, soft skills are much more important in the market. Understanding the client and their business(or at least actively trying to understand some function) is valued much more than pure tech skills.

And, FYI, last time I had an interview the most technical question was related to interpreting and implementing based on a UML diagram or UseCase/User Stories. And that is exactly what, non academic, market wants - people who can transform those design/architecture elements into working software, not someone who just memorized all the OO concept names and their descriptions.

Unless, you are hiring fresh graduates.

[/quote]

It was just an example. The objective varies from the type of role, type of project and obviously the interviewers. OO concepts are very frequently get asked and that is why I mentioned that as an example. Similar examples can be given for UML as well. The point I was trying to make is that "one should take the effort to prepare or brush up the key concepts prior to interviews, so that they can stand out from the other candidates who had done similar things or more".

You are absolutely right in a sense that it is very important to have the ability or skill to translate business requirements to baseline architecture, design, and technical specifications. Not many have this and you can stand out from the other professionals by having this capability. 

Liam Knox replied on Thu, 2009/01/15 - 8:10pm in response to: Alex(JAlexoid) Panzin

You have be very carefull in your comparison. This post sounds more like the people who are best for the developer jobs are the ones most savy in the business.

This is not the case as often companys have a BU unit which is more client focused and know more about the business as a whole.  I can tell you from experience these people have the best soft skills and business knowledge but cannot code or develop systems for toffy.  Indeed massive danager arises when the 'believe' they can.  Obviously you are looking for balanced skill sets but to term one more important compared to the other is pointless as it depends massively on seniority, role, industry and company structure. 

Arul Kumaran replied on Thu, 2009/01/15 - 9:52pm in response to: Liam Knox

Point taken Liam. Also, it is not easy to find that kind of people. I am not really talking about training business people to aquire technical skills, but the the reverse. That is why you always have people with varying skill sets to complement each other. My point here is that to stand out, one needs to be business focussed as well. This has other benefits like

-- Networking with business can open more doors in terms of one's career. Business or the stakeholders pay for your technical work. They can easiliy influence your existence or how much you are worth. 

-- Having business skills and soft skills can make you harder to be replaced. Just technical skills alone can be easiliy replaced.

I am a technical person myself, who love to code in Java/JEE. So, I am not at all against having good technical skills. But over the past 2-3 years, I am also concentrating on non-technical side of things. At times, it might be a better option to see what soft skill or business skill to acquire next as opposed to getting another certification or learning a new framework or flavor of the month. Technical people with solid foundation can easily pick up a new framework, language or a tool only when it is required to be used. Unfortunately, not many managers recognize that. Having said that, if a particular framework or technology becomes well sought-after, I will take the effort to learn it, apply it in the current project or find a new opportunity in a way that can be applied. For example, Spring, Hibernate, SOA, and integration technologuies like JMS, Web services, etc. 

 

Liam Knox replied on Thu, 2009/01/15 - 10:49pm in response to: Arul Kumaran

[quote] Understanding the client and their business(or at least actively trying to understand some function) is valued much more than pure tech skills. [/quote]

I agree with your original posts intention. I was actually refering more to this reply which to me makes a massively bold and generic statement which I find unjustifiable in the general context.

regards

 

Alex(JAlexoid) ... replied on Fri, 2009/01/16 - 4:49am in response to: Liam Knox

[quote]often companys have a BU[/quote]

I work for a company that has Business Analysts*, and employs them to be between the client and developers.
However, my personal experience shows me that, even if you have BA sitting and filtering info between developers and the client,it is still very important to have those soft skills. BA's, generally, are not particularly good at understanding developers, the really good ones actually do understand developers, but that is why they are exceptionally good.
Though a process involving a good dev lead or architect does help. But it is heavier and takes longer. In any case, if you have a good BA + a good tech lead and a bunch of "code monkeys"** is usually works out.

* - I would expect that BU, in function, is something similar to that
** - Unfortunately, to many business people most techie devs are just plain code monkeys, no matter how good they are. It's not the '60.

Jeroen Wenting replied on Fri, 2009/01/16 - 7:52am in response to: Slava Imeshev

[quote=imeshev] How about writing good code?  [/quote]

That's SOOOOO '90s! "Soft skills" are FAR more important to impress managers to give you a raise, if you have them you can easily deflect the blame for your failures onto others without those others realising you did it after all...

So if your soft skills are good enough you can get by without knowing any coding whatsoever, as long as you know the buzzwords to impress the recruiters.

He's after all not talking about working, but about getting hired...

Liam Knox replied on Fri, 2009/01/16 - 7:01pm in response to: Alex(JAlexoid) Panzin

I think you should first retract your initial statement which basically equates to A > B for all A and B :-)

Sure its important to have soft skills but it depends massively on context. I.e If I worked for Networking firm developing device drivers my soft skills requirements would be completely different to that if I work on the front office exotic options desk in an investment bank. 

And believe me regardless of your soft skills if you end up developing piece of flakey crap, no one is going to be too impressed.

 

Alex(JAlexoid) ... replied on Fri, 2009/01/16 - 9:27pm in response to: Liam Knox

[quote]depends massively on context[/quote]

That is right! And you are missing the context here: Java/JEE. I bet that 99% of Java developers work on non tech stuff and develop applications for businesses. So, no there is no reason to retract, since absolute majority of contexts are the places where soft skills are much needed.

[quote]developing piece of flakey crap[/quote]

Who said that technical skills are not needed? Don't be the person who paints everything black and white.

Tarun Ramakrish... replied on Sat, 2009/01/17 - 5:29pm

Haven't commented in javalobby..oops..dzone for years now, but I had to just HAD to comment on this one...

The 'well-rounded', 'soft-skilled',  'business-associate' package works well for business application development....and pretty much only for that field with a 80-20 applicability. The harder sides of that field - (serving millions of users scalably for ex) and the systems programming hemispheres - messaging systems, real-time systems,distributed-transaction-engines, computing-in-the-large, optimizing-compilers, etc, require some real dedicated geeks in your project/product team and NOT soft_skills.

I used to believe this same nonsense before when I worked as a entry-level Java programmer in an Indian software services company - a pervasive impression that was (and still is) strongly spread by the HR deparments and corporate trainers (who are incapable of teaching real computer science,  soft-skills are their bread-and-butter). In many Indian software service companies, coding is for monkeys, being a techie means that you are at the bottom of the totem pole and 'managers' are exalted above all. 

That belief has been broken by hard, bitter experience. [[Statutory Warning: Too many soft-skilled people in a team working on a hard domain == devastating failure..too much talking, dangerously little understanding and never enough action (of the right kind) ...with the few non-visible geeks desperately trying to make up for the shortcomings of the very-visible silver-tongued sycophants.]]

I no longer believe that engineers should be 'soft-skilled' - I find the really, amazing ones that I have been privileged to encounter to be somewhat eccentric and impatient. As long as they can solve hard problems, come up with ideas and solutions and effectively communicate them - they can choose to be as impersonal as they wish to be and not bother about being 'well-rounded'.

"New technical skills can be acquired in days and new frameworks can be learnt in weeks, but improving on soft skills can take months if not years." - Umm..want to add some extra data there.. ok you can learn to use frameworks in weeks. Building frameworks can take years too .. And building great frameworks takes  signifcantly more investment in time and effort than improving on soft skills...

Oh well...that turned into another rant. Sorry, I just get mad when I hear the word 'soft-skills' nowadays...I want some people to get some real 'engineering-skills' first.

 

 

avdhesh replied on Sun, 2009/01/18 - 12:01am

Indian software compaines teach you that developer acquire more soft-skills than the hardcore programming and they call these substandard code monkeys as techies.. lol..Most of developers are users of frameworks not the creators of framework..

Using a framework is completly different than creating a new framework.

Philipp dsfgsdf replied on Sun, 2009/01/18 - 7:47pm

"What are the two main OO techniques for code reuse? Which one of those two will you favour and why? 

Most candidates will correctly say:   

  • Class inheritance.
  • Object Composition."


Would you really ask such a question in an interview? Those things are very basic, aren't they? You could also go on and ask the candidate if he can read or write. I wouldn't ask basic questions at all. Why don't you make tests? Give him a small piece of badly designed code and ask him what he would do with it. 

And if it comes to frameworks and the candidate pretends to be a specialist in this or that framework, why don't you ask him advanced questions about his experiences? Something like that: "How do you solve this problem which arises when using this framework?" or "Would you use this or that configuration option?" This way you can find out quickly if he is experienced or not. 

Generally speaking: Asking "advanced" questions that can't be answered by learning from books is what matters imo.

 

 

James Selvakumar replied on Sun, 2009/01/18 - 10:55pm

>>New technical skills can be acquired in days and new frameworks can be learnt in weeks, but improving on soft skills can take months if not years.

And that will produce half baked programmers in months if not years.

New technical skills can be acquired in days and new frameworks can be learnt in weeks but mastering them will take time.

Yes, soft skills are necessary but having sound technical knowledge is what can save your day in troubled times.

 

Arul Kumaran replied on Sun, 2009/01/18 - 11:42pm in response to: Philipp dsfgsdf

[quote=Phil79]


Would you really ask such a question in an interview? Those things are very basic, aren't they? You could also go on and ask the candidate if he can read or write. I wouldn't ask basic questions at all. Why don't you make tests? Give him a small piece of badly designed code and ask him what he would do with it. 

[/quote]

From my personal experience, not many even get the basic questions right. I agree with you that scenario based questions are more effective because one should know what to apply and when to apply the concepts.

Arul Kumaran replied on Mon, 2009/01/19 - 2:02am in response to: James Selvakumar

[quote=sskjames]

>>New technical skills can be acquired in days and new frameworks can be learnt in weeks, but improving on soft skills can take months if not years.

And that will produce half baked programmers in months if not years.

New technical skills can be acquired in days and new frameworks can be learnt in weeks but mastering them will take time.

Yes, soft skills are necessary but having sound technical knowledge is what can save your day in troubled times.

 

[/quote]

 Who is saying not to have sound technical skills? All I am saying is that sound technical skills must be complemented with other skills. If your skills are well developed in Servlet, JSP, Web Paradigm,  a framework like Struts, etc, then learning another framework should be fairly easier (2-4 weeks). Mastering it may take a little bit longer.  Soft skills like analytical, ability to research and learn things quickly can help one master these tools/frameworks faster. Soft skills are vast.

Liam Knox replied on Mon, 2009/01/19 - 12:16am in response to: Alex(JAlexoid) Panzin

You first statement that I quoted was the only black and white statement I have read ;-)

All I have said is comparing different roles to different requirements in skill sets.  You seem to insiuate in the first remark, the you dont retract, that soft skills are always more important.

[quote] I bet that 99% of Java developers work on non tech stuff and develop applications for businesses[/quote]  This is an amazingly strange sentiment that if a developer is writing applications for a business therefore they are non tech ?  What is tech stuff ? 

I suppose they need to know nothing about transaction management, relational databases, frameworks , design patterns etc etc.  Clearly they just know about the business and we have some high domain specific lanaguages ( they are magic and dont exist really ) , that we can use.

 

Jeroen Wenting replied on Mon, 2009/01/26 - 5:48am

"This is an amazingly strange sentiment that if a developer is writing applications for a business therefore they are non tech ?  What is tech stuff ?  "

It's a typical attitude by those who study for (and many who get) CS and SD degrees that anything that has business value is beneath them. If someone who's not part of their clique can understand it it's not interesting, it's not "tech stuff" but just "boring business code".

These are the guys who want to add "closures" and other "features" to Java while those who actually use the language for real work rather than talking about it and how bad it is for not having feature X on conferences.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.