Σε τι χρησιμοποιείται η Python; Η διαδικασία συγγραφής προγραμμάτων. Πώς να μάθετε Μηχανική Μάθηση

Αν ψάχνετε για μια απάντηση στην ερώτηση: «Ποια γλώσσα προγραμματισμού να επιλέξετε πρώτη», τότε περίπου στο 90% όλων των περιπτώσεων θα σας προσφερθεί Python - ως η πιο εύκολη γλώσσα για εκμάθηση. Και είναι προφανές ότι συγκεκριμένο αριθμόάτομα που δεν έχουν μάθει ποτέ προγραμματισμό θα επιλέξουν την Python λόγω αυτών των συστάσεων. Και εδώ έχουμε ένα πρόβλημα, το οποίο θα συζητηθεί παρακάτω. Φυσικά, με μια περιγραφή του πώς έφτασα σε αυτή τη ζωή.

Σχετικά με μένα

Ακόμα και στα φοιτητικά μου χρόνια συνειδητοποίησα ότι η ειδικότητά μου δεν ήταν τόσο ρόδινη όσο μου φαινόταν στα 18 μου. Άρχισα λοιπόν να σκέφτομαι πώς να κερδίσω επαρκή χρήματα. Και αφού άκουσα ιστορίες για το πώς ο ξάδερφός μου έλαβε τρελά χρήματα εκείνη την εποχή στο 1C, αποφάσισα επίσης να συνδέσω τη ζωή μου με το IT.

Αρχικά, αυτοί ήταν ιστότοποι προτύπων που χρησιμοποιούν δημιουργούς ιστότοπων και WordPress, στη συνέχεια ασχολήθηκα με το SEO και κάποια στιγμή συνάντησα το Habr, μετά από το οποίο αποφάσισα να γίνω πλήρης προγραμματιστής. Δεν είχα ανώτερα μαθηματικά, οπότε αποφάσισα να επιλέξω ένα πεδίο όπου δεν ήταν απαραίτητο - ανάπτυξη ιστού.

Είχα μια προφανή ερώτηση: ποια γλώσσα να επιλέξω - php/python/ruby. Έχοντας δει αρκετά άρθρα για το Habré, διάβασα λίγο μίσος για την php, αφού παρακολούθησα μερικά κίνητρα βίντεο από το Yandex. Διάλεξα την Python. Ελπίζω να γνωρίζετε τα πλεονεκτήματα της γλώσσας, οπότε δεν θα μιλήσω γι' αυτό.

Πρωτοβάθμια γλωσσική εκπαίδευση

Συνδύασα την εκμάθηση γλωσσών με την κύρια δουλειά μου, γι' αυτό διάβασα βιβλία, παρακολουθούσα μαθήματα, δούλεψα σε μικρά έργα στο βραδινή ώρα. Γενικά, σε ένα χρόνο Ι

1) Βιβλία που μελετήθηκαν:

  • Mark Lutz - Εκμάθηση Python
  • Mark Lutz - Προγραμματισμός Python
  • Chad Fowler – Προγραμματιστής Fanatic
  • Bill Lubanovich - Simple Python
2) Μελέτησα πολλά βίντεο από Ουκρανούς/Αστούς συγγραφείς στο Django
3) Ολοκλήρωσε ένα μάθημα από την codeacademy
4) Mastered PyCharm

Το πρώτο σας έργο

Τότε είχα την ιδέα μιας μικρής υπηρεσίας για ένα πολύ συγκεκριμένο θέμα, την οποία αποφάσισα να δημιουργήσω για να εμπεδώσω τις γνώσεις μου για Python + Django.

Κατά τη δημιουργία του ιστότοπου Ι

1) Βιβλία που μελετήθηκαν:

  • John Duckett - HTML και CSS. Ανάπτυξη και σχεδιασμός ιστοσελίδων
  • David Flanagan - JavaScript. Αναλυτικός Οδηγός
  • Ben Forta - Μάθετε SQL μόνοι σας.
2) Μελέτησα την τεκμηρίωση του Django για τις εργασίες μου
3) Μελέτησα την ανάπτυξη έργων στο Django Gunicorn + nginx + centOS

Το πρώτο μου κανονικό έργο

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

Το έργο έχει δείξει τη βιωσιμότητά του (μέχρι σήμερα μου φέρνει κάποια χρήματα, για τα οποία χαίρομαι απίστευτα). Και αποφάσισα να το αντλήσω καλύτερα.

Αφού διάβασα το βιβλίο "Percival H. - Test-Driven Development with Python", αποφάσισα να γράψω δοκιμές πρώτα με βάση τα στοιχεία του Django, μετά έψαξα την τεκμηρίωση του Selenium και έκανα ήδη εξωτερικές δοκιμές.

Θέλω να είμαι ψύχραιμος

Έχοντας ανοίξει κενές θέσεις για προγραμματιστές Python-Django, εξέτασα τι άλλο απαιτείται συνήθως σε τέτοιες κενές θέσεις:
  • Django Rest Framework
  • Σέλινο
  • Tornado/Twisted/asyncio (Επιλέξτε ένα)
  • Προβολή Django βάσει τάξης
  • Angular/React (Επιλέξτε ένα)
Πέρασα 3 μήνες για να γνωρίσω/δοκιμάζω αυτά τα πράγματα. Επίσης ανυψώθηκε τυπική βιβλιοθήκη Python + εξωτερική βιβλιοθήκη ανάλυσης beautifulSoup.

Δεν μπορείτε να δουλέψετε χωρίς C/C++

Υπάρχει η άποψη ότι χωρίς γνώση της C/C++, ένας προγραμματιστής δεν μπορεί να αυτοαποκαλείται προγραμματιστής. Όταν λοιπόν είχα ελεύθερο χρόνο, γνώρισα τα βιβλία:
  • Brian Kernighan – Γλώσσα προγραμματισμού C
  • Stanley B Lippman – Γλώσσα προγραμματισμού C++. Βασικό μάθημα
Διάβασα τα βιβλία, κούρεψα τον κώδικα, κοίταξα τη συλλογή, κοίταξα τα παραδείγματα κώδικα. Γενικά, τώρα δεν το έκανα μεγάλα μάτιαόταν αναφέρετε συνδέσμους, δείκτες, ταξινόμηση, OOP και ένα σωρό διαφορετικούς πίνακες με σε διαφορετικές ταχύτητεςεπεξεργασία ενός στοιχείου ανάλογα με τη θέση του.

Είμαι έτοιμος να πολεμήσω!

Και εδώ φτάνουμε στο πολύ σημαντικό σημείο. Έχοντας περάσει συνολικά 2 χρόνια μελετώντας όλα τα στοιχεία του web προγραμματισμού που προανέφερα. Θεωρούσα τον εαυτό μου αρκετά έτοιμο να υποβάλω αίτηση για μια θέση ως προγραμματιστής ιστού Python. Φυσικά, κάποια πράγματα δεν τα ήξερα πολύ καλά, κάποια επιφανειακά και κάποια δεν τα ήξερα καθόλου (για παράδειγμα, το Flask), αλλά γενική κατανόησηκαι οι δεξιότητες ήταν αρκετά καλές.

Και εδώ ξεκίνησαν τα προβλήματα με την Python, στα οποία οι άνθρωποι τις περισσότερες φορές δεν εστιάζουν. Συγκεκριμένα, σχετικά με τη ζήτηση των επιχειρήσεων για προγραμματιστές Python κατώτερου/προ-μεσαίου επιπέδου.

Μπήκα στην αγορά με αυτή την ερώτηση.

Αν και εκ πρώτης όψεως φαίνεται ότι υπάρχουν αρκετές κενές θέσεις στην Python, όταν ξεκινούν τα συγκεκριμένα, όλα αλλάζουν δραματικά.

