Εμφάνιση αναρτήσεων με ετικέτα μπάλωμα. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα μπάλωμα. Εμφάνιση όλων των αναρτήσεων

Σάββατο 7 Ιουλίου 2007

Πως να γίνεις προγραμματιστής

Τις τελευταίες 2-3 μέρες πρόσθεσα έναν μετρητή επισκεπτών. Ώστε να βλέπω αν έχω κανέναν επισκέπτη, ή αν μονος τα γράφο, μονος τα διαβάζω! [Η μέτρηση γίνεται με το sitemeter, αν πάτε στην κάτω μεριά της σελίδας στο κέντρο υπάρχει το εικονιδιο]. Αυτό μου δίνει την δυνατότητα να βλέπω το πως με βρήκανε και αν διαβάσανε κάποια συγκεκριμένη ανάρτηση [post] ή γενικά μπήκαν στο blog μου, αλλά και το σε ποια σελίδα πήγανε..
Ολα αυτά τα γράφω για να πω οτι το έχω κάνει ώστε να βλέπω αν αυτοι που με βρίσκουν τους ικανοποιώ! Δηλαδή αν ψάχνει κάποιος για το Α, τότε εγώ του δίνω αυτό το Α ή με βρίσκει κατα τύχη; Ανάμεσα στις αναζητήσεις, όπου οι περισσότερες αφορούσανε το θέμα που με έχει ευαισθητοποιήσει περισσότερο απο όλα, δηλαδή την στην Πάρνηθα, βρήκα και μια για το "πως γίνεσαι προγραμματιστής".
Η αλήθεια είναι ότι ειδικότητα μου είναι ο προγραμματισμος, αυτή άλλωστε ειναι η δουλειά μου! Έχω πλέον και 12 μήνες ένσημα και γενικά 15 μήνες προϋπηρεσία ;-). Αλλά ως τώρα δεν είχα σκεφτεί αν γράψω κάτι τέτοιο.. Είναι κάτι περίπλοκο. Ένας συνάδερφος μου λέει οτι είναι απλά να ακολουθείς κάποιες διαδικασίας, εγώ απο την άλλη θεωρώ ότι ειναι να έχεις ταλέντο. Να έχεις τον περίπλοκο τρόπο σκέψης, ή μάλλον τον προσαρμόσιμο τρόπο σκέψης. Πρέπει να μην είσαι απλά μαθηματικό μυαλό. Πρέπει να μπορείς να βλέπεις τα πράγματα πιο χαοτικά. Και πάνω απο όλα να μπορείς να δομής την σκέψη.
Δομημένη σκέψη σημαίνει ότι όταν πρέπει να ξεκινήσεις απο το Α να πας στο Ω πρέπει να περιγράψεις όσο πιο απλά γίνεται την διαδρομή ώστε να μπορέσεις να βρεις εύκολα το τι λάθος έκανες. Γιατι αυτό που πρέπει να ξερει απο την αρχή ένας προγραμματιστής είναι ότι στόχος δεν ειναι να μην κάνει λάθη, είναι αδύνατον, αλλά να μπορεί να τα εντοπίζει εύκολα. Για αυτό πρέπει πάντα να φτιάχνει ένα σχεδιαγραμμα και γενικά να μελετά πρώτα στο χαρτί το πως θα λειτουργεί το προγραμμα του, πριν το γράψει σε κώδικα. Είναι όπως ο μηχανικός στις οικοδομές. Φτιάχνει τα σχέδια πρώτα, αφού έχει μελετήσει. Και μετά ρίχνει μπετά, δηλαδή υλοποιεί τα σχέδια.
Άλλωστε και ο προγραμματιστής τι είναι; Μηχανικός λογισμικού είναι. Άρα και ο προγραμματιστής πρέπει να ξέρει να σχεδιάζει το οικοδομημα του πριν ρίξει τα μπετά, δηλαδή γράψει κώδικα. Οποιος αρχίζει και γράφει γραφει γραφει, σιγουρα κάποια στιγμή θα το πετάξει ολοκληρο! Εκτώς βέβαια κι αν κάνει κάτι το πάρα πολύ εύκολο οποτε και δε θα έχει προβλημα.
Αυτά τα σχέδια φτιαχνονται συνήθως με χρήση μιας τυποποιημένης γλώσσας, που είναι η UML, ή με αυτοσχέδιες μεθόδους ;-) Στην πτυχιακή μου εργασία είχα ασχοληθεί με την UML και πως μπορεί να επεκταθεί έξυπνα ώστε να καλύψει κάποιες ανάγκες επεκτασιμοτητας συστηματων. [Κάποια στιγμή θα την ανεβάσω στο Δίκτυο να την διαβάσει όποιος ενδιαφέρεται! Αν κι αν είστε τυχεροί και είναι πάνω ο server της βιβλιοθήκης του ΤΕΙ, μπορείτε να την δείτε κι εδώ]. Οι ανάγκες επεκτασιμότητας που καλύπτονται απο την δικιά μου πτυχιακή είναι ανάγκες όπως προσαρμοστικότητα, δηλαδή για παραδειγμα πρόγραμμα που φτιάχτηκε να παίζει σε υπολογιστή, να θέλουμε να παίζει και σε κινητο. Με χρήση της UML, με τον τρόπο που προτείνω στην πτυχιακή μου, αποφεύγεται ο πλήρης επανασχεδιασμός. Οπότε έχει μικρότερο κόστος σε χρόνο, χρήμα αλλά και κίνδυνο ;-) Γενικά ο σχεδιασμός είναι το πρώτο βήμα που πρέπει να μάθει κάποιος, αν θέλει να γίνει προγραμματιστής κι όχι απλά ένας code monkey.
Αλλωστε, το επόμενο βήμα απο το να είσαι ένας απλό προγραμματιστής πρέπει να είναι να γίνεις αναλυτής. Δηλαδή να είσαι αυτός που θα κάνει τα σχέδια για ολόκληρο το σύστημα. [τα σχέδια που κάνει ένας απλός προγραμματιστής αφορούν πιο συγκεκριμένα θέματα, που είναι πιο κοντά στην υλοποιηση, σε σχέση με τον αναλυτή. Αν και συνήθως μπλέκονται οι αρμοδιοτητες ;-)]
Μετά απο αυτό το βήμα, του σχεδιασμού, πρέπει να μπορεί να γράψει και κώδικα. Δηλαδή να μετατρέψει αυτά τα διαγράμματα σε μια γλώσσα προγραμματισμου, το οποίο είναι το πιο εύκολο αλλά, λόγο των ιδιαιτεροτήτων κάθε γλώσσας, χρειάζεται εξοικείωση.
Τέλος το τρίτο και εξίσου σημαντικό με το πρώτο βήμα είναι η δοκιμή. Δηλαδή ο έλεγχος του ότι αυτό που υλοποιήθηκε κάνει αυτό που ζητήθηκε. Εδώ χρειάζεται προσοχή. Δεν δοκιμάζουμε αν αυτό που σχεδιάστηκε είναι αυτό που υλοποιήθηκε, αλλά αν αυτό που ζητήθηκε είναι αυτο που υλοποιήθηκε ;-). Πολλές φορές μου έχει συμβεί αυτό το μπέρδεμα. Σχεδιάζω κάτι λάθος, οποτε στον έλεγχο συγκρίνω το υλοποιημένο με το σχέδιο και βλέπω ότι είναι σωστό. Αλλά στην πραγματικότητα έχει γίνει λάθος απο την αρχή. Για αυτό το λόγο πρέπει το πρώτο βήμα να το προσέχουμε πάρα πολύ, ώστε να μην μπαλώνουμε μετά.

