(OT) Ανάγκη καλού προγραμματιστή για μεγάλο project

"Νικόλαος Κ. Διονυσόπουλος" nikosdion at yahoo.gr
Mon Apr 18 11:00:37 EEST 2005


Constantine Dokolas wrote:
> Χαίρομαι που το έκανες και 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 αρχείο.
> 

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

Φυσικά για να γίνεις top προγραμματιστής σε κάποιο τομέα θα χρειαστείς 
και περισσότερο εξειδικευμένες γνώσεις. Εκεί είναι απαραίτητο ένα master 
πάνω σε αυτό το (προγραμματιστικό) αντικείμενο.

Πάντως, ναι, αν ξέρεις if/then/else και φτιάχνεις 200kB VB 
προγραμματάκια είσαι @@ προγραμματιστής και όχι προγραμματιστής με @@ :)

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

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

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

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

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

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

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

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

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

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

Τελικά λέμε το ίδιο πράγμα με άλλα λόγια :)

> Doc
> 

Νίκος Διονυσόπουλος
Διπλ. Μηχανολόγος Μηχανικός



More information about the Linux-greek-users mailing list