Currently, I have a strong knowledge ArcGIS/Python/JavaScript and basic RDBMS. I'm currently taking some database theory/sql classes and trying to figure out what course I should take next, I'm considering Java.

I've been told ArcObjects and .NET is a thing of the past and to focus on Java, is this true? I see most GIS/Developer job postings requesting proficiency in ArcObjects .NET C#.

  • 1
    I'm a developer who kind of learned some spatial skills. I'm fairly hireable as such, so from my experience I'd advocate being a very good software developer with some spatial skills and/or a good developer with the ability to learn spatial skills. Apr 3 '14 at 3:41
  • There were a dozen of similar questions: search on Google "site:gis.stackexchange.com gis skills" and "site:gis.stackexchange.com programming skills" Apr 3 '14 at 5:47
  • Some of those previous posts are over 4 years old, I wanted updated feedback. Apr 3 '14 at 11:11
  • Learn how to use one language/platform fully and it will be easy to learn other languages/platforms later on. There will always be a debate which language is the best or the is most common. If you look at the ESRI Products they are supporting multiple languages with the same functionality, so you don't have to choose. Nov 30 '14 at 11:39

I think that this is going to be a largely opinion-based question so I'll just throw out some of mine:

  • It's best to be multidisciplinary. Have some working knowledge of as many languages as you reasonably can. It certainly can't hurt to be proficient with both C# and Java. It's also very handy to be able to work with more than one operating system, e.g. Windows and Linux.
  • Use the right tool for the job, not just the one you're most comfortable with.
  • Do you want to work with open source software? If so Java is probably a better choice than .NET, although there are numerous exceptions.
  • Do you want to do mobile/desktop/web development? Each has wildly different skillsets, even the different platforms within them (e.g. Android vs. iOS vs. Windows Phone).
  • If the jobs you want to apply for require ArcObjects and C# then you'll want to learn those. But if you can avoid ever stepping foot into the wacky world of COM and ArcObjects, and still get the job you want, I would just avoid it entirely. It's kind of gross.
  • Check out some of the related questions on the sidebar to the right, e.g. How do I develop my GIS programming skills?

You have written:

I've been told ArcObjects and .NET is a thing of the past and to focus on Java, is this true?

.NET is definitely not a thing of the past. Microsoft continues developing this platform and this is by far one of the most popular one to develop Windows based applications and services. Learning .NET plus C# is definitely good to be attractive as a GIS Developer but also as a Developer per se. You can do heavy customization of most large commercial GIS desktop and server products (MapInfo, Autodesk, Esri). You will also be able to write own GIS applications and services as well as administer GIS services and automate a lot of work.

Java is very popular indeed because of no license hustle (it is free) and because it is cross-platform and is installed on most devices. Mastering Java imho takes longer time comparing to .NET/C# but I am not a developer originally and was exposed more to Microsoft stack. Java skills won't hurt you, but for most job ads I've seen it does tend to be more .NET rather than Java. However, as blah238 mentioned, for the open source software Java would be slightly more popular.

Since you don't have worked with either .NET or Java, I'd recommend sticking to .NET rather than Java if you are going to spend most of your time working with commercial GIS software rather than open source GIS and if you aren't going to write own GIS systems for mobile devices or Linux.

What else are good gis/dev skillsets to have?

I usually refer to the Michalis Avraam blog post whenever people ask which way to go.

Since you already know Python, keep learning it. Python is extremely popular both in commercial software (it's Esri's primary scripting tool for the Desktop platform and new ArcGIS Pro will support Python 3.4 plus strong geoprocessing platform; customization of largest open source GIS such as QGIS is possible with Python, too; GIS services administration and automation etc.). So I would spend most of the time with Python because it is so much worth it. A quick search on Amazon would show how popular Python is in geospatial community; it is also widely used in many other industries and academia and I believe this will remain so for a good time.

Not the answer you're looking for? Browse other questions tagged or ask your own question.