Μια γλώσσα να τους κυβερνά όλους

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

Μια γλώσσα να τους κυβερνά όλους

Από τη σύνταξη αυτού του άρθρου, το ερώτημα "προγραμματισμός ποια γλώσσα να μάθω πρώτα" επιστρέφει 517 εκατομμύρια αποτελέσματα αναζήτησης. Κάθε ένας από αυτούς τους ιστότοπους θα επαινεί μια συγκεκριμένη γλώσσα και το 90% από αυτούς θα καταλήξουν να προτείνουν Python ή JavaScript.

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

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

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

Το πρώτο μου μάθημα πληροφορικής

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

«Σήμερα θα δοκιμάσουμε παγωτά που ετοιμάζονται μόνοι μας. Αλλά με έναν όρο: πρέπει να κάνετε μια λίστα με συγκεκριμένες οδηγίες για το πώς να ετοιμάσετε το γλυκό και θα τις ακολουθήσω».

«Κανένα πρόβλημα», σκέφτηκα, «αυτό το μάθημα δεν θα αργήσει». Μέσα σε ένα λεπτό περίπου είχα σημειώσει την τέλεια συνταγή για το παγωτό των ονείρων μου:

  1. Τρίψτε και τοποθετήστε τρεις μεζούρες παγωτό βατόμουρο σε ένα μπολ
  2. Ανοίξτε τη σάλτσα σοκολάτας και προσθέστε δύο κουταλιές της σούπας στο ίδιο μπολ
  3. Προσθέστε τη σαντιγί στο μπολ
  4. Τα πασπαλίζουμε όλα με ξυλάκια ζάχαρης και βάζουμε από πάνω ένα κεράσι

Ο δάσκαλός μου —ο «υπολογιστής» σε αυτή τη χαριτωμένη μεταφορά— έκανε μια πιο σαρκαστική, κυριολεκτική παράσταση από ό,τι είχα δει ποτέ πριν. Άρχισε να σπρώχνει με ζήλο τον κουβά του παγωτού με μια σέσουλα χωρίς καν να αγγίξει το καπάκι.

«Εντάξει, εντάξει, αλλά πρώτα πρέπει να το ανοίξεις!» - αναφώνησα, προσπαθώντας να πάρω το κέρασμα όσο το δυνατόν γρηγορότερα.

«Δεν το έγραψες αυτό στις οδηγίες και δεν μπορούσα να σου φτιάξω παγωτό. ΕΠΟΜΕΝΟ!"

Ας προχωρήσουμε γρήγορα για να προσπαθήσουμε #2

  1. Ανοίξτε το παγωτό βατόμουρο αφαιρώντας το καπάκι
  2. Τρίψτε και τοποθετήστε τρεις μεζούρες παγωτό βατόμουρο σε ένα μπολ
  3. Ανοίξτε τη σάλτσα σοκολάτας και προσθέστε δύο κουταλιές της σούπας στο ίδιο μπολ
  4. Προσθέστε τη σαντιγί στο μπολ
  5. Τα πασπαλίζουμε όλα με ξυλάκια ζάχαρης και τοποθετούμε από πάνω ένα κεράσι

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

Ο δάσκαλος έβγαλε το καπάκι, μάζεψε και τοποθέτησε τρεις μεζούρες παγωτό σε ένα μπολ. «Επιτέλους, το όμορφο παγωτό μου άρχισε να γίνεται πραγματικότητα!» Στη συνέχεια άνοιξε τη σάλτσα σοκολάτας και πρόσθεσε δύο κουταλιές της σούπας στο μπολ. Δεν "πρόσθεσε σάλτσα σοκολάτας από δύο κουταλιές της σούπας" - μην το νομίζετε -, φυσικά, έβαλε τα ίδια τα κουτάλια στο μπολ. Χωρίς σάλτσα μέσα τους. Και πάλι, δεν μπήκα στον κόπο να τα γράψω όλα ακριβώς. Αφού έγιναν τα υπόλοιπα με το ίδιο πνεύμα, έλαβα ένα μπολ παγωτό και δύο κουταλιές της σούπας, ελάχιστα αισθητά κάτω από τη θάλασσα της σαντιγί. Από πάνω ήταν ένα ζευγάρι ξυλάκια ζάχαρης.

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

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

  1. Αν δεν το έχετε κάνει ήδη, ανοίξτε κάθε μία από τις παρακάτω συσκευασίες: παγωτό βατόμουρο, σάλτσα σοκολάτας, σαντιγί, ξυλάκια ζάχαρης.
  2. Βγάλτε ένα μπολ και τοποθετήστε το μπροστά σας
  3. Πάρτε μια μπάλα παγωτού και βάλτε τρεις μεζούρες παγωτό βατόμουρο μία μία σε ένα μπολ. Ξαναβάλτε τη σέσουλα παγωτού στη θέση της.
  4. Πάρτε ένα βάζο με σάλτσα σοκολάτας, αφαιρέστε τη σάλτσα και ρίξτε το περιεχόμενο μιας κουταλιάς της σούπας σε ένα μπολ. Επαναλάβετε τη διαδικασία αφαίρεσης και έκχυσης άλλη μια φορά. Ξαναβάλτε το κουτάλι και το βάζο στη θέση τους.
  5. Παίρνετε τη συσκευασία της σαντιγί ανάποδα και κρατώντας την πάνω από το μπολ, περιχύνετε με το παγωτό για 3 δευτερόλεπτα και μετά επαναφέρετε τη συσκευασία στη θέση της.
  6. Πάρτε ένα βάζο με ξυλάκια ζάχαρης, ρίξτε περίπου σαράντα ξυλάκια σε ένα μπολ και βάλτε το βάζο πίσω.
  7. Βγάλτε ένα κεράσι από το μπολ με τα κεράσια και τοποθετήστε το πάνω από το παγωτό.
  8. Δώστε στον μαθητή ένα μπολ με το έτοιμο παγωτό και ένα κουτάλι.

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

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