1. Αμέσως γίνεται μεγάλος έλεγχος κενών θέσεων όπου η Python είναι αποκλειστικά βοηθητική γλώσσα. Τις περισσότερες φορές αυτές είναι θέσεις προγραμματιστών Java, Διαχειριστές Συστήματος, Αυτοματισμός QA. Επίσης, υπάρχει πλέον μεγάλη εγκατάλειψη στο Data Learning, το οποίο απαιτεί μαθηματική εκπαίδευση + τη γλώσσα R. Μόνο με την Python δεν θα μπορείτε να βρείτε αυτήν την κενή θέση.

2. Αποδείχθηκε ότι στην πόλη μου δεν υπάρχουν κενές θέσεις για Python, κυριολεκτικά καμία. Έχοντας επεκτείνει την αναζήτηση σε όλη την περιοχή, έλαβα επίσης ένα μη ικανοποιητικό αποτέλεσμα. Μερικές κενές θέσεις στην PHP, όπου η Python ήταν ένα συν. Όταν άνοιξα το φίλτρο τα τελευταία 3 χρόνια, ανακάλυψα επίσης ότι δεν υπήρχαν καθόλου κενές θέσεις για Python. Εκείνοι. Οι επιχειρήσεις στις επαρχίες επιλέγουν πιο συχνά απλούστερες και πιο δημοφιλείς τεχνολογίες από την Python.

3. Έχοντας ανοίξει κενές θέσεις Python σε μια γενική μηχανή αναζήτησης, ανακάλυψα τις ακόλουθες τάσεις:

  • Το 90%+ των κενών θέσεων βρίσκονται στη Μόσχα ή την Αγία Πετρούπολη
  • Το 90%+ των κενών θέσεων απαιτούν μεσαίο+ / ανώτερο επίπεδο
  • ~100% κενές θέσεις για κατώτερες θέσεις στη Μόσχα ή την Αγία Πετρούπολη (συχνότερα από γίγαντες)
Με άλλα λόγια, έχει αποδειχθεί η κατάσταση ότι αν δεν μένεις στη Μόσχα, την Αγία Πετρούπολη και δεν πρόκειται να πας να τα «κατακτήσεις», τότε ουσιαστικά δεν έχεις πού να βρεις την πρώτη σου δουλειά.

Φυσικά, υπάρχουν μερικά μέρη όπου η Python εξακολουθεί να χρησιμοποιείται, για παράδειγμα, στο Καζάν. Αλλά πιο συχνά αυτή είναι μια εταιρεία, όπου οι κενές θέσεις είναι επίσης πολύ μεσαίες+ / ανώτερες.

4. Η επιλογή αναζήτησης εξ αποστάσεως εργασίας στο σημερινό επίπεδο έδειξε επίσης ότι οι εργοδότες δεν είναι έτοιμοι να αναλάβουν τέτοιο ρίσκο. Μικρή εμπειρία + απομακρυσμένη εργασία = αυτό είναι κάποιο είδος φαντασίας.
Παρ 'όλα αυτά, κατάφερα να βρω μερικές επιλογές, αλλά ήδη κατά τη διάρκεια της αρχικής συνέντευξης έγινε σαφές ότι αυτό ήταν ανοησία όπως: "Εσείς δουλεύετε για εμάς για τρεις μήνες, και αν ο πελάτης πληρώσει για τη δουλειά σας, θα σας πληρώσουμε πολύ." Δεν είναι η καλύτερη επιλογή.

5. Μίλησε με ένα ζευγάρι HR από μεγάλες εταιρείες, εξέφρασαν αυτή την τάση. «Συνήθως προσλαμβάνουμε άτομα με τουλάχιστον ένα έτος εμπειρίας στην Python, συν εμπειρία σε άλλη γλώσσα (3+ έτη). Τις περισσότερες φορές php/Java." Με άλλα λόγια, δεν σκέφτηκαν καθόλου να προσλάβουν κάποιον μόνο με Python.

6. Μετά από συζήτηση με παιδιά από εξειδικευμένα φόρουμ, έγινε σαφές ότι αυτή είναι μια αρκετά τυπική κατάσταση. Από τις ιστορίες τους, έγινε σαφές ότι οι άνθρωποι, μετά από μια μάταιη αναζήτηση, είτε πήγαν να δουλέψουν σε php/1c, είτε με κάποιο τρόπο σκαρφάλωσαν μέσω της αυτοματοποίησης upwork/δικού τους έργου/δοκιμών.
Και πάλι όμως από περίπτωση σε περίπτωση.

Σε γενικές γραμμές, αποδείχθηκε ότι η Python είναι εξαιρετική γλώσσα, που σας επιτρέπει να δημιουργείτε ισχυρά έργα. Και τυχαίνει η συγκέντρωσή τους να είναι στις πρωτεύουσες. Και από αυτό σύνθετα έργα, τότε απαιτούνται εκεί υπάλληλοι σε επίπεδο μεσαίου+. Είναι έτοιμος κάποιος που μόλις έμαθε Python να πάρει μια τέτοια κενή θέση; Είναι δύσκολο!

Υπάρχει όμως και άλλος τρόπος!

Αυτήν τη στιγμή, μόνο στην πόλη μου υπάρχουν 24 κενές θέσεις για php διαφόρων επιπέδων (ξεκινώντας από μικρές εταιρείες, οι οποίες πρέπει να διατηρήσουν τον τρέχοντα ιστότοπο, τελειώνοντας με τους γίγαντες του ηλεκτρονικού εμπορίου που προσφέρουν σταθερή επέκταση της λειτουργικότητας). Και περίπου τον ίδιο αριθμό κενών θέσεων για 1C. Και στις μισές περίπου από αυτές τις κενές θέσεις είναι έτοιμοι να προσλάβουν ένα άτομο που τουλάχιστον γνωρίζει κάτι σχετικά με τον προγραμματισμό. Πιθανότατα, αυτά δεν είναι τα περισσότερα καλύτερα μέρη, αλλά αυτή είναι ήδη η πρώτη δουλειά μετά την οποία θα γίνετε επίσημα έμπειρος προγραμματιστής για HR.

Έτσι στο τέλος

Αποδεικνύεται ότι μπορείτε να μάθετε μια δροσερή γλώσσα Προγραμματισμός Pythonκαι μείνε στο δρόμο. Ή μπορείτε να μάθετε τη «μισητή» php/1c και να βρείτε δουλειά. Η ποιότητα αυτής της δουλειάς, φυσικά, αφήνει πολλά ερωτήματα - αλλά αυτό είναι ήδη εμπειρία.

Όσο για μένα, στις συνθήκες μου (δεν πηγαίνω στη Μόσχα/Αγία Πετρούπολη), αφιέρωσα χρόνο στην εκμάθηση μιας γλώσσας που είναι πλέον περιζήτητη αποκλειστικά στα δικά μου έργα. Δεν μπορούσα να βρω δουλειά τοπικά ή εξ αποστάσεως. Τώρα προχωράω προς την php, αφού απλά έχει δουλειά.

Επομένως, εάν δεν ζείτε στη Μόσχα της Αγίας Πετρούπολης ή δεν είστε φοιτητής σε τεχνικό πανεπιστήμιο, τότε δεν θα σας συμβούλευα να διδάξετε Πρώτα η Pythonγλώσσα. Δώστε προσοχή στην PHP - υπάρχουν πάντα θέσεις για αυτήν, υπάρχει δουλειά, υπάρχει εμπειρία. Και ο περαιτέρω δρόμος ανάπτυξης είναι ήδη δικός σας.

P.S.Όπως μου είπε ο φίλος μου, η κατάσταση είναι σχεδόν ίδια στο Ruby. Αλλά εδώ δεν μπορώ πλέον να μιλήσω με σιγουριά.

