Tuesday, August 26, 2008

And what about Project Management?

Related to my previous post in which I expressed my desire to learn more "theory" about Java, I know that not only the path of the good developer is in front of me, but also the path of a good manager as well. Two sides of the same coin? The need to learn about resources and human skills ?
I know I have to do it, I think it's important for my career to learn it and if possible to be one. Some jobs have a mixed role between tech leaders, project leaders, project managers and such. Others don't.
In contrast to Java, this will be almost theory with no practice (Hello? Does anyone want to hire me as a manager? I know I can do it). Well, I do have certain background when I was leader at some projects for college, but that's the tip of the iceberg.

Some of the texts I'm going to read are:

  • Project Management Body of Knowledge
  • Behind Closed Doors - Secrets of Great Management
  • Some book about Agile. Not sure which one yet.
Yay! I think the book I bought about artificial intelligence featuring agents, backtracking, neural networks, markov chains, bayesian network and such won't be opened for a while. And this reminds me that I should keep more handy the book I used at college about algorithms and graph theory. That stuff is always useful (is it?)

Now for a poll! What's cooler: project management or artificial intelligence?

Java The Master

So, lately my main programming skills have been focused on the Java language. I programmed Java in my previous jobs and in my current one, and I think I'm able to become a "Java Senior". Nevertheless, I'm still being seen as a SemiSenior by companies, therefore I have a new quest: to master Java. This all started when I entered at Java Black Belt and I realised that there is so much I have to learn about.
How? not sure yet. As I usually worked in core technologies (usually for a backend server) now I'm going to learn what I should know:

  • A better understanding of the Spring Framework. The beans, the IOC, its MVC, if possible something with its aspects (comparison with AspectJ?)
  • A better understanding of Hibernate, ORM and JPA. Some people say you shouldn't write SQL anymore. Others say Hibernate won't fit complex requirements (or performance). Let's see and try.
  • The Struts Framework (second version). How does Struts makes my life easier? Let's build some nice server! Comparison with Spring MVC?
  • EJB 3: Is EJB obsolete? I don't know but it won't hurt to know something about it.
  • Servlets. Tomcat won't be a mistery anymore. Let's learn about web.xml! And the most interesting part: let's see how the servlets connects to http from one side and to an mvc or application server from the other side.
  • Ant! I used Ant several times, but now I have a 700-pages book about it, so something tells me there's a lot about Ant that I don't know (by the way, I need a Maven book!)
  • JTA: Do you know I love transactions? If I have to choose to work in an open source project, that would be the commons-transaction from Jakarta. Someone said XA?
  • JMM: A few days ago I read the JSR about Java Memory Model. Nice! Some crazy stuff may result if you don't properly synchronize your fields that are read by several threads. But really! Everyone in Java should read it! Search for JSR 133 and you'll find it.
  • SCJP: Aha! The top of the cream! I'm not sure if I'll take it but I should learn enough to be confident that I would pass it.
Of course, The most difficult task is to find the time to do all this stuff.