Η Τέχνη του Προγραμματισμού

...συζητήσεις περί τεχνολογίας για hardware, software, υπηρεσίες, κλπ (για ubuntu ... στο Γενικά)

Συντονιστές: Geochr, ubuderix

Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό Dimitris » 23 Ιουν 2009, 14:58

Σε καμιά περίπτωση δεν κατέχω την υψηλή αυτή τέχνη, απλώς προσπαθώ να μοιραστώ λίγη από τη γεύση της και θα χαρώ να διαβάσω τις δικές σας εμπειρίες. Το ερέθισμα για το νήμα αυτό ήρθε από ένα άλλο νήμα http://news.slashdot.org/comments.pl?si ... d=28418175 που μου έστειλε ένας φίλος χθες. (Φυσικά θυμάμαι τα άρθρα http://www.pbm.com/~lindahl/real.programmers.html και http://www.faqs.org/docs/artu/ και http://www.catb.org/~esr/faqs/hacker-howto.html και http://www.catb.org/~esr//writings/unix-koans/ καθώς και το βιβλιό του Knuth)

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

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

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

H τέχνη του προγραμματισμού δεν περιλαμβάνει μόνο το γράψιμο κώδικα, αλλά κυρίως την αποσφαλμάτωσή του (debugging). Το πρώτο βήμα είναι η ορθή ανάγνωση του σφάλματος, το οποίο περιέχει αρκετές πληροφορίες για να βρούμε τη λύση του προβλήματος. Στην περίπτωση που το σφάλμα είναι bus error ή segmentation fault τότε αρχίζει η πραγματική τέχνη. Στη διαδικασία της αποσφαλμάτωσης ενά απλό printf διάσπαρτο σε διάφορα σημεία του κώδικα μπορεί να αντικαταστήσει και τον καλύτερο εργαλείο αποσφαλμάτωσης.

Η τέχνη του προγραμματισμού περιλαμβάνει την κατανόηση του πως λειτουργεί, στοιχειωδώς τουλάχιστον, ο μεταγλωττιστής (compiler) ή ο ερμηνευτής (interpreter) της γλώσσας που χρησιμοποιούμε. Μόνο έτσι θα μπορεί να βελτιστοποιήσει κανείς ένα πρόγραμμα ή να βρει ένα δύσκολο λάθος σε άλλο. Tαυτόχρονα να κατανοεί πως λειτουργεί ο υπολογιστής και το λειτουργικό σύστημα, για να κατανοήσει τι σημαίνει θέση μνήμης και δείκτης.

Η τέχνη του προγραμματισμού περιλαμβάνει τη γνώση των απαραίτητων εργαλείων που κάνουν τη ζωή του προγραμματιστή πιο εύκολη, αλλά ίσως και όχι. Τι θέλω να πω; Ο προγραμματιστής οφείλει να μπορεί να διαβάσει το Makefile ή το configure script ενός προγράμματος, να μπορεί να χρησιμοποιήσει debuggers και ταυτόχρονα όλα αυτά από τη γραμμή εντολών. Παρόλ'αυτά αν βρεθεί σε ένα καινούριο περιβάλλον να μπορεί να εξοικειωθεί γρήγορα με τα νέα εργαλεία του.

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

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

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

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

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

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

Αυτά από μέρους μου.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό Nisok » 23 Ιουν 2009, 15:01

nice :)
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό kon_nos » 23 Ιουν 2009, 20:41

Θα συμφωνήσω. Για αυτό και πρώτα πρέπει να μαθαίνουμε αλγόριθμους και ψευδογλώσσα, και σε πιο προχωρημένα στάδια διαγράμματα ροής, και όλα αυτά φυσικά στο χαρτί, γιατί στο πληκτρολόγιο θα το φτιάξεις το πρόγραμμα αλλά δεν θα σου μείνουν. Σκοπός είναι να αποφεύγουμε τα λογικά λάθη, αυτά είναι που θα μας βοηθήσουν να εξελιχτούμε ως "προγραμματιστές".
Εγκατάσταση των OpenGL headers σε Ubuntu
«Tων πολλών επιδίωξη η Ηδονή, των εκλεκτών η Δόξα, των δ’ επιλέκτων η Αρετή» - Αριστοτέλης
Άβαταρ μέλους
kon_nos
dudeTUX
dudeTUX
 
