νέα

ο θείος μπομπ, ο κύριος του προγραμματισμού στον κόσμο: η "κρίση των 35 ετών" είναι μια ψευδαίσθηση και εμείς οι "παλιοί προγραμματιστές" είμαστε ακόμα εδώ

2024-10-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

απαντά ο μπομπη «35χρονη κρίση» του προγραμματιστή:

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

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

συγγραφέας |. wang qilong

παραγωγή |νέος προγραμματιστής》τμήμα σύνταξης

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

ο robert c. martin είναι γνωστός ως ο παγκοσμίου φήμης γκουρού του προγραμματισμού αυτός ο άνθρωπος ονομάζεται ".ο θείος μπομπο γέρος (θείος μπομπ) είναι πρωτοπόρος της ευέλικτης ανάπτυξης και σχεδίασης ασχολείται με την επαγγελματική δουλειά του λογισμικού από το 1970 και ασχολείται με σχετικές εργασίες για περισσότερα από 50 χρόνια αρχές σχεδίασης στον τομέα του αντικειμενοστρεφούς προγραμματισμού, η στάση του θείου μπομπ απέναντι στην τεχνητή νοημοσύνη είναι πολύ διφορούμενη: από πρακτική άποψη, παραπονέθηκε έντονα.η σημερινή τεχνητή νοημοσύνη είναι απλώς ένας μικρός προγραμματιστής με μόνο μισό εγκέφαλο και δεν θα αναπτυχθεί ποτέ πραγματικά.", επειδή οι εργασίες που μπορεί να ολοκληρώσει η τεχνητή νοημοσύνη είναι αρκετά περιορισμένες, αλλά παρόλο που είναι άνω των 60 ετών, εξακολουθεί να έχει μεγάλες προσδοκίες για το μέλλον: "μέχρι να δημιουργήσουμε μηχανές που θα μπορούν να σκέφτονται σαν άνθρωποι κάποια στιγμή στο μέλλον, οι δεξιότητες προγραμματισμού θα είναι ξεπερασμένες.

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

πρόσφατα, δημοσιεύτηκε η κινεζική έκδοση του τελευταίου βιβλίου του uncle bob "functional design: principles, patterns and practices" πολλοί άνθρωποι αναρωτιούνται γιατί αυτός ο ηγέτης του αντικειμενοστρεφούς προγραμματισμού "πρόδωσε" στο "εχθρικό στρατόπεδο" και ο θείος bob παρουσίασε επίσης. ο πάντα ευθύς χαρακτήρας του και ευθέως «αντιψελλόμενος»:τα τελευταία χρόνια, ορισμένα άρθρα ισχυρίστηκαν ότι ο λειτουργικός προγραμματισμός αντιτίθεται στον αντικειμενοστραφή προγραμματισμό και ότι ο αντικειμενοστραφής προγραμματισμός είναι ξεπερασμένος. διαφώνησα με αυτή την άποψη και αποφάσισα να γράψω αυτό το βιβλίο.

ο λειτουργικός προγραμματισμός είναι κάτι περισσότερο από «προγραμματισμός με λειτουργίες». ο λειτουργικός προγραμματισμός είναι προγραμματισμός χωρίς δηλώσεις ανάθεσης.

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

——«functional design», robert c. martin

οι παραπάνω παρατηρήσεις είναι όλες από τη συνέντευξη του uncle bob από το csdn "new programmer". είχαμε μια εις βάθος ανταλλαγή με αυτό το «ζωντανό απολίθωμα ευέλικτης ανάπτυξης» και ακούσαμε την προσωπική του περιγραφή για το πώς ο ίδιος, ως ένας από τους 17 ηγέτες της βιομηχανίας λογισμικού, συνδημοσίευσε το «agile manifesto» πριν από 23 χρόνια (2001).ιστορικές λεπτομέρειες, και επίσης έμαθε τις πιο πρόσφατες απόψεις σχετικά με τον προγραμματισμό ai από αυτόν τον ανώτερο προγραμματιστή με περισσότερα από 50 χρόνια εμπειρίας ανάπτυξης, κάτι που ανανέωσε τις προηγούμενες απόψεις πολλών ανθρώπων για τον θείο μπομπ.ιστορική εντύπωση. το άρθρο που ακολουθεί θα ξεκινήσει με τις αναμνήσεις του θείου μπομπ από το 1970, μεταφέροντας τους αναγνώστες πίσω στην «αρχαία εποχή των προγραμματιστών», όταν ακόμη και ο παγκόσμιος ιστός δεν είχε ακόμα γεννηθεί.

