paint-brush
Κύριοι, επιλέξτε τα όπλα σας! Γλώσσες προγραμματισμού που πρέπει (όχι;) να μάθετεμε@shcherbanich
244 αναγνώσεις

Κύριοι, επιλέξτε τα όπλα σας! Γλώσσες προγραμματισμού που πρέπει (όχι;) να μάθετε

με Filipp Shcherbanich7m2024/09/03
Read on Terminal Reader
Read this story w/o Javascript

Πολύ μακρύ; Να διαβασω

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

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Κύριοι, επιλέξτε τα όπλα σας! Γλώσσες προγραμματισμού που πρέπει (όχι;) να μάθετε
Filipp Shcherbanich HackerNoon profile picture
0-item
1-item

Όπως λέει και το παλιό ρητό, λίγα πράγματα στη ζωή είναι χειρότερα από το να φέρνεις ένα μαχαίρι σε έναν καβγά. Ως έμπειρος προγραμματιστής, μπορώ να σας πω ότι αυτό ισχύει 100% και για τον κόσμο του προγραμματισμού. Πρέπει να παραμείνετε σχετικοί σε έναν κλάδο που αλλάζει πιο γρήγορα από ό,τι γράφω αυτό το άρθρο. Επίσης, έχετε τόσες πολλές διαφορετικές εργασίες να κάνετε. Έτσι, μετά από χρόνια επιβίωσης σε αυτό το περιβάλλον, κρατάω πάντα τα αγαπημένα μου παιχνίδια κοντά και φορτωμένα. Για μια αθόρυβη και ακριβή δουλειά, υπάρχει η αξιόπιστη C++ μου. Αν θέλω να κάνω μια μεγάλη έκρηξη δεδομένων, επιλέγω το R, κάπως υπερβολικό, αλλά πειστικά ισχυρό. Αλλά αν τα πράγματα γίνονται πραγματικά ακατάστατα, αφαιρώ το JavaScript μου από τον τοίχο: με κράτησε ζωντανό στο παρελθόν και μπορεί να χρειαστεί ακόμα λίγη κατάχρηση. Καμία γλώσσα δεν είναι καλή ή κακή για όλους. Εξαρτάται από εσάς και τη δουλειά που πρέπει να κάνετε. Ας συζητήσουμε λοιπόν αν πρέπει να συμβαδίζετε πάντα με τη μόδα ή να μένετε στα παλιά καλά πράγματα. Αυτή η ερώτηση είναι λίγο πιο δύσκολη από όσο φαίνεται…

Είναι κάθε μέρα μια νέα αρχή;..

Δεδομένης της καινοτόμου φύσης της τεχνολογίας, η συζήτηση για το αν θα μάθουμε άλλη γλώσσα μπορεί να ακούγεται εντελώς ανόητη. Πράγματι, αν ο κόσμος έμενε ακίνητος, θα χρησιμοποιούσαμε ακόμα πήλινες πλάκες και άβακες. Ευτυχώς, η επιθυμία για καινοτομία οδηγεί σε συνεχείς προόδους, απαιτώντας συνεχείς αναβαθμίσεις δεξιοτήτων. Για παράδειγμα, στη δεκαετία του 1960, η επικοινωνία με υπολογιστές περιελάμβανε το άνοιγμα τρυπών στο χαρτί και την τροφοδοσία του σε μια μηχανή. Σήμερα, οι υπολογιστές χωράνε στις τσέπες μας και οι μόνες τρύπες που συναντάμε είναι στους προϋπολογισμούς μας μετά την αγορά τους. Φανταστείτε τον πιο προηγμένο προγραμματιστή από τη δεκαετία του '60 να προσπαθεί να παραμείνει σχετικός χωρίς να εξελίξει τις δεξιότητές του.


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


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


