Ποια γλώσσα προγραμματισμού πρέπει να μάθετε πρώτα το 2020; ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Το ταξίδι των περισσότερων ανθρώπων προς την εκμάθηση του προγράμματος ξεκινά με μια μόνο αναζήτηση Google αργά το βράδυ.

Συνήθως είναι κάτι σαν «Μάθετε ______»

Αλλά πώς αποφασίζουν ποια γλώσσα θα αναζητήσουν;

«Αστειεύονται πάντα για την Java στη Silicon Valley. Υποθέτω ότι πρέπει να το μάθω αυτό. "

Ή:

«Χάσσελ. Τόσο ζεστό τώρα. Χάσσελ. "

Ή:

«Ότι ο Go gopher είναι τόσο χαριτωμένος.»

Και μετά έχουμε τους υπόλοιπους. Πιθανότατα θα αναζητήσουμε κάτι όπως:

"Ποια γλώσσα προγραμματισμού πρέπει να μάθω πρώτα;"

Λίγες ερωτήσεις τίθενται τόσο συχνά ώστε να λαμβάνουν την πλήρη infographic θεραπεία. Αλλά αυτό είναι ένα από αυτά:

Το να αποφασίσετε για την πρώτη σας γλώσσα προγραμματισμού μπορεί να είναι μια διασκεδαστική διαδικασία - σαν ένα από αυτά "Ποιος χαρακτήρας Quentin Tarantino είσαι;" κουίζ προσωπικότητας.

Αλλά προτού ξεκινήσετε να μάθετε τον Ruby επειδή σας άρεσε να παίζετε με το Play-Doh ως παιδί, επιτρέψτε μου να σας υπενθυμίσω: τα στοιχήματα είναι αρκετά υψηλά εδώ.

Θα χρειαστείτε εκατοντάδες ώρες πρακτικής για να γίνετε ακόμη πιο ικανοί με την πρώτη σας γλώσσα προγραμματισμού.

Επομένως, πρέπει να λάβετε υπόψη τους ακόλουθους παράγοντες:

  • την αγορά εργασίας για τη γλώσσα
  • τις μακροπρόθεσμες προοπτικές για τη γλώσσα
  • πόσο εύκολο είναι να μάθεις τη γλώσσα
  • ποια έργα μπορείτε να δημιουργήσετε ενώ μαθαίνετε (και μοιραστείτε με φίλους για να παραμείνετε παρακινημένοι)

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

Σοβαρά. Δείτε αυτό το στολίδι από τον προηγούμενο μήνα:

Όσον αφορά την επιλογή μιας πρώτης γλώσσας προγραμματισμού, δεν υπάρχει έλλειψη επιλογών. Για να το περιορίσετε λίγο, εδώ είναι οι πιο κοινές αναζητήσεις Google που σχετίζονται με τον προγραμματισμό εκμάθησης, τα τελευταία 12 χρόνια:

Η Java είχε τα σκαμπανεβάσματα της.

Η Python ανέβηκε σταδιακά για να γίνει η πιο δημοφιλής επιλογή.

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

Πριν μιλήσω για αυτές τις γλώσσες προγραμματισμού, επιτρέψτε μου να διευκρινίσω:

  • Δεν υποστηρίζω ότι οποιαδήποτε γλώσσα είναι αντικειμενικά καλύτερη από οποιαδήποτε άλλη
  • Συμφωνώ ότι οι προγραμματιστές θα πρέπει τελικά να μάθουν περισσότερες από μία γλώσσες
  • Υποστηρίζω ότι πρώτα πρέπει να μάθουν μια γλώσσα καλά. Και - όπως πιθανότατα μπορείτε να μαντέψετε από το ανάποδο κείμενο στον τίτλο μου - αυτή η γλώσσα πρέπει να είναι JavaScript.

Ας ξεκινήσουμε τα πράγματα εξερευνώντας πώς ο προγραμματισμός διδάσκεται επί του παρόντος στο σχολείο.

Επιστήμη Υπολογιστών 101

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

Φυσικά, όπως μπορεί να έχετε ακούσει μέχρι τώρα:

«Η εκπαίδευση στην επιστήμη των υπολογιστών δεν μπορεί να κάνει κανέναν έναν ειδικό προγραμματιστή περισσότερο από το να μελετάς πινέλα και η χρωστική μπορεί να κάνει κάποιον έναν έμπειρο ζωγράφο». - Έρικ Σ. Ρέιμοντ

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

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

Και οι καρέκλες των τμημάτων παραμένουν γενικά στο μάθημα, δείχνοντας τους ετήσιους πίνακες κατάταξης γλωσσών προγραμματισμού όπως ο δείκτης TIOBE ή αυτός από τον IEEE:

Οι περισσότεροι από αυτούς τους πίνακες βαθμολογίας μοιάζουν σχεδόν με τον τρόπο που ήταν πριν από 10 χρόνια.