50+ χρόνια κωδικοποίησης

"νέος προγραμματιστής": πριν ξεκινήσει η συνέντευξη, θα μπορούσατε να κάνετε μια σύντομη εισαγωγή στον εαυτό σας;

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

έχω δουλέψει με διάφορες γλώσσες προγραμματισμού, μεταξύ των οποίωνγλώσσα συναρμολόγησης, cobol, fortran, pl/i, c, c++, pascal, java, c#περιμένετε. με τα χρόνια έχω συμμετάσχει στην ανάπτυξη μιας ποικιλίας συστημάτων που κυμαίνονται από χρηματοοικονομικά συστήματα έως ενσωματωμένα συστήματα σε πραγματικό χρόνο και συστήματα ελέγχου διαδικασιών. ως εκ τούτου, μπορείτε να πείτε ότι έχω μεγάλη εμπειρία σε αυτόν τον κλάδο.

επιπλέον, έχω γράψει πολλά βιβλία, συμπεριλαμβανομένου του clean code (καθαρός κώδικας), "the way to clean architecture" (καθαρή αρχιτεκτονική), και το βιβλίο που συζητάμε σήμερα ονομάζεται "λειτουργικός σχεδιασμός》(λειτουργικός σχεδιασμός)。

"νέος προγραμματιστής"εκτός από τη συγγραφή βιβλίων, τι κάνετε στον ελεύθερο χρόνο σας; παρεμπιπτόντως, διάβαζα συχνά το twitter σας και διαπίστωσα ότι περίπου το 50% των tweet σας είναι κοινωνικές ειδήσεις σχετικά με τις εκλογές στις ηπα και τον τραμπ, και το άλλο 50% αφορά τεχνικό περιεχόμενο, προγραμματισμό και τις απόψεις σας για τον κώδικα.

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

"νέος προγραμματιστής": επιστρέψτε μας στο σημείο εκκίνησης της καριέρας σας στον προγραμματισμό και πείτε μας την ιστορία του πότε ξεκινήσατε να εργάζεστε ως προγραμματιστής το 1970. ήσασταν 18 χρονών τότε και οι πρώτες γλώσσες που μάθατε ήταν η συναρμολόγηση και η cobol μπορείτε να μιλήσετε για την εμπειρία σας όταν ξεκινήσατε για πρώτη φορά;

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

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

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

αυτό ήταν το σημείο εκκίνησης μου και μετά ο μπαμπάς μου αγόρασε πολλά βιβλία για υπολογιστές και γλώσσες προγραμματισμού για να μου δώσει όσες περισσότερες πληροφορίες μπορούσε. στη συνέχεια, στα 16 μου, έπιασα μια δουλειά προγραμματισμού γράφοντας προγράμματα για το honeywell 200. η δουλειά κράτησε δύο τρεις εβδομάδες, όταν εγώακόμα ένα αγόρι, το έκανα στις καλοκαιρινές διακοπές και ήταν τόσο διασκεδαστικό.

περίπου δύο χρόνια αργότερα, όταν ήμουν 18 ετών, έπιασα δουλειά πλήρους απασχόλησης γράφοντας γλώσσα assembly και cobol για το ibm 360. αμέσως μετά, άρχισα να προγραμματίζω πολλούς μικροϋπολογιστές σε γλώσσα assembly. την εποχή που αυτοί οι υπολογιστές κατασκευάζονταν από την varian corporation, πολλές εταιρείες κατασκεύαζαν μικροϋπολογιστές εκείνη την εποχή, αλλά λίγες ήταν επιτυχείς και ήταν η digital equipment corporation (dec) που κυριάρχησε στον τομέα. στη συνέχεια έγινα πολύ ικανός στον προγραμματισμό των pdp 8 και pdp 11, συσκευές που κατασκευάστηκαν στις αρχές της δεκαετίας του 1970.

"νέος προγραμματιστής": η δεκαετία του 1970 ήταν μια πραγματικά ενδιαφέρουσα εποχή ο παγκόσμιος ιστός δεν είχε εφευρεθεί ακόμα, και το usenet μόλιςεμφανίζομαι. είστε ένας από τους πρώτους χρήστες του usenet στον κόσμο και έμαθα επίσης ότι το ψευδώνυμο "uncle bob" σας είχε αρχικά δώσει ένας συνάδελφος στην εταιρεία. αργότερα, χρησιμοποιήσατε κατά λάθος αυτό το ψευδώνυμο ως υπογραφή στο usenet και τελικά το όνομα άλλαξε με επιτυχία από ψευδώνυμο στο πραγματικό σας όνομα. μπορείτε να μοιραστείτε την ιστορία;

ο θείος μπομπ: δούλευα σε μια startup που ονομάζεται clear communication, η οποία ήταν η αρχή της καριέρας μουτέταρτη στάση, κάπου μεταξύ 1987 και 1989. εκεί, ένας συνάδελφος έδωσε σε όλους ένα παρατσούκλι, το δικό μου ήταν «θείος μπομπ». στην αρχή ήταν λίγο ενοχλητικό γιατί τριγυρνούσε και με φώναζε με αυτό το παρατσούκλι: "θείος μπομπ, τι γίνεται με αυτό;"

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

ήμουν πολύ ενεργός στο usenet εκείνη την εποχή, δημοσιεύοντας συχνά άρθρα σε ομάδες συζητήσεων όπως το comp.object και το comp.lang.c++, και οι άνθρωποι άρχισαν να παρατηρούν το "uncle bob" στην υπογραφή μου. ήμουν σε ένα συνέδριο της c++ μια φορά, πιθανότατα γύρω στο 1990, και κάποιος με έδειξε από την άλλη πλευρά της αίθουσας και είπε, "κοίτα, αυτός είναι ο θείος μπομπ", σκέφτηκα, θεέ μου, έκανα ένα λάθος, πραγματικά θα έπρεπε να αλλάξω το δικό μου υπογραφή - αλλά μετά κατάλαβα ότι το "uncle bob" θα ήταν στην πραγματικότητα μια καλή μάρκα, οπότε το κράτησα.

"νέος προγραμματιστής": το usenet μπορεί να θεωρηθεί ως το πρώτο μέσο κοινωνικής δικτύωσης στο οποίο συμμετέχετε. όπως πολλοί θρυλικοί προγραμματιστές, σας αρέσει να συμμετέχετε σε διαφορετικές κοινότητες ή φόρουμ η συνομιλία. τώρα, αυτή η επικοινωνία φαίνεται να πραγματοποιείται κυρίως στο twitter.

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

"νέος προγραμματιστής": αρχικά σας προσέλκυσαν οι c και c++, αλλά αναφέρατε επίσης ότι δοκιμάσατε γλώσσες όπως snobol, focal, alcom και basic χωρίς ενδιαφέρον. ποιες άλλες γλώσσες προγραμματισμού πιστεύετε ότι μπορούν να ονομαστούν "ενδιαφέρουσες"; ειδικά ανάμεσα στις νέες γλώσσες προγραμματισμού που έχουν εμφανιστεί τα τελευταία χρόνια, ποιες βρίσκετε ενδιαφέρουσες;

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

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

ισοδύναμο clojureμια διάλεκτος lisp που μπορεί να τρέξει στο jvm (java virtual machine), ήταν τέλειο για μένα, οπότε άρχισα να μαθαίνω να κωδικοποιώ το clojure και να το διασκεδάζω κάνοντας αυτό, ήταν μια υπέροχη διασκέδαση για μένα.

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

όταν οι μηχανές σκέφτονται όπως οι άνθρωποι, οι δεξιότητες προγραμματισμού θα είναι ξεπερασμένες

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

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

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

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

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

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

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

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

"νέος προγραμματιστής": πριν από περίπου πέντε χρόνια, κάποιος σας ρώτησε "ποιες τάσεις στη μηχανική λογισμικού είναι υπερεκτιμημένες;"σε πέντε χρόνια από τώρα, υπάρχουν άλλες τάσεις που είναι υπερτιμημένες;

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

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

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

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

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

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

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

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

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

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

το «τεχνικό πνεύμα» των προγραμματιστών

"νέος προγραμματιστής": ας απομακρυνθούμε από την τεχνητή νοημοσύνη και ας μιλήσουμε για θέματα από άνθρωπο σε άνθρωπο.

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

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

για παράδειγμα, συναντήθηκα σε ένα συνέδριο σχεδιαστικών μοτίβωνκεντ μπεκ, συναντήθηκαν σε ένα πρώιμο συνέδριο extreme programmingμάρτιν φάουλερ. γνώρισα τους περισσότερους από αυτούς τους ανθρώπους πρόσωπο με πρόσωπο. ήταν και οι συνεργάτες μου και οι μέντοράς μου. είναι και συνομήλικοί μου και μαθαίνουμε και προοδεύουμε μαζί. πολλά από αυτά που έμαθα προέρχονταν από βιβλία προγραμματισμού της δεκαετίας του 1960 και του 1970, όπως το the art of computer programming του donald knuth, και τα βιβλία από εκείνη την εποχή ήταν πολύ σημαντικές πηγές πληροφοριών για μένα.

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

"νέος προγραμματιστής": μπορούμε συχνά να δούμε μια άποψη, δηλαδή «είναι πραγματικά εφαρμόσιμη η ευέλικτη ανάπτυξη;»

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

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

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

"νέος προγραμματιστής": ένα από τα tweet σας με εντυπωσίασε πολύ βαθιά, δηλαδή, «το agility ιδρύθηκε αρχικά απόπρογραμματιστήςξεκίνησε, αλλάδιευθυντής έργουη παρέμβαση στα πρώτα στάδια του ευκίνητου κινήματος κατέστρεψε την αρχική σχέση συνεργασίας. «μπορείς να μου πεις την ιστορία;

ο θείος μπομπ: πράγματι, το agile κίνημα ξεκίνησε αρχικά από μια ομάδαπρογραμματιστήςπου ξεκίνησε. δεκαεπτά συμμετέχοντες συναντήθηκαν στο snowbird resort για να δημιουργήσουν το agile manifesto. είμαστε όλοι προγραμματιστές, ή τουλάχιστον έχουμε ισχυρό τεχνικό υπόβαθρο. αυτό το κίνημα δεν ξεκίνησε από την οπτική της διαχείρισης έργων, αλλά ένας από τους ιδρυτές, ο ken schwaber, αποφάσισε να ξεκινήσει ένα μάθημα που ονομάζεται πιστοποίησηscrum master(scrum master)". αυτό το μάθημα έχει σχεδιαστεί για να εκπαιδεύσει άτομα που θέλουν να γίνουν scrum masters και να τους διδάξει πώς να βοηθήσουν την ομάδα στη χρήσημέθοδος scrum——αυτό είναι ένα μοντέλο ευέλικτης ανάπτυξης.

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

για να λύσουμε αυτό το πρόβλημα, ξεκινήσαμε μια ομάδα από εμάςκίνημα χειροτεχνίας λογισμικού(software craftsmanship) και κυκλοφόρησε το craftsmanship manifesto σε μια προσπάθεια να επανασυνδέσει τους διαχειριστές έργων και τους προγραμματιστές. ωστόσο, αυτό δεν πέτυχε σημαντικά αποτελέσματα.

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

"νέος προγραμματιστής": λοιπόν, ποια είναι η σημασία του ρόλου του scrum master; με ποιους τρόπους είναι σημαντικός αυτός ο ρόλος; πώς καλλιεργούμε έναν εξαιρετικό scrum master;

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

"νέος προγραμματιστής": μόλις αναφέρατε την ιστορία της δεξιοτεχνίας λογισμικού, η οποία μου θύμισε ότι η υπογραφή σας στο twitter γράφει επίσης "δεξιοτεχνία"(χειροτεχνία), αυτή είναι μια πολύ παλιά λέξη, σήμερα θα πρέπει να μεταφραστεί ως "πνεύμα τεχνίτη”。

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

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

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

φυσικά, μπορούμε να συζητήσουμε πολλές τεχνολογίες και μεθόδους, όπως η ανάπτυξη βάσει δοκιμής (tdd), η απλή σχεδίαση, οι αρχές solid κ.λπ. υπάρχουν πολλές τεχνολογίες και έννοιες. αλλά η θεμελιώδης ιδέα είναι ότι στο τέλος κάθε μέρας μπορείτε να πείτε στον εαυτό σας: «έκανα εξαιρετική δουλειά σήμερα, πολλοί προγραμματιστές πηγαίνουν σπίτι, κοιτάζονται στον καθρέφτη και αισθάνονται ότι πρέπει να κάνουν μπάνιο γιατί νιώθουν ότι έκαναν μια κακή μέρα. έγραψαν ένα σωρό κακούς κώδικα μόνο για να τηρήσουν μια προθεσμία και πρέπει να ξεπλύνουν αυτά τα άσχημα συναισθήματα. αυτό είναι η δεξιοτεχνία - να πηγαίνεις σπίτι γνωρίζοντας ότι έχεις κάνει καλή δουλειά και να νιώθεις περήφανος για τη δουλειά σου.