Η εκμάθηση νέων γλωσσών είναι επωφελής όχι μόνο για πρακτικούς λόγους αλλά και για δημιουργικότητα. Μπορεί να προσφέρει νέες προσεγγίσεις σε γνωστές εργασίες, διευρύνοντας τις προοπτικές και τις δυνατότητες. Για παράδειγμα, το Symfony, ένα δημοφιλές πλαίσιο PHP, εμπνεύστηκε το πλαίσιο Spring που βασίζεται σε Java. Πολλοί προγραμματιστές βιβλιοθηκών ανοιχτού κώδικα έχουν πάρει ιδέες από βιβλιοθήκες που έχουν υλοποιηθεί σε άλλες γλώσσες και θα μπορούσατε να είστε ο επόμενος καινοτόμος.

…Ή μήπως ο παλιός πραγματικός χρυσός;

Αλλά για του λόγου το αληθές, ας δούμε αντίστροφα όλα τα πράγματα που συζητήσαμε στο προηγούμενο κεφάλαιο. Γνωρίζετε πότε χρησιμοποιήθηκαν για τελευταία φορά οι κάρτες διάτρησης; Απλώς μαντέψτε… Και εκτός κι αν εξαπατήσατε γυρίζοντας την απάντηση αυτή τη στιγμή στο γκουγκλ, η εικασία σας θα ήταν πιθανώς λάθος. Η σωστή απάντηση είναι το 2014. Εκείνη τη χρονιά, τα τελευταία χαρτιά διάτρησης χρησιμοποιήθηκαν με εκλογικές μηχανές στην πολιτεία του Αϊντάχο κατά τη διάρκεια των γενικών εκλογών στις ΗΠΑ. Ή πάρτε την COBOL, τη γλώσσα που καταστρέψαμε ως ξεπερασμένη μόλις πριν από μερικές παραγράφους. Λοιπόν, από το 2017, σύμφωνα με Reuters , το 43% όλων των τραπεζικών συστημάτων βασίστηκαν στην COBOL. Το 80% των προσωπικών συναλλαγών χρησιμοποιούσε COBOL και υπήρχαν 220 δισεκατομμύρια γραμμές κώδικα γραμμένες σε COBOL που εξακολουθούσαν να χρησιμοποιούνται. Υπάρχει λοιπόν στην πραγματικότητα μια (όχι και τόσο λεπτή) γραμμή μεταξύ της ασχετικότητας μιας γλώσσας για τα σύγχρονα συστήματα και της απαρχαιότητάς της γενικά.


Ποιες είναι οι πιθανότητες μια γλώσσα προγραμματισμού που γνωρίζετε ή πρόκειται να μάθετε, να καταστεί απαρχαιωμένη και άχρηστη σύντομα; Δεν υπάρχει πραγματική απάντηση σε αυτό, μόνο εικασίες. Μερικοί συγγραφείς εκτιμούν ότι ο μέσος κύκλος ζωής μιας γλώσσας προγραμματισμού βρίσκεται οπουδήποτε μεταξύ 14 και 18,5 ετών . Άλλοι λέγω είναι πιο κοντά στα 25 χρόνια για τις κυρίαρχες γλώσσες και 5-6 για πιο εξειδικευμένα και εξωτικά εργαλεία. Αλλά υπάρχει επίσης μια ακόμη άποψη αξίζει να αναφερθεί γιατί φαίνεται αρκετά αποδεδειγμένο από την ιστορία. Βασίζεται στο φαινόμενο Lindy, που περιγράφεται καλύτερα από τον Nassim Nicholas Taleb στο βιβλίο του «Αντίθραυστο: Πράγματα που κερδίζουν από τη διαταραχή» : «Αν ένα βιβλίο τυπώνεται σαράντα χρόνια, μπορώ να περιμένω να τυπωθεί για άλλα σαράντα χρόνια. Όμως, και αυτή είναι η βασική διαφορά, αν επιβιώσει άλλη μια δεκαετία, τότε αναμένεται να εκτυπωθεί άλλα πενήντα χρόνια. Αυτό, απλά, κατά κανόνα, σας λέει γιατί τα πράγματα που υπάρχουν εδώ και πολύ καιρό δεν «γερνούν» όπως τα πρόσωπα, αλλά «γερνούν» αντίστροφα. Κάθε χρόνο που περνά χωρίς εξαφάνιση διπλασιάζει το πρόσθετο προσδόκιμο ζωής. Αυτό είναι ένας δείκτης κάποιας στιβαρότητας. Η στιβαρότητα ενός αντικειμένου είναι ανάλογη της ζωής του!».


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

