Θέλετε να γίνετε προγραμματιστής; Πιθανότατα πρέπει να είστε Pair Programming.

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

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

Ακούγεται καλό. Λοιπόν, πώς λειτουργούν πραγματικά οι προγραμματιστές λογισμικού;

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

Το σενάριο του μοναχικού λύκου μπορεί να ισχύει σε ορισμένες περιπτώσεις, όπως η ολοκλήρωση ενός δευτερεύοντος έργου ή η ανεξάρτητη εργασία. Τις περισσότερες φορές, ωστόσο, η ανάπτυξη λογισμικού για προϊόντα οποιασδήποτε ουσιαστικής κλίμακας γίνεται από μια ολοκληρωμένη ομάδα λογισμικού, πιθανότατα με ένα συνδυασμό διαφορετικών δυνατοτήτων ανάπτυξης (βλ. Παρακάτω εικόνα από το DSDM Agile Framework). Αυτή η ομάδα λογισμικού θα συνδεθεί σε μια ευρύτερη επιχειρηματική και εμπορική ομάδα (δεν μπορούμε να ξεχάσουμε τον τελικό μας χρήστη :))

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

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

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

Εντάξει, με ενδιαφέρει…

Για τους άγνωστους: τι είναι ο προγραμματισμός ζευγών

Ευτυχώς, η Wikipedia μπορεί να μας βοηθήσει εδώ:

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

Πώς αυτό αλλάζει τη νοοτροπία των δύο ατόμων που πλησιάζουν τον κώδικα;

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

ΟΚ κομπλε. Αλλά αυτό το ζευγάρι προγραμματισμού δεν θα είναι άβολα;

Μπορεί να είστε δύσπιστοι για τον προγραμματισμό ζευγαριών - σίγουρα ήμουν δύσπιστος. Οι πρώτες σκέψεις σας μπορεί να είναι ότι η ιδέα ακούγεται σαν μια δυσάρεστη. Θα είναι έτσι;

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

Τρία βασικά πλεονεκτήματα του προγραμματισμού ζευγών, προσαρμοσμένα σε κάποιον που μαθαίνει να κωδικοποιεί:

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

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

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

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

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

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

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

(3) Τα οφέλη του προγραμματισμού ζευγών είναι ακόμη μεγαλύτερα για (σχετικά) νέους προγραμματιστές λογισμικού.

Όπως υποστηρίζεται από την έρευνα που ακολουθεί η Laurie Williams, η κωδικοποίηση ζευγών λειτουργεί καλύτερα όταν (i) το ζεύγος εργάζεται σε πολύπλοκες εργασίες και (ii) τα άτομα βρίσκονται σε παρόμοια επίπεδα γνώσεων προγραμματισμού (βλ. Έρευνα ζευγαριού-προγραμματισμού που συντάχθηκε από τη Laurie Williams).

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

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

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

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

Εντάξει, είμαι πεπεισμένος να το δοκιμάσω, πώς μπορώ να ξεκινήσω;

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

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

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

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

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

(1) Γίνετε μέλος μιας κοινότητας κωδικοποίησης όπου οι άνθρωποι συγκεντρώνονται για να κωδικοποιούν / μαθαίνουν να κωδικοποιούν. Για παράδειγμα στο Λονδίνο, μπορείτε να εγγραφείτε στο "London Hackspace"

(2) Παρακολουθήστε εκδηλώσεις κοινότητας κωδικοποίησης, ιδιαίτερα εκείνες για νέους κωδικοποιητές. Μια καλή διαδρομή παρακολουθεί μια εκδήλωση που εκτελείται από ένα τρέχον bootcamp. Άλλοι κωδικοποιητές που ελέγχουν το bootcamp θα είναι σε παρόμοια θέση με εσάς.

Μόλις βρείτε ένα δυνητικό ζεύγος (ή περισσότερα!), Δοκιμάστε διαφορετικές τεχνικές προγραμματισμού ζευγών για να βρείτε αυτό που σας αρέσει:

Ακολουθούν δύο παραδείγματα τεχνικών προγραμματισμού ζευγών:

(1) Σύζευξη Pomodoro. Ο χρονοδιακόπτης έχει ρυθμιστεί για 25 λεπτά, όπου ένα άτομο είναι ο οδηγός και το άλλο ο πλοηγός. Κάθε 25 λεπτά, έχετε ένα σύντομο διάλειμμα και αλλάζετε ρόλους. Υπάρχει μια μεγάλη επέκταση χρωμίου για αυτό εδώ.

(2) Σύζευξη πινγκ πονγκ. Ο οδηγός γράφει μια δοκιμασία που αποτυγχάνει και μετά μεταβιβάζει το ρόλο του προγράμματος οδήγησης (και το πληκτρολόγιο) στο άλλο άτομο. Το νέο πρόγραμμα οδήγησης γράφει τον κωδικό για να κάνει αυτό το τεστ, αναπαράγει τον κωδικό και γράφει μια αποτυχημένη δοκιμή για να περάσει το άλλο άτομο. (Για να κατανοήσετε την ανάπτυξη βάσει δοκιμής, διαβάστε το σημείο 1 εδώ)

Για περισσότερες τεχνικές προγραμματισμού ζευγών, παρακολουθήστε:

  • Τεχνικές ζεύγους προγραμματισμού
  • Προγραμματισμός απομακρυσμένου ζεύγους

Για το τέλος: εξισορρόπηση της προβολής στον προγραμματισμό ζευγών

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

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

«Τα δύσκολα πράγματα δεν είναι εύκολο, αλλά αξίζει τον κόπο» Mia αγάπη

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

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

Ψάχνετε περισσότερα μυστικά κωδικοποίησης;

Αυτή είναι η πέμπτη ανάρτηση σε μια σειρά που επικεντρώνεται στα μυστικά μετα-μαθήματα που έχω πάρει καθώς έμαθα να κωδικοποιώ στο Makers Academy: τις προσεγγίσεις, τα εργαλεία και τις νοοτροπίες για να κάνετε τις ανακαλύψεις που χρειάζεστε για να είστε ένας κωδικοποιητής kick-ass .

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

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