This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I am currently working as 2nd line support at Greggs the bakers, providing support to 400 users and over 300 shops.
My ambition is to become a Java developer but unfortunately, such a position does not exist in my company. They hire external contractors to do their programming.
I have got the opportunity from my work to be trained into Java by going on to different courses with the company paying for them. As long as I can prove it is beneficial to the company.
So what i plan is to set up a plan for 18-24 months of how i can go from a amateur to a expert. So in 18 months i am good enough to design their back office software the shops use to do the orders, sales, cash sheets etc. This would help me convince them of creating a new position for me. I have thought of getting training as a trainee at another company but i would prefer to do it this way.
What i need help on is the type of courses / training i can look at? I prefer good training courses that i can learn alot from, as my company will be paying for.
Look for an institute in your vicinity, which offers courses in Java with hands on project experience.
To develop any kind of application for your company, you'll also need hands on trainings in - 1) A Database Management System like Oracle 2) Web development Technologies / J2EE
All these are easily likely to take a minimum of 6 months time + a lot of effort on your part.
The kind of application you have in mind, also require reporting tools like 'Crystal Reports' so add them in your training time (Although you might learn them on your own if you've gone through other trainings throurughly). [ July 24, 2008: Message edited by: Sunit Gupta ]
Joined: Jul 09, 2008
Is sun's training good enough??
because i was thinking of starting with this course...
Create web applications, study existing ones from Sourceforge, participate in the development of existing ones.
Read up on Wicket and create some small application (like a photo storage application) using it. Convert the application to other frameworks, like Spring MVC, JSF and Tapestry.
If you've done all the above picking up some kind of report tool if you need it will be a breeze. That's why I haven't included Crystal Reports. If you just want some diagrams and stuff there are easy libraries available.
It will take 18 months as a bare minimum. And you won't be rightfully calling yourself an expert for the next 15 years (but you will get by). :-)
If you find something especially hard, take a course on it. The first two items should be doable using only books. It takes time to learn this stuff, lots and lots of time, not many people have the necessary interest. [ July 24, 2008: Message edited by: Kent Larsson ]
Since right now your company is outsourcing your programming, I have serious doubts that a single person can simply take up the programming duties of your (seemingly large) company, and do well at it. Especially with someone with limited experience as yourself.
I'm not too sure why you would even want to replace the programming venue in your company anyways (if that is indeed what you intend to do). If I were you (and if I were you 10 years ago, oh the decisions i could have made , I would look at instead where I have an advantage. That being, your internal view and ability to work handson with the people.
Which means, you have the ability to see opportunity with programming that is probably being missed in your company.
Does that mean, not taking the courses? Of course not! YOu need the knowledge to make it all work!
But I wouldn't restrict myself to simple java courses. Since I don't know where your technical knowledge is, I'd break it down all the way:
1. Programming (any java related books/courses) 2. J2EE programming (or other server oriented architecture) 3. Database knowledge (people talk of oracle, but know your options! Postgres is an amazing open source database!) 4. Web driven technologies 5. Frameworks (Yes, lots of people hate them, but having worked first hand with 3-4 frameworks, they really are a great boon to programmers. Look into Spring for java programming).
and since you may not be the best programmer
INVEST in some best practice books!
6. best practices! Look at the java patterns book from the gang of 4, look at other books that talk about not just programming, but lead programming, and managing developer groups. 7. network knowledge! 8. add whatever fields you see could be potentially another ace in your pocket.
Honestly, this isn't a 18 months thing. You can learn the basics of all this in a "short" time, but to become an expert will take years.
Joined: Jul 09, 2008
Thanks for the input guys. Will take a deeper look into the advice and hopefully choose the right steps.
I can do the best i can, and in the worse case I will pick up very valuable knowledge, from the companys money
BIRT is an open source Eclipse-based reporting system that integrates with your Java/J2EE application to produce compelling reports.
P.S. You cannot tackle the world all at one. Becoming a software engineering expert takes time, much more than two years. If you are dedicated and stay focused, it will come quickly. Going for a Master of Science in Software Engineering or Information Systems degree is highly suggested. These degrees will give you the required business knowledge and communication skills to make your technical skills shine!
James Clark, BA, MS, MS, PMP, SCJP, SCEA [ July 24, 2008: Message edited by: James Clark ]