Όλα είναι άσχημα, μπορείτε να χρησιμοποιήσετε το Kivy ως έργα για κατοικίδια, για πραγματική ανάπτυξηπολύ αμφίβολο, δεν υπάρχουν κενές θέσεις στο Kivy.

Εκείνοι. πώς, προσωπικά μίλησα με αρκετούς ανθρώπους που είχαν το δικό τους web project στην Python και, για να αιχμαλωτίσουν ένα μεγάλο κοινό, έγραψαν εφαρμογές στο Kivy, και μάλιστα το χρησιμοποίησαν, αλλά μοιάζει σαν «Ο προγραμματιστής γράφει ό,τι θέλει .»

Μηχανική μάθηση και επιστήμη δεδομένων (επαρκής και πολλά υποσχόμενη)

Αυτή είναι μια από τις πιο δημοφιλείς περιοχές του σύγχρονου κόσμου της πληροφορικής, όπου η Python χρησιμοποιείται ως εργαλείο δοκιμών. Η Python διαθέτει μια σειρά από βολικές βιβλιοθήκες για μηχανική μάθηση και επιστημονικούς υπολογισμούς: Pandas, NumPy, SciPy, Scikit-Learn, οι οποίες σας επιτρέπουν να δημιουργείτε γρήγορα μοντέλα εργασίας. Και στην πραγματικότητα λειτουργούν αρκετά καλά.

Όσον αφορά τη χρήση, η Python χρησιμοποιείται ως εργαλείο δοκιμών ή για μικρές εργασίες. Εάν το έργο είναι μεγάλο, τότε συνήθως το μοντέλο είναι γραμμένο σε Java/Scala/C++ και ο ειδικός εκπαίδευσης ενεργεί ήδη ως σύμβουλος/αναλυτής.

Η δυσκολία αυτής της κατεύθυνσης έγκειται στο γεγονός ότι πρέπει να έχετε υψηλές γνώσεις στον τομέα των μαθηματικών και θα σας ζητηθεί σχεδόν πάντα η ανώτερη τεχνική και μαθηματική εκπαίδευση.

Όσο για τις κενές θέσεις, όλα είναι αρκετά καλά, αλλά σε τέτοιες κενές θέσεις δεν απαιτείται η γνώση Python, αλλά το κεφάλι σου.

Για όσους θέλουν να αποκτήσουν γρήγορα μια αίσθηση αυτής της κατεύθυνσης, σας συμβουλεύω να διαβάσετε το βιβλίο: "Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python_-_A_Myuller_S_Gvido_2017" - είναι διαθέσιμο σε torrents, διαβάζεται γρήγορα, δίνει μια καλή ιδέα.

Απόξεση ιστού (πιθανή, αλλά αμφίβολη)

Η Python έχει τρία πράγματα που την καθιστούν πολύ αποτελεσματική στον τομέα του web scraping, τη βιβλιοθήκη Requests, το beautifulsoup και το Selenium API. Εάν συνδέσετε βιβλιοθήκες εδώ για όραση υπολογιστήκαι τη Μηχανική Μάθηση, αποκτάτε πολύ αποτελεσματικά εργαλεία.

Το πρόβλημα είναι ότι υπάρχουν λίγες κενές θέσεις σε αυτόν τον τομέα, οι κύριοι πελάτες είναι ελεύθεροι επαγγελματίες που προσφέρονται να τους γράψουν σενάρια ανάλυσης για τους σάιτ τοποθεσίες τους, τα μηχανήματα ανεπιθύμητης αλληλογραφίας και περιστασιακά εξετάζουν γεννήτριες έναντι αμοιβής.

Η περιοχή είναι ενδιαφέρουσα, αλλά υπάρχουν λίγα χρήματα σε αυτήν.

Υπολογιστική όραση (αμφισβητήσιμο)

Η Python έχει μια σειρά από εργαλεία που σας επιτρέπουν να γράφετε εργαλεία υπολογιστικής όρασης, χρησιμοποιούνται ακόμη και σε μέρη σε εμπορικά προϊόντα ή ως εξαρτήματα, για παράδειγμα, για απόξεση ιστού. Ωστόσο, η Python σαφώς δεν είναι κατάλληλο εργαλείο, επομένως η χρήση της είναι εξαιρετικά περιορισμένη και πρακτικά δεν υπάρχουν κενές θέσεις.

GameDev (αμφίβολο)

Σχεδόν σε κάθε συζήτηση για την ανάπτυξη παιχνιδιών Python, το παράδειγμα που αναφέρεται είναι παραμονή onlineκαι WarGaming. Ωστόσο, στην πρώτη περίπτωση χρησιμοποιείται python χωρίς κατάσταση και στη δεύτερη περίπτωση, τα πάντα περιορίζονται σε μια γλώσσα σεναρίου.

Όσον αφορά την πραγματική χρήση, έχετε τρεις κινητήρες Kivy, PyGame, Panda3D, αν οι δύο πρώτοι είναι πιο κατάλληλοι για έργα κατοικίδιων ζώων, τότε ο τρίτος χρησιμοποιήθηκε πραγματικά σε έργα μάχης καλής ποιότητας, αν και αυτά τα έργα ήταν από το 2004. Κάτι που φαίνεται να υπονοεί ότι η χρήση αποδεδειγμένων μηχανών σε άλλες γλώσσες όπως το Unity ή το Game Maker φαίνεται πιο πειστική.

Ωστόσο, ο κινητήρας Ren’Py μπαίνει κρυφά εδώ απαρατήρητος, ο οποίος ξαφνικά έγινε ο καλύτερος κινητήρας για τη συγγραφή εικαστικών μυθιστορημάτων (υποφέρουσες ιστορίες για κορίτσια), που αποδίδουν καλά ακόμη και στη Ρωσική Ομοσπονδία. Η σειρά «7 Δαιμονολόγοι του Μεγάλου Πέτρου» είναι απόδειξη αυτού.

Φυσικά, δεν υπάρχουν κενές θέσεις στο GameDev για python, αλλά μπορείτε να συγκεντρώσετε χρήματα σε μια "startup" με την κατάλληλη ικανότητα. Αλλά είναι ασφαλέστερο να χρησιμοποιείτε άλλη γλώσσα και αποδεδειγμένους κινητήρες.

Ανάπτυξη Ιστού (επαρκής και πολλά υποσχόμενη)

Η Python είναι μία από τις τρεις γλώσσες (Python, PHP, Ruby) που έχουν αναπτύξει οικοσυστήματα ταχεία ανάπτυξη web projects επαρκούς ποιότητας. Οι βασικές πλατφόρμες εδώ είναι:
  • Django (μονολιθικό σύγχρονο πλαίσιο)
  • Φιάλη (μικροσύγχρονο πλαίσιο)
  • Tornado (μονολιθικό ασύγχρονο πλαίσιο)
  • Twisted (μονολιθικό ασύγχρονο πλαίσιο)
  • Aiohttp (μικροασύγχρονο πλαίσιο)
Επί του παρόντος, το μεγαλύτερο μέρος της αγοράς καταλαμβάνεται από το πλαίσιο Django, αλλά με την εμφάνιση των ιδεών microservice, το Flask άρχισε σταδιακά να κερδίζει δυναμική. Όσο για την ασυγχρονία, όλα είναι περίπλοκα εδώ, αφού το Tornado και το Twisted θεωρούνται ξεπερασμένα (αν και πολλές εταιρείες δουλεύουν για αυτούς, όπως η Tinkov), και το aiohttp είναι πολύ χοντροκομμένο και η χρήση του αμφισβητείται.

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

Ξεχωριστά, θα ήθελα να σημειώσω τη συγγραφή υπηρεσιών GIS στην Python, οι οποίες, αν και διαθέτουν αρκετά επαρκή εργαλεία για εργασία με γεωδεδομένα, η χρήση Java για αυτούς τους σκοπούς φαίνεται πιο ελπιδοφόρα.

