Skip to content

Ναι, πρέπει να μάθετε να γράφετε κώδικα

07/01/2015

Ο περίεργος τίτλος ήταν η ομιλία μου στο 8ο Πανελλήνιο Συνέδριο της HellasGI. Ήταν μια παρουσίαση που ακούστηκε αρκετά και πήρα πολλά και καλά σχόλια ακόμα και από συναδέλφους που δεν ήταν στην παρουσίαση  αλλά το έμαθαν από τρίτους.

Για όσους λοιπόν δεν ήταν εκεί, αλλά και επειδή είναι ένα θέμα το οποίο με ενδιαφέρει ιδιαίτερα, το παρόν άρθρο είναι μια περίληψη αυτής της ομιλίας.

Για όσους βαριούνται δε θέλουν να διαβάσουν όλο το άρθρο, η παρουσίαση είναι και στο slideshare.

Περι τίνος πρόκειται;

perplexed2Η βασική μου πρόταση συνοψίζεται στο εξής:-

Δε μπορείτε να αποκαλείτε τον εαυτό σας Επαγγελματία των GIS (ή «GIS-α», GIS Expert, Analyst, κλπ) αν δεν έχετε κάποιες, έστω και βασικές, γνώσεις προγραμματισμού.

Όσο καλή χρήση του ArcGIS και αν ξέρετε δεν είναι αρκετό.  Όταν μάλιστα εκτιμάται ότι το ποσοστό των λειτουργιών που είναι διαθέσιμες μέσω του user interface είναι περίπου γύρω στο 10 με 15% της συνολικής λειτουργικότητας. Και αυτός φυσικά είναι και ο λόγος που όλα τα GIS διαθέτουν API. Μια σειρά δηλαδή προγραμματιστικών εργαλείων που επιτρέπουν την παραμετροποίηση τους.

Δεν είναι λοιπόν  αρκετό να ξέρετε μόνο να πατάτε τα σωστά κουμπιά με τη σωστή σειρά.

Και γιατί παρακαλώ;

tasoula_pouteΕδώ θα πρέπει να σας εκμυστηρευτώ κάτι. Ο αρχικός λόγος που άρχισα να σκέφτομαι αυτό το θέμα ήταν καθαρά εγωιστικός. Συχνά, έψαχνα να βρω συνεργάτες για να με βοηθήσουν σε διάφορα έργα GIS που είχε αναλάβει η εταιρεία μου. Όμως η συντριπτική πλειοψηφία των βιογραφικών που έβλεπα και βλέπω, ως βασικές δεξιότητες παρουσιάζουν τις:

(καλή) χρήση ArcGIS και,

ψηφιοποίηση με χρήση ArcGIS.

ΚΑΜΜΙΑ εμπειρία σε προγραμματισμό ΚΑΝΕΝΟΣ είδους. Όμως τα διάφορα έργα είχαν να κάνουν με ανάπτυξη εφαρμογών- άρα και με ανάπτυξη κώδικα.

Και μετά διάβασα το άρθρο του Bill Dollins «Yes, you need to code» (ναι, «ξεπατίκωσα» το τίτλο από κει) όπου κατάλαβα ότι το πρόβλημα είναι «διεθνές» (ή τουλάχιστον και αμερικάνικο).

Από την άλλη πλευρά, στην αναζήτηση μου για συνεργάτες, συνειδητοποίησα ότι όσοι έχουν τόσο γνώσεις GIS όσο και προγραμματισμού δεν είναι εύκολα διαθέσιμοι- και είναι λίγοι. Οι περισσότεροι είτε δουλεύουν ήδη σε εταιρείες ως υπάλληλοι, είτε -αν είναι ελεύθεροι επαγγελματίες- δουλεύουν σε έργα ως εξωτερικοί συνεργάτες. Στην εποχή της κρίσης, μπορεί να μη γίνονται πλούσιοι, πάντως δε μένουν από δουλειά.