Σκεφτείτε τη σταδιοδρομία και όχι τις γλώσσες

Τι πρέπει να κάνουμε λοιπόν; Μάθετε μια γλώσσα; Ένα νέο ή ένα παλιό; Λοιπόν, η ίδια η μάθηση είναι πάντα καλή. Η έρευνα δείχνει ότι σχεδόν οι μισοί προγραμματιστές σκέφτονται να μάθουν μια νέα γλώσσα. Σύμφωνα με το JetBrains " The State of Developer Ecosystem 2023 " στην έρευνα, πάνω από 40% των ερωτηθέντων εξέφρασαν αυτήν την επιθυμία. Οι προγραμματιστές που εργάζονται με JavaScript (49%), PHP και Python (45%) και προγραμματιστές C++ (44%) δείχνουν το μεγαλύτερο ενδιαφέρον να μάθουν κάτι νέο. Επιλέγοντας τη γλώσσα που θέλετε Το να μάθετε πραγματικά εξαρτάται από την πορεία της καριέρας σας Εάν σκέφτεστε μια σταθερή δουλειά που θα μπορούσε να διαρκέσει αρκετά (αλλά όχι για πάντα), μπορεί να επιλέξετε κάτι παλιό και αποδεδειγμένο ιδρύματα με μακροχρόνια ακριβά μηχανήματα ή/και υποδομές που εξαρτώνται σε μεγάλο βαθμό από τον κώδικα παλαιού τύπου.


Για παράδειγμα, η πλειοψηφία των προγραμματιστών COBOL ήταν μεταξύ 45 και 55 ετών το 2017. Προσθέστε επτά χρόνια που πέρασαν από τη δημοσίευση της έρευνας και θα δείτε ότι πολλοί προγραμματιστές COBOL εισέρχονται στην ηλικία συνταξιοδότησης. Εάν το COBOL διαρκεί όσο αναμένεται, αυτή μπορεί να είναι η ευκαιρία σας να γίνετε ένας σπάνιος ειδικός υψηλής αξίας. Αλλά να έχετε κατά νου ότι μια τέτοια επιλογή θα απαιτούσε πολύ βαθιά γνώση και άψογη ικανότητα. Επίσης, εάν κάτι πάει στραβά, η περαιτέρω επιλογή εργασίας σας μπορεί να είναι πολύ περιορισμένη εκτός και αν αποφασίσετε να αλλάξετε το προφίλ σας.


Αν προτιμάτε τη ζωντανή ζωή των startups ή τη δύναμη των τεχνολογικών κολοσσών, θα πρέπει να επιλέξετε κάτι πιο σύγχρονο και πολλά υποσχόμενο. Βλέποντας τι κάνουν οι άλλοι μπορεί να σας δώσει μια ιδέα: για παράδειγμα, ελέγξτε την ενημερωμένη κατάταξη των γλωσσών προγραμματισμού από Red Monk ή TIOBE . Μην τα παίρνετε πολύ στα σοβαρά, καθώς οποιαδήποτε κατάταξη μπορεί να φανταστεί κανείς βασίζεται σε κάποιο βαθμό απλοποίησης, αλλά μπορεί να σας δίνουν τη μεγάλη εικόνα του τι συμβαίνει. Επίσης, η αναφερόμενη έρευνα της JetBrains αποκαλύπτει ποιες γλώσσες μαθαίνονται πιο συχνά. Με αυτόν τον τρόπο, είναι σίγουρο ότι θα μάθετε μια γλώσσα με μέλλον.

Να είστε πάντα πρακτικοί

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


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


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