Το skillset του frontend developer

19 Μαΐου, 2014

Το άρθρο αυτό γράφεται με αφορμή μια συζήτηση που ξεκίνησε το Σάββατο, 17/05/2014, στο The Cube, στο τέλος του 2ου upNorth conference. Αναφέρεται, δε, έντονα στην ελληνική πραγματικότητα. Τη συζήτηση προκάλεσε ο Γεράσιμος1. Υπάρχουν frontend developers στην Ελλάδα; Κρύβονται; Υπάρχει αγορά για frontend developers στην Ελλάδα; Οι σκέψεις αυτές είχαν αρχίσει να κλωθογυρίζουν στο μυαλό μου ήδη από την πρώτη παρουσίαση της ημέρας, αυτή της Ζαχαρένιας. Εκεί οι όροι designer και developer, μόνοι τους ή με το προσδιοριστικό “web” μπροστά, ακούστηκαν σε διάφορες στιγμές, είτε εναλλακτικά μεταξύ τους είτε χωρίς να ξεκαθαρίζεται πότε επιλέγεται ο ένας αντί για τον άλλον.

Εκεί εντοπίζω ένα πρόβλημα, μια σύγχυση – όχι στην ομιλήτρια, γιατί δεν ήταν αυτό το θέμα της, που το γνωρίζει και νεράκι, αλλά – στην αγορά γενικότερα. Τι είναι αλήθεια “frontend developer”; Μην είναι αυτός που εγκαθιστά themes σε ένα WordPress, Joomla, Drupal κλπ; Μην είναι αυτός που βάζει jQuery scripts απ’ εδώ και απ’ εκεί για να κουνιούνται εικονίτσες και να χορεύουνε κουμπάκια; Μην είναι αυτός που γράφει Javascript πάνω σε Backbone; Μην είναι αυτός που γράφει βιβλιοθήκες όπως η Backbone ή frameworks όπως το Angular2. Μην είναι αυτός που γράφει PHP, το οποίο παράγει HTML και “τακτοποιείται” με CSS;

Μην απαντήσεις βιαστικά, δεν είναι τόσο απλό. Γιατί μην είναι ήταν κι αυτός που έφτιαχνε κάποτες Flash εφαρμογίδια; Μην ήταν κι αυτός που έφτιαχνε παρουσιάσεις σε CD; Μην ήταν κι ο άλλος που έφτιαχνε user interfaces σαν αυτά του Word, του Excel ή του Outlook; Κι εκείνος που ‘φτιαξε το μενού της flat τηλεόρασής σου ή το καντράν του αυτοκινήτου σου; Εντάξει, ας μην επεκταθούμε τόσο, ας μείνουμε στο web! Αλλά, καταλαβαίνεις τι θέλω να πω, δεν την εφηύρε το web την έννοια. Βέβαια, την ανέδειξε.

Ας αποπειραθώ έναν ορισμό

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

Παρατηρήσεις πάνω στον ορισμό

Χρειάζονται ταυτόχρονα:

  1. Γνώσεις: πχ ένα πτυχίο, όχι υποχρεωτικά πανεπιστημίου, υπάρχουν και άλλα “σχολεία”, αλλά δίνω ακόμη μια προτεραιότητα σε αυτά του πανεπιστημίου.
  2. Ικανότητες: αποκτώνται σε όλη την πορεία ενός ανθρώπου, πχ στο πτυχίο έμαθε κάποιος programming σε μια βασική γλώσσα αλλά στην πρώτη του δουλειά έμαθε Javascript.
  3. Εργαλεία: υποκειμενική η αξία του καθενός, αλλά απαραίτητη η γνώση κάποιων από αυτά.
  4. Ταλέντα: κάποια πράγματα δεν αποκτώνται, καλλιεργούνται αλλά, πώς να το κάνουμε, δεν αποκτώνται ούτε με καλές προθέσεις ούτε και πολλή προσπάθεια.

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

Ο frontend developer μπορεί να παράγει κάτι είτε μόνος του είτε στα πλαίσια μιας ομάδας. Ετούτο αυτομάτως είναι ανοικτό σε διάφορα επιχειρήματα. Πράγματι, υπό συνθήκες, κανείς μπορεί να παράγει διεπαφές διαδικτύου μόνος του. Δε μπορεί όμως να είναι καλός σε όλα. Ή δύσκολα μπορεί αυτό που κάνει να κλιμακωθεί σε μεγάλα έργα. Μερικές φορές κάτι τέτοιο συμβαίνει. Πρόκειται για εξαιρέσεις.

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

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

