Πώς να επιλέξετε μια γλώσσα προγραμματισμού για να μάθετε σήμερα και να αποκτήσετε μια εξαιρετική δουλειά σε 2 χρόνια

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

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

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

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

Μια μέθοδος για την τρέλα;

crazy

Δεν είναι η πρώτη φορά που συζητάμε για την επιλογή μιας γλώσσας προγραμματισμού: Πίσω το 2011, συζητήσαμε ποια γλώσσα προγραμματισμού θα πρέπει να μάθετε για την ανάπτυξη λογισμικού; Ποια γλώσσα προγραμματισμού πρέπει να μάθετε για την ανάπτυξη λογισμικού; Ποια γλώσσα προγραμματισμού πρέπει να μάθετε για την ανάπτυξη λογισμικού; Όταν ξεκινάτε από την πορεία του προγραμματισμού, είναι σημαντικό να επενδύσετε το χρόνο σας με σύνεση επιλέγοντας να μάθετε κάτι που θα σας ωφελήσει στο άμεσο μέλλον με ορατά αποτελέσματα στην πλατφόρμα σας ... Περισσότερα, καθώς και ποια θα πρέπει να μάθετε για τον προγραμματισμό στο Web Ποια γλώσσα προγραμματισμού για μάθηση - Προγραμματισμός ιστού Ποια γλώσσα προγραμματισμού για μάθηση - Προγραμματισμός web Σήμερα θα εξετάσουμε τις διάφορες γλώσσες προγραμματισμού στο διαδίκτυο που τροφοδοτούν το Internet. Αυτό είναι το τέταρτο μέρος σε μια σειρά αρχαρίων προγραμματισμού. Στο μέρος 1, μάθαμε τις βασικές ... Διαβάστε περισσότερα.

Αλλά δεν πρόκειται για μια συμβουλή (όπως το "go with JavaScript") αλλά για μια μεθοδολογία - κάτι που οι άνθρωποι θα μπορούσαν να χρησιμοποιήσουν σε δύο χρόνια από σήμερα, θεωρητικά . Πώς να καταλάβετε ποιες γλώσσες είναι σε άνοδο; Ποιες μετρήσεις δημοτικότητας κώδικα πρέπει να εμπιστευτείτε και ποιες να δυσπιστούν (και γιατί); Ποιες είναι οι καλύτερες ιστοσελίδες προβολής μισθών; Είναι το GitHub ένδειξη ή όχι;

Για παράδειγμα, θα βρείτε κανείς που δεν αναβλύζει την PHP αυτές τις μέρες - αλλά πολλοί, πολλοί προγραμματιστές κάνουν μια καλή διαβίωση κωδικοποίηση PHP, και εξακολουθεί να είναι το μεγαλύτερο μέρος του τι τρέχει στο Web. Έτσι μαθαίνει τώρα PHP μια κακή ιδέα; (Πιθανώς…)

Δεν υπάρχει μία γλώσσα

choices

Αυτό είναι όπου ο James, ο κάτοικος του Web developer και ο τεχνολόγος μας, ενέκρινε το εξής:

Οι προγραμματιστές γενικά δεν μαθαίνουν ούτε μία γλώσσα ούτως ή άλλως. Οποιοσδήποτε πηγαίνει στην κλασική διαδρομή CompSci θα καταλήξει σε πολλή Java, λίγο Haskell, κάποιο Prolog αν ακολουθήσει ένα μάθημα στο AI, κάποιο κόμβο αν ακολουθήσει μαθήματα στην αρχική μηχανική, κάποια PHP αν μαθαίνουν παραδοσιακά CMSes, μερικοί .NET αν κάνουν intern σε κάποιο άχρηστο εταιρικό γραφείο, κάποιοι JavaScript αν κάνουν σχεδιασμό ιστοσελίδων, κάποια C + + αν κάνουν σχεδιασμό παιχνιδιών και τελικά κάποιο Ruby αν θέλουν να χάσουν τη ζωή τους με σκοτεινές γλώσσες που κανένας χρησιμοποιεί πραγματικά.

Δεν υπάρχει "μεθοδολογία", και δεν επιλέγετε μια γλώσσα για μάθηση: σας επιλέγει!

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

Αλλά τι εάν δεν μάθετε CompSci;

Απάντησα στον James, λέγοντας:

Εδώ είναι το πράγμα: Αυτό δεν είναι για κάποιον που λαμβάνει την κλασική διαδρομή CompSci. Κρίνοντας από την έκρηξη MOOC και τον αριθμό των σε απευθείας σύνδεση μαθημάτων προγραμματισμού, πολλοί άνθρωποι παίρνουν την κωδικοποίηση μόνο από το μηδέν. Και όταν αρχίσετε έτσι, χρειάζεστε μια γλώσσα για να ξεκινήσετε από. Ίσως να απομακρυνθείτε από αυτό αργότερα, αλλά αυτή η πρώτη γλώσσα θα είναι μια κρίσιμη επένδυση του χρόνου και της προσπάθειας - γι 'αυτό καλύτερα να αξίζει τον κόπο.

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

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

Επιλέξτε πρώτα ένα έργο, στη συνέχεια μια γλώσσα

trending-projects

Ο James ήρθε πίσω με αυτό:

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

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

Ένας άλλος λόγος για να επιλέξετε ένα έργο πρώτα

Τότε ο Simon εισήλθε με κάποιες ρεαλιστικές συμβουλές:

Πρώτα απ 'όλα, εξαρτάται από το αν θέλετε να αναπτύξετε για το Web ή το "τυπικό" λογισμικό.

