Πριν από περίπου 2,5 χρόνια είχα αρχίσει να σκέφτομαι πως θα ήθελα να φτιάξω κάποιο site ή/και εφαρμογή. Τα κακά νέα ήταν πως το να πληρώσω κάποι@ να το κάνει για εμένα ήταν υπερβολικά ακριβό (τουλάχιστον για το δικό μου budget), τα καλά νέα ήταν ότι μπορούσα να μάθω να το κάνω μόνη μου, από το σπίτι μου, αμέσως και άρα να πληρώνω μόνο για τα έξοδα λειτουργίας (domain name & hosting) τα οποία είναι σχετικά χαμηλά. Φυσικά πλέον υπάρχουν και στην Ελλάδα φορείς που διδάσκουν προγραμματισμό, ωστόσο το θέμα του συγκεκριμένου άρθρου είναι πώς θα το καταφέρεις μόν@ σου.

Αρχικά θέλω να μοιραστώ τις σκέψεις μου για την όλη διαδικασία, ώστε να μην υπάρξουν παρεξηγήσεις. Το να μάθεις να γράφεις κώδικα για να δημιουργήσεις ένα site ή ένα πρόγραμμα δεν είναι πολύ εύκολο (όποιος ισχυριστεί το αντίθετο θα πει ψέματα), είναι όμως σίγουρα 100% εφικτό! Δεν είναι απαραίτητη, όπως αρκετ@ φοβούνται, η εξειδικευμένη γνώση μαθηματικών, αλλά χρειάζεται οπωσδήποτε υπομονή και παρατηρητικότητα. Στα χρόνια που ασχολούμαι με τον προγραμματισμό δεν μου έχει χρειαστεί ούτε μία φορά να καταφύγω σε μαθηματικούς υπολογισμούς. Αυτό που μου έχει χρειαστεί όμως είναι το να μάθω να οργανώνω την σκέψη μου σε μία σειρά ώστε να χωρίζω αυτό που θέλω να φτιάξω σε λογικά βήματα με τη χρονική σειρά που πρέπει να γίνουν (αλγόριθμος). Αυτό, λοιπόν, δεν απέχει καθόλου από τη διαδικασία που ακολουθούμε όταν για παράδειγμα θέλουμε να μαγειρέψουμε και δεν νομίζω ότι κάποι@ θα σκεφτόταν ποτέ ότι πρέπει να ξέρει μαθηματικά για να μαγειρέψει!

Ωστόσο, όταν ξεκινάς να μαθαίνεις κώδικα/προγραμματισμό πρέπει να έχεις καταλήξει έστω στο τι θέλεις να κάνεις με αυτή σου τη νέα δεξιότητα. Με τον κώδικα μπορείς να φτιάξεις από κάτι πάρα πολύ απλό, όπως ένα στατικό site, έως κάτι εξαιρετικά πολύπλοκο, όπως το να στείλεις ανθρώπους στο φεγγάρι (βλέπε Margaret Hamilton, τη γυναίκα που μαζί με την ομάδα της έστειλε όντως το ανθρώπινο είδος στο φεγγάρι). Προφανώς δεν απαιτούνται οι ίδιες γνώσεις, ο ίδιος κόπος και ο ίδιος χρόνος για να μάθεις να κάνεις το πρώτο όπως και για το δεύτερο. Το πρώτο πράγμα που πρέπει να κάνεις είναι να σκεφτείς τι θέλεις να μάθεις να δημιουργείς. Από αυτό θα εξαρτηθούν εξάλλου και οι γλώσσες προγραμματισμού (υπάρχουν πάρα πολλές και θα πρέπει να διαλέξεις) που θα επιλέξεις για την αρχή. Θέλεις να κατασκευάζεις sites ή θέλεις να χτίζεις εφαρμογές; Αν θέλεις να χτίζεις εφαρμογές, σε τι λογισμικό θέλεις να τρέχουν; Αυτά είναι τα κρίσιμα πρώτα ερωτήματα.

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

Βήμα 1ο:
Το πρώτο πράγμα που έκανα εγώ ήταν να προσπαθήσω να καταλάβω αν το να μάθω κώδικα ήταν κάτι που θα μου άρεζε πραγματικά. Προσοχή! Συνήθως τα πράγματα που μας αρέσουν είναι αυτά στα οποία νιώθουμε καλ@, αυτά δηλαδή τα οποία μας φαίνονται εύκολα. Αν κάτι σου φαίνεται δύσκολο στην αρχή και δεν σου αρέσει δεν σημαίνει ότι αποκλείεται να σου αρέσει και στο μέλλον. Ίσως χρειάζεται λίγος περισσότερος χρόνος και προσπάθεια! Για να καταλάβω σε τι πήγαινα να “μπλέξω” μπήκα στο Codecademy και ξεκίνησα με τα εισαγωγικά tutorials που υπάρχουν εκεί. Το Codecademy προσφέρεται για μία αρκετά συνοπτική εισαγωγή σε ένα εύρος γλωσσών προγραμματισμού και το προτείνω ανεπιφύλακτα για κάποι@ που τώρα ξεκινάει.

Προσωπικά, είχα καταλήξει μετά από πολλά google searches ότι για αυτά που ήθελα να φτιάξω χρειαζόμουν αρχικά HTML, CSS και Javascript. Οπότε ξεκίνησα από τα tutorials για HTML και CSS που είναι ευκολότερα.

