5 minutes
Jumpstart_your_Python_Learning
Γενικά
Το βασικό θέμα του παρόντος post είναι πως να ξεκινήσει κανείς να μαθαίνει Python (με οποιοδήποτε τρόπο). Τα παρακάτω προέκυψαν από συζητήσεις μελών μας στο LinkedIn, εσωτερικές συζητήσεις μέσα στην κοινότητα και συλλογή από online resources. Αφορμή υπήρξαν μια ερώτηση προερχόμενη εκτός της κοινότητας για εκμάθηση Python για συγκεκριμένο πακέτο Business Intelligence και ερώτηση μέλους ποιο είναι το καταλληλότερο σημείο εκκίνησης για εκμάθηση Python, πιθανώς ξεκινώντας από το μηδέν.
Disclaimer
Η κοινότητα μας δεν αποτελεί επίσημη οντότητα, δεν έχει καμία εμπορική σχέση ή ωφέλεια και δεν κάνει διαφημίσεις. Μοναδικός σκοπός είναι η βοήθεια στο χώρο των μηχανικών για την πιο ομαλή εκκίνηση της ενασχόλησης τους με το Network Automation & Programmability.
Δεν θεωρώ τον εαυτό μου ειδικό στην python. Ωστόσο για διάφορους λόγους έχω περάσει πλέον 5 χρόνια εξερευνώντας τις δυνατότητες της γλώσσας για αυτοματισμό κυρίως γύρω από δίκτυα και σχετικό λογισμικό, προσπαθώντας ταυτόχρονα να τη χρησιμοποιήσω και ως “κόλλα” για διάφορα integrations. Συνεπώς πάρτε ότι συμβουλή ακολουθήσει “with a grain of salt” όπως λένε..
Ξεκίνημα για αρχάριους
Για γενικές γνώσεις πάνω στην Python ο κόσμος συνήθως λαμβάνει κατευθύνσεις για αντίστοιχα βιβλία και courses. Τέτοια είναι για παράδειγμα :
- Angela Yu’s “100 Days of Code” - https://www.udemy.com/course/100-days-of-code/
- Learn Python3 the hard way - https://learnpythonthehardway.org/python3/preface.html
- The Python Workshop από την PACT - https://www.packtpub.com/free-ebook/the-python-workshop/9781839218859 , έχει και facebook group: https://www.facebook.com/watch/?v=400826784264169
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<ui__urlRedirect=learning-plan-detail-standard - Course για Python, δωρεάν πρόσβαση.
Network Oriented
Εγώ προσωπικά, λόγω ενδιαφερόντων ξεκίνησα από εδω:
- https://pynet.twb-tech.com/free-python-course.html - To Free Email Course του Kirk Byers (υπάρχει και Paid Version που περιλαμβάνει και προχωρημένα αντικείμενα, έχει λάβει καλές κριτικές. Για το Free course οι απόψεις διίστανται)
- https://developer.cisco.com/video/net-prog-basics/
- https://www.slideshare.net/JeremySchulman/python-for-network-engineers-a-practical-guide-for-getting-started - Slides από Jeremy Schulman (πρώην Juniper Networks, νυν NBL)
Πέραν του Video στο Cisco Devnet θα βρείτε αρκετά labs και για καθαρό Python, όπως:
- https://developer.cisco.com/learning/modules/programming-fundamentals/intro-python-part1/step/1
- https://developer.cisco.com/learning/modules/programming-fundamentals/intro-python-part2/step/1
- https://developer.cisco.com/learning/modules/programming-fundamentals/parsing-json-python/step/1
Το βιβλίο του 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
- https://store.lerner.co.il/python-for-non-programmers-live
- https://thenewstack.io/an-introduction-to-python-for-non-programmers/
Δωρεάν ως ένα βαθμό
- https://realpython.com/start-here/ Εδώ θα βρείτε και αρκετά posts για excel & csv, must για να πάρετε μια γρήγορη ιδέα.
- https://realpython.com/openpyxl-excel-spreadsheets-python/
- https://realpython.com/lessons/excel-python-openpyxl-overview/
- https://realpython.com/pandas-read-write-files/
- https://realpython.com/python-csv/
- https://realpython.com/python-interview-problem-parsing-csv-files/
- https://store.lerner.co.il/python-for-non-programmers-live
Άλλα σημαντικά site
- https://www.w3schools.com/python/default.asp - Προτείνεται και από Πανεπιστήμια
- https://dev.to/
- https://stackoverflow.com/
Επίσης μην ξεχνάτε τη δύναμη του google & youtube.
Online Platforms με κόστος
-
https://www.udemy.com/ - κόστος ανά course
-
https://www.pluralsight.com/ - Συνδρομή (μεγάλη έκπτωση στην Blackfriday)
-
https://www.cbtnuggets.com/features - Συνδρομή (αρκετά ακριβότεροι, πάνε σε μεγαλύτερο βάθος σε ορισμένες περιπτώσεις).
Ειδικά σε αυτό:
-
https://www.cbtnuggets.com/it-training/python/network-engineers-intro
-
https://www.cbtnuggets.com/it-training/python/beginner-python-3
-
https://www.oreilly.com/online-learning/ - Συνδρομή (αρκετά ακριβότεροι, πρόσβαση σε online ζωντανά σεμινάρια, recorded video trainings και βιβλία από αρκετούς εκδοτικούς οίκους.
Ελληνικά Academies
Το μόνο που γνωρίζω που προσφέρει αυτή τη στιγμή σχετικό training είναι το HAEC (Εκπαιδευτικό Κέντρο της ΕλληνοΑμερικανικής Ένωσης)
- https://www.haec.gr/en/devnet-associate - Devnet Associate Training (περιλαμβάνει και Python αλλά έχει focus σε automation & Devops training για το Cisco Devnet Associate Certification)
- https://www.haec.gr/el/programmatismos-me-python - Python Training
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.
Καλή επιτυχία!