(OT) Ανάγκη καλού προγραμματιστή για μεγάλο project (was: [Re: Gia ton kernel kai tous dhmiourgous tou])

Constantine Dokolas cdokolas at Sunsoftgr.com
Fri Apr 15 18:19:14 EEST 2005


Χαίρομαι που το έκανες και post γιατί στα πλαίσια μιας υγιούς αντιπαράθεσης 
(όπως η κοντρίτσα που είναι σε εξέλιξη :) ) προτιμώ να γράφω φανερά τις 
απόψεις μου.

Νικόλαος Κ. Διονυσόπουλος wrote:
> Constantine Dokolas wrote:
> 
>> Ενδιαφέρουσα άποψη. Η πραγματικότητα όμως διαψεύδει τις δυνατότητες 
>> των καλών προθέσεων. Εδώ μιλάμε για σοβαρό/μεγάλο έργο. Τι θα κάτσει 
>> να γράψει ο ερασιτέχνης; User interface; Δομές; Αποθήκευση; Tests; Όλα 
>> αυτά καθυστερούν την ανάπτυξη χωρίς να αξιοποιούν τη τεχνογνωσία του 
>> κατά τ'άλλα ειδικού (μηχανικού π.χ.). Και ακόμα και να γίνει κάτι σε 
>> λογικό χρόνο, νομίζεις ότι θα διαβάζεται; Αυτό δεν έχει σοβαρές 
>> πιθανότητες να συμβεί. Γι' αυτό πρέπει να υπάρχει μια καλή _συνεργασία_!
> 
> Εγώ είμαι Μηχανολόγος Μηχανικός και τυχαίνει να έχω "τρέλα" με τον 
> προγραμματισμό. Η διπλωματική μου είναι ένα πρόγραμμα σε Visual Basic 
> που υπολογίζει γραναζοκινήσεις. Θες να σου στείλω το project μου και να 
> μου πεις αν έχει όμορφο και λειτουργικό user interface, δομές, 
> αποθήκευση και όλα τα σχετικά; Θες να μου πεις ακόμα κι αν διαβάζεται ο 
> κώδικας; (Ο κώδικας επεκτάθηκε μετά από 6 μήνες από την παράδοσή της από 
> άνθρωπο που δεν είχε ξανασχοληθεί με αυτό το πρόγραμμα, χωρίς να 
> κοπιάσει πολύ να καταλάβει τι γίνεται, *και δεν ήταν πληροφορικάριος*, 
> ούτε ήταν σούπερ προγραμματισταράς).

Πρώτα πρώτα δεν ξέρω πόσο περίπλοκο είναι το πρόγραμμα. Τι σημαίνει 
"γραναζοκινήσεις"; Δεν με πειράζει να του ρίξω μια ματιά.

Δεύτερον, το να έχεις "τρέλα" είναι προϋπόθεση :)

Πάμε παρακάτω...

> Στην τελική, αν εγώ, λόγω προσωπικής τρέλας και πόρωσης, έχω κάτσει κι 
> έχω ξεζουμίσει n (limn -> oo) βιβλία προγραμματισμού κι έχω γράψει 
> χιλιάδες γραμμές κώδικα και τις έχω μοιραστεί με προγραμματιστές - των 
> οποίων τις συστάσεις τις έκανα κτήμα και συνείδησή μου, γιατί να μην 
> κάτσω να γράψω ένα πρόγραμμα μόνος μου; Μήπως τελικά το όλο θέμα 
> αναλύεται σε μια συνιστώσα "μην μπαίνεις στα (επαγγελματικά) χωράφια 
> μου, αλλιώς θα σου κόψω των κ..λο"; Αν είναι πες το από την αρχή μην 
> καθόμαστε και στέλνουμε ανούσια μηνύματα (= flames) στη λίστα... :)

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

Δεν λέω να μη κάτσεις να γράψεις πρόγραμμα, απλώς λέω "know your limits". 
Γι' αυτό μιλάω για άτομα που από τη στιγμή που μάθανε να λένε if/then 
κάνουν και τους προγραμματιστές. Και για τον εαυτό μου δεν λέω ότι είμαι 
top. Πριν 3 χρόνια ανακάλυψα και εγώ ότι ενώ είχα μάθει πέντε πράγματα 
παραπάνω που είχα απορία μια δεκαετία (η "τρέλα" μου δεν μπόρεσε να μου τα 
εξηγήσει) μου μένανε άλλα εκατόν πέντε να μάθω. Από τότε παλεύω με νύχια 
και με δόντια να μάθω σιγά σιγά ότι μπορώ ώστε να μη μείνω στο ράφι. Δεν 
είναι όλα μια εφαρμογή ενός παραθύρου σε VB που είναι μόνο 200KB exe αρχείο.

