Last year I was able to witness how my friend "Filiblu" had to put aside his Visual Basic for Applications (VBA) programming with which he felt quite comfortable, and roll up his sleeves learning Python from scratch, to develop an adaptation of the plugin «Municipal SIT» on QGIS. It is an application that is becoming clear, and of which I was hardly a functional designer because I was not there until now. After conversations held at that time with Fili and recently with Nan from Peru, who has been deoxidizing for some months with a Python course, we considered this post, thinking about how important Python has become as a language in this world of Systems of Geographic Information.
The subject itself could seem irrelevant, especially for those who have been 'rubbing shoulders' with this language for a long time. Reviewing the Geofumadas topics, only about 16 articles refer to Python, and almost as a complement to various discussions. But as we have said before, the geomatics of these times must master application development, not necessarily because they will dedicate themselves to programming, but because it is urgent that they be able to understand the scope and know how to conduct or supervise computer developments in geospatial matters.
Certainly the language created by Guido van Rossum Has been positioning itself in increasingly preponderant segments. Reviewing Stephen Cass's article in IEEE Spectrum We find that Python currently occupies the first place in the ranking, when top programming languages are spoken, although already Forbes he had anticipated something similar. Of course, now, in its version 3, it is presented already consolidated in relation to its distant public presentation in 1991. And although I feel that, for the sake of objectivity, I should not elaborate on the benefits of Python compared to other languages, I cannot leave to limit the preference that I have acquired for Python, both for its multi - purpose feature, its flexibility and the experience of seeing a programmer adapt very easily to this language, preferring now to make applications on Python despite loving its total mastery of VBA.
I loved the guide created by Aimee, to Learn Python in the context of ethical hacking.
When we talked about this with Nan, reviewing the GIS forums, we found that programmers wondered about the topic. If we go to Strings in gis.stackexchange We find that, unfortunately, many of the indicated links are inactive; Which, however, does not remove the starting point in our reflection. The question developed there was:
"In your opinion, what is the best book / site for learning Python if you have GIS work in mind?
By 'BEST', Was meant:
- Not very long (book)
- Easy to understand (book / site)
- Good practical examples (book / site) "
I would like to start the discussion by separating 'sites' from 'books'. After my almost Freudian conversation with Nan, we have come to think that it would be more orienting. So we start with the 'sites':
1. Everything depends on the 'level'
My first recommendation is a course of Python based on Udemy projects, not only because of its size, but also because of its price and the fact that once the course is taken, there is a lifetime of access to the content.
We understand that being a beginner is not the same as being an 'expert'. If you have just made contact, nothing better than to focus on the language and then on the specialty. Therefore, when we find three responses (totaling 9 votes) pointing to Codecademy I think of the 'newbies', since this site allows a simple way to introduce us to the Python world or any language we want to learn.
Second, already at an intermediate level, it is Coursera. This MOOC platform offers courses covering different areas. In particular we refer to the cycle of courses (5 in total)Python for Everybody'By the nice Charles Severance. Whoever took the sequence with 'Dr. Chuck ', will recognize how he guides us very skillfully as he progresses on the difficulty level course by course.
I also give my credit to a couple of Python courses in Guru99, especially one that was worked by a Google veteran.
Another intermediate level course, whose book has the same name as the site is: Learn Python The Hard Way. 52 exercises covering the different topics. Zed Shaw has his fans without a doubt. 44 votes for the book!
Of course we can not miss those who stick to the 'bible' of language. This response with 10 votes shows us that we always check the site official It is still a good alternative for consultation.
2. Books for basic training
The offer here is also scattered. Each one ends up getting better with a particular book. Without forgetting the very learned 'Python The Hard Way' we find one of similar acceptance:How to Think Like a Computer Scientist'(Free download)
Less voted we find 'Dive into Python'(10 votes and also free download) and, finally with 4 votes, Hans Petter Langtangen's book,' A Primer on Scientific Programming with Python ', which can be found on Amazon.
3. SIG and Python. The specialization
The expected moment arrived. And to tell the truth, the information provided by the GIS forum leaves us orphaned due to its inactive links. Not negligible, what it offers GisGeography as free alternatives. Although in my opinion, in this subject it is convenient to invest in a good course to start. Then free solutions or books will give us more solidity.
In our Hispanic context, and specifically about GIS applications on Python, I would recommend almost with my eyes closed to three friendly sites in our geofumada blógsfera:
MappingGIS: ArcPy - Python for ArcGIS online course
CoursesGIS.com, from TYCGIS: Python Online Course in ArGIS and Python Online Course in QGIS
Imasgal: PyGIS - Python for QGIS
In case of courses in English language, for the initial level we advise the following sites:
- Programming Foundation with Python (in Udacity) - Oops, this is general, but we added it as an extra. To elbow in Python learning actively and for free. Visit.
- GEO485 GIS Programming and Automation (Penn State Open CourseWare) - Learn Python and how to automate GIS tasks in Esri ArcGIS desktop. Visit. (3 votes in our old forum).
Also basic but with much more information:
- Python Geo-Spatial Development. Old but interesting, not in vain gets 23 rating votes.
- El GIS programming Fundamentals (GIS540) from NC State University gets 4 votes. It seems, indeed with more information than that of Penn State.
- A portal with lots of information. GIS LOUNGE Provides a wide range of articles, news, courses and other information. Your 44 votes support user preferences.
In my experience, online courses are orientative, in which you learn to lose your fear, do guided exercises, interact with classmates and teachers; But at the end of the course, if you want to take the subject seriously and take it to a dedicated level, you should buy a good book. In this regard, we are provided with a list to review calmly:
With 13 votes, Python Geospatial Development appears to start building applications from scratch using Open Source GIS. A good start
- Python Scripting for ArcGIS (Esri) - To create custom geoprocessing tools and learn how to write python code in ArcGIS. It can be downloaded and exercises through Esri. It appears in the Penn State course bibliography.
Still interested in learning ArcPy? Here one list Resources to investigate.
And finally they show us a small list of books by Packthub, which I find interesting:
- Learning Geospatial Analysis with Python
- Python Geospatial Development - Second Edition
- Python Geospatial Analysis Essentials
- Python Geospatial Development Essentials
- ArcPy and ArcGIS - Geospatial Analysis with Python
- QGIS Python Programming Cookbook
- Programming ArcGIS with Python Cookbook - Second Edition
In conclusion, although some master's degrees on geospatial subjects continue to teach Visual Basic as a generic language for non-computer scientists, the trend should really be Python. What remains to be done, if this has sparked interest is to start reviewing, reviewing, and reviewing. We are aware that this is only a first approach to the subject. Now, let's get to work!