Tuesday, February 10, 2009

Application Developer for Lotus Notes and Domino – a newbie guide

I think many people get to Lotus Notes and Domino from “winding” career paths. It isn’t like most of us started out our careers saying, “Hey, I know! I want to be a Lotus Notes and Domino Application Developer!”. In fact, most people I speak to didn’t even set out to be any kind of application developer or system administrator. Many of us started out in one place, and through various circumstances found ourselved suddenly tasked developing in Lotus Notes or suddenly in charge of a Notes/Domino server.

That is essentially what happened to me. Long story short (if you want the longer version, check out my first entry), I was never officially trained. I don’t have a masters in computer science. I don’t have a bachelor’s in computer science. Heck, some days I can’t even spell computer science. Anyway.

I suddenly found myself faced with need to know how to develop applications in Lotus. I quickly realized there was no “Lotus Application Development for Dummies” guide. It seemed that there were very few resources available. AND many of those assumed a level of knowledge that I did not have.

Of course, how you learn a new skill depends greatly on understanding your own learning style.

Go to the Lotus website and spend an hour or two navigating your way through 1000 links to get to the Certification and Training page. Find a certification path that makes sense for you, i.e. if you want to be a developer, look for the developer certification. From there, you should be able to find resources such as online and in person classes that would prepare you for the certification tests. (I won’t provide a direct link since they always seem to change).

One such provider is TLCC. They provide various online classes for learning Lotus Notes and Domino. I highly recommend these classes. If working at your own pace works for you, then these are a great option. You actually download an .nsf file that has lots of working examples of the material. WARNING: if you are like me and don’t “pace” yourself well, these may not be for you as I find I never complete them.

In person classes, offered in various locations. These can be pricey, but well worth it. I have taken classes from Davalen and Workgroup Connections. Both were excellent. Davalen also offers a virtual classroom, which is a lot more convenient than buying a plane ticket and hotel room! The great thing about these classes is that you get the official IBM book. Step by step instructions and examples to learn the material. WARNING: if you find yourself annoyed and bored if you get something and others in your class do not, the in person class may not be for you. WARNING: if you find yourself falling asleep at your monitor when you “work from home”, the virtual class may not be for you.

You will also find some IBM documentation on their site that may or may not be useful. Honestly, if you are just starting out, some of their “documentation” may be a little too much to handle. Downloading Volume 2 of the Programmers Guide might just make your ears bleed.

Get the Lotus Notes and Domino 6 Programming Bible, even if you aren’t using R6, this book is still invaluable. Realize though, that if you are a true newbie, some of this book will make your head explode. Get it. Read what you can and don’t worry ‘cuz the rest will make sense later.

Get Code Complete. If you are like me, and don’t have a programming background this book will help you write good code. It doesn’t matter what language, Code Complete discusses and demonstrates good code structure. Just like the previous book I mentioned, get it, read it and don’t worry that it doesn’t all make sense right away.

Definitely definitely definitely check out www.planetlotus.org. It’s a giant list of all people who blog about Lotus. Scan through stuff, search, whatever, it’s a great place for resources.

Last, but certainly not least. The way I learned the MAJORITY of what I know. Jump in. Go to openNTF.org and download an application (highly rated or popular). Open it up in the client, understand what it does, then go open it up in Designer. Try to figure out the code that does what you experienced in the client.

ETA: A Planet Lotus blogger just asked a similar question and got a bunch of great responses, check them out here

No comments:

Post a Comment