Συμπεράσματα σχετικά με τη χρήση του python

1) Όσον αφορά τον τομέα του devops και του testing, η Python είναι βασικό εργαλείο του επαγγέλματος, το οποίο είναι υποχρεωτικό για κάθε επαρκή ειδικό. Σε αυτήν την περίπτωση, η Python δεν διδάσκεται.

2) Οι πιο υποσχόμενοι τομείς μοιάζουν με την ανάπτυξη ιστού και τη μηχανική μάθηση (analytics), που ξεχωρίζουν ξεκάθαρα την Python από τους ανταγωνιστές της με τη μορφή PHP και Ruby. Και αν θέλετε να μάθετε Python, τότε καλό είναι να εστιάσετε σε αυτούς τους τομείς και να μην χάνετε τον χρόνο σας σε οτιδήποτε άλλο. Υπάρχουν κενές θέσεις για αυτό και μπορείτε να δημιουργήσετε μια startup πάνω σε αυτό.

3) Όλοι οι άλλοι τομείς, αν και προσφέρουν ορισμένα εργαλεία για την επίλυση προβλημάτων, οι προοπτικές χρήσης αυτών των εργαλείων φαίνονται πολύ αμφίβολες. Και το πιο σημαντικό, η εύρεση αμειβόμενης εργασίας σε αυτούς τους τομείς είναι σχεδόν αδύνατη.

Ποια προγράμματα είναι γραμμένα στην Python;

Λογισμικό εφαρμογής για κανονικούς ανθρώπους

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

BitTorrent

Όλες οι εκδόσεις έως και 6 αυτού του προγράμματος-πελάτη torrent γράφτηκαν σε Python. Η έκδοση 6 ξαναγράφηκε σε C++.

Κέντρο Λογισμικού Ubuntu

Απόσπασμα από τη Wikipedia:
Κέντρο Εφαρμογές Ubuntu (Αγγλικός) Κέντρο Λογισμικού Ubuntu) είναι δωρεάν λογισμικό για την εύρεση, εγκατάσταση και αφαίρεση πακέτων σε σύστημα Ubuntu Linux. V πιο πρόσφατες εκδόσειςΜπορείτε να αγοράσετε περιοδικά σχετικά με το Linux και το Ubuntu, μπορείτε επίσης να αγοράσετε παιχνίδια και λογισμικό επί πληρωμή. Η εφαρμογή έχει αναπτυχθεί σε Python + Vala χρησιμοποιώντας βιβλιοθήκες GTK+ και είναι ένα γραφικό κέλυφος για το Advanced Packaging Tool.

Μίξερ

Απόσπασμα από τη Wikipedia:
Μίξερ- δωρεάν, επαγγελματικό πακέτογια τη δημιουργία τρισδιάστατων γραφικών υπολογιστή, συμπεριλαμβανομένων εργαλείων για μοντελοποίηση, κινούμενα σχέδια, απόδοση, μετα-επεξεργασία βίντεο και δημιουργία διαδραστικά παιχνίδια. Επί του παρόντος, είναι το πιο δημοφιλές μεταξύ των δωρεάν 3D επεξεργαστών λόγω της γρήγορης και σταθερής ανάπτυξής του, η οποία διευκολύνεται από μια επαγγελματική ομάδα ανάπτυξης.

Η Python χρησιμοποιείται ως εργαλείο για τη δημιουργία εργαλείων και πρωτοτύπων, λογικών συστημάτων σε παιχνίδια, ως μέσο εισαγωγής/εξαγωγής αρχείων (για παράδειγμα COLLADA) και αυτοματοποίησης εργασιών.

Ακολουθούν μερικές σελίδες τεκμηρίωσης:

ΣΕΙΡΗΤΙ

Απόσπασμα από τη Wikipedia:
Η Python χρησιμοποιείται για τη σύνταξη πρόσθετων λειτουργικών μονάδων, όπως φίλτρα.
Ακολουθούν μερικές σελίδες που εμβαθύνουν στο θέμα:

Παιχνίδια

Πολιτισμός IV

Το μεγαλύτερο μέρος του παιχνιδιού είναι γραμμένο σε Python().

Πεδίο μάχης 2

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

World of Tanks

Παράθεση από το άρθρο "GUI στο παιχνίδι World of Tanks":
Η Python χρησιμοποιείται ως γλώσσα σεναρίου στο έργο. Όλη η ομορφιά που φτιάξαμε στο Flash πρέπει να συνδεθεί στο παιχνίδι, να γεμίσει με δεδομένα, να επεξεργαστεί και να μεταδοθεί εισαγωγή χρήστησε πραγματική δράση στο παιχνίδι. Όλα αυτά γίνονται στην Python.
Περισσότερο πλήρης λίσταπαιχνίδια που χρησιμοποιούν Python μπορούν να βρεθούν στη Wikipedia και στην τεκμηρίωση της Python.

Ποιες εταιρείες χρησιμοποιούν Python;

Η λίστα των εταιρειών που χρησιμοποιούν Python είναι μεγάλη. Μεταξύ αυτών είναι η Google, Facebook, Yahoo , NASA , Red Hat , IBM , Instagram , Dropbox, Pinterest, Quora, Yandex, Mail.Ru.

Yandex

Εδώ πηγαίνετε, η αναφορά "Python στον πυρήνα του Yandex.Disk". Sergey Ivashchenko (ομιλητής):
Θα μιλήσω για το πώς χρησιμοποιούμε την Python στο Yandex.Disk, ποιες βιβλιοθήκες και πλαίσια χρησιμοποιούμε, ποιες εργασίες επιλύουμε και ποια προβλήματα αντιμετωπίζουμε. Θα θίξω επίσης το θέμα της καταγραφής και επεξεργασίας ασύγχρονων λειτουργιών.
Σε ένα από τα βίντεο στο κανάλι Yandex, οι εργαζόμενοι μίλησαν για τις αγαπημένες τους γλώσσες.

Και στο ιστολόγιο της εταιρείας Yandex υπάρχει μια καταχώρηση "Ποιες γλώσσες προγραμματισμού γράφονται στο Yandex" με ημερομηνία 19 Μαρτίου 2014. Έτσι, το 13% των εργαζομένων της Yandex γράφουν τον περισσότερο χρόνο εργασίας τους στην Python.

Mail.ru

Οι υπάλληλοι του Mail.ru χρησιμοποιούν επίσης Python. Το επίσημο ιστολόγιο Mail.ru στο Habré έχει πολλά άρθρα σχετικά με την Python:

Google

Η Google χρησιμοποιεί ενεργά την Python από την ίδρυσή της. Υπάρχουν φήμες ότι το μεγαλύτερο μέρος του YouTube και του Google Drive είναι γραμμένο σε Python. Η Google έχει αναπτύξει μια ολόκληρη πλατφόρμα cloud Εφαρμογή GoogleΜηχανή ώστε οι προγραμματιστές να μπορούν να εκτελούν κώδικα Python Google cloud. Πολλοί προγραμματιστές γλωσσών έχουν εργαστεί και εργάζονται στην Google.

DropBox

Η υπηρεσία έχει αναπτυχθεί σε Python. Δεν είναι τυχαίο ότι ο συγγραφέας της γλώσσας Python, Guido van Rossum, εργάζεται στο DropBox.

Άλλες εταιρείες

Οι οργανισμοί που χρησιμοποιούν Python

Σε ποιες περιοχές χρησιμοποιείται η Python;

Ανάπτυξη Ιστού

