I am a GIS Analyst at work that dabbles in python scripting in ArcGIS and the Google Maps JavaScript API V3.

My professional goal is to either be in web mapping development or desktop/server GIS application development.

I have seem to hit a plateau and I am not sure how to progress with my learnings or professionally to reach my goal.

I ask those of you out there that made the jump from technician/analyst how did you do it?

How can I land a job in web mapping/application development with little to no experience.

locked by PolyGeo Apr 8 at 10:45

This question's answers are a collaborative effort: if you see something that can be improved, just edit the answer to improve it! No additional answers can be added here

Read more about locked posts here.


This question has been converted to Community Wiki and wiki locked because it is an example of a question that seeks a list of answers and appears to be popular enough to protect it from closure. It should be treated as a special case and should not be viewed as the type of question that is encouraged on this, or any Stack Exchange site, but if you wish to contribute more content to it then feel free to do so by editing this answer.

  1. Pick a programming language (or maybe 2) and write a lot of code. I would recommend Python and JavaScript given your current skills
  2. Stop using the ESRI examples to learn how to program Python and look at pure python for a while. Do some spatial operations using PostGIS/SpatiaLite and Shapely
  3. Start thinking of yourself as a programmer who does spatial work and not a GIS analyst who does some programming
  4. Bite the bullet and write code for things that might be quicker through the GUI - without writing code you will never get better
  5. Follow and start to work on an open source project
  6. Volunteer to write code for somebody - without a deadline and a concrete project it is hard to get going
  7. Maybe take some programming classes - not a complete requirement but it might help
  8. Read programming blogs and the normal stackoverflow to learn and see how programmers think
  9. Get the book "Coders at work" and "Pragmatic Programmer, from apprentice to Craftsman" [That title is pretty close to the actual title]
  10. Write and read a lot of code
  11. Remember that it takes about 10,000 hours to become and expert at something - so start writing code and reading code
  12. Be prepared to suck for a while - it is part of moving up the learning curve
  13. Stop using desktop GUIs - Especially for some of your more basic GIS tasks like intersections and such

The other answers here offer some great insight and ideas for learning to develop. I’d like to add an additional piece of advice about actually “making the jump.” At my current job I was originally hired as a GIS tech mostly doing basic drafting, data entry, and routine analysis. Much of the work was tedious and repetitive and the more I work I did, the more areas I noticed could use some improvement. So over time, I started writing code here and there to help speed things up or automate them. I started sharing these tools with other employees and asking what else they thought might be useful. It wasn’t long until my supervisors noticed and started shifting my responsibilities toward application development. Ultimately my position was reclassified and now my primary responsibilities are creating desktop and web applications for the department.

In your position, my advice would be to start creating scripts and tools and share them with others around you. Use the information others have given here to broaden your development skills so that you can offer increasingly more powerful solutions to your coworkers. Over time, your services as a developer will become more in demand as they have a positive influence on productivity of your workplace. And while this may not result in a change at your current job, you’ll still be getting solid experience that can translate into another job down the road - one that is perhaps more developer oriented.


I have to admit, in terms of web mapping apps, its a lot more desirable to hire someone who has a solid background in web development, and teach them the basics of GIS, than it is to hire a expert in GIS and try to train them in web development.

HOWEVER, this would be my check list on how to make the move:

  • Keen to learn / have a passion for GIS and can understand that it is moving away from traditional hard published formats and more to things like web mapping/augmented reality/etc, then that is all you need. That and some time...

  • Advance your Google Maps development and become certified in it. Free and a big plus point for your CV. Can also do the same with Bing SDK (costs some money though)

  • Take a look at the Esri Web Certification - Get this on your CV and you will be quite desriable.

  • Understand the basics, partic CSS/Javascript/HTML.

  • Expose urself to a little bit of everything. Have a dabble in OpenLayers, Esri's Flex/Silverlight/Javascripts APIs. Try out some of the new HTML5 stuff.

  • Try all the Esri samples, break them apart, get them to work with your services, watch tutorials, suck up as much info as u can.

Then once you feel like you know that you could take on a role as a web mapping developer, put together an online portfolio showcasing some of your work. Create loads of dummy web apps. This would certainly attract me into looking at employing you.


As you have found scripting is a good way to get interested into programming. However, if you want to get into desktop/server development with ArcGIS you're going to need to learn some new programming languages.

In ArcGIS the two main languages used are VB.NET and C#.NET. Get a copy of Visual Studio and try and create an application.

If you have ArcGIS 10, Add-In's are a good way to learn how to extend ArcGIS with ArcObjects.

There are plenty of resources to get started, e.g: http://www.youtube.com/watch?v=qbvvFtRQWLY

Once you get a handle on desktop development you can use these same languages with ArcGIS Server.

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