Συνοψίζοντας:
Αν θέλεις να γίνεις καλός προγραμματιστής πρέπει να μπορείς να κάνεις τουλάχιστον τα 3 ακόλουθα:
  1. Σχεδιασμός συστήματος, βάση κάποιων απαιτήσεων του πελάτη
  2. Υλοποιηση σε κάποια πραγματική γλώσσα προγραμματισμού
  3. Δοκιμή ότι το υλοποιημένο καλύπτει τις απαιτήσεις
Βεβαίως αυτα προϋποθέτουν υπομονή, επιμονή, συνεχή όρεξη για λάθη, διάθεση για επίλυση κάθε προβλήματος. Και γενικά ένας προγραμματιστής πρέπει να έχει μια βασική αρχή,
"ΔΕΝ ΥΠΑΡΧΟΥΝ ΠΡΟΒΛΗΜΑΤΑ, ΜΟΝΟ ΠΡΟΚΛΗΣΕΙΣ"

ΥΓ: Αν έχεται κάποιες ερωτήσεις, ή σχόλια παρακαλώ προσθέστε τα και θα προσπαθήσω να ανταποκριθώ το συντομότερο ;-)

Τρίτη 19 Ιουνίου 2007

Μην μπαλώνεις τα προβλήματα..

Χθες πρωί πρωί με "μπουζουριάσανε" στο meeting room για να κάνουμε conference call.. για ένα πολύ critical issue, που είχε προκύψει. Χαλαρός και ήρεμος [αφου δεν ειχα καταλάβει γιατι προκειται] περίμενα να μάθω, θεωρώντας ότι θα είναι και πάλι κάτι απλό [όπως τις περισσότερες φορές].. αλλά δυστυχώς δεν ήταν και τόσο απλό.
Είχαμε πάρα πολύ χοντρο πρόβλημα. Εδώ να ανοιξω μια παρένθεση (η εφαρμογή που αναπτύσουμε ειναι web based, το οποίο σημαίνει ότι τρέχει σε έναν κεντρικο υπολογιστή [application server] στον οποίο ανοίγει ένα session για κάθε σύνδεση που κάνει ο κάθε χρήστης [όπως γίνεται σε όλες τις web based applications])
Το πρόβλημα ήταν ότι έμπλεκε αυτά τα session. Δηλαδή σε άσχετη στιγμή πέταγε κάποιο χρήστη απο το σύστημα ή εμφάνιζε στον έναν αυτό που έπρεπε να εμφανίζει στον άλλον.. Κοινώς, "πιάσε το αυγό και κούρευτο!".. Μετά απο σκέψη μερικών ορών απο 5 άτομα [μεταξυ των οποίων κι εγώ,φυσικά!] πέσανε 2-3 καλές ιδέες για το πως να λυθεί..και στην αρχή έδειξε να ειναι σωστές. Το δοκιμάσαμε, έπαιζε => όλα μια χαρα. Ελα ντε όμως που η χαρά μας δε κράτησε πολύ! [Η χαρά κράτησε απο χθες μέχρι σήμερα το πρωί!]
Αλλά τι θέλω να πω ο ποιητής με όλη αυτή την ιστορία, "ποτέ μην νομίζεις ότι έχεις βρει την λύση, απλά και μόνο έχοντας κάνει ένα μπάλωμα".

ΥΓ: Ακόμη το παλεύουμε, αλλά που θα πάει θα το λύσουμε

LinkWithin

Blog Widget by LinkWithin

Mobile edition