Για το τελευταίο, η Java είναι αρκετά καλή:

  • Απλό OO
  • Multi-πλατφόρμα (Linux, Windows, Mac, Android)
  • Παρόμοια σύνταξη με πολλές άλλες γλώσσες προγραμματισμού (JS, C #).

Δεν μπορούμε να πούμε πολλά για την ανάπτυξη του Web, αν και το HTML / JS / CSS / PHP / MySQL φαίνεται να λειτουργεί για πολλούς ανθρώπους. Python, πάρα πολύ.

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

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

Μην μάθετε μια γλώσσα: Μάθετε το σχεδιασμό του λογισμικού

software-design

Έγινε μια συναίνεση. Ο Bruce Epper, της φήμης του MakeUseOf απαντά, είχε το εξής:

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

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

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

Αυτό συνέβη όταν ο Γκίυ επέστησε να μας υπενθυμίσει ότι η γλώσσα έχει σημασία, σε κάποιο βαθμό:

latin

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

Η Python φαίνεται να είναι η αγγλική του σήμερα. Όλο και περισσότερο, βλέπω το Intro CompSci και τα μαθήματα προγραμματισμού ξεκινούν με την Python αντί για την Java, η οποία φαινόταν να είναι πιο δημοφιλής για περίπου 10 χρόνια. Μπορείτε να κάνετε πολλά από αυτά που θέλετε να κάνετε με την Python.

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

Τι είναι "προγραμματισμός εργασίας", ούτως ή άλλως;

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

suit

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

Δεν ανησυχείτε πολύ για τα προνόμια που ρίχνονται στους υπαλλήλους της Startup; Θέλετε σταθερότητα και ένα αξιοπρεπές πακέτο αμοιβής, αλλά δεν υπάρχουν μετοχές; Σας αρέσει να φοράτε επαγγελματικές φόρμες; Μάθετε C #, Java ή COBOL. Το COBOL έχει επίσης το πλεονέκτημα ότι έχει δημιουργηθεί κάθε τραπεζική εφαρμογή (υπερβολή, αλλά έχετε την ιδέα) που έχει γραφτεί σε αυτό. Με τους περισσότερους προγραμματιστές της COBOL είτε συνταξιούχους είτε νεκρούς, υπάρχει μεγάλη ζήτηση για προγραμματιστές της COBOL με κάποιους κερδισμένους μισούς μισθούς! Ωστόσο, θα εργάζεστε σε τεράστιες, κακά γραπτές κωδικές βάσεις που δημιουργήθηκαν για πολλές δεκαετίες. Αυτό δεν είναι διασκεδαστικό.

Αλλά τι γίνεται αν η ασφάλεια της εργασίας δεν είναι η δική σας; Θέλετε να εργαστείτε σε ενδιαφέροντα προϊόντα, αλλά είστε πρόθυμοι να χάσετε την εργασία σας όταν το επιχειρηματικό μοντέλο δεν λειτουργεί; Έχω διαπιστώσει ότι συνεχίζεται (Hacker News) είναι ένας σίγουρος τρόπος για να μάθετε τις γλώσσες που χρησιμοποιούνται από τις νεοσύστατες εταιρείες. Όταν εσωκλείσαμε σε μια πρώιμη δουλειά, χρησιμοποιήσαμε ένα μείγμα Go, Python και CoffeeScript. Άλλες εταιρείες που χρησιμοποιούν το Rails και το Groovy και όλα τα είδη σκοτεινών πλαισίων και γλωσσών. Απλά επιλέξτε ένα και θα βρείτε μια ενδιαφέρουσα δουλειά κάπου.

Νέος κώδικας ή παλαιός;

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

Με τα σχόλιά σας σχετικά με το COBOL, μπορείτε να χτυπήσετε σε άλλη σκέψη: θέλετε να εργαστείτε σε νέο κώδικα ή να διατηρήσετε κάποιον άλλο κώδικα; Αυτό μπορεί να είναι ένα τεράστιο στοιχείο όταν αποφασίζετε σε ποια κατεύθυνση θα κινηθείτε. Για μικρότερα έργα, η διατήρηση ενός κώδικα βάσης γραμμένου από κάποιον άλλο μπορεί να μην είναι τόσο άσχημη, αλλά έχω δει μερικά τμήματα κώδικα όπου έχετε αρκετούς ανθρώπους που το κοιτάζουν για ώρες, ρωτώντας: «Ποιος ήταν αυτός ο τύπος σκέψης;» ή όπου το πρωτότυπο ο προγραμματιστής εκμεταλλευόταν ένα συγκεκριμένο χαρακτηριστικό ή σφάλμα στον μεταγλωττιστή (που μπορεί να έχει καθοριστεί στον τρέχοντα μεταγλωττιστή) για να επιτύχει κάτι.

Τι εάν δεν έχετε μια επιλογή;

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

choice

Ο Matthew θέτει μια καλή ερώτηση με, " Τι είδους εργασία προγραμματισμού θέλετε; "

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

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

Δεν υπάρχει μία απλή απάντηση

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

Είμαι βέβαιος ότι δεν καταγράψαμε όλες τις πιθανές απόψεις εδώ - γι 'αυτό είναι το τμήμα σχολίων. Θα ήθελα πολύ να σας ακούσω να πάρετε αυτό το ερώτημα, είτε είστε επαγγελματίας κωδικοποιητής είτε όχι. Πώς θα επιλέγατε μια γλώσσα προγραμματισμού για να αποκτήσετε καλή δουλειά σε δύο χρόνια; Είναι αυτός ένας ακόμη καλός τρόπος για να διαλέξετε μια γλώσσα; Μοιραστείτε τις σκέψεις σας παρακάτω.

In this article