Γενικά

Το βασικό θέμα του παρόντος post είναι πως να ξεκινήσει κανείς να μαθαίνει Python (με οποιοδήποτε τρόπο). Τα παρακάτω προέκυψαν από συζητήσεις μελών μας στο LinkedIn, εσωτερικές συζητήσεις μέσα στην κοινότητα και συλλογή από online resources. Αφορμή υπήρξαν μια ερώτηση προερχόμενη εκτός της κοινότητας για εκμάθηση Python για συγκεκριμένο πακέτο Business Intelligence και ερώτηση μέλους ποιο είναι το καταλληλότερο σημείο εκκίνησης για εκμάθηση Python, πιθανώς ξεκινώντας από το μηδέν.

Disclaimer

Η κοινότητα μας δεν αποτελεί επίσημη οντότητα, δεν έχει καμία εμπορική σχέση ή ωφέλεια και δεν κάνει διαφημίσεις. Μοναδικός σκοπός είναι η βοήθεια στο χώρο των μηχανικών για την πιο ομαλή εκκίνηση της ενασχόλησης τους με το Network Automation & Programmability.

Δεν θεωρώ τον εαυτό μου ειδικό στην python. Ωστόσο για διάφορους λόγους έχω περάσει πλέον 5 χρόνια εξερευνώντας τις δυνατότητες της γλώσσας για αυτοματισμό κυρίως γύρω από δίκτυα και σχετικό λογισμικό, προσπαθώντας ταυτόχρονα να τη χρησιμοποιήσω και ως “κόλλα” για διάφορα integrations. Συνεπώς πάρτε ότι συμβουλή ακολουθήσει “with a grain of salt” όπως λένε..

Ξεκίνημα για αρχάριους

Για γενικές γνώσεις πάνω στην Python ο κόσμος συνήθως λαμβάνει κατευθύνσεις για αντίστοιχα βιβλία και courses. Τέτοια είναι για παράδειγμα :

Python and APIs

Πολλά software πακέτα, μεταξύ αυτών και κάποια για BI διαθέτουν API που είναι βασισμένο σε REST. Η python έχει libraries για να μιλήσετε με REST APIs, η πιο δημοφιλής (αλλά όχι η μοναδική) είναι η requests. Κάποιοι μιλούν πολύ θετικά για την httpx αλλά για αρχή μπορείτε να την αγνοήσετε. Ειδικά για REST APIs, πήρα τις πρώτες μου γνώσεις μέσω Cisco Devnet γιατί με ενδιέφεραν τα APIs που έχουν οι σχετικές πλατφόρμες λογισμικού. Το Cisco Devnet διαθέτει δωρεάν πρόσβαση (κατόπιν εγγραφής με το email σας) σε μια μεγάλη συλλογή από self paced labs και trainings (μικρά σε έκταση) όπου μπορεί κανείς να μάθει τις σχετικές τεχνολογίες. Δεν είναι όμως υποχρεωτικό να ακολουθήσετε αυτή την οδό.

Start with Postman (REST Client)

Για να μιλήσετε με REST APIs μπορείτε να πειραματιστείτε κατευθείαν με εργαλεία που δεν απαιτούν γνώσεις προγραμματισμού, όπως το Postman. https://www.postman.com/

Στο site του postman μπορείτε να βρείτε collections για δημοφιλή λογισμικά που υποστηρίζουν REST, π.χ. https://www.postman.com/power-bi?tab=collections

Use an IDE (Visual Studio Code)

Αν ήδη γνωρίζετε προγραμματισμό και χρησιμοποιείτε κάποιο IDE όπως το visual studio code (https://code.visualstudio.com/), κάποια από αυτά έχουν extensions/plugins που ενσωματώνουν rest clients χωρίς να χρειάζεστε εξωτερικά εργαλεία (https://www.producthunt.com/posts/thunder-client)

Υπάρχουν resources για να πειραματιστείτε με REST APIs στο internet. Π.χ. https://deckofcardsapi.com/

Use Python with Excel and CSVs (maybe) for Data Analysis

Επειδή αναφέρατε το excel, θα πρέπει να έχετε υπόψη σας δύο βιβλιοθήκες. Openpyxl & Pandas.

Η πρώτη είναι πιο lightweight και προσφέρεται για να μάθετε το excel manipulation μέσω Python.

Η δεύτερη δουλεύει με dataframes, διαθέτει μεγαλύτερο βάθος και είναι must για data analysts καθώς διαθέτει τεράστιες δυνατότητες για επεξεργασία δεδομένων.

Online Learning Platforms & Resources

Υπάρχουν πολλές πλατφόρμες που δίνουν δωρεάν γνώση για python και άλλες όπου υπάρχει συνδρομή.

Δωρεάν

Αυτό το post αναφέρει κι άλλα sources, εκτός αυτών και η NSA είχε δημοσιεύσει το internal course της για Python, δωρεάν. https://www.makeuseof.com/how-to-learn-python-for-free/amp/

Εδώ αναφέρονται αρκετά free courses. Κάποια είναι σε Πανεπιστήμια και ακολουθούν πρόγραμμα - https://www.makeuseof.com/python-online-course-free/

Δωρεάν - Learning at Cisco

https://learningnetwork.cisco.com/s/learning-plan-detail-standard?ltui__urlRecordId=a1c6e0000096sAfAAI&ltui__urlRedirect=learning-plan-detail-standard - Course για Python, δωρεάν πρόσβαση.

Network Oriented

Εγώ προσωπικά, λόγω ενδιαφερόντων ξεκίνησα από εδω:

Πέραν του Video στο Cisco Devnet θα βρείτε αρκετά labs και για καθαρό Python, όπως:

Το βιβλίο του Eric Chou (από την PACT, διαθέσιμο μέσω Amazon) είναι εξαιρετικό κατά γενική ομολογία. https://www.amazon.com/Mastering-Python-Networking-automation-programmability/dp/1839214678/

Γενικά για automation

https://automatetheboringstuff.com/ - Το βιβλίο Al Sweigart το Automate the boring stuff with Python (2nd edition)

For non-programmers

Δωρεάν ως ένα βαθμό

Άλλα σημαντικά site

Επίσης μην ξεχνάτε τη δύναμη του google & youtube.

Online Platforms με κόστος

Ειδικά σε αυτό:

Ελληνικά Academies

Το μόνο που γνωρίζω που προσφέρει αυτή τη στιγμή σχετικό training είναι το HAEC (Εκπαιδευτικό Κέντρο της ΕλληνοΑμερικανικής Ένωσης)

Set up your IDE

https://www.youtube.com/watch?v=7FltByLPnrg - Setting up VS Code for Python Beginners

Άρθρα με συμβουλές και walkthroughs

Το internet γεμάτο. Κάποια sites είναι πιο αξιόπιστα, να είστε λίγο προσεκτικοί, μπορεί να σας βοηθήσουν στην εύκολη κατανόηση αλλά είναι εύκολο να περιέχουν μισή γνώση ή λάθη. Ένα παράδειγμα:

https://towardsdatascience.com/python-go-from-rookie-to-rockstar-d03fa07a32e8

Πρόταση προσέγγισης

Θα πρότεινα να πάρετε γρήγορα γενικές γνώσεις (variables, input & output, δομές ελέγχου, functions, classes - optional, virtual environments) και μετά να εστιάσετε στα excel libraries & REST APIs. Επίσης θα χρειαστεί κάποια στιγμή να ασχοληθείτε με το debugging είτε μέσω κάποιου IDE (π.χ. visual studio code) είτε με αντίστοιχα libraries όπως ipdb.

Καλή επιτυχία!