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

Πριν από λίγες εβδομάδες, δημοσίευσα σχετικά με την εμπειρία μου που προσπαθώ να μάθω JavaScript, C #, Python και πολλά άλλα από το Codecademy, το Udemy και το freeCodeCamp, μαζί με την απόδραση από το καθαρτήριο φροντιστηρίων και την ουσιαστική πρόοδο ως προγραμματιστής.

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

Ακολουθεί μια έκδοση βίντεο αυτής της ανάρτησης εάν προτιμάτε (ρολόι 11 λεπτών):

Σενάριο # 1: Ξέρετε τι θέλετε να δημιουργήσετε

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

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

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

Ανάπτυξη διεπαφής: JavaScript (και HTML / CSS)

Εάν γνωρίζετε ήδη ότι θέλετε να εργαστείτε στο "front end" των ιστότοπων - δηλαδή, οτιδήποτε βλέπει ο χρήστης όταν επισκέπτεται έναν ιστότοπο - θα πρέπει να ξεκινήσετε το ταξίδι κωδικοποίησης με την εκμάθηση JavaScript. Πιθανότατα θα ξεκινήσετε μαθαίνοντας HTML και CSS, που αποτελούν τη ραχοκοκαλιά σχεδόν για κάθε ιστότοπο και, στη συνέχεια, θα αρχίσετε να προσθέτετε JavaScript για να βελτιώσετε τη λειτουργικότητα και τη διαδραστικότητα στους ιστότοπούς σας.

Η JavaScript είναι αρκετά πανταχού παρούσα ως γλώσσα προγραμματισμού και έχει ευκολότερη on-ράμπα από άλλες γλώσσες χαμηλότερου επιπέδου όπως το C ++. Είναι ένα υπέροχο σημείο εκκίνησης αν δεν ξέρετε τι θέλετε να μάθετε ... αλλά περισσότερα σχετικά αργότερα.

Ανάπτυξη Back End: Python, C # ή JavaScript (και SQL)

Ας υποθέσουμε ότι ενδιαφέρεστε περισσότερο να μάθετε για τα κενά των ιστότοπων, να διαχειριστείτε το "back end" και να δοκιμάσετε τη διαχείριση της βάσης δεδομένων. Έχετε πολλές επιλογές εδώ, και η πιο απλή διαδρομή είναι η Python, η οποία είναι μια γλώσσα φιλική για αρχάριους και έχει ώριμα πλαίσια (π.χ. Django και Flask) για ανάπτυξη back-end.

Επίσης, δεν μπορείτε να κάνετε λάθος με το C #, το οποίο θα σας εκθέσει στο οικοσύστημα .NET της Microsoft και σε μια γλώσσα προγραμματισμού που, μόλις μπείτε στα ζιζάνια μαζί του, είναι μια ευχαρίστηση με την οποία μπορείτε να εργαστείτε. Και αν σκέφτεστε να πάτε "πλήρης στοίβα" - που σημαίνει, θέλετε να κάνετε ανάπτυξη front-end και back-end - μπορείτε να σκεφτείτε να μάθετε JavaScript, το οποίο διαθέτει νεότερα αλλά πολύτιμα πλαίσια back end όπως το Express και το Koa. Κάτι τέτοιο θα διευκολύνει επίσης τη διαδικασία εκμάθησής σας καθώς θα χρησιμοποιείτε την ίδια γλώσσα για τον κωδικό και των δύο στοίβων.

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

2D Game Development: JavaScript ή C #

Έχω γράψει αλλού για τον κινητήρα που πρέπει να χρησιμοποιήσετε για να φτιάξετε 2D παιχνίδια, αλλά εδώ είναι το αδύνατο.

Υπάρχουν πολλοί 2D μηχανές παιχνιδιών, πολλές από τις οποίες μπορεί να ταιριάζουν ή να μην σας ταιριάζουν ως προγραμματιστής παιχνιδιών, και ο καθένας με τα δικά του πλεονεκτήματα, ιδιοσυγκρασίες και καμπύλη εκμάθησης. Ορισμένα από αυτά, όπως το Game Maker Studio 2, για παράδειγμα, χρησιμοποιούν τις δικές τους ιδιόκτητες γλώσσες για την εκτέλεση σεναρίων, αλλά στην πραγματικότητα θα σας συνιστούσα να μάθετε πρώτα το JavaScript ή το C #, ακόμα κι αν σκέφτεστε να χρησιμοποιήσετε μια διαφορετική μηχανή παιχνιδιών μακροπρόθεσμα .

Με το JavaScript, μπορείτε να χρησιμοποιήσετε πλαίσια όπως το Phaser για να δημιουργήσετε 2D παιχνίδια ή πλήρως εξοπλισμένους κινητήρες όπως το Construct 3 (ο οποίος χρησιμοποιεί στην πραγματικότητα μεταφορά και απόθεση με χώρο για προσαρμοσμένα σενάρια). Αν επιλέξετε να μάθετε C # αντ 'αυτού, θα συνεργαστείτε με το Unity 2D ή ίσως το MonoGame - αλλά στην πραγματικότητα θα συνιστούσα να ξεκινήσετε με μαθήματα χωρίς κινητήρα (π.χ. .NET) για να αποκτήσετε μια καλή λαβή πρώτα στη γλώσσα.