Καριέρα στον προγραμματισμό

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

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

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

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

Πώς να βελτιώσετε τις θεμελιώδεις γνώσεις

Μια γλώσσα να τους κυβερνά όλουςΦωτογραφία του Christopher Jeschke επί Unsplash

Αν ψάχνετε για ένα σημείο εκκίνησης για να βελτιώσετε τη θεμελιώδη λογική σκέψη σας, δοκιμάστε να ξεκινήσετε εδώ:

Γνωρίστε την πολυπλοκότητα του προγράμματός σας

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

Γνωρίστε τις δομές δεδομένων σας

Οι δομές δεδομένων βρίσκονται στο επίκεντρο κάθε σύγχρονου προγράμματος. Το να γνωρίζετε ποια δομή να χρησιμοποιήσετε σε ποια περίπτωση είναι μια πειθαρχία από μόνη της. Οι δομές δεδομένων σχετίζονται άμεσα με την πολυπλοκότητα του χρόνου εκτέλεσης και η επιλογή της λάθος δομής μπορεί να οδηγήσει σε θεμελιώδη προβλήματα απόδοσης. Η εύρεση ενός στοιχείου σε έναν πίνακα είναι O (n), το οποίο υποδηλώνει το υψηλό κόστος χρήσης πινάκων ως δεδομένων εισόδου. Αναζήτηση πίνακα κατακερματισμού − Ο (1), πράγμα που σημαίνει ότι σε αυτήν την περίπτωση ο χρόνος αναζήτησης μιας τιμής δεν εξαρτάται από τον αριθμό των στοιχείων.

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

Διαβάστε / παρακολουθήστε / ακούστε

Ιστότοποι όπως UdemyPluralsight и CodeAcademy - Εξαιρετική επιλογή για εκμάθηση νέων γλωσσών προγραμματισμού. Αλλά για τα βασικά, συμβουλευτείτε βιβλία για γενικές αρχές κωδικοποίησης, πρακτικές και στυλ. Τα πιο προτεινόμενα βιβλία είναι τα «Design Patterns», «Refactoring. Βελτίωση Υπάρχοντος Κώδικα», «Τέλειος Κώδικας», «Καθαρός Κώδικας» και «Πραγματιστής Προγραμματιστής». Τέλος, κάθε προγραμματιστής θα πρέπει να διατηρεί ένα αντίγραφο του "Αλγόριθμοι" στο χέρι.

Πρακτική!

Δεν μπορείτε να μαγειρέψετε ομελέτα χωρίς να σπάσετε τα αυγά. Ιστότοποι όπως HackerRankCodeWarsCoderByte, TopCoder и LeetCode προσφέρετε χιλιάδες ενδιαφέροντα παζλ για να δοκιμάσετε τις γνώσεις σας σχετικά με τις δομές δεδομένων και τους αλγόριθμους. Δοκιμάστε την τύχη σας στην επίλυση ενός προβλήματος που σας αρέσει, δημοσιεύστε τη λύση σας στο Github και μετά δείτε πώς το προσέγγισαν οι άλλοι. Που μας φέρνει στο τελευταίο σημείο:

Διαβάστε τον κωδικό άλλων ανθρώπων

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο