Τετάρτη, 30 Δεκεμβρίου 2015

Η εξέλιξη μου ως προγραμματιστής - Μέρος 2ο

Σε συνέχεια της παλιότερης ανάρτησης Η εξέλιξη μου ως προγραμματιστής - Η αρχή!, σκοπεύω να γράψω κάποιες προσωπικές απόψεις σχετικά με την εξέλιξη ενός προγραμματιστή.

Επισήμανση

Αρχικά να επισημάνω ότι την λέξη "προγραμματιστής" την έχω εντός εισαγωγικών καθώς έχει παρερμηνευτει πολλές φορές. Ορισμένοι χρησιμοποιούν αυτη την λέξη ακόμη και για τον απλό τεχνικό υπολογιστών ενώ αλλοι την χρησιμοποιούν ακόμη και για άτομα που ασχολούνται με την αρχιτεκτονική έργων πληροφορικής μεγάλης κλίμακας. Στην πραγματικότητα υπάρχουν άπειρες ενδιάμεσες βαθμίδες μεταξύ του απλού τεχνικού μέχρι αυτή του αρχιτέκνονα λογισμικού (Software Architect). Προσωπικα θεωρώ οτι το ιδανικο είναι κάθε προγραμματιστής να περνάει απο όλες αυτες τι βαθμίδες ώστε να αντιλαμβάνεται την "δουλειά" σε ολα τα επίπεδα. Να σημειωθεί ότι πολλές φορές ισχύει το παράδοξο να ασχολειται με σχεδιασμό (software design) χωρίς να είχε ποτέ ιδιαιτερη προσωπική τριβή με την συγγρααφή κώδικα (coding) πράγμα που συνήθως οδηγεί σε λάθος εκτιμήσεις κόστους σε χρόνο και χρήμα!

Βαθμίδες προγραμματών

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

Το ξεκίνημα

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

Χαρακτηριστικά παράδειγματα αποτελούν:
  • Τα λογιστικά φύλλα (Spreadsheets)[1], όπου ο χρήστης μπορεί να καταγράψει δεδομένα τα οποία με χρήση συναρτήσεων μπορεί να μετασχηματίσει σε χρήσιμη πληροφορία. Μια πολύ συνηθισμένη χρήση αυτων των εργαλείων είναι η καταγραφή προσωπικών εσόδων-εξόδων και η παρακολούθηση τους.
  • Η ρύθμιση υπηρεσιών, όπως το IFTT (If This Then That), που δίνει την δυνατότητα στον χρήστη να "προγραμματίσει συγκεκριμένες λειτουργείες όταν συμβεί κάτι. Για παράδειγμα μπορεί όταν βγάλει μια μια κάμερα αντιληφθεί κίνηση, να βγάλει μια φωτογραφία και να του την στείλει μέσω email.
  • Η δημιουργία προσωπικής ιστοσελίδας (Wordpress, Blogspot etc) είναι άλλο ένα είδος υπηρεσίας όπου ο απλός χρήστης μπορεί να δημιουργήσει και να αρχίσει να έχει μια βασική επαφή με τον προγραμματισμο, ειδικά όταν θελήσει να προσθέσει κάποιο "προχωρημένο" plugin.

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

Μαθαίνοντας συγγραφή ή συρραφη κώδικα!

Τα πρώτα βήματα στον προγραμματισμό γίνονται με παραδείγματα. Κανένας δεν μπορει να μάθει πως να φτιάξει ενα κομμάτι κώδικα, αν πρωτα δεν έχει δει κάποιο υπάρχον. Τα πλέον κλασσικά κομμάτια κώδικα που χρησιμοποιούνται για εκμάθηση ειναι τα ακόλουθα:
Ενώ η ίσως πλέον κατάλληλη γλώσσα προγραμματισμού για να ξεκινήσει κάποιος με σωστές βάσεις είναι η all time classic ANSI C. Πρόκειται για την γλώσσα στην οποία βασίζονται σχεδόν όλες οι ευρέως διαδεδομένες γλώσσες προγραμματισμού κι άρα η μετάβαση σε κάποια από αυτές θα ειναι εύκολη.

Η εμπειρία ως κλειδί εξέλιξης

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


Τα "σκαλοπάτια"

Στο λογισμικό υπάρχουν πάντα πολλές προσεγγίσεις σε όλα τα θέματα. Η ίδια λογική ισχύει και για το ποιες είναι οι βαθμίδες των προγραμματιστών, αλλά η πλέον συνηθισμένη ειναι ακόλουθη:
  1. Trainee - Εκπαιδευόμενος που ενδέχεται να μην εχει καν πτυχίο. Συνήθως σε αυτό το στάδιο ο "προγραμματιστής" ενδέχεται να μην γνωρίζει καν βασικές δομές κάποιας γλώσσας προγραμματισμού κι απλά να προσπαθεί μέσω "μιμησης" να εξοικειωθεί με τις τεχνολογίες.
  2. Junior - Αρχάριος που έχει στοιχειώδεις γνώσεις αλλά ακόμη δεν μπορεί να αναλάβει κάποιο κομμάτι δουλειάς χωρίς την επίβλεψη κάποιου πιο έμπειρου που μεταξύ άλλων θα του επισημαίνει λάθη και θα τον καθοδηγεί στο πως να δημιουργεί κάτι πιο άρτιο.
  3. Mid level - Μέσου επιπέδου είναι κάποιος προγραμματιστής που μπορεί να αναπτύξη κάποια κομμάτια ενός προγράμματος χωρίς να χρειάζεται συνεχής παρακολούθηση από κάποιον έμπειρο, αλλά δεν διαθέτει την απαραίτητη εμπειρία ώστε να αυτά που αναπτύσει να είναι επεκτάσιμα και επαναχρησιμοποιήσιμα.
  4. Senior - Εμπειρος είναι ένας προγραμματιστής που μπορεί να αναπτύξει λογισμικό χωρίς την παρακολούθηση απο κάποιον πιο έμπειρο και μάλιστα ο κώδικας του έχει την κατάλληλη δομή ώστε να μπορεί εύκολα να επεκταθεί αλλά και να επαναχρησομοποιηθεί. Επιπλέον, ένας έμπειρος μηχανικός λογισμικού είναι αρκετά ικανός ώστε να καθοδηγεί και να εκπαιδεύει προγραμματιστής με λιγότερη εμπειρία.
  5. Lead/Principal - Επικεφαλής είναι ο υπεύθυνος μιάς ομάδας προγραμματιστών. Συνήθως είναι αρκετά έμπειρος τόσο σε τεχνικά θέματα όσο και σε θέματα διαχείρισης ομάδων. Σε αυτό το επίπεδο ασχολείται περισσότερο για το πως θα βελτιστοποιούνται οι διαδικασίες για παραγωγή του καλύτερου δυνατού αποτελέσματος παρά το πως θα γράψει ο ίδιος τον "κωδικα".
  6. Architect - Αρχιτέκτονας θεωρείται ένας μηχανικός λογισμικού που λαμβάνει όλες τις αποφάσεις σχετικά με το ποιες τεχνολογίες θα χρησιμοποιηθούν, πως θα συνδυαστούν αλλά ακομη και το τι δομή θα έχει ο κώδικας. Επιπλέον αποφασίζει για τα standards που πρέπει να ακολουθούνται από τις ομάδες ανάπτυξης λογισμικού.
  7. Chief Architect - Επικεφαλής αρχιτεκτονικής είναι το άτομο που ηγείται όλων και λαμβάνει όλες τις τεχνολογικές αποφάσισεις υψηλού επιπέδου. Να σημειώσω ότι πολλές φορές τυγχάνει αυτός που έχει ουσιαστικά τις αρμοδιότητες του Chief Architect να έχει τον τίτλο του CTO.

Υποσημειώσεις

[1] Λογιστικά φύλλα (Spreadsheets) ειναι πίνακες που επιτρέπουν εύκολους υπολογισμούς πάσης φύσεως. Στον κόσμο της πληροφορικής ταυτίζονται με τα πολύ διαδεδομένα προγράμματα MS Excel, Google Sheets και Numbers for Mac κι άλλα λιγότερο διαδεδομένα που ενδέχεται όμως να είναι ακόμη πιο κατάλληλα για κάλυψη συγκεριμένων αναγκών.
[2] Δυο από τα πλέον αγαπημένα μου βιβλία σχετικά με διαχείρηση ομάδων ανάπτυξης λογισμικου αποτελουν τα ακολουθα:




Τετάρτη, 15 Απριλίου 2015

Programming Mobile Applications for Android Handheld

8-13 June at Found.ation with the co-operation of Pinnatta team

instructors: George Anagnostaros and Vassilis Pigadas



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



Απευθύνεται σε όσους θέλουν να μάθουν πως μπορούν να ανάπτυσουν εφαρμογές Android, που να ειναι συντηρισιμες σε έναν χώρο που συνεχώς μεταβάλλεται. Η γνώση Java είναι απαραίτητη, αλλά οι γνώστες C-like γλωσσών θα μπορέσουν να ακολουθήσουν με σχετική άνεση.


Πρόγραμμα:
Προαιρετικό πρόγραμμα:
  • Πεμπτη 4 Ιουνίου, 18:00-20:00 -Εισαγωγή στην Java
  • Παρασκευή 5 Ιουνίου, 18:00-20:00 - Εγκατασταση και γνωριμία με το Android Studio


Κανονικό πρόγραμμα:
Δευτέρα 8 Ιουνίου, 18:00-20:00 -
Βασικά στοιχεία μιας εφαρμογής Android (1)


Τρίτη 9 Ιουνίου, 18:00-20:00 -
Βασικά στοιχεία μιας εφαρμογής Android (2)
Δραστηριότητες και Προθέσεις (Activities and Intents)


Τετάρτη 10 Ιουνίου, 18:00-20:00 -
Δημιουργία διατάξεων (layouts)


Πέμπτη 11 Ιουνίου, 18:00-20:00 -
Βάσεις δεδομένων και πάροχοι περιεχομένου (SQLite & Content Providers)


Παρασκευή 12 Ιουνίου, 18:00-20:00 -
Υπηρεσίες και ασύγχρονες εργασίες (Services & AsyncTasks)


Σάββατο 13 Ιουνίου, 10:00-14:00 -
Επικοινωνία με το δίκτυο
Beta testing, debugging και δημοσίευση εφαρμογής στο Google Play


Τι θα χρειαστειτε:
  • Φορητό υπολογιστή με τουλάχιστον τα ακολουθα χαρακτηριστικά:
    • 4GB RAM
    • 10GB ελευθερου χώρου στον δισκο
    • Λειτουργικό σύστημα Linux, MAC OS, ή Windows
  • Προαιρετικά, θα ήταν καλό να εχετε και συσκευή με λειτουργικό σύστημα Android 4.0.3 και άνω ώστε να δοκιμασετε τα δημιουργήματα σας.


Σύνολο:
Προαιρετικό πρόγραμμα: 4 ώρες σε 2 μερες
Κανονικό πρόγραμμα: 14 ώρες σε 6 μέρες


Κόστος early bird (κανονικό πρόγραμμα): 95 ευρώ
Κόστος early bird (κανονικό πρόγραμμα + προαιρετικό πρόγραμμα): 110 ευρώ


Κόστος μετά την πάροδο των early bird (κανονικό πρόγραμμα): 110 ευρώ
Κόστος μετά την πάροδο των early bird (κανονικό πρόγραμμα + προαιρετικό πρόγραμμα): 125 ευρώ


Στο τέλος θα δοθούν πιστοποιητικά παρακολούθησης από το Found.ation.
ΒιογραφικάGeorge Anagnostaros
  • Head of Mobile Engineering in Pinnatta.
  • Co-founder & CTO of Apps4Mags
  • Working experience in software development of vast array of projects, since 2006.
  • Developing applications for mobiles since the era of J2ME, back to 2000, but he still learns new technologies (e.g. Swift, Lambda Expressions etc)
  • Education
    • Master of Science in the Management of Business Innovation and Technology
    • BsC, in Applied Informatics & Multimedia


Vassilis Pigadas

  • Android Engineer at Pinnatta
  • Working experience in Android development
  • Education
    • Master of Computer/Information Technology Administration and Management
    • BsC, in Computer Science & Biomedical Informatics

When ?