Βήμα 2ο:
Αφού είχα πάρει μία ιδέα από το Codecademy σχετικά με το πώς είναι να γράφεις κώδικα, ξεκίνησα να αναζητώ σχετική βιβλιογραφία πάνω στις γλώσσες που με ενδιέφεραν. Φυσικά, όταν ψάχνουμε για βιβλιογραφία πάνω σε κάποια γλώσσα προγραμματισμού, λόγω των πολύ συχνών αλλαγών που αυτές υφίστανται, σχεδόν αποκλείεται να βρούμε κάτι επίκαιρο στα ελληνικά. (Εδώ αξίζει να σημειωθεί ότι το να ξέρεις καλά αγγλικά είναι παράγοντας που σίγουρα θα κρίνει σε μεγάλο βαθμό το μέχρι πού μπορούν να φτάσουν οι γνώσεις σου στον κώδικα. Αυτό το εμπόδιο, κατά τη γνώμη μου, συμβάλλει αρκετά στο ψηφιακό χάσμα της χώρας μας και είναι ίσως ο κυριότερος λόγος για τον οποίο ιδρύσαμε το Code it Like a Girl και το Geek Islands. )
Το βιβλίο το οποίο απέσπασε τη διαδικτυακή ομοφωνία ως προς το ποιο είναι το καλύτερο εισαγωγικό εγχειρίδιο για την HTML & την CSS ήταν ανεπιφύλακτα το HTML and CSS: Design and Build Websites. Ο ίδιος έχει γράψει και το επίσης πολύ καλό JavaScript and JQuery: Interactive Front-End Web Development.

Είτε σε hard copy είτε σε ebook το διάβασμα κάποιου βιβλίου για την γλώσσα που σε ενδιαφέρει είναι συνήθως πιο αποδοτικό καθώς δεν παίρνεις την πληροφορία από τον browser σου στον οποίο έχεις συνέχεια ανοιχτά τα tabs του facebook, του youtube και του mail σου. Αν είσαι σαν κι εμένα, αυτός είναι ο μόνος τρόπος να γίνει σωστή δουλειά! 😉

Βήμα 3ο:

Σε αυτό το στάδιο έχεις ήδη μάθει αρκετά ώστε να ξεκινήσεις να δημιουργείς από την αρχή κάτι δικό σου. Δεν χρειάζεται να τα έχεις μάθει όλα απέξω, καθώς θα μπορείς πάντα να ανατρέχεις στα βιβλία, τα tutorials ή τη Google! Η εξάσκηση είναι ο καλύτερος τρόπος να μάθεις και να βελτιωθείς σε μια νέα δεξιότητα και αυτό ισχύει λίγο περισσότερο για τον κώδικα. Μέσω της εξάσκησης θα ανακαλύψεις ποια είναι τα κενά σου, θα διορθώσεις τα συχνά σου λάθη και θα σου έρθουν περισσότερες ιδέες για το τι θα ήθελες να φτιάξεις ή ποια λειτουργία θέλεις να προσθέσεις στο site ή την εφαρμογή σου. Το να γράφεις κώδικα συνήθως σημαίνει ένα ατελείωτο google search αποριών το οποίο κατά κύριο λόγο θα σε οδηγεί στο forum stackoverflow. Σε αυτό το στάδιο το πιο σημαντικό κομμάτι είναι να μπορείς να διατυπώνεις την ερώτηση ή το πρόβλημά σου σωστά. Δοκίμασε διάφορα search terms μέχρι να βρεις κάτι σχετικό με αυτό που ψάχνεις! Για παράδειγμα αν θέλεις να κάνεις τις εικόνες σε ένα site να εμφανίζονται ως κύκλος θα χρειαστεί να γκουγκλάρεις κάτι σαν αυτό:

screen-shot-googlesearch

και αμέσως αυτή η αναζήτηση θα μεταφραστεί για εσένα ως γνώση της ιδιότητας border-radius στη CSS. Το παράδειγμα αυτό είναι πολύ εύκολο, αλλά you get the point! 😉

Βήμα 4ο:
Συνεχές ψάξιμο και βελτίωση. Υπάρχει εκεί έξω μία απίστευτη ποσότητα πληροφορίας! Είτε σε πιο ακαδημαϊκό επίπεδο από πολύ γνωστά εκπαιδευτικά ιδρύματα που συνεργάζονται με πλατφόρμες για MOOCs (βλέπε edX, Coursera κτλ) είτε σε πιο τεχνικό και εξειδικευμένο όπως το καταπληκτικό treehouse. Κάποια από αυτά είναι εντελώς δωρεάν και κάποια με αμοιβή.

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

 

Μέσα σε 1 περίπου μήνα “αυτοδιδαχής” ήμουν ικανή να φτιάξω ένα site χρησιμοποιώντας HTML, CSS, bootstrap και Javascript, το οποίο φαινόταν αρκετά σύγχρονο και είχε όλα τα τότε web design trends. Βέβαια μετά έπρεπε να μάθω το πώς λειτουργούν οι servers, το hosting και τα σχετικά, το οποίο ίσως και να μου πήρε περισσότερο χρόνο από το να φτιάξω το ίδιο το site μου, μιας και δεν είχα την παραμικρή ιδέα για το πώς λειτουργούν αυτά και τι με συμφέρει. Περισσότερα για αυτό το θέμα όμως θα γράψω σε επόμενο How-to! Εσύ πώς έμαθες/μαθαίνεις να γράφεις κώδικα; Αν θέλεις να μοιραστείς την ιστορία σου δες τη σελίδα Get involved!