Αλλά η αλλαγή συμβαίνει. Ακόμα και στην ακαδημαϊκή κοινότητα.

Το 2014, η Python ξεπέρασε την Java ως τη δημοφιλέστερη γλώσσα διδασκαλίας σε κορυφαία προγράμματα Επιστήμης Υπολογιστών των ΗΠΑ.

Και όμως μια άλλη αλλαγή αναμένεται να συμβεί ... τελικά ... να συμβεί.

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

Περισσότεροι από τους μισούς προγραμματιστές χρησιμοποιούν JavaScript. Είναι ζωτικής σημασίας για την ανάπτυξη ιστού front-end και όλο και περισσότερο σχετικό με την ανάπτυξη back-end. Και επεκτείνεται γρήγορα σε τομείς όπως η ανάπτυξη παιχνιδιών και το Διαδίκτυο των πραγμάτων.

Οι δημοσιεύσεις εργασίας αναφέρουν επίσης JavaScript περισσότερο από οποιαδήποτε γλώσσα προγραμματισμού εκτός από την Java:

Δεν είναι τυχαίο που δημιουργήσαμε το πρόγραμμα σπουδών της κοινότητας ανοιχτού κώδικα γύρω από το JavaScript. Τα τελευταία δύο χρόνια, περισσότερα από 5.000 άτομα έχουν χρησιμοποιήσει το Free Code Camp για να πάρουν την πρώτη τους δουλειά προγραμματιστή.

Δεν υποστηρίζω το JavaScript επειδή το διδάσκω. Διδάσκω JavaScript γιατί είναι η πιο σίγουρη διαδρομή για μια πρώτη εργασία προγραμματιστή.

Αλλά είναι σωστό το JavaScript για εσάς; Αξίζει να είναι η πρώτη σας γλώσσα προγραμματισμού; Ας εξερευνήσουμε αυτούς τους παράγοντες που ανέφερα νωρίτερα.

Παράγοντας # 1: Η αγορά εργασίας

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

Όπως ανέφερα νωρίτερα, η Java αναφέρεται σε περισσότερες θέσεις εργασίας από οποιαδήποτε άλλη γλώσσα προγραμματισμού. Το JavaScript είναι πολύ κοντά.

Αλλά εδώ είναι το θέμα της JavaScript: παρόλο που έχει περάσει εδώ και 20 χρόνια, μόλις πρόσφατα έγινε ένα σοβαρό εργαλείο που εταιρείες όπως η Netflix, η Walmart και η PayPal θα δημιουργούσαν ολόκληρες εφαρμογές.

Ως αποτέλεσμα, πολλές εταιρείες προσλαμβάνουν προγραμματιστές JavaScript, αλλά δεν υπάρχουν πολλές στην αγορά εργασίας.

Υπάρχουν 2,7 προγραμματιστές Java που ανταγωνίζονται για κάθε ανοιχτή θέση Java. Ο ανταγωνισμός για θέσεις εργασίας PHP και iOS είναι εξίσου έντονος.

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

Παράγοντας 2: Οι μακροπρόθεσμες προοπτικές

Το μέσο έργο JavaScript λαμβάνει δύο φορές περισσότερα αιτήματα έλξης από το μέσο έργο Java, Python ή Ruby. Και επιπλέον, το JavaScript αναπτύσσεται ταχύτερα από οποιαδήποτε άλλη δημοφιλή γλώσσα.

Το οικοσύστημα της JavaScript επωφελείται επίσης από μια τεράστια επένδυση χρημάτων και τεχνικού ταλέντου από εταιρείες όπως η Google, η Microsoft, το Facebook και το Netflix.

Για παράδειγμα, το TypeScript (ένα υπερσύνολο JavaScript με στατικό τύπο) έχει περισσότερους από 100 συνεισφέροντες ανοιχτού κώδικα, πολλοί από τους οποίους πληρώνονται για υπαλλήλους της Microsoft και της Google.

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

Παράγοντας # 3: Δυσκολία στην εκμάθηση

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

Παρόλο που τα πανεπιστήμια εξακολουθούν να διδάσκουν γλώσσες όπως η Java και το C ++ ως πρώτες γλώσσες, είναι πολύ πιο δύσκολο να μάθουν.

Παράγοντας # 4: Έργα που μπορείτε να δημιουργήσετε μαζί του

Εκεί λάμπει η JavaScript. Το JavaScript εκτελείται σε οποιαδήποτε συσκευή διαθέτει πρόγραμμα περιήγησης, ακριβώς εκεί στο πρόγραμμα περιήγησης. Μπορείτε να δημιουργήσετε βασικά οτιδήποτε με το JavaScript και να το μοιραστείτε οπουδήποτε.