Δημοσιεύσεις: 382
Εγγραφή: 09 Νοέμ 2008, 01:11
Τοποθεσία: Αθήνα, Νέο Φάληρο
IRC: kon_nos
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό bullgr » 23 Ιουν 2009, 21:19

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

Έχω γνωρίσει αρκετά άτομα τα οποία δήλωναν προγραμματιστές αλλά δυστυχώς για αυτούς ήταν απλοί χρήστες ενός προγραμματιστικού περιβάλλοντος (IDE) όπως οι σειρές visual της microsoft, η delphi της borland κλπ, αλλά χωρίς να κατανοούν το βάθος της γλώσσας προγραμματισμού που χρησιμοποιούσαν.

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

Υπήρχαν άτομα που ενώ ήταν καλοί στα θεωρητικά μαθήματα, δεν μπορούσαν να προγραμματίσουν... Και δεν είναι θέμα γνώσεων ή IQ...
Είναι όπως το ποδόσφαιρο, τη ζωγραφική... Ή το'χεις ή δεν το'χεις... Έτσι είναι και ο προγραμματισμός... Δεν μπορεί κάποιος να σου μάθει να γίνεις καλός προγραμματιστής. Αυτό που μπορεί να σου κάνει είναι να σου δώσει τα βασικά εφόδια, το κίνητρο να κατανοήσεις την "τετράγωνη λογική". Εάν το καταφέρεις αυτό, τότε έχεις όλα τα προσόντα να γίνεις καλός προγραμματιστής και όλα πλέον εξαρτώνται από σένα το πόσο θα ασχοληθείς μετέπειτα.

Το να γίνεις καλός προγραμματιστής δεν μπορεί να στο διδάξει κανένας, όπου και αν πας, όποιον και αν έχεις δάσκαλο...
ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΠΕΣΕΙΣ, ΕΠΙΒΑΛΛΕΤΑΙ ΝΑ ΣΗΚΩΘΕΙΣ... HASTA SIEMPRE...
Άβαταρ μέλους
bullgr
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 1853
Εγγραφή: 10 Μάιος 2008, 21:45
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό matthew » 29 Ιουν 2009, 01:28

Στο βιβλίο του Eric Raymond :bow: The Art of Unix Programming :thumbup: ιδιαίτερη εντύπωση μου έκανε ο τελευταίος κανόνας που έθεσε επάνω στον προγραμματισμό γενικά:
Rule of Extensibility: Design for the future, because it will be here sooner than you think. = Κανόνας της επεκτασιμότητας: Σχεδίασε για το μέλλον, γιατί θά 'ρθει πιό γρήγορα απ' ότι νομίζεις. 8-)
Γι' αυτό & δικαιολογημένα πολλοί λένε ότι το GNU/Linux είναι αρκετά μπροστά από την εποχή μας & φαντάζει να ήρθε από το μέλλον! ;)
Τελευταία επεξεργασία από matthew και 29 Ιουν 2009, 01:47, έχει επεξεργασθεί 1 φορά/ες συνολικά
Γνώσεις Linux: Βασικές ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
Άβαταρ μέλους
matthew
saintTUX
saintTUX
 
Δημοσιεύσεις: 1347
Εγγραφή: 25 Αύγ 2008, 01:35
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό medigeek » 29 Ιουν 2009, 01:46

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


Off topic:
Yawn; :thumbdown:
Αν καθόμουν να μάθω αν πρέπει να σχεδιάσω ρόμβο ή τετράγωνο και να του πω με λόγια τι πρέπει να ελέγξει... θα νυκτωνόμουν. Άσε που η δουλειά μετά θα πρέπει να περαστεί από το χαρτί στο πρόγραμμα και αυτό το καθιστά διπλή δουλειά.
Προτιμώ να μάθω μια καινούργια γλώσσα προγραμματισμού παρά να μπω στο πνεύμα χρήσης χαρτιού/μολυβιού.

