Taking the Initiative to Learn Programming: But Which One? | Sep 13th 2007
I was discussing programming this evening with a former grad who works for ESRI and one of the professors here at Redlands, and it sounds like I may learn some VB in the program. Still, I think I need to grow my programming and scripting skills as a geographer/geographic information scientist/neogeographer.
I wanted to ask what should I try to tackle early before the end of 2007: C#, Java, .NET, Python, Ruby. . . And why it’s important for GIS or LBS?
I guess it depends what you are trying to do. For web development - if you don’t have a foundation in HTML and javascript - you need it for pretty much any web development you do - .NET, PHP, Python, Ruby etc. For that kind of thing I think Openlayers.org tool kit is a great starter since you can get a lot accomplished with an htm page and some javascript.
For my work I develop mostly web database apps for windows clients, windows servers and ms office integration so I usually use SQL, javascript, html, VB.NET, VB, and PHP.
I think the most important thing to grasp though is the distinction between learning to program and learning a programming language. Learning to program is mastering the best way to brainstorm, outline problems and solution approaches.
Programming language is a mechanism of expression. Some languages are better for expressing certain concepts than others and I often find myself programming in the language that best conveys my solutions.
I’ve seen too many beginners fall in the trap of confusing these two and what happens is their whole thought process is dictated by the language they program in. A very bad thing. If you can’t think clearly - it really doesn’t matter what you program in because it will be equally bad.
Comment by Regina — September 13, 2007 @ 5:49 pm
I’d suggest a ,NET language since it works well with the ESRI stack, there is lots of stuff online to help you out, and you can do windows, web and webservices with the same set of tools.
Cheers,
Dave
Comment by Dave — September 13, 2007 @ 5:52 pm
Python, Python, Python! You can do everything you want to do with this lang, on any platform, LBS or otherwise. What other language is equally usable on everything from smartphones to mainframes?
Comment by ortelius — September 13, 2007 @ 6:54 pm
Thanks for the advice. It’s all great stuff!
Comment by GeoMullah — September 13, 2007 @ 9:37 pm
Regina is right…learn to program, don’t just learn a language. And learning web application development is a good general skill that easily translates to lots of languages/frameworks.
I’d definitely start with something flexible- try to learn Python (over VB) in the ESRI suite as step one. From there it’s an easy transition to the language of happiness (Ruby).
Comment by matt m — September 14, 2007 @ 4:33 am