>> Βέβαια εγώ κρίνω με κριτήρια αυτά που ξέρω. Αν, π.χ., δεν υπάρχει 
>> πρόβλημα χρόνου, ή αν δεν είναι του παρόντος το τι θα γίνει με 
>> επόμενες εκδόσεις...
> 
> Δηλαδή οι πληροφορικάριοι ξέρουν να γράφουν σούπερ ντούπερ κώδικα και οι 
> άλλοι δεν ξέρουν τον Χριστό τους; Εγώ ξέρω πληροφορικάριους που δεν 
> έχουν γράψει σχόλια και δεν έχουν κάνει indentation ούτε μια φορά στη 
> ζωή τους και μηχανολόγους που γράφουν κώδικα "διαμάντι". Και λοιπόν; 
> Εκεί που σας παραδέχομαι, πάντως, είναι στο optimization και στον low 
> level κώδικα που θέλει τις εξειδικευμένες γνώσης του πληροφορικάριου. 
> Ναι, εκεί πάω πάσο.

Δεν διαφωνώ. Και εγώ έχω δει, να το πω άγαρμπα, πολύ πλέμπα στο επάγγελμα. 
Υπάρχουν αυτοί που δεν πρόκειται ποτέ να γίνουν προγραμματιστές (και είναι 
πολλοί) και αυτοί που μπορούν να ανέβουν πολύ ψηλά. Κανένας όμως δεν 
γίνεται κάτι μόνο λόγω δυναμικής (potential). Ακόμα και αυτός που έχει 
"κλίση" δεν μπορεί να πάει πιο πάνω από κάποιο όριο χωρίς να "σπουδάσει" το 
πράγμα (υπονοώ και σε κάποιο εκπαιδευτικό ίδρυμα, αν αυτό κάνει καλά τη 
δουλειά του). Εσύ θα εμπιστευόσουν δουλειά πολιτικού μηχανικού σε χτίστη, 
όσο και να σου έλεγε "έχω δει εγώ οικοδομές..."; Η κλίση είναι το καλύτερο 
εφαλτήριο αλλά οι σπουδές συμπληρώνουν τις προϋποθέσεις (και η πείρα 
ολοκληρώνει τελικά τον επαγγελματία).

Κατά τ'άλλα, νομίζω απάντησα ήδη. Δεν είναι μόνο τα optimizations.

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

Το finite element analysis έχει νομίζω προ πολλού τυποποιηθεί στη πληροφορική.

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

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

>>> Καλή θέληση χρειάζεται...
>>
>> Δε φτάνει όμως... :(
> 
> Αν υπάρχει φτάνει για να γίνει το πρώτο βήμα σε ένα μεγάλο project. Αν 
> δεν υπάρχει - τουλάχιστον εσύ δεν φαίνεται να διαθέτεις τέτοια - τότε 
> όντως δεν γίνεται τίποτα! :(

Δεν μιλούσες όμως αν έχει ο προγραμματιστής καλή θέληση (π.χ. εγώ), 
μιλούσες αν έχει ο μηχανικός (π.χ. εσύ). Και δεν εννοούσα ότι η θέληση δεν 
είναι τίποτα, αλλά ότι μπορεί να πάει χαμένος ο κόπος αν δεν υπάρχουν και 
άλλες προϋποθέσεις (αν το project είναι πράγματι μεγάλο).

Ειλικρινά, ελπίζω να μη παρεξηγήθηκα. Το μέγεθος του project κρίνει τι 
διαμέτρημα προγραμματιστή χρειάζεται και αυτό από την αρχή. Σαφώς ο 
οποιοσδήποτε μπορεί να φτιάξει ένα πρόγραμμα που προσθέτει δύο αριθμούς. 
Άλλο όμως είναι αυτό και άλλο μια 3-tier εφαρμογή 200 φορμών με 67MB 
deployable κώδικα, που διαχειρίζεται βάσεις μερικών GB (ε ναι, με τέτοια 
ασχολούμαι).

   "Γιατί, ποιος από σας, όταν θέλει να χτίσει έναν πύργο, δεν κάθεται 
πρώτα να υπολογίσει τη δαπάνη για να δει αν έχει τα απαιτούμενα για την 
αποπεράτωσή του; Κι αυτό, για να αποφύγει το ενδεχόμενο, αφού βάλει το 
θεμέλιο, να μην μπορεί να τον τελειώσει, κι αρχίσουν όλοι όσοι τον 
παρακολουθούν να τον πειράζουν λέγοντας ότι ο άνθρωπος αυτός άρχισε να 
χτίζει και δεν κατάφερε να αποπερατώσει.
   Ή ποιος βασιλιάς, που ξεκινάει να πολεμήσει έναν άλλο βασιλιά, δεν 
κάθεται πρώτα να σκεφτεί αν έχει τη δυνατότητα με δέκα χιλιάδες άντρες να 
αντιμετωπίσει εκείνον που έρχεται εναντίον του με είκοσι χιλιάδες; Κι αν 
δει πως δεν έχει τέτοια δυνατότητα, τότε του στέλνει πρεσβευτές, ενόσω 
ακόμα εκείνος είναι μακριά, και του ζητά διαπραγματεύσεις για ειρήνη." 
(κατά Λουκά Ευαγγέλιο 14:28-32)

Doc

-- 
   Theory claims that although in theory there should be no
difference between theory and practice, in practice there IS
difference between theory and practice.

Constantine Dokolas
Sunsoft Ltd.
Mimikos Group
Tel: (+30) 210-931.7811
Fax: (+30) 210-932.1603




More information about the Linux-greek-users mailing list