Οι δεξιότητες του frontend developer στην πράξη

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

  1. Πτυχίο: σχολής πληροφορικής της ημεδαπής ή του εξωτερικού.
  2. Ικανότητες: PHP, Javascript, HTML(5), CSS(2,3), MySQL.
  3. Εργαλεία: code editor (έναν και να τον ξέρει καλά), Photoshop.
  4. Ταλέντα: καλό γούστο, δημιουργικότητα.

Προσοχή-προσοχή: οι παραπάνω είναι οι ελάχιστες δεξιότητες ενός frontend developer στο web. Είναι δυνατόν κανείς να έχει μεγάλη εξειδίκευση σε κάποια μόνο από αυτές. Ίσως να έχει εμπειρία σε κάποιο συνδυασμό. Ίσως ξέρει Java αντί PHP. Ίσως ξέρει Python, Ruby, Groovy. Ίσως μαθαίνει Dart και Node.js. Fine! Αλλά αυτά είναι πάνω-κάτω το bare minimum, χωρίς το οποίο, πού πας ρε Καραμήτσο; Είτε δεν πας πουθενά είτε πας για κάτι πολύ συγκεκριμένο και καλή τύχη όπου κι αν πας.

Πλέον κανείς χρειάζεται και άλλα πράγματα. Χρειάζεται γνώση κάποιου CMS (συστήνεται WordPress), των web standards, του HTTP, του πώς λειτουργούν εσωτερικά οι μοντέρνοι browsers και τα developer tools τους, καλές πρακτικές για SEO, αίσθηση του τι εστί UX3. Πρέπει να γράφει καθαρό κώδικα, να παρακολουθεί τις εξελίξεις στις τεχνολογίες του, να διαβάζει, να μην ικανοποιείται εύκολα, να είναι self motivated, να αγαπάει αυτό που κάνει. Μήπως είπα πολλά; Όχι, λίγα είπα. Να έχει ανοιχτό μάτι στον κόσμο του marketing, στον κόσμο των mobile applications, στον κόσμο των social media. Για responsive development μίλησα; Σίγουρα όλο και κάτι άλλο θα ξεχνάω.

Κι αν όλοι διαθέτουν το bare minimum που ισχυρίζομαι ότι πρέπει, τότε ποιος θα ξεχωρίσει; Αυτός που διαθέτει δημιουργικότητα και εξελίσσει τον εαυτό του καλύτερα. Σας εγγυώμαι ότι στο τέλος της ημέρας μέσα από όλο το συρφετό των buzzwords που αράδιασα αυτά είναι τα δύο κυρίαρχα χαρακτηριστικά. Καταλάβατε σωστά, δεν πρόκειται για χαρακτηριστικά που απευθύνονται ειδικά ούτε στους frontend developers ούτε καν στους developers γενικότερα. Απευθύνονται σε κάθε πεδίο.

Μα όλα αυτά τα ήξερα

Αν είσαι ήδη web developer ή frontend developer πιθανότατα να αναφωνήσεις ότι όλα αυτά τα ήξερες. Δηλαδή, ήξερες ότι οι frontend developers ασχολούνται με PHP, HTML, CSS και Javascript. Εντάξει! Ξέρεις όμως από δομές δεδομένων; Έχεις ακούσει για αλγορίθμους; Τι πα να πει statically typed γλώσσα; Τι είναι object oriented γλώσσα; Τι είναι prototypal inheritance; Έκανες στο παρελθόν κάτι compile; Οτιδήποτε! Έχεις κάνει έστω και λίγο backend development; Ξέρεις πώς λειτουργεί ένα API; Ξεκοκκάλισες το documentation κανενός API; Λίγη SQL; Λίγη NoSQL; Ξέρεις από JSON/XML; Το πρωτόκολλο HTTP; Το TCP/IP; Το DOM των browsers; Το μηχανισμό των events τους; Τα developer tools τους; Ξέρεις πώς να κάνεις optimization όταν τα repaints πέφτουν βροχή; Άκουσες τίποτα για canvas, webgl, web components, svg; Έχεις γράψει κανένα plugin για jQuery; Ένα CSS reset; CSS3 ακροβατικά κάνεις; WordPress themes from scratch; WordPress plugins;