Όλα γίνονται στην πορεία. Δοκιμάζεις κάτι... δουλεύει; Τέλεια! - δε δουλεύει; Πάμε για κάτι άλλο!


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

Off topic:
Υπάρχει το inkscape και το freemind
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό bullgr » 29 Ιουν 2009, 09:56

medigeek έγραψε:Όλα γίνονται στην πορεία. Δοκιμάζεις κάτι... δουλεύει; Τέλεια! - δε δουλεύει; Πάμε για κάτι άλλο!

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

Τι κάνει ο Αναλυτής; Κάθεται και αναλύει τις ανάγκες που υπάρχουν σε κάποιο προγραμματιστικό project, και κατασκευάζει με αλγόριθμο και ψευδοκώδικα τη δομή του προγράμματος σύμφωνα με τις ανάγκες που προκύπτουν...

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

Για να κατασκευάσεις ένα πρόγραμμα πολύπλοκο που θα έχει αρκετά υποτμήματα προγραμμάτων τα οποία θα έχουν κοινή βάση δεδομένων και θα αλληλοεξαρτώνται μεταξύ τους, ΕΙΝΑΙ ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ ΝΑ ΓΙΝΕΤΑΙ ΠΡΩΤΑ ΑΛΓΟΡΙΘΜΟΣ/ΨΕΥΔΟΚΩΔΙΚΑΣ... Αλλιώς είναι σαν να πηγαίνεις για ορεινή πεζοπορία χωρίς πυξίδα ή gps... Κάποια στιγμή θα χαθείς και δεν θα ξέρεις που θα βρίσκεσαι...

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

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

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

ΑΠΑΡΑΒΑΤΟΣ ΚΑΝΟΝΑΣ: ΕΝΑΣ ΚΑΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΠΡΕΠΕΙ ΝΑ ΚΑΝΕΙ ΠΡΩΤΑ ΑΛΓΟΡΙΘΜΟ/ΨΕΥΔΟΚΩΔΙΚΑ ΚΑΙ ΜΕΤΑ ΝΑ ΠΡΟΓΡΑΜΜΑΤΙΖΕΙ...
ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΠΕΣΕΙΣ, ΕΠΙΒΑΛΛΕΤΑΙ ΝΑ ΣΗΚΩΘΕΙΣ... HASTA SIEMPRE...
Άβαταρ μέλους
bullgr
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 1853
Εγγραφή: 10 Μάιος 2008, 21:45
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό medigeek » 29 Ιουν 2009, 10:31

Κοίτα, το μόνο που κάνω πριν να φτιάξω κάτι είναι να δω πώς θα το υλοποιήσω, γι'αυτό αρχίζω πρώτα με τα βασικά, δηλαδή με τις παραμέτρους που θα δέχεται, χωρίς τον κώδικα, μετά ο κώδικας είναι απλό θέμα όταν ξέρεις τι θα δέχεται το πρόγραμμα. Το surl έτσι το έφτιαξα τουλάχιστο. Είναι όμως μικρό, και όπως είπες, προφανώς οι ψευδοκώδικες και οι αλγόριθμοι να χρειάζονται για σχεδιασμό μιας καθώς πρέπει υλοποίησης για μεγαλύτερα προγράμματα. Και άμα λες ότι υπάρχει Αναλυτής, δηλαδή ακόμη ένα άτομο, τότε αλλάζει το πράγμα! :)
Κύπριος; Κόπιασε στο ubuntu-cy! ┃ Launchpad Debian Github
Οδηγός για νεοεισερχόμενους -- Αρχικές οδηγίες για αρχάριους χρήστες του Ubuntu