Monday, June 08, 2015 6:00 PM
-
Saturday, 13 June 2015

Where ?

Found.ation
Evristheos 2


118 54 Athina, Greece

Σάββατο, 7 Μαρτίου 2015

Η εξέλιξη μου ως προγραμματιστής - Η αρχή!

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

Γιατί έγινα προγραμματιστής κι όχι μαθηματικός ή καθηγητής αγγλικών όπως έλεγα πολύ μικρός[1];

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

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

Ποια ήταν τα πρώτα μου βήματα στον προγραμματισμό;

  • Ίσως το πρώτο πρόγραμμα που έγραψα, στην πραγματικότητα το αντέγραψα απο το βιβλίο "Γνωρίστε τον μικρο-υπολογιστή"! Βιβλίο το οποίο διατηρώ καθαρά για λόγους νοσταλγίας. Ήταν ένα πάρα πολύ απλό παιχνιδάκι σε GWBasic, οπου ζητούσε από τον χρήστη να μαντέψει ένα νούμερο.[2] . Να σημειωθεί οτι αυτο το είχα κάνει πριν καν ξεκινήσω το δημοτικό. Πάντα νιώθω τυχερός που είχα την τύχη να υπάρχει υπολογιστής στο σπίτι κι άρα να έχω το ερέθισμα να ασχοληθώ.

  • "Μεγαλώνοντας" και έχοντας μάθει πλέον πιο πολλά, ανέπτυξα ένα εκπαιδευτικό παιχνίδι για την προπαίδια. Το είχα αναπτύξει κι αυτό σε GW BASIC, που ήταν άλλωστε η πρώτη μου γλώσσα προγραμματισμου! Η εφαρμογή ήταν πάρα πολύ απλή, για τα σημερινά δεδομένα, καθώς εμφανιζε δυο τυχαίους ακέραιους αριθμους απο το 1 μεχρι το 10 και ζητούσε στον χρήστη να γράψει το γινομενο, αν το έγραφες λάθος σε ενημέρωνε για το σωστό! Δεν ξέρω αν αυτό με έκανε να μάθω προπαίδια, αλλά σίγουρα με έκανε να νιώθω οτι ο προγραμματισμός δεν είναι κάτι το ουτοπικό!

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

Μεγαλώνοντας άρχισα να θέλω να φτιάχνω ακόμα περισσότερα προγράμματα και συνέχεια αναζητούσα "προβλήματα" που θα μπορουσαν να λυθούν με ενα προγραμμα.

Τι με έκανε προγραμματιστή;

1. Δεν υπήρχαν έτοιμα προγράμματα

Μεγάλωσα σε μια εποχή και μια χώρα, όπου μπορούσες να βρεις ελάχιστα έτοιμα προγράμματα.  Συνήθως μόνο εφαρμογές των ακόλουθων κατηγοριών μπορούσες να βρεις:
  • Παιχνίδια, όπως τα αγαπημένο μου Shinobi και Lemmings
  • Eφαρμογές γραφείου, οπως η σουϊτα Microsoft Works και η Lotus 1-2-3 που όμως για να κάνεις το κάτι παραπάνω απαιτούσαν να γράψεις μακροεντολές και έξυπνες συναρτήσεις.
  • Compilers, όπως GW-Basic, QBasic, Clipper κ.α.

2. Το απόλυτο εργαλείο για πειράματα χωρίς επιπλέον εξοπλισμό

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

3. Η χαρά της δημιουργίας

Ενας από τους πιο βασικούς λόγους που λατρεύω την ανάπτυξη λογισμικού είναι ότι μου δίνει την δυνατότητα να υλοποιώ κάτι που ο ίδιος βλέπω και χρησιμοποιώ. 
Ένα απο αυτά τα προγράμματα είναι οι Μαντινάδες, που ανέπτυξα πρώτη φορά το 2001 όταν ήμουν στην Α' Λυκείου χρησιμοποιώντας Visual Basic 6! Στο πλαισιο της συγκεκριμένης εφαρμογής υλοποίησα και έναν μεταφραστη απο ελληνικά σε greeklish ώστε να μπορεί να γίνεται αναγνωση των μαντινάδων μεσω της λειτουργιας Text2Speech που είχαν τα MS Windows, αλλά μονο για αγγλικά. 

