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.

I would like to develop my GIS programming skills, where do I start? People say learn C++ or Python but where can I learn this in a geographic context? Tutorials or anything would be very helpful, as would any information on languages/programmes to use.

share|improve this question
2  
Do you have any programming knowledge yet? You should at least know the basics before you try yourself in the not so trivial field of GIS. –  underdark Aug 6 '10 at 19:37
    
Start with arcgis python... it's easy-to-use. Many samples are available. –  twisig Nov 5 '12 at 23:08

9 Answers 9

up vote 14 down vote accepted

There is one blog post from Michalis Avraam that explains essential skills to succeed in GIS career which I think is well written. You will probably find lot of good advices there.

share|improve this answer

There are very few colleges/universities which offer programming courses related to GIS. I would recommend the Elmhurst College GIS Certificate Program which has two (2) of these courses as part of their GIS Cert. Program, both programming related:

  1. ISG 100 GIS Programming with ArcObjects
  2. ISG 200 Implementing Geodatabases

    http://public.elmhurst.edu/adult/gis

The entire program is online and they have a dedicated GIS Server. They teach Python mainly.

share|improve this answer

Work your way through ArcMap learning the basics of spatial objects handling. When you are comfortable with an operation try to establish the process with ModelBuilder. Model builder is the equivalent of lego in the ESRI world. It makes it possible for you to generate python code. This code will be simplified but it will work.

WingIDE is a tool which makes it easy to handle python scripts, as well as providing you with a predictable environment to try out your scripts. Open the model builder script in the IDE of your choice and play around with it.

As programming languages goes Python is a low hanging fruit. It will take you from the simple level and up :-)

share|improve this answer

Don't start with C++ and GIS without learning software development first. It's just too much.

Python is a good place to start regardless of what GIS platform you go with later. There are a lot of books, websites and training materials available and a lot of colleges use python as an introduction before going on to the heavy duty programming languages, like c++ and java.

My favourite python resources -- outside of this site -- are Show Me Do, Think Python, Stack Overflow and the mailing lists of the software I use (mostly GDAL and ArcGIS).

share|improve this answer

The ESRI Virtual Campus offers a couple short introductory courses on using Python for scripting in ArcGIS. I think one of them is free. Taking one would be a great way to see if this is something you're ready to dive deeper into.

share|improve this answer

I like Chris Garrard's Python for Geoprocessing course materials. http://www.gis.usu.edu/~chrisg/python/2009/ Personally, I find programmatic manipulation of OGR/GDAL to be indispensable.

With respect to finding the best fit for you, consider the software or geostack you wish to be most expert in (like ArcGIS, QGIS, PostGIS-GeoServer-OpenLayers), and then choose programming language(s) that best supports your choice. That'll be discoverable by checking out the language of the associated API or other customization tutorials. A great deal of online programming learning resources exist, and a websearch of your preferred software package + language + "tutorial" will get you rolling.

I also believe in "learning by doing". For example, crank out a simple map with Javascript and Google Maps, and try to add geometry, styling, user interface, and analyses of interest. Work to see what's possible and what's not. As you build, you'll need more sophisticated tools for customization, and this will point to relevant plaftorms, languages, and libraries.

share|improve this answer

I was able to learn Python by sitting down with a copy of Learning Python by Lutz & Ascher (O'Reilly Press). My office uses ESRI products, so to get the connection with ArcGIS, I created several models using ESRI's Model Builder and exported them to Python. Then it was just a matter of looking at the exported python scripts, digging through the book and using ESRI's on-line help system for the geoprocessing topics to get a better idea on how python and ArcGIS work together.

share|improve this answer

The answer depends very much on the system you are using and what OS it runs on. I'm primarily programming Manifold on Windows or web-based apps with Manifold on the backend, so I can choose from any .NET language. C# is my personal choice because most examples and tutorials you will find on the web will be in C# (at least for .NET).

Since you are just starting out, Manifold may not be a bad choice. You can get it for under $300 and develop using the free 'Express' versions of Visual Studio.

If you can be a bit more specific we can probably help you more.

share|improve this answer

Programming in GIS is one of the skill sets listed in The Geospatial Technology Competency Model (GTCM), which has just come out and includes some additional skillsets that may be the ultimate reference source for this: http://www.careeronestop.org/competencymodel/blockModel.aspx?tier_id=4&block_id=708&GEO=Y

share|improve this answer
    
And it recommends GeoTools as a tool kit - not that we are feeling smug or anything :-) –  iant Aug 6 '10 at 22:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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