Νομίζεις ότι περιγράφω κάποιο τέρας-φρανκενστάιν που τα ξέρει όοολα αυτά ή κάποιο super web geek; Νομίζεις ότι περιγράφω τον εαυτό μου4; Ίσως γι’ αυτό έχουν δίκιο που παραπονιούνται ότι ένα από τα μεγαλύτερα προβλήματα των startups είναι το hiring. Δε χρειάζεται να είσαι ειδικός σε όλα αυτά. Καμιά φορά είναι αρκετά ικανό από μόνο του να είσαι πχ απλά ένας CSS expert. Αλλά πού είσαι expert; Ξέρεις ότι αυτές είναι οι τεχνολογίες σου για τις οποίες όλος ο κόσμος έξω μιλάει;

Πράγμα που με κάνει να καταλήξω στην:

Η αποψάρα μου για τον ελληνικό χώρο

Όχι δεν υπάρχουν πολλοί frontend developers στην Ελλάδα σήμερα. Αντιθέτως υπάρχουν πολλοί που νομίζουν ότι είναι, ακόμη περισσότεροι που τους πιστεύουν (ένεκα η σύγχυση, είπαμε) ενώ, ταυτόχρονα, δεν υπάρχει καλά-καλά ζήτηση για αυτούς στην αγορά – αν εξαιρέσει ίσως κανείς το μικρό(ακόμη)κοσμο των startups. Αυτό βγάζει και νόημα: δεν υπάρχει ζήτηση για frontend developers κι έτσι δεν υπάρχουν frontend developers. Δυστυχώς, είναι και φαύλος κύκλος.

Όμως δε θεωρώ ότι τα πράγματα είναι τόσο μαύρα και δίχως ελπίδα. Πιστεύω ότι είναι στο χέρι των νέων ανθρώπων, των νέων web developers να αλλάξουν οι ίδιοι και να βοηθήσουν να αλλάξουν προς το καλύτερο και οι ομάδες στις οποίες εργάζονται. Χρειάζεται προσπάθεια κι επιμονή και μπλα-μπλα-μπλα όλα αυτά τα κοινότοπα μα και αληθινά. Στην τελική, αυτό που λέω είναι να μην περιμένεις να σου ζητήσουν καλό frontend development. Κάνε το από νοοτροπία.

1. Φράφο, για το όμορφο event. Χρειαζόμαστε τέτοια!
2. Ναι, άλλο βιβλιοθήκη και άλλο framework.
3. UX !== UI.
4. Είμαι full stack developer, αμάν!

εκτύπωση Κατηγορίες: διαδίκτυο, τεχνολογία | rss 2.0 | trackback

12 σχόλια στο “Το skillset του frontend developer”

Ο/η "Stelcha" είπε:

Αυτό που περιγράφεις ιστεύω είναι ένα μείγμα front end και back end developer και τελικά Jack of all trades. O front end developer είναι αυτός που μετατρέπει σε κώδικα το μπροστινό κομμάτι ενός site και οφείλει να γνωρίζει κατά βάση:

xhtml και html 5
Css 2.1 και Css 3
Javascript
Jquery, bootstrap
Photoshop

Php mysql και τη μετατροπή της έτοιμης html από τον front end developer πχ σε WordPress theme αναλαμβάνει ο back end developer

10 Νοεμβρίου, 2015 στις 1:25 μμ

Ο/η "Τάκης Μπουγιούρης" είπε:

Αυτό που περιγράφεις δεν είναι καν developer. Είναι ένας frontend χωρίς background πληροφορικής. Αυτό που θέλω να πω είναι ότι σκέτη μια γνώση 2-3 γλωσσών και τεχνικών δε σε κάνει developer. Ίσως σε κάνει “διεκπεραιωτή” αλλά όχι developer. Αυτό που περιγράφω είναι το ακριβώς άκρο αντίθετο του “Jack of all trades”, ο οποίος ξέρει λίγο από όλα, τα οποία έμαθε να κάνει στο πόδι.

10 Νοεμβρίου, 2015 στις 1:45 μμ

Ο/η "Stelcha" είπε:

Θα συμφωνήσω στη βάση αυτών που λες δηλαδή ότι χρειάζεται να καταλαβαίνει κανείς προγραμματισμό, αλλά ο πυρήνας είναι η javascript στον frontend developer (που η σοβαρότερη αντιμετώπισή της φαίνεται και από την εξέλιξή της πλέον μέσω της νεοαφιχθείσας Ecmascript 6) ενώ στον backend ο πυρήνας είναι η php ή .net. Αυτό το μπέρδεμα συμβαίνει επειδή οι εταιρείες web στον τόπο μας είναι συχνά μικρομεσαίες και ο προγραμματιστής καταχρηστικά καλείται να κάνει τη δουλειά δύο ή και τριών ανθρώπων. Θα έλεγα μάλιστα ότι στο θέμα front end developer γίνεται τα τελευταία χρόνια ακόμη πιο έντονος ο διαχωρισμός με τον ερχομό των javascript framework όπως τα AngularJS, Backbone, Dojo, Ember αλλά και της html 5 (που μόλις στο 2014 ολοκληρώθηκαν οι προδιαγραφές της) και του responsive layout που είναι πλέον απαραίτητο κομμάτι καθώς το google επιβάλει πλέον τη δημιουργία mobile εκδοχών του site. Συν του γεγονότος ότι οι frontend καλούνται να προγραμματίζουν σε Less, Sass ή ακόμη και Jade και καλούνται να δοκιμάζουν τις εκδόσεις σε πληθώρα εξομοιωτών για κινητά android και ios phone! Υπάρχει λοιπόν μεγάλη ανάγκη για εντατικό έλεγχο και εξειδίκευση του τεχνίτη μόνο στο μπροστινό κομμάτι του site γιατί καλείται να γνωρίζει πάρα πολλά πια αλλά και να κάνει αυτό που έκανε παλιά ο flash designer δηλαδή να αναπαραγάγει τη μέγιστη αισθητική εντύπωση στον επισκέπτη και την ίδια στιγμή να διασφαλίζει τη συμβατότητα σε ένα browser που ακόμη βρίθει από fallback και polyfill, αλλά πλέον προσαρμοσμένο σε μια εποχή όπου όλα καλούνται να φορτώνονται γρήγορα να είναι gziped με sprite maps και data URI και lazy load κτλ. Και με την ταχύτητα να βαθμολογείται με ακρίβεια με υπηρεσίες όπως το PageSpeed Insights. Πέρα πάντως από τα μεγάλα λόγια και τις υποτιθέμενες γνώσεις προγραμματισμού, που περισσότερο είναι marketing παρά ουσία, αυτό δυστυχώς που γίνεται στις περισσότερες μικρομεσαίες επιχειρήσεις καταλήγει να είναι κατά βάση bootstrap (αν δεν παραλλάξουν ένα έτοιμο θέμα) και wordpress (ιδίως το bootstrap υπερκαλύπτει την άγνοια των προγραμματιστών στο να φτιάξουν σωστά custom media queries και το σωστό έλεγχο σε εξομοιωτές), δηλαδή το άκρον άωτον της διεκπεραίωσης. Επειδή δηλαδή ο backend προγραμματιστής κάνει ξεπέτα σε πολλές περιπτώσεις με το backend τελικά έχει χρόνο να ασχοληθεί κατά κάποιο τρόπο και με το frontend καθώς έγινε τελικά θύμα των ίδιων των ετοιματζίδικων λύσεων που ο ίδιος πρότεινε στον εργοδότη και περιόρισε στο τέλος την αξία του. Αλλά ο backend developer μπορεί να είναι θαυμάσιος στο να δίνει λύσεις σε επίπεδο server συνήθως όμως είναι τυφλός στο να διακρίνει αισθητικές λεπτομέρειες σε banner και animation και κάνει κακή χρήση των διαθέσιμων δυνατοτήτων και πόρων και δεν καταλαβαίνει το νόημα των @font-face επειδή συνήθως απλώς τον ενδιαφέρει να τελειώσει τη δουλειά με την λογική του backend όπου δεν βλέπει ο χρήστης παρά μόνο ένας admin. Ο frontend πρέπει να έχει background γνώση του interactive design, όπως ανέφερες πιο πάνω, για να κατανοεί πώς μια σελίδα λειτουργεί αισθητικά πχ με τα σωστά animation ανάλογα με τις προδιαγραφές του site και την ίδια στιγμή να κινείται πρακτικά από την άποψη του UX και των πρακτικών λύσεων φόρτωσης. Με λίγα λόγια πιστεύω, το αποδεικνύουν τα δεδομένα, ότι η ενασχόληση του front end developer ο οποίος πλέον καλείται να σχεδιάσει μέχρι και παιχνίδια σε html 5 είναι δραματικό λάθος να τον βάλεις να ασχοληθεί με server side υποθέσεις. Και το flash δεν τέλειωσε, αντίθετα μέσω προγραμμάτων όπως το edge animate και το επανασχεδιασμένο flash που πλέον εξαγάγει σε canvas αναβιώνει με καινούριο τρόπο. Αυτά τα animation θα τα εμπιστευτείς να τα κάνει ο server side προγραμματιστής; Παρά το ότι πολλά από όσα γράφεις σε αυτό το άρθρο έχουν τεχνική επάρκεια το αναγνωστικό κοινό σε αυτό το άρθρο είναι εξειδικευμένοι τεχνίτες (κι όχι πελάτες) που έχω τη βεβαιόττα πως θα εξέφραζαν πολλές ενστάσεις στην εμπλοκή του server side κομματιού στον frond end developer. Και πιστεύω ότι δίνουμε λανθασμένα σήματα ότι μπορεί ένας άνθρωπος να κάνει τη δουλειά δύο ή και περισσότερων ανθρώπων, που ακόμη κι αν αναγκάζεται να το κάνει καταχρηστικά για να μπορέσει να κινηθεί η επιχείρηση με λίγους πόρους, δεν μπορεί να το κάνει σωστά και εξειδικευμένα ώστε να παρέχει τη μέγιστη ποιότητα σε μια αγορά που εμπορεύεται με παχιά λόγια αλλά εκμεταλλευόμενη την ημιμάθεια έχει γεμίσει από το φτηνό και το ετοιματζίδικο και έχει αυτοκαταστραφεί ρίχνοντας τις τιμές στο ναδίρ. Αυτά τα γράφω με πολύ εκτίμηση συνάδελφέ μου και με πρόθεση να συμβάλω απλώς στη συζήτηση κι όχι να αντιπαρατεθώ, αλλά και να υπερασπιστώ τη δουλειά μας και να πάμε παραπέρα. Αλλωστε, όπως είπε και ο Τσάρλι Τσάπλιν, η ζωή είναι πολύ μικρή για να είμαστε κάτι παραπάνω από μαθητές. Πόσο μάλλον σε μία επιταχυνόμενη και εντατική εργασία όπως αυτή που κινείται στην αιχμή της τεχνολογίας, όπου διαρκώς καινούριες τεχνολογίες ξεπηδούν και καλούνται να φορεθούν σε μια εποχή περιορισμένων budget. Αλλά να μην τα περιορίζουμε σε έναν άνθρωπο που πλένει καθαρίζει, προγραμματίζει και σηκώνει και τα τηλέφωνα.

18 Νοεμβρίου, 2015 στις 5:51 πμ

Ο/η "Τάκης Μπουγιούρης" είπε:

Καλέ μου άνθρωπε: 1) βάζει παραγράφους 2) βάζε λίγες παραγράφους!

Και τι είναι αυτά τα περί “να σηκώνει τα τηλέφωνα”; Μάλλον δεν κατάλαβες. Δε λέω ότι ο frontend developer πρέπει να τα κάνει όλα και να συμφέρει, αλλά ότι είναι frontend DEVELOPER! DEVELOPER! Το frontend είναι προσδιοριστικό στο developer και όχι το αντίστροφο.

18 Νοεμβρίου, 2015 στις 1:27 μμ

Ο/η "Stelcha" είπε:

Λυπάμαι για το σχόλιο που βγήκε κάπως minified αλλά ο υπομονετικός και παρατηρητικός μπορεί να διακρίνει μέσα την ουσία. Eίπα ήδη ότι συμφωνώ με την σημασία του να είναι κάποιος πρωταρχικά developer. Όμως η ένστασή μου με το άρθρο σου συνίσταται στην εμπλοκή της php ως μέρος των καθηκόντων του frontend. Παραθέτω πιο κάτω επίσημο ορισμό για του λόγου το αληθές με τα καθήκοντα του frontend. Όπως θα διαπιστώσεις δεν υπάρχει μέσα λόγος για backend γλώσσα. Μόνο javascript, css, html.

https://en.wikipedia.org/wiki/Front_end_development