"νέος προγραμματιστής": το βιβλίο σας "the way to clean code" (καθαρός κώδικας) αντικατοπτρίζει επίσης την αρχή της δεξιοτεχνίας. το λεγόμενο «τάο» του καθαρού κώδικα εστιάζει περισσότερο στην εφαρμογή της επιχειρηματικής λογικής παρά στον προγραμματισμό του συστήματος; ή μήπως δεν υπάρχει διαφορά μεταξύ των δύο;

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

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

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

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

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

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

το ai είναι ένας μικρός προγραμματιστής με μόνο μισό εγκέφαλο

και δεν μεγαλώνει ποτέ πραγματικά

"νέος προγραμματιστής": ας μιλήσουμε για το νέο σας βιβλίο "functional design". καταρχήν γιατί ήθελες να γράψεις αυτό το βιβλίο;

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

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

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

εξώφυλλο βιβλίου "functional design: principles, patterns, and practice"

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

"νέος προγραμματιστής": έχω επίσης συγκεντρώσει πολλές ερωτήσεις σχετικά με το νέο βιβλίο από την κοινότητα προγραμματιστών csdn και οι περισσότεροι άνθρωποι είναι πιο περίεργοι για το γιατί επιλέξατεclojureαντί η σκάλα να γράψει τον κώδικα στο βιβλίο; μήπως επειδή θέλετε να χρησιμοποιήσετε μια πιο λειτουργική γλώσσα που δεν υποστηρίζει κλάσεις και κληρονομικότητα, για να αποδείξετε ότι οι αρχές σας solid ισχύουν και στον λειτουργικό σχεδιασμό;

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

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

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

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

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

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

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

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

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

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

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

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

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

"νέος προγραμματιστής": πώς έχετε αλλάξει τον τρόπο που διδάσκετε προγραμματισμό όλα αυτά τα χρόνια; ποιες νέες προσεγγίσεις και μαθήματα έχετε υιοθετήσει για να συμβαδίσετε με το εξελισσόμενο τεχνολογικό τοπίο;

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

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

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

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

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

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

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

τι να κάνετε αν δεν ξέρετε τι να κάνετε όταν αντιμετωπίζετε τον προγραμματισμό ai

στη συνέχεια, απενεργοποιήστε το

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

ο θείος μπομπ: λοιπόν, μπορείτε να επιλέξετε java. τούτου λεχθέντος, η c# είναι επίσης μια πολύ καλή γλώσσα. το clojure είναι επίσης καλό. η γλώσσα c είναι επίσης διαθέσιμη. η c++ είναι λίγο δύσκολη και περίπλοκη, αλλά είναι και μια επιλογή. η γλώσσα go είναι επίσης πολύ καλή, είναι μια καλή γλώσσα...

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

"νέος προγραμματιστής": θα συνιστούσατε σε νεαρούς προγραμματιστές να συμμετέχουν σε έργα ανοιχτού κώδικα; ποια εντυπωσιακά έργα ανοιχτού κώδικα έχετε συμμετάσχει στον εαυτό σας και μπορείτε να μοιραστείτε την ιστορία;

ο θείος μπομπ: με τον γιο μου ξεκινήσαμε ένα έργο πριν από 20 χρόνια και συνεχίζεται ακόμα και είναι ένα υπέροχο έργο. αν και δεν ασχολούμαι πια, πολλοί άλλοι συνεχίζουν.

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

"νέος προγραμματιστής": ξέρεις για την «κρίση των 35»; πολλοί προγραμματιστές αντιμετωπίζουν δύο δρόμους μόλις φτάσουν σε μια ορισμένη ηλικία: είτε να μεταβούν στη διοίκηση είτε να συνταξιοδοτηθούν.

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

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

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

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

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

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

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

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

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

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

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