Η Python είναι ίσως η πιο χρησιμοποιούμενη σε αυτόν τον τομέα. Το πλαίσιο ιστού Django συνεχίζει να κερδίζει δυναμική, διευρύνοντας τον στρατό των θαυμαστών του. Πολλοί αρχάριοι προγραμματιστές πιστεύουν ότι η Python δεν χρησιμοποιείται πουθενά αλλού. Αλλά πολλά άλλα πλαίσια web είναι γραμμένα σε Python: Pylons TurboGears , CherryPy, Flask, Pyramid και άλλα. Μπορείτε να βρείτε μια πιο πλήρη λίστα.
Υπάρχει επίσης ένα CMS ενεργοποιημένο Βασισμένο στο Django, ονομάζεται DjangoCMS.
Πολύ συχνά, οι αναλυτές ιστοτόπων γράφονται σε Python. Τυπικά Requests, aiohttp, BeautifulSoup, html5lib χρησιμοποιούνται για αυτό. Υπάρχουν επίσης εργαλεία υψηλότερου επιπέδου για ανάλυση ιστοτόπων: Scrapy, Grab.

Διαχείριση συστήματος

Η Python είναι μια εξαιρετική γλώσσα για την αυτοματοποίηση της εργασίας διαχειριστής συστήματος. Είναι εγκατεστημένο από προεπιλογή σε όλους τους διακομιστές Linux. Είναι απλό και κατανοητό. Ο κώδικας Python διαβάζεται εύκολα. Μερικοί λατρεύουν την Perl, την αγαπώ επίσης για την βολική της δουλειά με κανονικές εκφράσεις, αλλά μισώ την Perl για τη σύνταξή της. Το Bash είναι χρήσιμο για σχετικά μικρού έως μεσαίου μεγέθους σενάρια, αλλά η Python είναι πιο ισχυρή και σε ορισμένες περιπτώσεις σας επιτρέπει να γράφετε πολύ λιγότερο κώδικα.
Το μόνο πακέτο που γνωρίζω είναι το Fabric. Ίσως υπάρχει κάτι άλλο, γράψτε μου στα σχόλια αν γνωρίζετε.

Πρόσθετες πληροφορίες

Python για διαχειριστές συστήματος (IBM developerWorks)
Τεκμηρίωση υφάσματος. Διαχείριση Συστημάτων.

Ενσωματωμένα συστήματα

Η Python χρησιμοποιείται πολύ συχνά για τον προγραμματισμό ενσωματωμένων συστημάτων. Το πιο διάσημο έργο που χρησιμοποιεί Python είναι το Raspberry Pi. Δεν είναι όμως ο μόνος:
Ενσωματωμένη Python
Raspberry Pi
Python Embedded Tools
Το ενσωματωμένο σύστημα Python Owl

Ανάπτυξη λογισμικού εφαρμογών, συμπεριλαμβανομένων παιχνιδιών

Η Python χρησιμοποιείται συχνά ως βοηθητική γλώσσα κατά την ανάπτυξη εφαρμογών. λογισμικό. Έχω ήδη δώσει παραδείγματα παραπάνω, δεν θα τα επαναλάβω.

Επιστημονική έρευνα

Οι φυσικοί και οι μαθηματικοί αγαπούν την Python για την απλότητά της. Επιπλέον, για την Python υπάρχει τεράστιο ποσόβιβλιοθήκες που κάνουν τη ζωή πιο εύκολη για έναν επιστήμονα. Για παράδειγμα:
  1. SciPy- Αυτό ανοιχτή βιβλιοθήκηυψηλής ποιότητας επιστημονικά όργαναγια τη γλώσσα προγραμματισμού Python. Το SciPy περιέχει ενότητες για βελτιστοποίηση, ολοκλήρωση, ειδικές λειτουργίες, επεξεργασία σήματος, επεξεργασία εικόνας, γενετικούς αλγόριθμους, επίλυση συνηθισμένων διαφορικών εξισώσεων και άλλα προβλήματα που συνήθως επιλύονται στην επιστήμη και τη μηχανική.
  2. Matplotlib- μια βιβλιοθήκη στη γλώσσα προγραμματισμού Python για οπτικοποίηση δεδομένων με δισδιάστατα (2D) γραφικά (υποστηρίζονται επίσης γραφικά 3D). Οι εικόνες που προκύπτουν μπορούν να χρησιμοποιηθούν ως εικονογραφήσεις σε δημοσιεύσεις.
  3. NumPyείναι μια επέκταση της γλώσσας Python που προσθέτει υποστήριξη για μεγάλους πολυδιάστατους πίνακες και πίνακες, μαζί με μια μεγάλη βιβλιοθήκη υψηλού επιπέδου μαθηματικές συναρτήσειςγια λειτουργίες με αυτούς τους πίνακες.
Μια πιο ολοκληρωμένη λίστα επιστημονικών υπολογιστικών βιβλιοθηκών στην Python μπορεί να βρεθεί στη Wikipedia.

Εκπαίδευση

Η Python συχνά συνιστάται ως η πρώτη γλώσσα προγραμματισμού.
Ορισμένα ρωσικά σχολεία έχουν επιτυχημένη εμπειρία διδασκαλίας προγραμματισμού σε μαθητές σε Python.
Παρεμπιπτόντως, ο Guido van Rossum εντυπωσιάστηκε από τη γλώσσα ABC όταν έγραψε την Python. Και η γλώσσα ABC προοριζόταν για εκπαίδευση και δημιουργία πρωτοτύπων.

Κριτική της γλώσσας Python

Η Python είναι μια από τις πιο αργές γλώσσες προγραμματισμού

Μπορείτε να βρείτε πολλά στο Διαδίκτυο διάφορες δοκιμέςταχύτητα γραμμένων προγραμμάτων διαφορετικές γλώσσεςπρογραμματισμός. Η Python είναι συνήθως στο τέλος των λιστών.
Συνήθως, η Python αναφέρεται στο CPython, την υλοποίηση αναφοράς της γλώσσας. Υπάρχουν και άλλες υλοποιήσεις της γλώσσας Python, όπως η PyPy. Η PyPy είναι ταχύτερη από την CPython και πολλές άλλες γλώσσες προγραμματισμού δέσμης ενεργειών και είναι πολύ κοντά στην Java σε ταχύτητα. Αλλά υπάρχει ένα πρόβλημα - δεν εφαρμόζεται πλήρως στο PyPy Γλώσσα Python, εξαιτίας αυτού, πολλά προγράμματα Python δεν λειτουργούν σε αυτό.
Πολλοί προγραμματιστές γράφουν ένθετα σε C/C++ για να επιταχύνουν την εργασία τους συμφόρηση. Η Python δεν έχει σχεδιαστεί για υπολογιστικές εργασίες, για εργασίες που απαιτούν πολλή μνήμη (memory bound) και παρόμοια. Πρέπει να μπορείς να διαλέξεις κατάλληλα εργαλείαγια τα καθήκοντα που αντιμετωπίζετε. Ο Guido van Rossum μιλά για αυτό σε συνέντευξή του.

Το GIL αποτρέπει την ταυτόχρονη εκτέλεση πολλαπλών νημάτων

Το Global Interpreter Lock αποτρέπει την ταυτόχρονη εκτέλεση πολλαπλών νημάτων Python. Αυτά είναι χαρακτηριστικά του CPython. Είναι όμως αυτό ένα μειονέκτημα; Πρέπει να καταλάβετε ότι όλα εξαρτώνται από την εργασία. Εάν η εργασία σας εξαρτάται από την ταχύτητα εισόδου/εξόδου (εργασία δεσμευμένη με IO), τότε είναι πιο αποτελεσματικό να χρησιμοποιείτε πολλές διεργασίες που θα λειτουργούν ασύγχρονα με εξωτερικούς πόρους. Και οι ροές από κοινή μνήμηκαλό για υπολογιστικές εργασίες (με CPU). Αλλά ακόμα κι αν χρειαστεί να δουλέψετε με νήματα, μπορείτε να απενεργοποιήσετε το GIL για λίγο, αφού αυτό γίνεται στο μαθηματικό πακέτο NumPy.