Λόγω της παρουσίας του JavaScript, ο συνιδρυτής του Stack Overflow, Jeff Atwood, επινόησε τον πλέον διάσημο νόμο του:

«Κάθε εφαρμογή που μπορεί να γραφτεί σε JavaScript, θα τελικά να είναι γραμμένη σε JavaScript.»

Και με κάθε περνώντας μήνα, ο νόμος του Atwood ισχύει ισχυρός.

Η Java υποσχέθηκε κάποτε να τρέξει παντού. Μπορεί να θυμάστε Java Applets. Η Oracle τους σκότωσε επίσημα νωρίτερα αυτό το έτος.

Η Python πάσχει από τα ίδια προβλήματα:

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

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

Μάθετε μια γλώσσα καλά. Στη συνέχεια, μάθετε ένα δεύτερο.

Εάν συνεχίζετε να μεταβαίνετε από γλώσσα σε γλώσσα, δεν θα φτάσετε μακριά.

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

Από εκεί, μπορείτε να διακλαδώσετε και να γίνετε ένας πιο ολοκληρωμένος προγραμματιστής μαθαίνοντας πολλές γλώσσες:

  • Το C είναι ένας πολύ καλός τρόπος για να μάθετε πώς λειτουργούν πραγματικά οι υπολογιστές όσον αφορά τη διαχείριση μνήμης και είναι χρήσιμος σε υπολογιστές υψηλής απόδοσης
  • Το C ++ είναι ιδανικό για ανάπτυξη παιχνιδιών.
  • Η Python είναι καταπληκτική για την επιστήμη και τις στατιστικές.
  • Η Java είναι σημαντική αν θέλετε να εργαστείτε σε μεγάλες εταιρείες τεχνολογίας.

Αλλά μάθετε πρώτα το JavaScript.

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

Αντίσταση # 1: Αλλά δεν είναι αργή η JavaScript;

Το JavaScript είναι - για τους περισσότερους πρακτικούς σκοπούς - τόσο γρήγορα όσο οι γλώσσες υψηλής απόδοσης.

Το JavaScript (Node.js) είναι τάξεις μεγέθους γρηγορότερες από τις Python, Ruby και PHP.

Είναι επίσης τόσο γρήγορη όσο οι γλώσσες υψηλής απόδοσης όπως C ++, Java και Go.

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

Αντίσταση # 2: Ωστόσο, το JavaScript δεν είναι στατικά δακτυλογραφημένο

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

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Αλλά έπειτα το ανέθεσα κατά λάθος να είναι μια χορδή.

exampleArray = “text” -> “text” exampleArray.length -> 4

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

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

"Το Typescript έχει καμπύλη εκμάθησης, αλλά αν γνωρίζετε ήδη τη JavaScript, θα είναι ομαλή." - Alex Ewerlöf στο TypeScript

Αντίσταση # 3: Αλλά θέλω πραγματικά να δημιουργήσω μια εφαρμογή για κινητά

Συνιστώ να μάθω πρώτα το JavaScript.

  1. Το JavaScript διαθέτει πολλά εργαλεία για τη δημιουργία εγγενών εφαρμογών για κινητά, όπως το Angular Cordova και το React Native.
  2. Προκειμένου η εφαρμογή σας για κινητά να κάνει πραγματικά κάτι ενδιαφέρον, πιθανότατα θα χρειαστεί ένα κατάλληλο back-end, το οποίο θα θελήσετε να δημιουργήσετε με ένα κατάλληλο πλαίσιο ανάπτυξης ιστού, όπως το Node.js + Express.js.

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

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

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

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

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

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

Και αυτό σημαίνει JavaScript.

Αντίσταση # 4: Δεν είναι JavaScript μια γλώσσα παιχνιδιού που γράφτηκε σε 10 ημέρες;

Το JavaScript έχει ένα περίεργο ιστορικό.

Αναμφίβολα θα ακούσετε τους ανθρώπους να κάνουν αστεία σε βάρος του.

Λοιπόν, οι άνθρωποι λατρεύουν να μισούν και στο C ++. Και όπως το JavaScript, το C ++ πέτυχε παρά αυτό το μίσος και τώρα είναι σχεδόν παντού.

Αν λοιπόν κάποιος σας δυσκολεύσει ποτέ να μάθει JavaScript αντί για ελίτ-γλώσσα της εβδομάδας, θυμηθείτε απλώς τα διάσημα λόγια του άντρα που δημιούργησε το C ++

"Υπάρχουν μόνο δύο είδη γλωσσών προγραμματισμού: αυτοί οι άνθρωποι πάντα αγκαλιάζουν και αυτοί που κανείς δεν χρησιμοποιεί." - Bjarne Stroustrup

Γράφω μόνο για τον προγραμματισμό και την τεχνολογία. Αν με ακολουθήσετε στο Twitter δεν θα σπαταλήσω το χρόνο σας. ;