May 29, 2015

Java Developer : Anatomy and life cycle

I have been a Java developer for years and probably more to come. Becoming a Java developer is easy, you need to read a book and develop a "Hello World" program, crack interview and work (with help of google). With your aptitude and learning you start programming fast and more your experience lesser you google. Not exactly, I do google many times a day since beginning. Technology is fast changing world, but concepts don't change so frequently. Once you learn the concepts, its easy for you to learn new frameworks & libraries. All it needs to learn Core Java, OOPS, and design patterns, though you would be using them not often. Then comes the framework like Spring & hibernate, Oh Man! without them many think you are not at all a Java developer. Most of the job requirements have core java, multithreading, design patterns, spring, and hibernate. List is incomplete, but above mentioned technologies are sufficient to land you a nice paying job. Include JSP, Servlet, EJB, JTA, etc. for variety and if requirement is more of J2EE(sorry Java EE).

Within few years of Java development, you are not just a man, your body is not just bones, nerves, blood, and muscles; java is in your blood now. You never write "Hello World" again and you never miss opportunity to discuss programming. Somewhat like below -
Many times recruiters call me ask if I have 10 years of Java experience in Multithreading. May be they don't know what we exactly do, and it might be rarest or rare possibility that most of us have been working on multithreading for continuous 10 years. But its ok, they need a man with 10+ years of multi threading experience, may be they don't need just a man, they need Spider Man. And Yeah!!! if you have 10+ years of hard core multi threading experience, you are indeed Spider Man : More than just a man. A Legend (Bruce Wayne, if you remember Liam Neeson in jail in Batman begins). 

And trust me you world be flying high, and your feet will never touch the ground. Your threads are your wings, Be like Mike. 


But there's more than that, what if a company gets a resource with expertise in Multithreading and Spring. Man!!! your managers are like kids and they will imagine you like Spring bed Spiderman, where they will jump, enjoy pillow fight, and eat lunch. 

May be it all looked like fantasy world, because realty we face everyday is different. Our managers can't give everyone the A rating, not everyone can get 30% increment, and plethora of Java developers in market makes us find hard a nice job. Not only this, everyday new technologies make our life worse. All those buzzwords(Cloud, REST, boot, DevOps, etc.) scare more than excite in interviews. Above all the interviewer expects us to sort a list, and design a Casino. Some one asks inner class, and some ask to explain hashing. There's no limit on how far an interviewer can go, doesn't matter I have 2 years or 12 years of experience, an interview question never gets outdated.
So that's a challenge. And so whenever I face a new question, I try to post on my blog, but there's no universal set of interview questions.

Also, we don't know which question to ask for a particular level of experience. Or any one knows what's difference between 2 years Java developer and 3 years Java developer.
BUT OK, classification is not that difficult. Ask me, I think as a man has several life stages like child, adult, old; A java developer also has life stages, and those are

  • 0 years of experience (also called 0-2 years of experience)
  • 5 years of experience (also called 4-7 years of experience, some also put 3-5 in this category)
  • 10 years of experience (also called 8-12 years of experience)
  • 15 years of experience ( rare )
  • 20 years of experience (very rare)

15 years and 20 years rare because till that time, many start climbing the corporate ladder like some become project manager, some architect, and some leave IT industry.

But I think there are some figuratively different stages, and they map to above mentioned stages.

  1. Fresher - 0 years of experience
  2. Developer - 5 years of experience 
  3. Dangerous - 10 years of experience
  4. Decaying - 15 years of experience
  5. Dying - 20 years of experience. 

So, if you are hiring you look at the experience level, and imagine what he is. A 10 years of experience and doing development is a dangerous man. He has knowledge, experience, standards, guidelines, vision, tummy, etc., But he might be very useful or he can be dangerous. He sees thing going wrong, he will shout. He will not spend day & night on silly requirements. He will force client interaction, and he can explain business to client. Such people spend much time in mentoring and sharing experience: not only java, but life experiences. They like to talk, discuss, and guide. But they might be frustrating to other junior developers or managers. 
A developer is -5+ years of experience. Yes, he is energetic, he has experience, he has knowledge, and desire to deliver & learn. He is the man. 
15+ years of experience man is doing development because he might be helpless, so you hire him better make him as an architect if he can, or hire him as supporting cast. But he has seen life, he has seen ups and downs and may be now he believes - works never stops, whether I do or not. 

I am a maroon 5 fan, I read motivational quotes and many times believe I am animal. And I think Java developers can also be classified as animals:

He or she starts career as a deer, and becomes horse, but with time he is old, and finally he is cute again. But remember inside he is panda now not a deer. 


Share:
© Shift, ShEkUP, Shape, and Surprise | All rights reserved.
Blogger Template Crafted by pipdig