Δεν υπάρχουν καλά εργαλεία διανομής

Δυστυχώς ο κώδικας βρίσκεται σε Python, η οποία έχει πολλές εξαρτήσεις βιβλιοθήκες συστήματος, δύσκολο να μεταφερθεί σε άλλα συστήματα. Αυτό το πρόβλημα λύνεται με χρησιμοποιώντας virtualenv. αλλά αυτό το εργαλείο επικρίνεται πολύ από τους διαχειριστές συστήματος.

Πρόσθετες πληροφορίες

Ιστορίες επιτυχίας Python
Χρησιμοποιήσατε την Python για να γράψετε ΤΙ;
Σε τι χρησιμοποιείται η Python;
Περισσότερες αποδείξεις ότι είναι ο κόσμος της Python και ότι απλώς ζούμε σε αυτόν
ΜΕΣΟΣ ΜΙΣΘΟΣ ΓΙΑ ΕΡΓΑΣΙΕΣ ΠΟΥ ΑΠΑΙΤΟΥΝ PYTHON
Λίστα λογισμικού Python

Υπάρχουν πολλές χρήσεις για την Python, αλλά υπάρχουν μερικές στις οποίες είναι ιδιαίτερα καλός. Ας καταλάβουμε τι μπορεί να γίνει σε αυτή τη γλώσσα.

Βασικές διαφορές:

  • Το Flask παρέχει απλότητα, ευελιξία και πλήρη έλεγχοστο έργο. Επιτρέπει στον χρήστη να αποφασίσει ανεξάρτητα πώς να εφαρμόσει ορισμένα πράγματα.
  • Το Django είναι μια υπηρεσία all-inclusive. Εκτός του κουτιού έχει ήδη έναν πίνακα διαχειριστή, διεπαφές βάσης δεδομένων, ORM (Σχεσιακή αντιστοίχιση αντικειμένων) και μια δομή καταλόγου για τα έργα σας.

Τι να επιλέξω;

  • Επιλέξτε Flask εάν θέλετε περισσότερη εμπειρία και ευκαιρίες μάθησης. Ή εάν χρειάζεστε μέγιστο έλεγχο σε όλα τα στοιχεία που χρησιμοποιούνται, για παράδειγμα, βάσεις δεδομένων.
  • Επιλέξτε Django αν σας ενδιαφέρει το τελικό προϊόν. Ειδικά αν εργάζεστε με απλές εφαρμογές, όπως ένας ιστότοπος ειδήσεων, ένα κατάστημα, ένα ιστολόγιο και θέλετε κάθε εργασία να επιλύεται με έναν εξαιρετικά σαφή τρόπο.

Με άλλα λόγια, το Flask είναι ίσως καλύτερη επιλογήγια τον αρχάριο προγραμματιστή καθώς περιέχει λιγότερα στοιχεία. Επιπλέον, αξίζει να επιλέξετε εάν χρειάζεστε λεπτό συντονισμόσχέδιο.

Το Flask, λόγω της ευελιξίας του, είναι πιο κατάλληλο για τη δημιουργία REST API.

Από την άλλη, αν ο στόχος είναι να κάνεις κάτι γρήγορα και εύκολα, μάλλον θα πρέπει να επιλέξεις το Django.

Data Science: Machine Learning, Data Analysis and Visualization

Πρώτα απ 'όλα, πρέπει να καταλάβετε τι είναι.

Ας υποθέσουμε ότι θέλετε να αναπτύξετε ένα πρόγραμμα που θα εντοπίζει αυτόματα αυτό που εμφανίζεται σε μια εικόνα.

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

Και εδώ πρέπει να δει ένα τραπέζι.

Ίσως σκέφτεστε ότι μπορείτε απλώς να γράψετε κώδικα ανάλυσης εικόνας για να λύσετε αυτό το πρόβλημα. Για παράδειγμα, αν υπάρχουν πολλά ανοιχτό καφέ pixel στην εικόνα, συμπεραίνουμε ότι πρόκειται για σκύλο.

Ή μπορείτε να μάθετε να αναγνωρίζετε άκρες και όρια σε μια εικόνα. Στη συνέχεια η εικόνα με ένας μεγάλος αριθμόςΤα ευθεία όρια πιθανότατα θα αποδειχθούν τραπέζι.

Ωστόσο, αυτή είναι μια αρκετά περίπλοκη και κακοσχεδιασμένη προσέγγιση. Τι πρέπει να κάνετε εάν η φωτογραφία δείχνει έναν λευκό σκύλο χωρίς καφέ κηλίδες; Ή αν η εικόνα δείχνει ένα στρογγυλό τραπέζι;

Εδώ είναι που μπαίνει στο παιχνίδι μηχανική μάθηση. Συνήθως υλοποιεί μερικά , τα οποία επιτρέπουν την αυτόματη ανίχνευση ενός οικείου μοτίβου μεταξύ των δεδομένων εισόδου.

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

  • Το scikit-learn έχει ενσωματωμένους αρκετούς δημοφιλείς αλγόριθμους εκμάθησης.
  • Το TensorFlow είναι μια βιβλιοθήκη χαμηλότερου επιπέδου. Σας επιτρέπει να δημιουργείτε προσαρμοσμένους αλγόριθμους.

Για όσους είναι νέοι στη μηχανική μάθηση, το scikit-learn είναι ένα καλό μέρος για να ξεκινήσετε. Περισσότερο έμπειρους προγραμματιστές, που αντιμετωπίζουν προβλήματα απόδοσης, αξίζει να ρίξετε μια πιο προσεκτική ματιά στο TensorFlow.

Πώς να μελετήσετε τη μηχανική μάθηση;

Οι πραγματικοί αναλυτές, όπως αυτοί της Google ή της Microsoft, κάνουν το ίδιο πράγμα, μόνο που η δουλειά τους είναι πιο περίπλοκη και πολύπλοκη.

Χρησιμοποιούν γλώσσα Ερωτήματα SQLγια ανάκτηση δεδομένων από βάσεις δεδομένων. Στη συνέχεια χρησιμοποιούνται για ανάλυση και οπτικοποίηση ειδικά εργαλεία, για παράδειγμα Mathplotlib (για Python) ή D3.js (για JavaScript).

Τρόποι χρήσης της Python για ανάλυση και οπτικοποίηση δεδομένων

Μία από τις πιο δημοφιλείς βιβλιοθήκες για οπτικοποίηση είναι η Mathplotlib.

Οι αρχάριοι πρέπει να αρχίσουν να μαθαίνουν με αυτό για δύο λόγους:

  • χαμηλό όριο εισόδου?
  • Η γνώση του Mathplotlib θα σας επιτρέψει να κατανοήσετε γρήγορα πιο σύνθετες βιβλιοθήκες που βασίζονται σε αυτό στο μέλλον, για παράδειγμα, στη θάλασσα.

Πώς να μάθετε την ανάλυση δεδομένων στην Python;

Πρόσφατα, ορισμένες εταιρείες άρχισαν να χρησιμοποιούν εφαρμογές επιφάνειας εργασίας JavaScript. Για παράδειγμα, η εφαρμογή επιτραπέζιου υπολογιστή Slack δημιουργήθηκε χρησιμοποιώντας το πλαίσιο Electron JavaScript.

Το πλεονέκτημα της σύνταξης επιτραπέζιων εφαρμογών σε JavaScript είναι ότι μπορείτε να χρησιμοποιήσετε ξανά τον κώδικα από την έκδοση web.

Python 3 ή Python 2

Η Python 3 είναι μια πιο σύγχρονη και δημοφιλής επιλογή.

