This is a big description. So please be patient.
I have around 4.5 yrs experience and I worked on j2ee platform. The first 1.5 yrs of my career in IT was in UAT and production support and the technologies were jsp, servlets, EJB. That was around year 2006-2008. While I was 6 months in to my first project, it was in UAT stage and post that all the seniors moved out. It was a product for banking domain and was already running for 3 years before I joined the firm. So for production support I was the senior most in project terms although in experience there were others. Our management picked me up for production support and the product was not stable at all and we had hell lot of issues. We missed SLAs almost everytime and I had worked and stretched like anything to deliver fixes as per SLA terms. I knew the application flow. All that was required is to change existing jsps or servlets or pojo classes etc. It was application related and I was expert by that time in application terms. Still, the loop holes in the product hit us with 4-5 issues per day on an average and no matter how long we stretched, we missed many SLAs. When I was picked for production support for my module, I dont know if they meant it or otherwise, they said I had the best analytical skills among the team members of my team and so was picked up. All my daily routine was to work on fixes, talk to senior management on daily status and the status meetings often went for an hour frequently. I also used to speak to SME of the project, interfacing modules and attending any calls that might impact our modules etc. That is how my first 1.5 year went. I was out from B.tech in CSE in 2006 may and was in job by june. I never learnt java or jsp or anything for that matter myself and everything I learnt was on job. Never did I write a jsp from a scratch neither did I know what collections do and what they were. All know what we learn during B.tech years. Finally the client got frustrated and rejected our product when it was in AMC stage and so complete team was released. During the last three months one of the project manager came new to head us. Till then I had reported directly to Program manager or Project director. The new manager saw my independent handling and hardwork and when we were released, he took me into a development sort of project which had new technologies like XML, XSLT etc. The role was supposed for a 5 year guy, but impressed with me, he some how managed me to get into the project due to his rapport with one of the client managers. It soon turned out that I didnot have the basic skills in java - I have never really worked on from scratch anything at all. So within in 6 months, he lost all regard and confidence and used to sit beside me to get the things delivered. I had excellent communication skills among the team and that is the only thing he liked in me. Soon the mistrust and frequent bullying saying that I am not even fit for a one year guy hurt me and our relationship severed. I for my own personal problems in addition to neglect did not learn new things or basic things. All my life went in office. In that firm on an average I worked for 12 hours a day and had literally no time except on weekends which I wasted. With the severed ties, I opposed him and at one stage refused to work with him. In the previous production support project I was appraised 4 out of 4 meaning an outstanding performing and with in an year and half in next project everything down, I had to quit the company hearing rumor that they were preparing grounds for my termination and rated me 1 out of 4 partly due to my non-performance to their expections and partly due to rupture with this new management.
I quit and joined a new firm. For 1.5 months I was on bench. For another 1.5 month I worked in a project which had a client specific framework based on spring/hibernate, stuff I never even heard of. But all the tenure went solely for documenting design documents franklly, formatting the documents for the client expectations and purview. I was given a developer who was a fresher and he also knew little about technologies and the framework. However, there was one developer who had a week time training in framework and helped us. I tried my bit whatever I could to my knowledge to help him. The manager for this project moved to some other firm after the completion and the review he gave about me was very positive as I hear from my current manager and program manager. I am working on a new maintenance project yet again for past 3-4 months and during this appraisal period, my manager was satisfied with technical skills, commitments and all the stuff and asked me to improve on application and domain and processes followed by organization.
Recently I was asked to give a session on java to freshers. Basic concepts..core java. Ofcourse I was not touch with those concepts especially collections and I some how brushed up for 2 days for training. I gave the session and ofcourse I was not satisfied my self. I had no time to brush up deeply and especially collections were alien to me. I am also supposed to send them an assignment and ask them work on it and submit back to me for verification. People are saying that they are college level programs and pretty simple. I have been working on the assignment myself and could work out only one issue, that too after going through collection concepts once more. The other programs I am struggling to achieve.
This is my current stage, and I wonder how I can call myself a J2EE guy. Deeply immersed in maintenance projects stretching out myself hard gave me nothing but application knowledge and recognition in that project alone. Once out of that I am nothing. My earth is shaking and I am not able to keep up. Fortunately I am working again in a maintenance project which is far more stable. It involves java, flex, webservices etc.. Right now it does not involve much coding on flex side almost nothing at all and neither on web services side. A little bit changes are requird on java and mostly it is analysis and not bug fixing that is going on right now. But a simple training session and its assignment is devastating to me and I am working like anything now on assignment.
With all the maintenance backdrop it only contributed to break of my spine and nothing else. I am a team lead now, a position less than project lead and still have 4-5 more years to become a manager at which point I will have practically have no need to worry much on technical aspects. But in the mean time, I am facing lot of embarassment myself. I am just thinking of approaching my manager to ask him to not to assign any more sessions this way. But it is a two sided arrow and it will likely force me work on developing my technical skills at this point of time in addition to shattering whatever expectations or opinion he held about me till now.
For me I learnt that maintenance projects are most damaging in the initial stages of one's career. Does anyone agree with me. While I am also the one to blame to not have updated myself on technical aspects being in delivery stream, is it not the maintenance project aspect of my career, which landed me in this soup and what is a way out.
I can only quit IT. But now I will have to join at most junior position in any other field as this experience has no relevance at all.
What are your thoughts?
The OP has been working on many maintenance projects. His manager on a dev project tells him that his skills need improvement. He was assigned a technical training session which was supposed to be completed by college grads but had trouble with it. He wonders if this is because of his involvement with maintenance projects.
For me I learnt that maintenance projects are most damaging in the initial stages of one's career. Does anyone agree with me.
Not necessarily. What is most damaging is this
no time except on weekends which I wasted.
For 1.5 months I was on bench.
When you waste time and do not spend 1.5 months productively, you have no one to blame but yourself. It is never too late to start reading a book or pursuing a certification / degree.
But may be the bigger question you should ask yourself is, 'why are you doing what you are doing right now ?'. Do you like to write code ? Do you like to manage people ? Are you confident ?
I am a team lead now, a position less than project lead and still have 4-5 more years to become a manager
I am just thinking of approaching my manager to ask him to not to assign any more sessions this way.
I can only quit IT
You are confused. One side tells you that you must stay the course and become a manager, thus avoid technical work. This side also wants you to avoid any technical work / challenge, as seen by the second quote. This can be dangerous. When I work with a manager, I expect that person to get my problems solved. Both technically / politically. Mediocrity never leads to greatness.
Your other side want to give up. Why try harder when you can blossom in another industry ? But this side does not seem to know what industry to turn to or have a plan B (at least from what I read here). This side may be right, if it has a plan B.
I am respondign to the concise version by Deepak.
In previous days..mid-career crisis used to happen around 35+yrs of age. Now a days because careers move so quick...it is beginning to happen around mid 20s. Believe it or not your situation is not unique.
Based on your info..my suggestion is this: If your background has been in science/engineering...not to quit IT. But surely changing jobs and doing certifications will provide a much needed boost to your confidence. Is this an option?
You could become one if you study/practice. To do this you have to really want it. Do you? Or do you just want to finish the days of technology until you can do something else?
I know your situation because I am going through this. I am stuck in outdated CMS project and trying to break the infinite loop. But, one thing keeps me moving is HOPE. Have faith in God and be positive. Change in your perspective can do miracles. For instance...
1. Stop seeing maintenance projects as burden, in fact, they are more better than developing projects. During maintenance you can fine tune application, learn so much. Perhaps you can improve your coding skills by reading Martin Fowler's book on code refactoring (Refactoring - improving design of existing code).
2. Ultimately any application is a system and you are responsible for it. Its your baby! Take it as a challenge and pursue chanllenges whether technical, managerial or political. Just give your best effort for any work be it maintenance, developing, design or polishing shoe.
3. Keep learning. I can see some negative attitude here. You confessed that you wasted weekends. Instead of wasting, may be you can prepare for SCJP certification by studying 1 hr a day. Its doesn't how slow you go as long as you keep moving.
4. Have ambition like 'I want to be a software developer'. Have plan, stick to the plan and work it out. Don't consider job change too often. Now a days companies looking for consistency.
5. Learning is slow process and takes time. Learn from mistakes.
And agin don't give up. Its your fight. Have faith in God and belive in your self.
I have also went through same phase as yours. I passed out in 2006 with B.Tech in Telecommunication. I was hired by a small company as Java developer.
I was also assigned as a production support for a product for a bank. Making it worse it was a big project and my company was small, company was billing for 3 person but i was handling it alone. I still can not imagine my 2 years there, but I kept positive attitude. I keep learning and my effort was also rewarding by company. I won "young achiever" award. Believe me on my first day - I did not even know how to write "Hello World" program.
I gave 8 months, I studied everyday from 10 PM to 12:00 midnight and finished SCJP and SCWCD in a row. I am so much comfortable with JAVA after that. Currently I am a team leader and solution architect. I have also finished 2 open source project.
My suggestion to you will be - Keep the positive attitude and start learning. Follow this forum and read how to approach solution.Java not a rocket science. You may also start some small project by your self and start coding. It such a nice feeling when you start a project and when you finish it.
I wish you BEST OF LUCK.
I think setting up targets in terms of Certifications would help you in both ways ..gaining confidence and your preparation will also be time bound..
All the best ..
I am also needing some direction ..I want to build something working ...some simple applets or web or game ,but dont know where to start from .I have gained some knowledge in core ,J2ee ,struts ,hibernate and very little Spring MVC.Want to design some dynamic web using these technologes ..Seniors ..please give me suggestion where should I start from .Thanks all in advance .