4. Η ανάγκη για συνεχή μάθηση και βελτίωση

Σε αντιθέση με άλλα επαγγέλματα, όπου μετά απο μερικά χρόνια προϋπηρεσίας φτάνεις το ύψηστο επίπεδο γνώσης, στον προγραμματισμό συνέχεια μαθαίνεις. Ανακαλύπτεις νέες γλώσσες προγραμματισμου, νέες προσεγγίσεις ανάλυσης και επίλυσης προβλήματων, διαφορετικούς τρόπους σκέψεις και γενικότερα καταλήγεις στο να μάθεις ότι πάντα θα μαθαίνεις! Το καταπληκτικό είναι πως κάθε τι που μαθαίνεις σε κάνει πιο "εξυπνο", ενώ στην ουσία απλά σε πάει από έναν πιο σύντομο δρόμο σεσ σχέση με την μεγάλη διαδρομή που έκανε αυτός που το ανακάλυψε.
Αυτό ίσως προβληματίζει τους νεότερους, ή μπορεί και να τους αγχώνει, αλλά είναι το μόνο που μπορεί να γνωρίζει κάποιος που θέλει να θεωρηθεί καλός μηχανικός λογισμικού κι όχι απλά άλλο ένα code monkey!

Προγραμματιστής επι πληρωμή

Πάρα πολλοί νεαροί και νεαρές θεωρούν την δουλεία του προγραμματιστή ως ιδιαίτερα επικερδή. Το πρόβλημα ξεκινάει όταν μπερδεύουν το τι παίρνουν οι λίγοι και καλοι αρχιτέκτονες λογισμικού κι όχι τι παίρνει ο απλός εκπαιδευόμενος προγραμματιστής. Ενδεχομένως ακούνε για μισθους της ταξη των $100Κ τον χρόνο στο Silicon Valley και ονειρεύονται.

Η πραγματικότητα είναι λίγο πιο προσγειωμένη για τα ελληνικά δεδομένα. Ένας μηχανικός ξεκινάει έχοντας πτυχίο τριτοβάθμιας εκπαιδευσης με έναν μικτο μισθο της τάξης των 1200€, ως υπάλληλος[4], ενώ αν επιλέξει να εργαστεί ως ελεύθερος επαγγελματιας τότε έχει να αντιμετωπίσει δυο βασικές κατηγορίες "πελατών", αυτοί που θεωρούν τους μηχανικούς λογισμικου επιστήμονες που μοχθούν για να παραξουν το καλύτερο δυνατό αποτέλεσμα και αυτούς που θεωρούν τους coders τεμπέλιδες που έχουν έτοιμα τουβλάκια που τα κουμπώνουν και παράγουν εφαρμογές.

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

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

Σε επόμενο άρθρο σκοπεύω να γράψω:

  • Βαθμίδες προγραμματιστών
  • Πόσα χρόνια προγραμματιστής;
  • Ποιό είναι το επόμενο επίπεδο, μετά απο τον προγραμματισμό;


Υποσημειώσεις:
[1] Αποφάσισα να γίνω προγραμματιστής στην 5η δημοτικού, οπότε το "πολύ μικρός" εννοώ μεχρι την 4η δημοτικού ;-)
[2] Βρήκα ένα αναλυτικό άρθρο για το συγκεκριμενο βιβλίο, στο Asciimation
[3] Η αλήθεια ειναι οτι δεν ήταν πρόγραμμα, αλλά ενα spreadsheet σε Microsoft Works, αλλά τότε μου φαινοταν σαν να εγραφα κώδικα!
[4] Σύμφωνα με την τελευταία συλλογική σύμβαση εργασίας ο πρώτος μικτος μισθος ειναι γύρω στα 1200€, αλλά επειδή τώρα δεν ισχύουν ή κάποιος μπορεί να μην έχει πτυχίο ενδέχεται να λάβει ακόμα χαμηλότερο μισθο!

Gadget

Αυτό το περιεχόμενο δεν είναι ακόμα διαθέσιμο μέσω κρυπτογραφημένων συνδέσεων.

LinkWithin

Blog Widget by LinkWithin

Mobile edition