25 Νοεμβρίου, 2015 στις 5:14 πμ

Ο/η "Τάκης Μπουγιούρης" είπε:

Η PHP είναι ένα παράδειγμα μιαw απολύτως διαδεδομένης γλώσσας στο web σήμερα χωρίς την οποία δύσκολα επιβιώνεις. Τώρα το πού έμαθες κι έγινες developer ποσώς με ενδιαφέρει. Ας το έμαθες σε C ή σε C++ ή σε Java ή σε Python ή σε Pearl. Αρκεί να είσαι developer! Η Wikipedia απλώς επικεντρώνει στα καθαρά frontend skills. Αν θες, θα έχει πολύ πλάκα να δοκιμάσεις να επιβιώσεις στην αγορά ξέροντας αποκλειστικά και μόνο HTML, CSS & Javascript.

25 Νοεμβρίου, 2015 στις 5:30 μμ

Ο/η "Stelcha" είπε:

Ευχαριστώ για την απάντηση. Το ζήτημα το πας τελείως αλλού από αυτό που εννοώ. Δεν μιλάμε για το τι συμβαίνει στην παθογενή ελληνική αγορά που είναι εξαίρεση στον κανόνα αλλά για θεωρητική διάκριση. Διεθνώς δεν συμβαίνει συγχώνευση frontend και backend development και γι αυτό η wikipedia το αναφέρει σωστά έτσι χωρίς backend γλώσσα. Και εδώ αρκετές αγγελίες που έχουν τον όρο frontend δεν ζητάνε php. Το άρθρο σου θα έπρεπε να τιτλοφορείται Το skillset του web developer και να μην κάνει διάκριση σε frontend. Στο άρθρο καταλήγεις λανθασμένα να περιγράφεις μία μείξη frontend και backend, αυτό το είπα ήδη στο πρώτο σχόλιο. Εσύ τελικά, όπως προκύπτει από τα σχόλια μας, απλώς ισχυρίζεσαι σωστά ότι για να επιβιώσει κάποιος σε ελληνική μικρή startup επιχείρηση 3-4 ατόμων, λόγω των παθογενειών της ελληνικής αγοράς, πρέπει να είναι αναγκαστικά frontend και backend developer ταυτόχρονα, δύο ιδιότητες μαζί. Σε μεγαλύτερες ελληνικές επιχειρήσεις υπάρχει διαχωρισμός. Ξέρω συναδέλφους που εργάζονται μόνο στο backend (.net, php με javascript μόνο για validation κομμάτια) ή μόνο στο frontend κομμάτι (frameworks bootstrap/foundation/skeleton, css preprocessors Less/Sass και jquery) και το αποτέλεσμα είναι ανώτερη ποιότητα στο τελικό αποτέλεσμα. Προτείνω να διορθώσεις τον τίτλο του άρθρου σου σε web developer, άλλαξε αν θες και τους χαρακτηρισμούς μέσα σε web, ή κάτι παρόμοιο, αντί για frontend και όλα θα είναι πρίμα. Οι υπόλοιπες απόψεις σου είναι μια χαρά. Και μετά αν δεν τα θες σβήσε και τα σχόλια μας εφόσον πετύχαμε να βγάλουμε μια άκρη. Ετσι κι αλλιώς ως developer έχεις συνηθίσει και από bug και από beta testers και δεν με παρεξηγείς 🙂 Να είσαι καλά.

25 Νοεμβρίου, 2015 στις 9:17 μμ

Ο/η "Τάκης Μπουγιούρης" είπε:

Να διορθώσω τον τίτλο στο άρθρο; Θα αστειεύσαι! ;-P Διάβασε πιο προσεκτικά αυτά που λέω και μάθε. Άλλο οι ρόλοι εξειδίκευσης που περιγράφεις για αυτούς που κάνουν μόνο καθαρό frontend ή testing κλπ και άλλο το skillset τους.

25 Νοεμβρίου, 2015 στις 10:06 μμ

Ο/η "Stelcha" είπε:

Το ξαναδιάβασα. Γίνεται όντως διάκριση σε θεωρία και πράξη στο άρθρο στις δεξιότητες που πρέπει να έχει ο frontend. Απλώς δεν είναι καλά γραμμένη κατά τη γνώμη μου αυτή η διάκριση. Δεν αναφέρεται δηλαδή η php ως μέρος του backend development (δεν αναφέρεται καθόλου στο άρθρο η λέξη backend, εξού και η σύγχυση) και δεν διευκρινίζεται ότι καταχρηστικά μπαίνει η php στο κομμάτι του frontend λόγω των εγχώριων μικρών επιχειρήσεων και ότι δεν συμβαίνει αυτό κανονικά σε άλλες χώρες ή σε μεγαλύτερες εγχώριες επιχειρήσεις.

Τώρα αναφορικά με το skillset και την πρακτική εφαρμογή επίσης διαφωνώ γιατί το skillset προκύπτει από την εξειδίκευση στην καθημερινή εργασία και αντιστρόφως. Δεν είναι αδιαχώριστα. Κάποιος που δηλώνει πχ και backend developer (php) όταν προσλήφθηκε αλλά ασχολείται στην καθημερινότητα για πέντε χρόνια κατά βάση με javascript/css ή απλώς τροποποιεί έτοιμες php πλατφόρμες ατροφεί αναπόφευκτα στο skillset του στην php. Και δεν είναι ουσιαστικά backend developer ασχέτως το τι εμπορεύεται στο cv του.

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

Front end development, also known as client side development is the practice of producing HTML, CSS and JavaScript for a website or web application so that a user can see and interact with them directly.

Είναι σημαντικό επίσης να πούμε ότι στον ορισμό της wikipedia αποφεύγεται περιοριστικά η λέξη πλοηγός διαδικτύου που υπάρχει στον ορισμό σου. Αντιθέτως προτιμώνται οι έννοιες website ή web application γιατί ο περιορισμός στον browser πολύ περιορισμένος και δεν περιλαμβάνει πχ το frontend development σε apps σε κινητές συσκευές που δεν συνδέονται απευθείας στον browser πχ κάποιο rss reader κτλ. Στο άρθρο σου δεν γίνεται καμία αναφορά για το mobile development ως μέρος του frontend παρά το ότι πχ η δουλειά σε Phonegap, που είναι από τις πιο διαδεδομένες πλατφόρμες ανάπτυξης, προϋποθέτει πρακτικά δεξιότητες frontend (javascript, css, html)!

26 Νοεμβρίου, 2015 στις 5:32 πμ

Ο/η "Τάκης Μπουγιούρης" είπε:

Το mobile development που γίνεται σε Phonegap είναι πανομοιότυπο με το frontend σε πλοηγό. Το Phonegap είναι ένας πλοηγός σε έναν ειδικό container που μιλά με το hardware. Από την άλλη το παραδοσιακό app development σε Java, Obj C, Swift δεν είναι καθόλου σαν το frontend development σε πλοηγό. Για να μην πω πόσο backend development χρειάζεται ένα app είτε παραδοσιακά είτε σε Phonegap. Επομένως ορθά κάνω τη διάκριση.

Δέχομαι ότι υπάρχουν πολλών ειδών frontend. Κι αυτός που σχεδιάζει ένα καντράν αυτοκινήτου ή ενός ασανσέρ πρακτικά frontend, UI, UX κάνει. Είναι προφανές ότι μιλώ για το web και αυτό ταυτίζεται με έναν πλοηγό.

Η Wikipedia εδώ δεν είναι τυπικά σωστή. Εξηγεί, δεν ορίζει. Τι πάει να πει “also known as client side development”. Αναφέρεται γενικά σε τυχαίους clients ή ακριβώς σε πλοηγούς; Απαντώ: σε πλοηγούς!

26 Νοεμβρίου, 2015 στις 11:35 πμ

Ο/η "Stelcha" είπε:

Το phonegap το ανέφερα γιατί είναι η πιο διαδεδομένη πλατφόρμα και ταιριάζει στο skillset που προτείνεις. Το τι γίνεται σε πλατφόρμες όπως το Xamarin ή XCode ή Android studio κτλ είναι γνωστό. Πιστεύω ότι σκόπιμα συγχέεις το skillset του .net και java developer με αυτό του frontend σε javascript για να υποστηρίξεις την άποψή σου. Εδώ όμως μιλάμε για javascript και όχι για java με αφορμή το άρθρο σου που δεν αναφέρεται σε τέτοιες τεχνολογίες.

