Recently I got a very good criticism from my Tech. Manager. He said that based on customer feedback that I still have holes / gaps in my Java development skill set. For the last 4 years, I was mainly working on web Java development (JSP / AJAX) with an established framework in hand when I joined in. After that I got moved into a client site where the work is now on toolset development (e.g, Graphiti, Eclipse RCP, Maven), coupled with testing on Activiti Explorer and Apache Karaf. We had a talk two weeks back about where would I be once my stint at the client site ends at the end of the month. One plan is to have me moved to the company's mobile division (but steep learning curve), another was to be outsourced to a development / support role at another client or move to the deployment UAT role with the present client from November until end of January. It's unconfirmed as of now, but as this present state, they suggested the latter two options.
The company knows that I am quite unhappy and feeling uncertain of how things would unfold when November comes in. At the same time, they are also very concerned that I seem to no longer have the zeal / passion to do the hardcore end of programming - (a.k.a jump starting on my own). I don't really blame them but they are right...it feels cold
I do not have a problem of taking up a new skill but what I know is that after a certain point where I learn as much as I could, whatever that is learned might not be reflected for real world scenarios. At times I often fear that I might get stuck somewhere in the middle where I might not get a solution to solve a problem (particularly in tasks that require tight deadlines) that I had to ask colleagues / peers for help. It's something I would not like to do unless as a last resort. Worst come to worst is that colleagues that are in the same level as I do - no first hand knowledge of technology required to use.
The tech manager advised me one thing though : "polish your skill set". I have to admit that I really need help. I would need an online mentor knowing that studying by the book alone won't go far enough.
Definitely one of the starting paths would be to do a "back to basics Java" - relearn and start studying for SJCP certification.
In addition to the advice need for the problem above, I also have a few questions below:
1. Any ppl (aside colleagues and those in forums) that I can talk to aside for solution suggestions in scenarios where there are problems in tasks with tight deadlines?
2. What will be the good learning path after the core Java since the skill set required would dynamically change on project by project basis?
3. Is there any avenue where I can write code for real-world scenarios as to polish up my skills and have people pointing out / correcting me on mistakes?
As I said, would really appreciate any advice.
I tend to divide the software development into 16 Key Areas and pick a key area and enhance your knowledge via good books, blogs, and other online resources. As a developer, learning must be an ongoing process. Assess your current skills set, and concentrate on areas that you need to polish up. Here are a few tips from my experience.
1. At work, you can learn a lot by reviewing others' quality work -- even bad code to see what is wrong with it and how you can improve on it.
2. Writing a blog to capture your experiences and polish up your learning with additional research.
3. Invest in good books that will enhance your learning on a particular key area or topic. For example, Effective Java by Joshua Bloch, Java Concurrency In Practice by Brian Goetz, etc.
4. There are plethora of free online tutorials. Pick up something that you can immediately at current work. For example, RESTful Web Service with Apache CXF, etc.
Melvin Mah wrote:Definitely one of the starting paths would be to do a "back to basics Java" - relearn and start studying for SJCP certification.
You already have some Java experience, even if your boss says there are some "holes" in your skills. To be honest, I wouldn't bother doing the basic Oracle Certified Java Programmer test unless you think it will teach you some new stuff you can't learn any other way. As far as I can tell, nobody values certifications very much anyway, and the basic programmer certificate is the easiest one to get so it's the least valuable. But if you want to explore certification, maybe look at one of the higher certifications in a more specialised area, where you can reinforce and extend your existing knowledge e.g. web components or web services developer, or something where you will definitely learn some new stuff. Or look at moving into a different area such as analysis/design, if you're not really keen on the "hardcore end of programming".
Melvin Mah wrote:3. Is there any avenue where I can write code for real-world scenarios as to polish up my skills and have people pointing out / correcting me on mistakes?