Η εκμάθηση του JavaScript ή του C # θα σας δώσει τις βασικές γνώσεις κωδικοποίησης που θα χρειαστείτε για να αντιμετωπίσετε μια άλλη μηχανή παιχνιδιών, όπως το Game Maker, παρέχοντας παράλληλα επίσης πράγματα όπως προγραμματισμός βέλτιστων πρακτικών και καθαρή οργάνωση κώδικα.

3D Game Development: C # ή C ++

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

Πιθανότατα θα καταλήξετε να μαθαίνετε και τα δύο σε κάθε περίπτωση, αλλά αν ξεκινήσετε με το C #, μπορείτε να παίξετε με το Unity 3D και στη συνέχεια να φτάσετε στο C ++ με το Unreal Engine 4.

Επιστήμη δεδομένων / Μηχανική εκμάθηση: Python

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

Σενάριο # 2: Δεν ξέρετε τι θέλετε να δημιουργήσετε

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

Εχω πάει εκεί. Είναι ενοχλητικό.

Η πρότασή μου προς εσάς, αλήθεια όπως φαίνεται, είναι να διαλέξετε ένα. Κυριολεκτικά οποιοδήποτε από αυτά, ακόμα κι αν δεν αναφέρονται εδώ. Μάθετε JavaScript. Ή Python. Ή σκουριά. Ή Χάσκελ.

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

  1. Ορίστε ένα χρονικό όριο για τον εαυτό σας. Όπως, "Θα πάρω τους επόμενους τρεις μήνες για να μάθω JavaScript χρησιμοποιώντας δωρεάν εκπαιδευτικά προγράμματα." Εάν, στο τέλος αυτής της περιόδου, αισθάνεστε ότι προχωράτε και είναι ενδιαφέρον για εσάς, συνεχίστε! Εάν όχι, ίσως είναι καιρός να επανεξετάσετε την επιλογή της γλώσσας σας και να δείτε αν υπάρχει κάτι εκεί έξω που μπορεί να σας ταιριάζει καλύτερα.
  2. Δημιουργήστε κάτι που δεν υπάρχει στα μαθήματά σας. Αυτό είναι ένα κρίσιμο βήμα στην ανάπτυξή σας ως προγραμματιστής. Θα το καλύψω στην επόμενη ενότητα.

Σενάριο # 3: Είστε κολλημένοι στο εκπαιδευτικό εργαστήριο

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

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

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

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

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

Ο καλύτερος τρόπος για να σημειώσετε πρόοδο ως προγραμματιστής είναι να επιλέξετε ένα έργο στη γλώσσα της επιλογής σας και να ξεκινήσετε να το κάνετε. Εάν μαθαίνετε JavaScript, για παράδειγμα, μπορείτε να επιλέξετε να δημιουργήσετε έναν απλό ιστότοπο με HTML / CSS και να προσθέσετε κάποια διαδραστικότητα με το jQuery. Πιθανότατα θα ξεκινήσετε δημιουργώντας ένα ολοκληρωμένο περιβάλλον ανάπτυξης, ξεχνώντας αμέσως πώς να κάνετε κάτι που μάθατε στα μαθήματά σας, απογοητευτείτε, κατευθυνθείτε στο Google, βρείτε την απάντηση και συνεχίστε. Στη συνέχεια, θα σημειώσετε πρόοδο, θα κολλήσετε, θα αναζητήσετε Stack Overflow, θα χαράξετε το κεφάλι σας στην επίσημη τεκμηρίωση, ίσως μοιραστείτε τον κωδικό σας με κάποιον και θα επαναλάβετε ολόκληρη τη διαδικασία.

Και θα κάνετε ακριβώς αυτό που κάνουν οι προγραμματιστές όταν δημιουργείτε ένα νέο έργο.

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

Μπορείς να το κάνεις!

Εάν σας άρεσε αυτό το άρθρο, σκεφτείτε το ενδεχόμενο να δείτε τα παιχνίδια και τα βιβλία μου, να εγγραφείτε στο κανάλι μου στο YouTube ή να συμμετάσχετε στο Entromancy Discord .

MS Farzan, Ph.D. έχει γράψει και εργαστεί για εταιρείες υψηλού προφίλ βιντεοπαιχνιδιών και ιστότοπους σύνταξης, όπως Electronic Arts, Perfect World Entertainment, Modus Games και MMORPG.com και έχει υπηρετήσει ως Community Manager για παιχνίδια όπως Dungeons & Dragons Neverwinter και Mass Effect: Andromeda . Είναι ο Creative Director και επικεφαλής σχεδιαστής παιχνιδιών του Entromancy: A Cyberpunk Fantasy RPG και συγγραφέας του The Nightpath Trilogy . Βρείτε MS Farzan στο Twitter @sominator.