Επεξήγηση κώδικα backend και frontend

Ας υποθέσουμε ότι θέλετε να κάνετε κάτι που θυμίζει Instagram.

Οι μαθητές του Skillbox, ένας δάσκαλος και ένας προγραμματιστής μιλούν για τα χαρακτηριστικά της γλώσσας και τις απαιτήσεις της αγοράς.

Σελιδοδείκτες

Υλικό προετοιμασμένο με την υποστήριξη

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

Είναι μια γλώσσα προγραμματισμού υψηλού επιπέδου γενικού σκοπού. Η σύνταξη της γλώσσας είναι μινιμαλιστική: αυτό είναι απαραίτητο για να αυξηθεί η παραγωγικότητα των προγραμματιστών και η αναγνωσιμότητα του κώδικα.

Η Python είναι μια από τις πιο δημοφιλείς και προσαρμοστικές γλώσσες που αναπτύσσεται πολύ γρήγορα. Οι προγραμματιστές Python έχουν πάντα ζήτηση στην αγορά.

Nikita Sobolev - προγραμματιστής, ιδρυτής του στούντιο Wemake.services

Εάν γνωρίζετε οποιαδήποτε άλλη γλώσσα προγραμματισμού, τότε η εκμάθηση της Python θα είναι πολύ εύκολη. Αυτή είναι η ιστορία μου - προγραμματιζόμουν σε Java, αλλά ξαφνικά χρειάστηκε να μάθω Python. Δεν υπήρχαν προβλήματα: η γλώσσα ήταν απλή, το όριο εισόδου χαμηλό.

Είχα τα δικά μου έργα σε Java, αλλά μου άρεσε περισσότερο η Python. Συγκεκριμένα, με αυτή τη γλώσσα έχω χρόνο να γράψω περισσότερο κώδικα. Η παραγωγικότητα ενός προγραμματιστή που εργάζεται στην Python είναι πολλαπλάσια. Ως εκ τούτου, η ομάδα μας έχει αλλάξει εντελώς σε αυτήν τη γλώσσα.

Μετά από ένα χρόνο εργασίας με την Python, μπορείτε να γίνετε πολύ πιο αποτελεσματικοί. Για σύγκριση, παλεύω με τις γλώσσες Erlang και Elixir εδώ και τρία χρόνια και ακόμα δεν ξέρω πολλά, γιατί έχουν τις δικές τους ιδιαιτερότητες. Η Python είναι λιγότερο δύσκολη.

Οι προγραμματιστές με γνώση Python έχουν μεγάλη ζήτηση. Εάν υποδείξετε στο προφίλ σας Github έργα με Python που έχουν τουλάχιστον 10-15 αστέρια, τότε αυτόματα εμπίπτετε στους αλγόριθμους των ειδικών HR, οι οποίοι αρχίζουν να τους πλημμυρίζουν με γράμματα κάθε δύο μέρες: καθίστε, επιλέξτε και συμφωνήστε με ό,τι θέλετε. σαν.

Nikita Sobolev

Προγραμματιστής και ιδρυτής του Wemake.services studio

Οι εταιρείες χρειάζονται πολλούς ανθρώπους, αλλά απλά δεν υπάρχουν σε αυτή την ποσότητα. Υπάρχουν αρκετές υποενότητες ανάπτυξης Python στην αγορά, οι οποίες είναι πλέον οι πιο δημοφιλείς - οι εργοδότες προσλαμβάνουν ακόμη και αρχάριους. Το πρώτο είναι η Επιστήμη των Δεδομένων. Αυτή η κατεύθυνση βασίζεται σχεδόν εξ ολοκλήρου στην Python. Οι ειδικοί χρειάζονται καλή μαθηματική κατάρτιση και βασικές γνώσειςγλώσσα.

Η δεύτερη υποενότητα είναι η διάλυση. Οι προγραμματιστές γράφουν "αράχνες" που κυκλοφορούν και συλλέγουν πληροφορίες σε ιστότοπους και χρησιμοποιούν τις πληροφορίες που λαμβάνονται για τον ένα ή τον άλλο σκοπό. Τέτοιοι ειδικοί χρειάζονται βασικές γνώσεις προγραμματισμού Python.

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

Ωστόσο, φυσικά, υπάρχει ανάπτυξη ιστού, με την οποία είναι αρκετά δύσκολο να μπεις μόνο βασικές γνώσεις. Οι υψηλότερες απαιτήσεις τίθενται σε αυτόν τον τομέα. Αλλά είναι επίσης δυνατό να ξεκινήσετε την ανάπτυξη ιστού στην Python με βασικές δεξιότητες. Υπάρχουν δύο επιλογές εισόδου - ανοιχτού κώδικα και ελεύθερος επαγγελματίας.

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

Όμως, παρά τη ζήτηση για προγραμματιστές Python, υπάρχουν αρκετοί σοβαροί ειδικοί και είναι δύσκολο να βρεθούν. Είναι όλα κρυμμένα γιατί οι εταιρείες τους προστατεύουν, τους προστατεύουν και προσεύχονται για αυτούς: η εύρεση αντικαταστάτη για έναν τέτοιο ειδικό είναι εξαιρετικά δύσκολη.

Vadim Shandrinov - καθηγητής μαθήματος

Προγραμματίζω 30 χρόνια. Ξεκίνησα για πρώτη φορά στην όγδοη δημοτικού και συνέχισα στο κολέγιο. Ασχολούμαι με την ανάπτυξη Python από το 2000.

Το πλεονέκτημα αυτής της γλώσσας προγραμματισμού είναι ότι έχει χαμηλό εμπόδιο εισόδου για εκμάθηση. Για να γράψετε έναν απλό μικρό κωδικό, λίγες μέρες θα είναι αρκετές. Αλλά θα πρέπει να αφιερωθεί πολύ περισσότερος χρόνος για τη μελέτη πιο λεπτών πραγμάτων - βιβλιοθήκες, αρχές και προσεγγίσεις.

Python - ανοιχτή γλώσσα, υπάρχουν πηγές. Ο προγραμματιστής μπορεί να δει τι κάνουν άλλοι προγραμματιστές και πώς. Δεδομένου ότι η γλώσσα είναι παλιά, πολλές βιβλιοθήκες έχουν γραφτεί για αυτήν - για όλες τις περιπτώσεις.

Τώρα, μου φαίνεται, η Python έχει γίνει πολύ δημοφιλής - πολλοί οργανισμοί έχουν αρχίσει να το χρησιμοποιούν: NASA, Google, Dropbox, Instagram και άλλοι. Παρόμοια κατάστασηήταν με Java, η οποία χρησιμοποιείται πλέον από μεγάλες εταιρείες. Για παράδειγμα, όλη η ανάπτυξη Android πραγματοποιείται σε αυτήν τη γλώσσα.

Μελετάω τις κενές θέσεις που δημοσιεύονται στο hh.ru: περίπου 200 διαφορετικές προσφορές είναι διαθέσιμες στους αιτούντες κάθε μέρα. Η αγορά είναι πολύ μεγάλη, οι ειδικοί έχουν μεγάλη ζήτηση. Αλλά υπάρχει μια αποτυχία - οι εταιρείες, κατά κανόνα, χρειάζονται έναν προγραμματιστή με μεσαίο ή ανώτερο επίπεδο. Σχεδόν όλες οι κενές θέσεις υποδηλώνουν εργασιακή εμπειρία δύο έως τριών ετών. Οι νέοι προγραμματιστές απαιτούνται πολύ σπάνια - συνήθως μόνο μεγάλες εταιρείες όπως η Yandex μπορούν να αντέξουν οικονομικά να προσλάβουν νέους ειδικούς.