Η επανάσταση των GIS

kolokotronisΌμως δεν είναι μόνο αυτό. Τα GIS αλλάζουν και είναι πια μέρος της καθημερινότητας. Η «επανάσταση» μπορεί να ξεκίνησε με τα Google maps τα οποία έβαλαν διαδραστικούς ψηφιακούς χάρτες μπροστά στις οθόνες των απλών χρηστών, αλλά είναι πια και στα smartphones και στα tablets. Σκεφτείτε όλα τα apps που έχουν να κάνουν με τη γεωγραφική θέση. Από τις κλασικές (πια) εφαρμογές δρομολόγησης, άλλα και το facebook, το twitter, το foursquare, ή το «δικό μας» Taxibeat όπου καλείς ταξί και το βλέπεις στο χάρτη στο κινητό σου μέχρι να έρθει στη πόρτα σου!

Μια αντίστοιχη «επανάσταση» συμβαίνει και σε εταιρικό επίπεδο. Οι επιχειρήσεις έχουν πια συνειδητοποιήσει ότι μεγάλος όγκος των δεδομένων του εμπεριέχουν γεωγραφική θέση τα οποία  δημιουργούν υπεραξία, καλύπτουν επιχειρησιακές ανάγκες και προσθέτουν στη επιχειρηματική ευφυΐα. Αποτέλεσμα (ή αιτία;) αυτών είναι όλες οι cloud πλατφόρμες (ArcGIS onlineMangoMap, GISCloud, Mapbox) όπου οι χρήστες μπορούν να ανεβάσουν τα δεδομένα τους και με απλό τρόπο να τα αναλύσουν χωρικά.

Και η σχέση με το γράψιμο κώδικα είναι….ποια;;;

Είναι ότι το κοινό σημείο των δύο παραπάνω είναι οι χρήστες. Οι χρήστες όλων αυτών των εφαρμογών (που κατά βάση είναι «μικρά» GIS) που δεν είναι εξειδικευμένοι. Ο χρήστης του smartphone που ανεβάζει τη selfie στο facebook και έχει ενεργοποιήσει τα location services, δε ξέρει και ποσώς τον ενδιαφέρει (σωστά) αν το προβολικό σύστημα είναι WGS84 ή ΕΓΣΑ!

Αντίστοιχα, ο εταιρικός χρήστης ο οποίος ανεβάζει τις διευθύνσεις των πελατών του ή καταστημάτων του στο ArcGIS online για να μπορεί να έχει μια εποπτική εικόνα της επιχείρησης του δεν έχει ιδέα για το πως λειτουργεί το address geocoding.

Ακριβώς λοιπόν λόγω αυτής της διάχυσης των GIS είναι οι ειδικοί των GIS (εμείς) οι οποίοι θα πρέπει να μπορούν να προσφέρουν υπηρεσίες και παραμετροποίηση για αυτούς τους χρήστες σε αυτή τη συνεχώς εξελισσόμενη αγορά.

Και αυτό που είναι σημαντικό να τονίσω εδώ είναι ότι αυτό δε εφαρμόζεται στις περιπτώσεις όπου το GIS χρησιμοποιείται «περιφερειακά» αλλά – και πιθανόν περισσότερο- στις περιπτώσεις όπου οι εταιρείες είναι οι «κλασσικοί» χρήστες GIS π.χ. εταιρείες μελετών κτηματολογίου. Όπου υπάρχουν οι απλοί χρήστες που κάνουν για παράδειγμα ψηφιοποίηση και γεωαναφορές. Στις περισσότερες περιπτώσεις χρειάζεται κάποια αυτοματοποίηση των διαδικασιών αυτών.

Και αυτό σημαίνει παραμετροποίηση – και γράψιμο κάποιου κώδικα…

Ας πούμε ότι με έπεισες. Ποιες γλώσσες προγραμματισμού θα πρέπει να μάθω και γιατί;

