tags:

views:

257

answers:

6

I have joined a private company as a Corporate Trainer on Java technologies. My job is to teach java to programmers. I am 25, having a degree in computer applications.

I am handling only core java,servlets and jsp batches as I am not experienced in JEE frameworks like Spring, Struts. Ajax, JSF ,Hibernate etc.

I want to know how I can master these technologies and be good at it. I have bought some books and started studying. What else should I be doing?

Also, what I am not sure is the career growth in my field. I am finding it hard to plan my career and my growth, I am not sure about my options. Can someone guide me on this?

+3  A: 

Who could have hired you as a trainer if you don't know you stuff?

User
Living up to your alias! +1
Kezzer
Normally I vote down these types of non-answer answers, but this one is so apt I had to +1 it.
TheTXI
Sorry guys. The last days SO is overrun by *censored* posting questions of ultimate stupidity. I'm loosing my temper...
User
Gives weight to the saying 'those who can do, those who can't teach'.
karim79
While I have to agree with both your comment and your post above, I think the "stupidity" of the postings is more of a reflection of what things are like out in the corporate world. And no, that doesn't make it any better.
Timo Geusch
The questions I was referring to originate from users with Indian-like names who asks something so basic one should learn it on his own. I'm scared what kind of software is produced there if they hire developers who do not know how to program yet and the trainers who have yet to learn themselves what they are about to teach.
User
The question states that he's only handling stuff he knows... I've met many teachers who either have a mixed career of teaching/developing, or do both at the same time (like I do at Hopkins). Unfortunately I've also met many who have no idea what they're talking about as well. Same goes for books - anyone can write one; not all are good.
Scott Stanchfield
+8  A: 

This is a pretty dangerous start of a career. Unless you have a real industry experience with Java, you'll keep finding yourself in non-pleasant situations in the classrooms when someone will start asking questions that only practitioners can answer.

If you just do training, you'll get a "book knowledge" of the subject. Another issue with this career is that whenever economy goes bad, training corporate budgets are being cut first, and you may find yourself out of job.

I love teaching classes on the software myself, but would consider being just a trainer or a professor as a good ending of the IT career, not the start of it.

Having said that, I really admire people who know how to teach software, which is not the same as to know how to build software.

Yakov Fain
+1 balanced advice, and a good observation in your last sentence
Jarret Hardie
A: 

In terms of increasing your knowledge, I suggest:

  • Buy some books
  • Take part in some projects in the areas you're intersted in. (Open source, or otherwise, you need to get real world experience in those technologies.)
  • Get some training, possibly by attending some courses that other trainers provide. (You can also pick up tips on how to train people by doing this.)

In terms of career development, and growth I would have thought a trainer could either specialise in particular markets/technologies, become a lecturer, write books, or depending on your interests move into other areas like becoming an actual developer.

It's really up to you and depends entirely on what you're interested in, and what risks you want to take.

Bravax
+1  A: 

Become part of OSS projects and dedicate a lot of time to them. When it comes to programming, books can't tell you all the fine details you need to know. In fact, with my vast knowledge of all kinds of software, I'm usually faster finding the cause of a problem than my colleague who has all the books.

The reason for this is simple: There are a billion projects out there but there is only a pretty small set of errors people usually make. But there is no book with a list of the problems, only books about how great XYZ is. The books tell you how to do something but rarely how you can fix a problem. Google can help here but not in a classroom.

Aaron Digulla
A: 

Buying books and studying in your own time is a good starting point, but you will have to get your hands dirty and actively work with these technologies in order to be able to effectively teach them and not only repeat book knowledge. Only a practitioner would be able to explain to their audience that certain things don't always work to spec etc.

Being able to teach people a programming language and be good at it is a valuable skill, but the only career development that would come to mind in this area would be the ability to teach more and more technologies and languages. There isn't really such a thing as a "senior teacher" unless you suddenly train the trainers.

I think most of us who have been in this field for a while provide training on an informal or formal basis but only ever as a sideline.

Timo Geusch
+1  A: 

I used to do corporate training (MageLang Institute, which turned into jguru.com, then Tier). When I started, Java was in its infancy, and I was still coming up to speed on the language.

The trick is to know when to say "I don't know", then find out the answer and tell the students.

Students really respect this. You're not trying to BS your way through an answer, they get the answer they wanted and you learn from it as well.

On top of this, play with the language. Try new techniques and technologies that you hear about, even if you don't have to teach them.

When students ask questions, try to address them all, even if they don't relate directly to the content at hand (you may need to take some offline). Make sure you really consider their point of view; you may find your own opinions changing over time because of it.

Whatever you do, don't assume that "the answer" will always be "the answer". You may have learned something wrong, the materials the company gave you might have misinformation, and over time what was once a best practice can often become an AntiPattern.

Make sure that you spend your time learning, not just teaching, and try to stretch a little beyond the scope of the class each time you teach it. When you've learned something that adds value, or can help prevent a gotcha, or demonstrates why a certain way of doing something is a good way, make sure you show it.

One of the things that really worked for me is writing articles. I wrote several articles at my website (http://javadude.com) and participated in many newsgroups; I was the VisualAge for Java guy ;). You'll get lots of feedback on articles and posts - absorb it and learn from it, and improve the articles. [I've been a little lax on new articles, but I've got a few new ones in the pipe].

As for career path, it really depends on how well you do all of the above activities. If you get your name out there (many employers will google you) and demonstrate the knowledge you've learned, you will be incredibly marketable.

One more thing: when teaching or interviewing, think of it as "talking about something you know" rather than teaching or interviewing. It's subtle, but it makes either process much easier and more effective.

I currently teach (in addition to my day job) a design patterns class for the Johns Hopkins part-time Masters degree program. I always tell the students "everything you hear from me is my opinion; it's perfectly ok for you to have different opinions, and I'd like to hear them. Question my opinion if you don't agree! I love an active discussion because it makes sure I'm always thinking about why I think the way I do, and sometimes I change my mind because of it."

When I teach, I don't usually use slides (I might have an outline available to make sure I remember which topics to hit). I whiteboard the lecture and sit down in front of eclipse and type examples on the fly. (Note: Do not do this unless you are very confident in your coding!) I find it really raises my credibility with the students, and it can also demonstrate some of the benefits of pair programming - if I make a typo, someone in the room usually catches it before I try to run the program.

At Hopkins I record the lecture using Camtasia and post it for the students. (I use a graphics tablet for the whiteboarding so the entire lecture is captured). The students love it. I don't know if your company would go for such an idea, as they can easily be posted online, or a company could use it to train a few students and have everyone else watch the video...

Hope there's something in there that might help! Best of luck in your teaching! -- Scott

Scott Stanchfield