Τώρα αναφορικά με το θέμα του πλοηγού, νομίζω ότι σκόπιμα το αφήνει αόριστα το Wikipedia γιατί η λογική του τι ακριβώς είναι client θα γίνεται όλο και πιο δυσδιάκριτο στο μέλλον, η έννοια του πλοηγού είναι μια υπεραπλούστευση που ανήκει μια δεκαετία πίσω. Ακόμη και ο κλασικός Chrome ας πούμε είναι ένα περιβάλλον στο οποίο εγκαθίστανται και εφαρμογές, όχι απλώς πλοηγός. Επίσης με τον ερχομό του Node.Js η Javascript έχει περάσει εδώ και καιρό στο backend. Οπότε και τι ανήκει στο server side γίνεται δυσδιάκριτο. Clients και τεχνολογίες όπως το google glass, augmented reality, oculus rift, Microsoft HoloLens δείχνουν μια πρόγευση για αυτό που έρχεται.

Σε όλες τις περιπτώσεις, κλείνω εδώ τον σχολιασμό μου γιατί νομίζω το θέμα εξαντλήθηκε. Πιστεύω ότι το άρθρο, το υπερασπίζεσαι υπερβολικά για την ηλικία του, παρατηρώ ότι δεν έχεις μετακινηθεί σε οποιαδήποτε άποψή σου καθ’ όλη τη διάρκεια της συζήτησής μας και χαίρομαι όταν συμβάλλω αλλά μόνο όταν ο άλλος το επιθυμεί. Καλό είναι επίσης να αναφέρουμε πηγές σε όσα ισχυριζόμαστε και να μη βιαζόμαστε να εκθρονίζουμε πηγές όπως τη Wikipedia που είναι συνεργασιακή δουλειά για την προσωπική μας άποψη, παρότι σεβαστή. Και πιστεύω ότι οι πληροφορίες που υπάρχουν στο άρθρο σου είναι πλέον παρωχημένες και χρειάζονται ενημέρωση. Αυτό δεν το θεωρώ αναγκαστικά πρόβλημα αλλά φυσικό επακόλουθο. Πρακτικά οποιοδήποτε άρθρο τεχνολογίας είναι ξεπερασμένο μετά από ένα χρόνο. Στην τεχνολογία δεν υπάρχουν μνημεία να προσκυνάμε. Οι απόψεις που υποστηρίζουμε σήμερα μπορεί να είναι λανθασμένες αύριο, ποιος θα πίστευε για παράδειγμα ότι η javascript θα γινόταν κάποτε server side και ότι θα γινόταν τόσο βασική για την εποχή μας.

Την διαφωνία μου την αποδεικνύω δεύτερη φορά στο τι είναι frontend με το ακόλουθο βίντεο

https://www.youtube.com/watch?v=pB0WvcxTbCA

Στο πέμπτο λεπτό δείχνει τι πρέπει να γνωρίζει κάποιος frontend developer εν έτει 2015 (από τα οποία θα διαπιστώσεις ότι δεν αναφέρονται στο άρθρο σου παρά ελάχιστα από το νέο skillset και μάλιστα θα ξαναδείς ότι δεν αναφέρεται η php) ενώ από το δέκατο τρίτο λεπτό γίνεται επίσης σαφής διαχωρισμός στο backend (εδώ μπαίνει η php) και αναφέρονται επίσης πλήθος τεχνολογίες τις οποίες δεν αναφέρεις. Και το πλήθος αυτών των τεχνολογιών αποδεικνύει γιατί ο frontend και o backend πρέπει να είναι δύο χωριστοί developer σε ένα μαγαζί μόλις βρει τους πόρους να το κάνει. Αλλιώς κάνουμε πασαλείμματα. Όλα τα άλλα είναι κατά τη γνώμη μου λόγια του καφενείου.

Ευχαριστώ ειλικρινά για τη συζήτησή μας. Θα χαρώ να διαβάσω νέα άρθρα τεχνολογίας στο blog σου.

27 Νοεμβρίου, 2015 στις 4:28 πμ

Ο/η "Τάκης Μπουγιούρης" είπε:

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

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

27 Νοεμβρίου, 2015 στις 11:30 πμ

Ό,τι προαιρείσθε:

Επιτρεπτά (X)HTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> . Εάν προσθέσετε εξωτερικά links στο σχόλιό σας τότε αυτό δε θα εμφανιστεί στη λίστα με τα υπόλοιπα σχόλια έως ότου εγκριθεί από τον υποφαινόμενο, οπότε το νου σου!