Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

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#.

share|improve this question

closed as too broad by Jason Scheirer, PolyGeo, Simbamangu, Fezter, BradHards Apr 3 at 6:25

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

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. –  Jason Scheirer Apr 3 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" –  Alex Tereshenkov Apr 3 at 5:47
    
Some of those previous posts are over 4 years old, I wanted updated feedback. –  Rusty Shackleford Apr 3 at 11:11

2 Answers 2

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?
share|improve this answer

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.

share|improve this answer

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