Επομένως, οι Junior προγραμματιστές δυσκολεύονται να βρουν δουλειά - ξέρουν τη γλώσσα, έχουν έργα, αλλά δεν μπορούν να βρουν δουλειά, παρά τη ζήτηση.

Νομίζω ότι η πορεία μας θα βοηθήσει να γεφυρωθεί αυτό το χάσμα: προετοιμάζουμε ειδικούς με γνώση όχι μόνο της γλώσσας, αλλά και των διαθέσιμων βιβλιοθηκών και πλαισίων. Θα οργανώσουμε επίσης πρακτική άσκηση: προσκαλούμε τις εταιρείες να γίνουν συνεργάτες, ώστε να μπορέσουμε στη συνέχεια να αναλάβουμε το καλύτερο για την πρακτική μας άσκηση.

Η ιδιαιτερότητα του μαθήματος είναι ότι η εκπαίδευση ξεκινά από τα πολύ βασικά. Έχουμε συμπεριλάβει πολλά στοιχεία gamification - εξηγώ ορισμένα σημεία, όπως λένε, στα δάχτυλα. Για παράδειγμα, χρησιμοποιώντας κινούμενα σχέδια ή δραματοποιήσεις.

Το μάθημα έχει ένα μεγάλο οπτικό στοιχείο - οι νιφάδες χιονιού που πέφτουν, τα διαστημόπλοια και άλλα στοιχεία εμφανίζονται χρησιμοποιώντας κώδικα. Αυτό είναι πολύ πιο ενδιαφέρον από απλές γραμμές στην κονσόλα.

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

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

Μπορούμε να πούμε ότι μιμούμαστε την επαγγελματική ζωή ενός προγραμματιστή. Αυτό είναι απαραίτητο γιατί κατά την πρόσληψη, οι εταιρείες δεν ρωτούν για τη γνώση των συστημάτων ελέγχου εκδόσεων, αλλά για την εμπειρία εργασίας μαζί τους.

Το μάθημα χωρίζεται σε δύο μέρη. Το πρώτο είναι αφιερωμένο στην ίδια την Python, με δεξιότητες προγραμματισμού σε αυτήν. Μετά την ολοκλήρωση του πρώτου μέρους, ο μαθητής καταλαβαίνει αν του ταιριάζει ή όχι. Το δεύτερο μέρος του μαθήματος είναι η ανάπτυξη Ιστού χρησιμοποιώντας το πλαίσιο Django. Μετά την αποφοίτησή του, ο μαθητής μπορεί να τοποθετηθεί ως ένας δυνατός Junior προγραμματιστής.

Igor, 25 ετών - φοιτητής με μικρή εμπειρία προγραμματισμού στη C++

Εργάζομαι ως δασκάλα σε συλλόγους ρομποτικής - διδάσκω στα παιδιά ηλεκτρονικά και προγραμματισμό. Έχω ανώτερη τεχνική εκπαίδευση, αλλά μπορώ να ονομάσω την ποιότητά της «μη καλή». Έχω επίσης βασικές δεξιότητες προγραμματισμού C++.

Διαβάζω τακτικά περιοδικά - "Popular Mechanics", "Machines and Mechanisms" και RBC. Αυτές οι δημοσιεύσεις μιλούν για την ανάπτυξη της βιομηχανίας πληροφορικής, τη μηχανική μάθηση, το Διαδίκτυο των πραγμάτων, το blockchain, κβαντικούς υπολογιστέςκαι άλλοι. Η Python χρησιμοποιείται συχνά σε αυτούς τους τομείς: είναι δημοφιλής και οι εφαρμογές της είναι ευρείες. Μπορούμε να πούμε ότι η γλώσσα θα σας βοηθήσει να μπείτε μεγάλο αριθμόδιαφορετικές σφαίρες.

Ήθελα να ασχοληθώ περισσότερο με τον προγραμματισμό και αποφάσισα να δοκιμάσω να μάθω Python. Έψαξα για μαθήματα στο Διαδίκτυο και τα εξέτασα διαφορετικές επιλογέςκαι εγκαταστάθηκε στο Skillbox.

Μετά από κάθε ενότητα υπάρχει εργασία για το σπίτι - χωρίς να την ολοκληρώσετε δεν θα μπορείτε να προχωρήσετε επόμενο θέμα. Τα καθήκοντα είναι διαφορετικά. Για παράδειγμα, όταν χρειάστηκε να προγραμματιστεί ένας προσομοιωτής ζωής βασισμένος σε κείμενο στον οποίο υπάρχουν άνθρωποι και γάτες - ήταν απαραίτητο να καταλάβουμε πόσα ζώα θα μπορούσε να ταΐσει.

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

Igor Sensky

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

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

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

Κατά τη γνώμη μου, οι βασικές γνώσεις που παρέχει το μάθημα είναι ίσες με την εμπειρία ενός Junior προγραμματιστή. Αυτό σημαίνει ότι μπορείτε να κάνετε πρακτική άσκηση σε μια εταιρεία ή στην άλλη.

Αλεξάνδρα, 29 ετών - φοιτήτρια με εμπειρία στον προγραμματισμό σε C++

Προγραμματίζω πέντε χρόνια. Μία από τις γλώσσες που ξέρω είναι η C++. Αλλά η δουλειά μου σχετίζεται με την επιστήμη και η συγγραφή κώδικα δεν βρίσκεται στην κορυφή της λίστας των ευθυνών μου.

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

Έχω εγγραφεί στο Skillbox εδώ και πολύ καιρό και είδα πληροφορίες σχετικά με ένα μάθημα για την ανάπτυξη Python. Δεν είχα ξαναδουλέψει με αυτή τη γλώσσα και δεν με ενδιέφερε, αν και ήξερα για την ύπαρξή της. Μάταια: αποδείχθηκε ότι αυτή είναι μια δροσερή και ενδιαφέρουσα γλώσσα προγραμματισμού.

Αλεξάνδρα Ολεϊνίκοβα

Φοιτητής

Μόλις πρόσφατα έγραψα το μάθημα και συνεχίζω αρχικό στάδιοεκπαίδευση. Μας παραδίδονται μαθήματα βίντεο, αλλά αν έχετε ερωτήσεις, μπορείτε να γράψετε στον δάσκαλο. Μετά από κάθε θέμα υπάρχουν εργασίες για το σπίτι - ο δάσκαλος τις ελέγχει χειροκίνητα και μετά σας λέει τι να διορθώσετε. Όταν το αποτέλεσμα είναι ικανοποιητικό, μπορείτε να προχωρήσετε στο επόμενο μάθημα.

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

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

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

Δεν έχω ακόμη σχέδια να χρησιμοποιήσω την Python στην πράξη, γιατί δεν έχω σχέδια να σταματήσω τη δουλειά μου. Είδα αυτό το μάθημα ως ανανέωση του εγκεφάλου μου για να θυμάται τον προγραμματισμό: ανεξάρτητα από τη γλώσσα, τα βασικά είναι τα ίδια και υπάρχει κάτι να θυμάμαι. Αλλά, φυσικά, δεν θα ήθελα να τελειώσω το μάθημα και να ξεχάσω εντελώς την Python: είναι μια πραγματικά δροσερή γλώσσα.

Η Python είναι η δεύτερη πιο δημοφιλής γλώσσα προγραμματισμού στον κόσμο. Ένα πρακτικό μάθημα προγραμματισμού Python διάρκειας 4 μηνών με μεμονωμένο μέντορα είναι κατάλληλο για όσους θέλουν να μάθουν τα βασικά του προγραμματισμού σε μια καθολική, κατανοητή και συνοπτική γλώσσα.

  • Περισσότερα από 80 μαθήματα βίντεο σε 16 ενότητες.
  • Έλεγχος όλων σχολική εργασία στο σπίτιδάσκαλος.
  • Πιστοποιητικό ολοκλήρωσης του μαθήματος.