1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 12.10 quantal 3.5.0-21-generic 64bit (en_US.UTF-8, GNOME cinnamon2d), Ubuntu 3.5.0-19-generic, Windows 7
3 Intel Core2 Duo CPU E6550 2.33GHz ‖ RAM 5970 MiB ‖ MSI MS-7235
4 nVidia G73 [GeForce 7300 GT] [10de:0393] {nvidia}
5 eth0: Realtek RTL-8110SC/8169SC Gigabit Ethernet [10ec:8167] (rev 10)
Άβαταρ μέλους
medigeek
Freedom
Freedom
 
Δημοσιεύσεις: 5023
Εγγραφή: 24 Μάιος 2008, 14:49
Τοποθεσία: Σερβία/Κύπρος
Launchpad: medigeek
IRC: savvas
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό bullgr » 29 Ιουν 2009, 10:57

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

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

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

Όπως και να'χει είναι σωστό να χρησιμοποιούμε ΠΑΝΤΑ αλγόριθμους/ψευδοκώδικα για να αποκτήσουμε σωστή νοοτροπία... Γιατί εάν μάθουμε από τα μικρά προγράμματα τη νοοτροπία “ξεκινάμε και στην πορεία βλέπουμε” τότε αυτή τη νοοτροπία θα χρησιμοποιήσουμε και στα μεγάλα προγράμματα.

Μόνο που εκεί δεν σηκώνει καταστάσεις “χύμα”... Χάνεις πολύ χρόνο, σπάνε τα νεύρα σου και καταλήγεις ναι μεν με λειτουργικό πρόγραμμα αλλά προβληματικό στη δομή του κώδικα.
ΕΠΙΤΡΕΠΕΤΑΙ ΝΑ ΠΕΣΕΙΣ, ΕΠΙΒΑΛΛΕΤΑΙ ΝΑ ΣΗΚΩΘΕΙΣ... HASTA SIEMPRE...
Άβαταρ μέλους
bullgr
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 1853
Εγγραφή: 10 Μάιος 2008, 21:45
Εκτύπωση

Re: Η Τέχνη του Προγραμματισμού

Δημοσίευσηαπό ilpara » 29 Ιουν 2009, 11:02

Με συγχωρείτε που επεμβαίνω παρότι μη προγραμματιστής, αλλά θα συμφωνήσω με τον bullgr περί σπουδαιότητας της ανάλυσης πριν τον προγραμματισμό. Αναλογιστείτε ότι δεν υπάρχουν μόνο τα μικρά αυτόνομα προγράμματα που ολοκληρώνονται μέσα σε λίγες ώρες ή μέρες και στα οποία ο προγραμματιστής μπορεί να έχει όλη την δομή στο μυαλό του, αλλά και μεγαλύτερα σύνθετα προγράμματα που συνεργάζονται με άλλα και τα οποία απαιτούν ανθρωπομήνες εργασίες, καθώς και άλλα στα οποία δεν εργάζεται ένας προγραμματιστής αλλά περισσότεροι. Κάπως έτσι, λόγω αύξησης μεγέθους και πολυπλοκότητας, πήγαμε και στο object-oriented, κάπως έτσι δημιουργήθηκαν και εργαλεία-γλώσσες ανάλυσης-μοντελοποίησης όπως η UML ;)
*Oδηγίες προς Nεοεισερχόμενους*ΟδηγοίLive chat (IRC)
⇛ Linux: Μέτριο ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: Καλά
⇛ Ubuntu 12.04 32bit
⇛ Dell M4300: T7500 (2.2GHZ 4MB) ┃ 2GB ┃ NVIDIA Quadro FX 360M (256MB) ┃ Intel 4965 ┃ 15.4" WUXGA
Άβαταρ μέλους
ilpara
powerTUX
powerTUX
 
Δημοσιεύσεις: 2250
Εγγραφή: 11 Μάιος 2008, 11:43
Τοποθεσία: Αθήνα-Βύρωνας
IRC: ilpara
Εκτύπωση

Επόμενο

Επιστροφή στο Περί Τεχνολογίας