pragmatic reasons every Domino developer should learn Java
Category java
That's it. That's the most pragmatic reason all Domino developers should learn Java.
This will no doubt sound strange coming from me, but just for a moment, forget about XPages. Yes, of course there are a myriad of geeky benefits you'll get by using less SSJS and more Java in your XPage applications (assuming, of course, that you are now developing XPage applications, given that the last four years have clearly demonstrated that XPages are the unambiguous future of Domino development): better performance, easier control over memory management, compile-time data safety checking, one-file libraries that add powerful capabilities to your app... and on and on and on. Forget all that.
During the first half of my career, I was asked more often than I would have preferred, by hiring managers and current bosses alike, why I don't have a college degree. My response was always some variation -- dependent entirely upon how much diplomacy I could muster in the moment -- upon the following:
While this response was not what they wanted to hear, I knew that it was accurate. I had truth on my side when arguing that my experience and instinct were more valuable to them than any boilerplate bachelor's degree could ever be.
As a Domino developer living in a post-8.5.0 world, if you are asked the same question, do not use this argument. It is no longer true.
When I'm teaching XPage development techniques to clients, I've found that those with a solid Java background pick it up in a heartbeat, even if they have no prior Domino experience, whereas it seems the longer someone's been developing Notes / Domino apps using only Formula and LotusScript, the harder it is for them to wrap their head around XPages. I've heard from several colleagues that they've had a similar experience. It's likely that this has more to do with having a foundation of OO experience than specifically having Java experience, but since Java is only OO, if (you grok Java) {you grok OO}; // oops, mixing code and prose again...
The reality is that you can hire a college grad who has three years of Java classes under his belt, most likely including some JSF, spend a few days explaining the structure of NSF, and a couple more showing how much of JSF XPages just does for us without us having to write all the code ourselves, and by the end of the week, he'll have a comfort level with XPage development that it took me 6 months to obtain. And he'll be cheaper than me.
By now, that doesn't make me nervous, because I have four years of XPage experience, so it's come full circle to where having a really deep understanding of NSF and other aspects of Domino architecture are an asset, not a liability. But if I'd realized in 2009 how expendable I'd become overnight, I would have panicked.
The good news is, even four years later, it doesn't seem like many Domino shops have realized that 10+ years of Notes client development experience no longer outweighs a degree-equivalent comfort level with Java. So you've still got some time to stave off the whippersnappers... all the same, I'd recommend that you start reading.
- Colleges teach Java.
That's it. That's the most pragmatic reason all Domino developers should learn Java.
This will no doubt sound strange coming from me, but just for a moment, forget about XPages. Yes, of course there are a myriad of geeky benefits you'll get by using less SSJS and more Java in your XPage applications (assuming, of course, that you are now developing XPage applications, given that the last four years have clearly demonstrated that XPages are the unambiguous future of Domino development): better performance, easier control over memory management, compile-time data safety checking, one-file libraries that add powerful capabilities to your app... and on and on and on. Forget all that.
During the first half of my career, I was asked more often than I would have preferred, by hiring managers and current bosses alike, why I don't have a college degree. My response was always some variation -- dependent entirely upon how much diplomacy I could muster in the moment -- upon the following:
Your question is irrelevant. No college teaches what you need me to know.
While this response was not what they wanted to hear, I knew that it was accurate. I had truth on my side when arguing that my experience and instinct were more valuable to them than any boilerplate bachelor's degree could ever be.
As a Domino developer living in a post-8.5.0 world, if you are asked the same question, do not use this argument. It is no longer true.
When I'm teaching XPage development techniques to clients, I've found that those with a solid Java background pick it up in a heartbeat, even if they have no prior Domino experience, whereas it seems the longer someone's been developing Notes / Domino apps using only Formula and LotusScript, the harder it is for them to wrap their head around XPages. I've heard from several colleagues that they've had a similar experience. It's likely that this has more to do with having a foundation of OO experience than specifically having Java experience, but since Java is only OO, if (you grok Java) {you grok OO}; // oops, mixing code and prose again...
The reality is that you can hire a college grad who has three years of Java classes under his belt, most likely including some JSF, spend a few days explaining the structure of NSF, and a couple more showing how much of JSF XPages just does for us without us having to write all the code ourselves, and by the end of the week, he'll have a comfort level with XPage development that it took me 6 months to obtain. And he'll be cheaper than me.
By now, that doesn't make me nervous, because I have four years of XPage experience, so it's come full circle to where having a really deep understanding of NSF and other aspects of Domino architecture are an asset, not a liability. But if I'd realized in 2009 how expendable I'd become overnight, I would have panicked.
The good news is, even four years later, it doesn't seem like many Domino shops have realized that 10+ years of Notes client development experience no longer outweighs a degree-equivalent comfort level with Java. So you've still got some time to stave off the whippersnappers... all the same, I'd recommend that you start reading.

Comments
Posted by Jesse Gallagher At 07:03:28 AM On 10/10/2012 | - Website - |
I think setting yourself a goal, for example to take a Java certification, is a good idea. The exam is reasonably tough for an IT certification, helps you focus, and there are lots of materials out there to structure and support your study. Also you will be learning Java outside the context of Domino (good if you don't want to be labelled a Notes guy for the whole of your career).
Bruce Elgort shared this link ("How to become skilled at learning programming languages")which I think has good advice: { Link }
Posted by Jason Hook At 05:29:28 AM On 10/10/2012 | - Website - |
{ Link }
Posted by Jason At 05:54:07 AM On 10/11/2012 | - Website - |
For taking inroads in JEE, you might really try Netbeans. Those Czechs do have excelent tutorials. Netbeans is very, very well integrated with glassfish and Eclipse can be a pain in the ass. I allways have 3 or 4 Eclipse installations for not getting into weird plug-in problems.
I am working in nearly pure Java for a long time now. Sometimes I think it was socially nicer in the old domino days, though not sure if that might be kind of a nostalgia of me getting older.
Posted by axel At 01:45:45 PM On 10/10/2012 | - Website - |
Posted by Toby Samples At 09:21:55 PM On 10/10/2012 | - Website - |
Posted by Devin Olson At 10:53:16 AM On 10/11/2012 | - Website - |
Posted by weihang At 05:51:01 AM On 10/11/2012 | - Website - |
Requested also on behalf of my collegues
Posted by Patrick Kwinten At 09:47:25 AM On 10/10/2012 | - Website - |
Posted by Paul T. Calhoun At 10:13:54 AM On 10/10/2012 | - Website - |
Posted by Dmytro At 04:54:29 AM On 10/10/2012 | - Website - |
Posted by Richard Schwartz At 07:56:51 PM On 10/12/2012 | - Website - |