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


Απάντηση 1:

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

  • Η κλίμακα απόδοσης είναι διαφορετική. Ο χρόνος που χρειάζεται για να γράψετε και να εντοπίσετε σφάλματα σε μια πλήρη βιβλιοθήκη / πρόγραμμα μπορεί να διαφέρει κατά έναν παράγοντα ίσο με 100 μεταξύ των καλύτερων και των χειρότερων προγραμματιστών που έχω γνωρίσει ποτέ. Δεν μπορώ να σκεφτώ άλλη ανθρώπινη δραστηριότητα όπου ο λόγος αυτός είναι τόσο μεγάλος. Οι καλύτεροι προγραμματιστές έρχονται με έξυπνες βελτιώσεις - πηγαίνουν πέρα ​​από τα γυμνά κόκαλα της προδιαγραφής - βρουν τρύπες στην ίδια την προδιαγραφή και πιέζουν για να τα διευθετήσουν πριν γράψουν κώδικας. Πιάστε την τελευταία πτώση των επιδόσεων από τον κώδικα, πολύ πέρα ​​από το σημείο όπου ένας μικρότερος προγραμματιστής θα είχε παραιτηθεί και είπε "Meh! Αρκετά καλό."

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

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

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

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

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

(Ο Van Halen απαίτησε στη σύμβασή τους ότι ένα μπολ της M & M θα τους παρασχεθεί με όλους τους καφέδες να αφαιρεθούν!)

Αυτό απέχει πολύ από το να είναι αληθινά αληθές - αλλά συμβαίνει σίγουρα.


Απάντηση 2:

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

Το λογισμικό είναι σαν οποιοδήποτε τεχνικό προϊόν. Οι καλύτεροι προγραμματιστές παραδίδουν έργα που είναι σαν μια Toyota Corolla:

Πηγή: Αρχείο: Toyota Corolla Style (2016 ευρωπαϊκή έκδοση) .jpg

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

Αν μια Carola είναι σαν τα προϊόντα που δημιουργούνται από έναν μεγάλο προγραμματιστή, τότε η παραγωγή μέτριας ανάπτυξης θα ήταν παρόμοια με μια Juicero:

πηγή: http: //antyweb.pl/juicero-zawies ...

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

Αλλά τουλάχιστον το Juicero λειτουργεί. Ένας κώδικας κακού προγραμματιστή θα βγει κάτι σαν τη γέφυρα Tacoma Narrows σε ένα άκαμπτο αεράκι:

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

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