Θα γράψω μια γνώμη για το θέμα...
Οι υποστηρικτές τού λίνουξ συχνά μοιάζουν κάπως με ιεραπόστολοι που προωθούν την αληθινή πίστη στον κόσμο. Πιστεύω ότι αυτό είναι λάθος. Επίσης πιστεύω ότι γενικότερα λάθος είναι συχνά ο δρόμος που ακολουθείται στο θέμα τής εκμάθησης τών ηλεκτρονικών υπολογιστών.
Κατά την γνώμη μου όταν θέλεις να δείξεις σε κάποιον υπολογιστές, δεν πρέπει ούτε να τούς αρχίσεις να τούς λες ιστορίες για το Unix και το GNU, ούτε να τούς εξηγείς τι είναι το λειτουργικό και τι είναι ο πυρήνας ενός λειτουργικού, ούτε πώς εγκαθίσταται το λειτουργικό, ούτε τι είναι η οθόνη, τι είναι το πληκτρολόγιο, τι είναι το ποντίκι κλπ. Αυτό που πρέπει να κάνεις είναι να τον καθίσεις σε έναν υπολογιστή που δουλεύει σωστά και να τον αφήσεις να δει ο ίδιος.
Η πίστη μου σε αυτήν την προσέγγιση είναι πολύ γενικότερη και ανεξάρτητη τού λίνουξ. Αλλά στο λίνουξ έχει την επιπλέον σημασία γιατί ο περισσότερος κόσμος δεν έχει ποτέ την ευκαιρία να δει το λίνουξ. Στην πραγματικότητα εμπειρικά ακόμα και ο "χρήστης windows" που έχει μάθει σε αυτά εξοικειώνεται πολύ γρήγορα αρκεί να μην τον ζαλίσεις θέλοντας να τού εξηγήσεις "τι είναι το λίνουξ".
Χωρίζω την διαδικασία που κατά την γνώμη μου είναι η πλέον λογική σε φάσεις.
1η φάση - εξοικείωση με το γραφικό περιβάλλον.
Ο κατά την γνώμη μου συντομότερος δρόμος είναι να ξεκινήσει κάποιος από την γραμμή εντολών. Όμως στην γενική περίπτωση καλό είναι πρώτα να εξοικειωθεί με το γραφικό περιβάλλον. Αυτό για τρεις λόγους:
α) Το γραφικό περιβάλλον είναι ο συνηθισμένος τρόπος χρήσης τών υπολογιστών. Αν δεν το δείξουμε πρώτα είναι σαν να λέμε ψέματα.
β) Κάποιος που ενδιαφέρεται μόνο για την χρήση τού υπολογιστή δεν τον ενδιαφέρει πραγματικά να μάθει πέντε πράγματα. Δεν υπάρχει όμως λόγος να μην αποκτήσει εξοικείωση με τον υπολογιστή και ίσως αργότερα να δεχθεί ευκολότερα να μάθει κάτι.
γ) Κάποιος που προέρχεται από άλλο σύστημα είναι βαθύτατα ανήσυχος. Δεν ωφελεί να τού πει κάποιος ότι είναι εύκολο. Ο μόνος τρόπος να διασκεδαστούν οι ανησυχίες του είναι να το δει. Άλλο να στο λένε και άλλο να το βλέπεις και να το πιάνεις.
Επίτηδες λέω εξοικείωση και όχι εκμάθηση. Αν θεωρούμε ότι το γραφικό περιβάλλον είναι κάτι που πρέπει να το "μάθει" κάποιος πιστεύω ότι έχουμε ξεκινήσει στραβά. Σε αυτήν την φάση δεν πρέπει να κουράσουμε κάποιον με καμμία "περιττή" πληροφορία όσο σημαντική και αν την θεωρούμε. Δεν είναι καλή ιδέα η προσπάθεια "εξήγησης". Ο κόσμος αντιλαμβάνεται το γραφικό περιβάλλον απλώς μέσα από την χρήση. Το μόνο που χρειάζεται κάποιος είναι να καθήσει και να κάνει μερικά "απλά" πραγματάκια. Μέσα σε αυτά θα πρέπει να περιλαμβάνονται πιστεύω τα ακόλουθα βήματα:
1ο βήμα - περιήγηση στο διαδίκτυο (πχ firefox)
2ο βήμα - τρέξιμο εφαρμογών (διάφορες εφαρμογές, πχ office, πασιέντζα)
3ο βήμα - διαχείριση αρχείων (πχ ναυτίλος και αντιγραφή, μετακίνηση, διαγραφή αρχείων)
4ο βήμα - (αυτόματη) προσάρτηση δίσκων (cd, dvd, στικάκια, άλλες κατατμήσεις)
5ο βήμα - διαχείριση ρυθμίσεων συστημάτος και λογαριασμοί χρήστών
6ο βήμα - εγκατάσταση εφαρμογών.
Η σειρά που τα έβαλα δεν είναι τυχαία. Γιατί είναι εξαιρετικά χρήσιμο πρώτα να δει κάποιος το διαδίκτυο αφενός γιατί πρακτικά σήμερα είναι το πλέον σημαντικό κομμάτι τής λειτουργίας τού υπολογιστή για τον περισσότερο κόσμο, αφετέρου γιατί θα αισθανθεί αμέσως οικεία πράγμα σημαντικό.
Μετά το τρέξιμο εφαρμογών είναι αυτό που ανησυχεί περισσότερο κόσμο αν θα μπορεί να τρέξει εύκολα αυτό που θέλει.
Το 3ο και 4ο βήμα είναι βασικές ενέργειες. Το γεγονός ότι εξοικειώνεται κάποιος με τον ναυτίλο δεν σημαίνει ότι είναι καλή ιδέα να τού μάθουμε τώρα πράγματα για το λίνουξ όπως να τού εξηγήσουμε τι είναι ο ριζικός φάκελος και τι περιέχει. Τον χρήστη τον ενδιαφέρει σε αυτήν την φάση να μπορεί να βρει τα αρχεία του και να μπορεί να κάνει αυτές τις απλές δουλειές. Τίποτα περισσότερο τίποτα λιγότερο.
Στο 5ο βήμα εννοώ εντελώς απλές εργασίες όπως αλλαγή ταπετσαρίας ή προσθήκη πληκτρολογίου. Το βασικό δεν είναι να ξέρει πολλά, το σημαντικό είναι να ξέρει που θα κοιτάξει για τις ρυθμίσεις συστήματος και το γεγονός ότι και αυτές οι δουλειές γίνονται στο γραφικό περιβάλλον.
Την εγκατάσταση εφαρμογών την άφησα τελευταία και φυσικά είναι επίσης βασικό στοιχείο τής χρήσης ενός υπολογιστή. Τώρα ανάλογα με τις προσωπικές ανάγκες τού καθενός μπορεί να θέλει επιπλέον να μάθει πέντε πράγματα για κάποια εφαρμογή ή κάτι χρήσιμο όπως να κρατά εύκολα αντίγραφα ασφαλείας με το luckyBuckup. Αλλά σε γενικές γραμμές πιστεύω ότι το καλύτερο αν είναι δυνατόν είναι να περάσεις κάποιον στην δεύτερη φάση όσο γίνεται νωρίτερα.
2η φάση - εξοικείωση-εκμάθηση γραμμής εντολών.
I once heard an author remark that when you are a child you use a computer by looking at the pictures. When you grow up, you learn to read and write. Welcome to Computer Literacy 101. Now let's get to work.
--William E. Shotts, Jr.
Μπορεί πολλοί να νομίζουν ότι μπορούν να μάθουν περισσότερα για τούς υπολογιστές χωρίς να ασχοληθούν με την γραμμή εντολών και ίσως να έχουν δίκιο από μια άποψη αλλά εγώ πιστεύω ότι λίγα πραγματάκια για στην γραμμή εντολών είναι απαραίτητη προπαίδεια που βοηθάει πάρα πολύ. Εμπειρικά το απλό κείμενο βοηθάει πολύ το ανθρώπινο μυαλό να σκεφτεί αφηρημένα, πράγμα που η εικόνα δεν κάνει. Είναι πολύ βασική προπαίδεια για πολλούς λόγος δηλαδή ακόμα για να μπει σε έναν τρόπο αντίληψης.
Τώρα θεωρητικά μπορεί κάποιος μπορεί να περάσει στην κατάσταση τού εγγράμματου στην πληροφορική (δηλαδή αυτού που μπορεί να αναγνωρίσει κείμενο) με οποιαδήποτε γλώσσα προγραμματισμού. Αλλά η γνώμη μου είναι ότι πολύ καλύτερο είναι να ξεκινήσει με λίγη bash. Κάποια "παιχνιδάκια" που σε μαθαίνουν γλώσσα προγραμματισμού δεν τα θεωρώ καθόλου κακή ιδέα για κάποιον που έχει όρεξη πρώτα να πειραματιστεί παίζοντας (και να μάθει και πέντε πράγματα) και είναι μια χαρά, αλλά πιστεύω ότι αξίζει κάποιος όσο γίνεται ταχύτερα να αφιερώσει λίγα λεπτά να δει το bash.
Γιατί bash;
Το bash είναι πολύ εύκολος φλοιός, πολύ κοινός φλοιός και πολύ ισχυρός φλοιός. Επιπλέον είναι πολύ στενά συνδεδεμένο με το λίνουξ και έτσι είναι ιδανική ευκαιρία να έρθει σε επαφή με κάποιες βασικές γνώσεις με τρόπο πρακτικό. Ο φλοιός προσφέρει ιδιαίτερα άμεση επικοινωνία με το λειτουργικό πράγμα σημαντικό ανεξαρτήτως αν κάποιος έχει όρεξη να ασχοληθεί με προγραμματισμό ή όχι. Θα είναι δε στην ευχάριστη θέση πολύ γρήγορα να έχει μια αυτοπεποίθηση και γρήγορη κατανόηση στις οδηγίες που βρίσκει σε τερματικό.
Στην πραγματικότητα αυτά που πιστεύω ότι είναι απαραίτητα ως προπαίδεια είναι λίγα και εύκολο και γρήγορο να αποκτηθούν. Ο άνθρωπος που θα επιχειρήσει να μάθει πέντε πράγματα δεν είναι ο Μόγλης που τον μεγάλωσαν οι λύκοι, αλλά ήδη γνωρίζει να μιλάει, να διαβάζει και να γράφει που είναι βασικές δεξιότητες. Το μεγαλύτερο μέρος τής προσπάθειας το έχει ήδη κάνει.
Πώς;
Ενώ με το γραφικό περιβάλλον το καλύτερο είναι απλά κάποιος να δει και να δοκιμάσει και αυτό γενικά αρκεί· η γραμμή εντολών είναι περισσότερο απαιτητική και αινιγματική για τον νέο χρήστη. Η συνηθέστερη βοήθεια που δίνεται είναι λίστες με εντολές και τι κάνουν. Αυτές είναι συχνά καλές σαν σημείο αναφοράς και βοήθειας τόσο στον νέο αλλά συχνά και στον πιο έμπειρο, αλλά δεν βοηθούν αρκετά τον αρχάριο να βγάλει νόημα, ούτε να μπει σε μια σειρά. Φυσικά με την χρήση σιγά-σιγά θα μπει στο νόημα αλλά η γνώμη μου είναι ότι υπάρχει πολύ καλύτερος δρόμος. Ούτε παρακολουθώντας μάθημα σε στυλ διάλεξης είναι πολύ καλή ιδέα. Αυτό γιατί ο καθένας έχει τον δικό του ρυθμό, η γραμμή εντολών από την φύση της απαιτεί να κάτσει κάποιος και να σκεφτεί, να ξαναδεί πράγματα κατά βούληση, να ψάξει το θέμα, να κάνει δοκιμές. Μια διάλεξη δεν δίνει τέτοια περιθώρια και καταλήγει να είναι θανάσιμα βαρετή (εκτός από τις φάσεις που υπάρχει διαδραστικότητα αλλά είναι αδύνατος ο απόλυτος συντονισμός).
Ο τρόπος που θεωρώ καλύτερος είναι διαβάζοντας ένα καλό βιβλίο για το θέμα και δοκιμάζοντας. Υπάρχουν αρκετά καλά βιβλία και ένα καλό προσιτό βιβλίο είναι το The Linux Command Line που υπάρχει στην σελίδα http://linuxcommand.org και θα μπορούσα να προτείνω αυτό, όμως έκανα και εγώ μια δουλειά. Αντί να κάτσω να το μεταφράσω κάθισα και έγραψα από το μηδέν την δική μου παρουσίαση. Η δική μου προσέγγιση είναι πιο συνοπτική. Ένας λόγος είναι ότι πολλά πράγματα δεν είναι πραγματικά αναγκαία για κάποιον που απλά θέλει να μάθει να χρησιμοποιεί το "τερματικό". Ένας άλλος λόγος είναι ότι αποφεύγω να εξηγήσω πράγματα που κάποιος μπορεί εύκολα να τα ανακαλύψει μόνος του. Αυτό μειώνει το φαινόμενο μέγεθος τής παρουσίασης γιατί δεν επαναλαμβάνω (με κατά την γνώμη μου ανούσιο τρόπο) τα εγχειρίδια και επιπλέον το θεωρώ πολύ καλύτερη μέθοδο για έναν αρχάριο γιατί υποσυνείδητα θα καταλάβει την σύνταξη και με ελάχιστο ψάξιμο μπορεί να την καταλάβει και συνειδητά. Αυτό είναι πολύ καλύτερο από το να πάρει "μασημένη τροφή". Ταυτόχρονα η λογική μου ήταν να μπορεί να την ακολουθήσει ακόμα και πιο βαριεστημένος και να είναι ακίνδυνη όσο γίνεται. Το τελικό (?) αποτέλεσμα το χώρισα σε τρία μέρη και βρίσκεται στον τομέα «μαθήματα τερματικού».
Μέρος πρώτο
Μέρος δεύτερο
Μέρος τρίτο
Σε αυτό το σημείο κάποιος έχει την κατά την άποψή μου απαραίτητη προπαίδεια για να προχωρήσει σε άλλα θέματα.
3η φάση
Αν θέλετε να εξηγήσετε πράγματα όπως: τι είναι ο πυρήνας Linux, τι είναι το unix, τι είναι το GNU, τι είναι το ελεύθερο λογισμικό, τι είναι οι διανομές, τι είναι το KDE, το GNOME, το XFCE, τι είναι το Χ παραθυρικό σύστημα, τι είναι οι λογικές κατατμήσεις στούς δίσκους, τι είναι το grub, τι είναι το MBR και άλλα πολλά, τώρα είναι ίσως η ώρα. Δεν έχω κάποια ιδιαίτερη γνώμη για τον τρόπο που θα τα εξηγήσει κανείς εκτός ότι ΠΡΩΤΑ καλό είναι να είναι να έχουν την προηγούμενη προπαίδεια που ανέφερα. Αν πρόκειται να δείξετε πώς γίνεται η εγκατάσταση κάντε το σωστά, εξηγώντας τι γίνεται και τι είναι το κάθε τι. Αν δεν έχετε σκοπό να το εξηγήσετε καλά πιστεύω ότι είναι προτιμότερο να παραπέμψετε σε ένα βιντεάκι στο ίντερνετ.
Μια πολύ ενδιαφέρουσα ενασχόληση που έστω και σαν άσκηση θα ήταν καλή για όλους και όχι για λίγους είναι ο προγραμματισμός. Επειδή έχω άποψη για αυτό, λέω ότι η γνώμη που εξέφρασα παραπάνω, ότι δηλαδή πρώτα κάποιος πρέπει να έχει την εμπειρία και μετά να κατακτήσει την αφαίρεση, ισχύει και για τις γλώσσες προγραμματισμού. Δηλαδή είναι ανόητο να ξεκινάτε κάποιον και να τού εξηγείτε τι είναι αλγόριθμος κλπ. Κατευθείαν δώστε του παραδείγματα και θα μάθει προγραμματισμό όπως μαθαίνει κάποιος να μιλάει. Αφού πρώτα έχει την εμπειρία έχει νόημα να μάθει τις «αρχές», διαφορετικά αυτές είναι κενού περιεχομένου. Επίσης αν χρειάζεται κάποια γλώσσα είναι καλύτερα να πάει κατευθείαν σε αυτή και όχι πρώτα σε κάποια «εισαγωγική». Αλλά αν δεν έχει συγκεκριμένη ανάγκη σαν πρώτη επαφή είναι καλύτερα να γνωρίσει μια διερμηνευόμενη γλώσσα όπως η Python παρά μια συμπιλιζόμενη όπως η C. Αυτό το λέω χωρίς να έχω γνώσεις Python (γνωρίζω κάτι από C++), το λέω κυρίως από την εμπειρία μου ως οπαδός τής παλιάς καλής BASIC.
ΥΓ. Τι καλά θα ήταν να είχαμε παρουσιάσεις σαν αυτήν:
http://www.youtube.com/watch?v=RHAso1yM-D4


