Διαβάστε, Αναζήτηση, (Μην φοβάστε να) Ρωτήστε

«Ως μηχανικοί και ως προγραμματιστές, πληρώνουμε για να είμαστε απογοητευμένοι… ταυτόχρονα, είμαστε πάντα στο σχολείο. Μαθαίνουμε πάντα. "- Carlos Lazos, Επεισόδιο 1 του CodeNewbie Podcast

Η κωδικοποίηση είναι ένα ταξίδι σε αμφισημία.

Είτε σχεδιάζετε ένα RESTful API, κλιμακώνοντας μια εφαρμογή σε χιλιάδες χρήστες είτε απλώς προσπαθείτε να τοποθετήσετε κάτι σωστά με CSS, θα υπάρχουν πάντα πράγματα που δεν γνωρίζετε.

Την επόμενη φορά που θα κολλήσετε και δεν ξέρετε πώς να προχωρήσετε, δοκιμάστε να χρησιμοποιήσετε τη μέθοδο «Read-Search-Ask» του Free Code Camp. Όπως υποδηλώνει το όνομά του, εσείς:

  1. διαβάστε την τεκμηρίωση ή το σφάλμα
  2. αναζήτηση στο Google
  3. ζητήστε βοήθεια - χωρίς να φοβάστε να ρωτήσετε!

Ας βυθίσουμε βαθύτερα σε κάθε ένα από αυτά.

Ανάγνωση

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

Εάν λαμβάνετε σφάλματα, διαβάστε το σφάλμα! Προσπαθήστε να καταλάβετε τι προσπαθεί να πει. Εάν δεν λαμβάνετε κάποιο σφάλμα, αλλά δεν γνωρίζετε πραγματικά τι συμβαίνει, μπορείτε να προσπαθήσετε να κάνετε εντοπισμό σφαλμάτων μέσω της μεθόδου console.log ().

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

Ένα χρήσιμο εργαλείο για αυτό είναι η κονσόλα του προγράμματος περιήγησής σας. Εάν εργάζεστε στο CodePen, περιέχει επίσης μια κονσόλα.

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

Εάν εξακολουθείτε να έχετε κολλήσει, ίσως είναι καιρός να απευθυνθείτε στο Google.

Αναζήτηση

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

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

Να είστε συγκεκριμένοι, να είστε συνοπτικοί

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

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

«Θέλω να αλλάξω ένα πράγμα σε μια συμβολοσειρά» οδηγεί σε μια πληθώρα αποτελεσμάτων.

Παίρνετε τα πάντα, από τα υποστρώματα στο R έως τους «10 δροσερούς τρόπους για να πάρετε περισσότερα από το Word's Find and Replace» (το οποίο, ως αποτέλεσμα αυτής της αναζήτησης, κατέληξα να προσθέσω σελιδοδείκτες για να το διαβάσω αργότερα). Όχι ακριβώς αυτό που ψάχνουμε.

Όταν η Googling - ειδικά όταν πρόκειται για προβλήματα προγραμματισμού - η σύμβαση που τείνουν να ακολουθούν πολλοί προγραμματιστές είναι:

[γλώσσα προγραμματισμού] [ρήμα] [λέξεις-κλειδιά]

Ας το δοκιμάσουμε στο θέμα μας. Εάν εισαγάγουμε "javascript αντικαταστήστε χαρακτήρα σε συμβολοσειρά", λαμβάνουμε τα ακόλουθα.

Αυτό φαίνεται πολύ πιο κοντά σε αυτό που ψάχνουμε!

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

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

Το τέταρτο αποτέλεσμα αναζήτησης είναι "Πώς μπορώ να αντικαταστήσω έναν χαρακτήρα σε ένα συγκεκριμένο ευρετήριο σε JavaScript", οπότε θα έκανα κλικ σε αυτό, στη συνέχεια θα ανακαλύψω ότι οι συμβολοσειρές είναι αμετάβλητες και ότι δεν μπορείτε να αλλάξετε μόνο έναν χαρακτήρα!

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

Υπερχείλιση στοίβας

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

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

Μόλις ξέρω τις επιλογές μου και τα πλεονεκτήματα και τα μειονεκτήματα του καθενός, θα προσπαθήσω να τις εφαρμόσω.

(Μην φοβάστε) Ρωτήστε

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

Οι πραγματικοί άνθρωποι μπορούν να έρθουν σε κάθε είδους μορφή:

  • τους φίλους σας (αν έχετε φίλους που κωδικοποιούν)
  • ομάδες συναντήσεων (αν πάτε σε συναντήσεις)
  • συμπατριώτες στα κανάλια και τα φόρουμ του Free Code Camp Gitter
  • οποιεσδήποτε ομάδες Slack ή Facebook μπορείτε να συμμετέχετε, μεταξύ άλλων

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

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

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

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

Κάποιος έβγαινε στην υπερηφάνεια: Ένιωσα ότι θα έπρεπε να καταλάβω γιατί ο κώδικάς μου έκανε αυτό που έκανε. ("Είμαι έξυπνος και ικανός άνθρωπος. Θα το καταλάβω!")

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

Χαίρομαι που λέω ότι έκανα σίγουρα λάθος για κάθε δικαιολογία που θα μπορούσα να σκεφτώ. Η κοινότητα του Free Code Camp αποτελείται από ανθρώπους που είναι πολύ φιλικοί, γνώστες και υπομονετικοί.

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

Δεν είχα ποτέ κάποιον να μου μιλήσει ή να νομίζει ότι είμαι χαζός ή ανίκανος. Ποτέ δεν είχα κάποιον να μην απαντήσει σε μία από τις ερωτήσεις μου, όσο απλό κι αν ήταν.

Οι πιθανότητες είναι, εάν κάποιος απαντά σε ερωτήσεις στα φόρουμ ή στην αίθουσα συνομιλίας, το κάνει ειδικά επειδή θέλει να βοηθήσει άλλους ανθρώπους!

Ως μπόνους, μερικές φορές σαφώς αρθρώνοντας ποιο είναι το πρόβλημά σας, μπορείτε να δείτε τι συμβαίνει. Υπήρξαν πολλές φορές όταν έκανα μια ερώτηση, μόνο για να αναγνωρίσω αμέσως τι έπρεπε να κάνω στη συνέχεια. (Στη συνέχεια ευχαριστήσω το άτομο, και θα απαντήσει πίσω, «Λοιπόν, εγώ δεν πραγματικά κάνει τίποτα ...»)

Συνοψίζοντας

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

Χρήσιμοι Σύνδεσμοι:

Πώς να ξεκινήσετε όταν είστε κολλημένοι

Τεκμηρίωση JavaScript του Mozilla

Τεκμηρίωση του jQuery

Εισαγωγή στο εντοπισμό σφαλμάτων JavaScript

Η κύρια αίθουσα συνομιλίας Free Code Camp Gitter (υπάρχουν και άλλα δωμάτια με πιο συγκεκριμένους σκοπούς, όπως να λάβετε βοήθεια με έργα front-end ή να βρείτε κάποιον για να συνδυάσετε το πρόγραμμα)

Δωρεάν φόρουμ Code Camp

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