Προγραμματισμός: Η Ψυχολογία των Υπολογιστών

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

Σε αυτό το άρθρο (την αρχή μιας μικρής σειράς που σκοπεύω να δημιουργήσω), Θέλω να μοιραστώ μαζί σας μερικές έννοιες για το τι έχω ανακαλύψει σχετικά με τον προγραμματισμό με τα χρόνια. Δεν προσποιούμαι ότι είμαι υπερβολικά τεχνικός, θα εξηγήσω γιατί αργότερα. Αλλά αυτό που κάνω είναι να τους κάνω να δουν τον κόσμο με τα μάτια μου, και αν τους αρέσει πώς φαίνεται, τότε αφήστε τους να ερευνήσουν λίγο 🙂

Θα επιτεθώ πρώτα στο απλούστερο σημείο πριν αναφερθώ σε λεπτομέρειες.

Γιατί δεν πρόκειται να κάνω τεχνική ανάρτηση;

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

Η ηλεκτρική ενέργεια είναι σημαντική

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

το πρόβλημα

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

Επεξεργαστές

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

Μητρώα

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

Binario

Οι επεξεργαστές εργάζονται σε δυαδικό επίπεδο, αυτό σημαίνει ότι καταλαβαίνουν μόνο 0sy 1ναι 🙂. Ένα περίεργο γεγονός εδώ 😀θυμάστε τα δικαιώματα GNU / Linux; Καλά, έχετε αναρωτηθεί ποτέ πώς ο επεξεργαστής αναγνωρίζει πραγματικά αυτά τα δικαιώματα; Απλό 🙂 δυαδικό. Στο χαμηλότερο επίπεδο, ένας επεξεργαστής θα κατανοήσει τα δικαιώματα ως διαδοχή των 0s και 1s, και αυτός είναι ο λόγος για τον οποίο το οκταδικό που σχηματίζουμε έχει τις τιμές για εκτέλεση, 2 για ανάγνωση και 4 για γραφή. Για όσους μπορούν να διαβάσουν δυαδικά, θα καταλάβουν ότι:

111100101111

Βάζουν τα δικαιώματα ανάγνωσης, εγγραφής και εκτέλεσης για την ομάδα άλλοι βάζοντας παράσταση και διαβάζοντας για την ομάδα ομάδα και να διαβάσετε μόνο για τον κάτοχο του αρχείου. Για τους πιο περίεργους, τα τελευταία τρία 1s ενεργοποιούν το setguid, setuid και sticky bit. Εάν δεν ξέρετε τι είναι αυτό το δυαδικό, μπορώ να το εξηγήσω σε άλλη ανάρτηση, αν δεν ξέρετε για το setuid, το setgid και το sticky bit, θα το αφήσω ως έργο 😉 αλλά μπορώ επίσης να το εξηγήσω αλλού εάν είναι απαραίτητο.

Όταν η περιέργεια καλεί ...

Λοιπόν, αν με έχετε ακολουθήσει εδώ, τότε η περιέργειά σας πρέπει να αρχίσει να ρωτάει πολλά πράγματα, το πρώτο που θέλω να απαντήσω (και ίσως το μόνο που μου επιτρέπει αυτή η ανάρτηση επειδή γράφω ήδη πολλά) είναι: Εάν οι κλήσεις είναι ίδιες, γιατί τα προγράμματα είναι τόσο διαφορετικά;

Ψυχολογία

Ο προγραμματισμός είναι η τέχνη της μάθησης να διαβάζω μυαλά want Θέλω να ξεκινήσω αυτήν την ενότητα με ένα απόσπασμα που διάβασα πριν από πολύ καιρό, ο Edsger Dijkstra είπε:

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

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

Οι υπολογιστές δεν είναι λάθος

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

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

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

Όλα είναι ψυχολογία

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

Κάντε ένα πράγμα και κάντε το πολύ καλά.

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

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

Μάθετε να διαβάζετε μυαλά

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

Για να είμαστε συνεπείς

Πολλοί προγραμματιστές και ειδικοί λένε ότι πρέπει να βγούμε από το δικό μας ζώνη άνεσης, και παρόλο που είναι αλήθεια, είναι επίσης περισσότερο από απαραίτητο να διατηρηθούν ορισμένες διαδικασίες και μορφές. Αυτό είναι απλό να εξηγηθεί, το μυαλό μας είναι επαναλαμβανόμενο και σέβεται τις δομές, εάν γράφετε κώδικα με τον ίδιο τρόπο κάθε μέρα, σε σύντομο χρονικό διάστημα θα σταματήσετε να σκέφτεστε τη φόρμα και θα είστε σε θέση να επικεντρωθείτε σε αυτήν. φόντο. Αυτό σας επιτρέπει να δείτε το λογική του προγράμματος αντί για το σύνταξη γλώσσας. Και αυτός είναι ο λόγος για τον οποίο θεωρώ ότι η εκμάθηση του έννοιες θα είναι πάντα πιο σημαντικό από τη μάθηση τα έντυπα. Αυτή είναι μια προσωπική γνώμη, αλλά ελπίζω ότι αφού διαβάσετε όλα αυτά, μπορείτε να καταλάβετε γιατί το θεωρώ έτσι told είπε επίσης από κάποιον που έπρεπε να προγραμματίσει C, Java, Javascript, Python, Ruby, PHP και άλλους 🙂 ξέρουν οι έννοιες διευκολύνουν τη σύνταξη κώδικα.

Εν περιλήψει

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Χαβιέ Γ. Ντελγάδο dijo

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

    1.    ChrisADR dijo

      Γεια σας Javier, σας ευχαριστώ πολύ 🙂 Νομίζω ότι αυτό είναι πολύ σημαντικό γιατί πάντα ήθελαν να με διδάξουν μόνο για την αναπαραγωγή κώδικα, το περίφημο Ctrl + C… Ctrl + V 🙂 αλλά δεν έχω αφήσει ποτέ τον εαυτό μου να παρασυρθεί από αυτό, ακόμα κι αν είναι το απλούστερο πρόβλημα στον κόσμο που θα προτιμούσα να το γράψω παρά να το αντιγράψω από κάποιον άλλο, με κάνει να νιώθω σαν να είναι δική μου δημιουργία.
      αφορά

  2.   Μπαλούα dijo

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

  3.   ChrisADR dijo

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

  4.   Anders dijo

    Ένα στολίδι ενός άρθρου! Ελπίζω ότι το επόμενο ...