We have 2 new GIS programmer/analyst in our department (new to programming and ArcObjects) and I don't feel I'm qualified enough or have the time to teach them. So I'm looking for entry level books/tutorials for them to use as reference.
The only books I can find for developing Extensions for ArcMap are written for VBA.
Besides the ESRI course books you get from training in Redlands, does anybody know of good sources for learning to code against ArcObjects in .Net?
Thanks
Trying to teach programmers both ArcObjects and general software development is a really bad idea. I am struggling with the exact same problem right now. You run the risk of getting two developers who program neither ArcObjects nor C# very well.
Teach them to be good developers first. Do this by having them work on non-ArcObjects code (whether that means high-level ArcGIS ADF or complete non-GIS apps is up to you). Make sure they understand the basics of the application context (web, desktop, middle, etc). That will ease the transition to ArcObjects.
Once they have gotten the grasp of software development fundamentals (in particular, inheritance and OOP), introduce them to ArcObjects. The VBA reference is adequate, but hard to abstract to C# and to the modern tools. A bright developer can do it, but your average one will probably learn a lot of bad habits.
Your best bet is to bite the bullet and send them to the developer workshops. Sometimes, ESRI offers classes at a regional office that might be more local to you. Alternatively, send them to the Developer Summit or User Conference in Spring and Summer respectively. The technical workshops are a bit advanced for total beginners. That said, a lot can be learned from the worskhops if the developers have a very basic understanding of ArcMap or ArcObjects.
Also, they need to learn how to use ArcMap. The single most important useful thing they can do to learn ArcObjects is to learn ArcMap. Understanding how it works in the desktop product can frequently reveal how to use the API. An easy example is projecting data. In ArcMap, you must use a tool to explicitly project data. Simply "setting" the projection doesn't work. This translates directly into the API where you must call a "project" method or use the project GPTool.
I agree with the general sentiments everyone is expressing here (start with programming, start small, especially learn by example/doing).
It is vastly easier to get developers to learn ArcObjects than to get GIS analysts to learn programming. Your task (to do both) is pretty difficult!
Still, if you have to start somewhere, I would first train them in C# or VB .NET basics (via a good web-based tutorial or paid course), and then following that up with ESRI .NET-specific training. As I said in a comment above, I wasn't impressed by the ESRI training courses. I have a software development background and I was able to learn the ArcObjects API in a couple of months - compared to two months of hands-on knowledge, the training course was really basic on the ArcObjects material. Still, it may work for apprentices, and you may luck out with your hires.
I also want to add that you definitely want to put the emphasis on software training first, and consider the ArcObjects API incidental. If this ArcMap extension is a product you intend to sell to people and have as customers, realize supporting, enhancing, and maintaining a bug-riddled product is an expensive operation. So, any dollar spent on software training will pay for itself in the long-term.
I would even tell you to consider hiring a software developer on a contract basis to serve as a guide and mentor for say, six months.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With