Κατά τη γνώμη μου μόνο και με σειρά προτεραιότητας:

SQL

  • Γιατί μαθαίνοντας SQL θα μάθετε και βασικές αρχές σχεδίασης βάσεων δεδομένων που είναι το κύριο συστατικό μέρος ενός GIS
  • Γιατί ΟΛΕΣ οι Β.Δ. διαθέτουν χωρικές λειτουργίες (spatial databases) και ΌΛΑ τα GIS «μιλάνε» με τις χωρικές βάσεις
  • Γιατί χρησιμοποιείται από όλες τις βάσεις δεδομένων με τον ίδιο τρόπο (είναι πρότυπο)
  • Γιατί είναι σχετικά εύκολη
  • Γιατί τη χρησιμοποιείται ήδη και πιθανώς δε το ξέρετε (π.χ. κάθε φορά που επιλέγετε το «Select By Attributes» στο ArcMap)

Python

  • Γιατί είναι η default γλώσσα προγραμματισμού σε πολλά GIS (ArcGIS, QGIS)
  • Γιατί και αυτή είναι εύκολη για να ξεκινήσει κανείς
  • Γιατί στη πιο απλή της μορφή επιτρέπει την αυτοματοποίηση διαδικασιών. Αλλά μπορείς να γράψεις και ολόκληρες εφαρμογές
  • Γιατί υπάρχουν πολλές έτοιμες βιβλιοθήκες και εργαλεία (από το να διαβάσεις ένα shapefile, μέχρι να φτιάξεις ιστοσελίδες). Για παράδειγμα το ArcPy, η βιβλιοθήκη Python για το ArcGIS έχει μια πάρα πολύ καλή τεκμηρίωση με δεκάδες παραδείγματα.

Javascript

  • Γιατί μπορεί να είναι ελαφρώς πιο δύσκολη στο ξεκίνημα (χρειάζονται και βασικές γνώσεις HTML) ΑΛΛΑ είναι η default γλώσσα προγραμματισμού στο web και η τάση αυτή τη στιγμή είναι η ανάπτυξη διαδικτυακών και mobile εφαρμογών (που και εδώ χρησιμοποιείται η javascript)
  • Γιατί και εδώ υπάρχουν πολλές έτοιμες βιβλιοθήκες και παραδείγματα (ArcGIS API for Javascript, Leaflet, OpenLayers, Google Maps API)

Ως τελευταία σκέψη…

Μη ξεχνάτε ότι μαθαίνοντας προγραμματισμό αποκτάτε γνώσεις και ικανότητες που αναζητούνται ευρέως. Ξεχάστε τα GIS για μια στιγμή. Υπάρχει έλλειψη προγραμματιστών παγκοσμίως. Δεν είναι τυχαίο που εδώ και αρκετό καιρό έχει ξεκινήσει από την Αμερική μια παγκόσμια κίνηση με τίτλο «μία ώρα για κώδικα» (An hour of code). Προτρέπει τους πάντες είτε να εκπαιδευτούν για μία ώρα στον προγραμματισμό είτε, αν μπορούν, να γίνουν εκπαιδευτές για μία ώρα. Με τον Bill Gates (Microsoft) να σας μαθαίνει τα «if statements» και τον Mark Zuckerburg (Facebook) να μιλάει για τα Repeat Loops. Ή τον Barack Obama να προτρέπει τους Αμερικάνους να μάθουν προγραμματισμό ή να γράφει ο ίδιος κώδικα. Εν κατακλείδι λοιπόν…

keep_calm

 

Advertisements
2 Σχόλια leave one →
  1. 08/01/2015 15:55

    Thanks for the reference! I’m glad the post resonated with you and thank you for continuing to beat the drum. I really only have a perspective on the issue from my little corner of the US, but it’s useful to see the problem persists elsewhere.

Σχολιάστε

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s

Αρέσει σε %d bloggers: