Σαν συγγραφέας του Jargon File και συντάκτης άλλων γνωστών εγγράφων παρόμοιας φύσης, λαμβάνω συχνά email αιτήσεις από ενθουσιασμένους αρχάριους του δικτύου που ρωτάνε (στην ουσία) "πώς μπορώ να γίνω ένας ικανότατος hacker;". Πίσω στο 1996 παρατήρησα πως δεν φαινόταν να υπάρχει κάποιο άλλο FAQ ή web έγγραφο που να θίγει αυτή τη ζωτικής σημασίας ερώτηση, έτσι άρχισα αυτό. Πολλοί hackers τώρα το θεωρούν σημείο ορισμού, και υποθέτω ότι αυτό σημαίνει πως είναι. Επίσης, δεν υποστηρίζω πως είμαι η αποκλειστική αυθεντία σε αυτό το θέμα. Αν δεν σου αρέσει ό,τι διαβάσεις εδώ, γράψε το δικό σου.
Αν διαβάζεις ένα στιγμιότυπο αυτού του εγγράφου εκτός δικτύου, η τρέχουσα έκδοση υπάρχει στο [You must be registered and logged in to see this link.] .
Σημείωση: υπάρχει μιά λίστα από Συχνά Υποβαλόμενες Ερωτήσεις στο τέλος αυτού του εγγράφου. Παρακαλώ διαβάστε τις -δύο φορές- πριν μου στείλετε email ρωτώντας με περί αυτού του εγγράφου.
Η πρωτότυπη, αγγλική έκδοση του εγγράφου αυτού βρίσκεται στο [You must be registered and logged in to see this link.] Πολλές μεταφράσεις του είναι διαθέσιμες: αραβικά, βουλγάρικα, καταλανικά, κινέζικα (απλοποιημένα), δανέζικα, ολλανδικά, εβραϊκά, φινλανδικά, γερμανικά, ιταλικά, γιαπωνέζικα, νορβηγικά, πολωνικά, πορτογαλικά (βραζιλιάνικα), ρουμάνικα, ρώσικα, ισπανικά, τούρκικα, και σουηδικά. Σημειώστε πως εφόσον αυτό το έγγραφο τροποποιείται περιοδικά, μπορεί να μην είναι ενημερωμένες.
Το διάγραμμα πέντε-τελείες-σε-εννιά-τετράγωνα που διακοσμεί αυτό το έγγραφο λέγεται glider. Είναι ένα απλό σχέδιο με κάποιες εκπληκτικές ιδιότητες σε μια μαθηματική προσομοίωση που ονομάζεται Life και διασκέδαζε τους hackers για πολλά χρόνια. Νομίζω πως αποτελεί ένα καλό οπτικό έμβλημα για το πώς περίπου μοιάζουν οι hackers - αρχικά λίγο μυστηριώδεις, αλλά μια πύλη σε έναν ολόκληρο κόσμο με μια δική του, περίπλοκη λογική. Διαβάστε περισσότερα για το έμβλημα glider εδώ.
Τί Είναι ένας Hacker;
Το Jargon File περιέχει ένα σωρό ορισμούς για τον όρο 'hacker', εκ των οποίων οι περισσότεροι έχουν να κάνουν με τεχνική ικανότητα και με μια ευχαρίστηση στη λύση προβλημάτων και ξεπέρασης ορίων. Αν θες όμως να μάθεις πώς να γίνεις ένας hacker, μόνο δύο είναι πραγματικά σχετικοί.
Υπάρχει μία κοινωνία, μια μοιρασμένη κουλτούρα, έμπειρων προγραμματιστών και βετεράνων των δικτύων, που έχει τις ρίζες της ιστορίας της δεκαετίες πίσω, στην εποχή των πρώτων μινι-υπολογιστών και των νεότερων ARPAnet πειραμάτων. Τα μέλη αυτής της κουλτούρας καθιέρωσαν τον όρο 'hacker'. Οι hackers έχτισαν το internet. Οι hackers διαμόρφωσαν το λειτουργικό σύστημα Unix σε αυτό που είναι σήμερα. Οι hackers τρέχουν το Usenet. Οι hackers κάνουν τον Παγκόσμιο Ιστό να δουλεύει. Αν είστε μέρος αυτής της κουλτούρας, αν έχετε συμβάλει σε αυτή και άλλοι άνθρωποι σε αυτή γνωρίζουν ποιός είστε και σας καλούν hacker, είστε ένας hacker.
Το σκεπτικό των hacker δεν περιορίζεται σε αυτή την κουλτούρα των hacker λογισμικού. Υπάρχουν άνθρωποι που εφαρμόζουν την ιδεολογία των hacker σε άλλους τομείς, όπως στα ηλεκτρονικά ή στη μουσική - ουσιαστικά, μπορείς να τη βρεις στα υψηλότερα επίπεδα κάθε επιστήμης ή τέχνης. Οι hackers λογισμικού αναγνωρίζουν αυτά τα εξευγενισμένα πνεύματα παντού και μπορεί να τους καλέσουν κι αυτούς 'hackers' - και μερικοί ισχυρίζονται ότι η φύση των hacker είναι πραγματικά ανεξάρτητη από το συγκεκριμένο μέσο που δουλεύουν οι hackers. Αλλά στο υπόλοιπο αυτού του εγγράφου θα επικεντρωθούμε στις ικανότητες και στην ιδεολογία των hacker λογισμικού, και στις παραδόσεις της μοιρασμένης κουλτούρας που καθιέρωσε τον όρο 'hacker'.
Υπάρχει και μια άλλη ομάδα ανθρώπων που αυτοαποκαλούνται hackers, αλλά δεν είναι. Αυτοί είναι άνθρωποι (κυρίως έφηβοι) που βρίσκουν διασκεδαστικό το να εισβάλλουν σε υπολογιστές και να παραβιάζουν το σύστημα του τηλεφώνου. Οι πραγματικοί hackers ονομάζουν αυτούς τους ανθρώπους 'crackers' και δεν θέλουν να έχουν σχέσεις με αυτούς. Οι πραγματικοί hackers κυρίως πιστεύουν πως οι crackers είναι αργόσχολοι, ανεύθυνοι, και όχι και πολύ έξυπνοι, και το γεγονός ότι μπορείς να σπάσεις την ασφάλεια δεν σε κάνει hacker, όπως και το γεγονός ότι μπορείς να χαλάς αυτοκίνητα δεν σε κάνει μηχανικό αυτοκινήτων. Δυστυχώς, πολλοί δημοσιογράφοι και συγγραφείς έχουν ξεγελασθεί στην χρήση της λέξης 'hacker' και την χρησιμοποιούν για να περιγράψουν τους 'crackers'. Αυτό ενοχλεί υπερβολικά τους πραγματικούς hackers.
Η βασική διαφορά είναι αυτή: οι hackers χτίζουν πράγματα, οι crackers τα σπάνε.
Αν θέλεις να είσαι ένας hacker, συνέχισε να διαβάζεις. Αν θέλεις να είσαι ένας cracker, πήγαινε να διαβάσεις την ομάδα συζητήσεων alt.2600 και ετοιμάσου να κάνεις πέντε στα δέκα και να ανακαλύψεις πως δεν είσαι τόσο έξυπνος όσο νομίζεις. Και αυτά είναι όλα που πρόκειται να πω για τους crackers.
Η Ιδεολογία των Hacker
1. Ο κόσμος είναι γεμάτος από διασκεδαστικά προβλήματα που περιμένουν να λυθούν.
2. Κανένα πρόβλημα δεν πρέπει να λύνεται δύο φορές.
3. Η πλήξη και η αγγαρεία είναι διαβολικές.
4. Η ελευθερία είναι αγαθή.
5. Η ιδεολογία δεν είναι υποκατάστατο της ικανότητας.
Οι hackers λύνουν προβλήματα και χτίζουν πράγματα, και πιστέυουν στην ελευθερία και στην εθελοντική αμοιβαία βοήθεια. Για να γίνεις αποδεκτός ως hacker, πρέπει να συμπεριφέρεσαι σαν να έχεις αυτή την ιδεολογία. Και για να συμπεριφέρεσαι σαν να έχεις αυτή την ιδεολογία, πρέπει πραγματικά να την πιστεύεις.
Αλλά αν συμπεριφέρεσαι σαν hacker με μόνο σκοπό να γίνεις αναγνωρίσιμος στην κουλτούρα, θα χάσεις τον σκοπό σου. Να γίνεις ο τύπος ανθρώπου που πιστέυει σε αυτά τα πράγματα, είναι σημαντικό για εσένα - για να βοηθηθείς και για να έχεις ένα κίνητρο. Όπως με όλες τις δημιουργικές τέχνες, ο πιο αποτελεσματικός τρόπος να γίνεις δάσκαλος, είναι να εμπεδώσεις το σκεπτικό των κυρίων - όχι απλώς διανοητικά, αλλά επίσης συναισθηματικά.
Ή, όπως το θέτει το μοντέρνο Zen ποίημα:
Για να ακολουθήσεις το μονοπάτι:
κοίταξε τον δάσκαλο,
ακολούθησε τον δάσκαλο,
περπάτησε με τον δάσκαλο,
δες μέσα από τον δάσκαλο,
γίνε ο δάσκαλος.
Έτσι, αν θέλεις να είσαι hacker, επανέλαβε τα ακόλουθα μέχρι να τα πιστέψεις:
1. Ο κόσμος είναι γεμάτος από διασκεδαστικά προβλήματα που περιμένουν να λυθούν.
Το να είσαι hacker είναι πολύ διασκεδαστικό, αλλά είναι ένα είδος διασκέδασης που απαιτεί πολλή προσπάθεια. Η προσπάθεια απαιτεί κίνητρο. Οι επιτυχημένοι αθλητές έχουν ως κίνητρο ένα είδος φυσικής απόλαυσης που πηγάζει από το να έχουν καλές επιδόσεις και από το να πιέζουν τους εαυτούς τους να ξεπεράσουν τα δικά τους φυσικά όρια. Παρομοίως, για να είσαι hacker πρέπει να αποκτήσεις έναν ενθουσιασμό στο να λύνεις προβλήματα, να εξασκείς τις ικανότητες σου και την ευφυία σου.
Αν δεν είσαι ο τύπος ανθρώπου που νιώθει έτσι εκ του φυσικού του, θα πρέπει να γίνεις για να τα καταφέρεις ως hacker. Διαφορετικά, θα δεις πως η ενέργειά σου για το hacking θα σπαταλάται από παράγοντες όπως το σεξ, τα χρήματα, και η κοινωνική αποδοχή.
(Επίσης πρέπει να αναπτύξεις ένα είδος πίστης στις δικές σου ικανότητες να μαθαίνεις - έτσι, ακόμα και αν δεν ξέρεις τι απαιτείται για να λυθεί ένα πρόβλημα, αν ασχοληθείς με ένα κομμάτι του και μάθεις από αυτό, θα γνωρίζεις αρκετά ώστε να λύσεις το επόμενο κομμάτι - και ου το καθ' εξής, μέχρι να τελειώσεις.)
2. Κανένα πρόβλημα δεν πρέπει να λύνεται δύο φορές.
Τα δημιουργικά μυαλά είναι μια πολύτιμη, περιορισμένη πηγή. Δεν πρέπει να σπαταλούνται για να "ξανα-ανακαλύπτουν τον τροχό" όταν υπάρχουν τόσα πολλά διασκεδαστικά καινούρια προβλήματα που περιμένουν.
Για να συμπεριφέρεσαι σαν hacker, πρέπει να καταλάβεις πως ο χρόνος κατά τον οποίο σκέπτονται οι άλλοι hackers είναι πολύτιμος - τόσο πολύ, που αποτελεί σχεδόν ηθικό καθήκον για σένα να μοιράζεσαι πληροφορίες, και όταν λύνεις προβλήματα να μοιράζεσαι τις λύσεις ώστε οι άλλοι hackers να μπορούν να λύνουν καινούρια προβλήματα αντί να πρέπει συνεχώς να ασχολούνται με παλιά.
Σημείωσε, όμως, πως "Κανένα πρόβλημα δεν πρέπει να λύνεται δύο φορές." δεν σημαίνει πως πρέπει να θεωρούμε όλες τις υπάρχουσες λύσεις ιερές, ή πως υπάρχει μόνο μία λύση για κάθε πρόβλημα. Συχνά, μαθαίνουμε πολλά για ένα πρόβλημα, τα οποία δεν γνωρίζαμε πριν, διαβάζοντας τη λύση του. Είναι εντάξει, και συχνά απαραίτητο, να αποφασίσουμε πως μπορούμε να δώσουμε μια καλύτερη λύση. Αυτό που δεν είναι εντάξει, είναι τεχνητά, τεχνικά, νομικά, ή θεσμικά όρια (όπως ο κλειστός κώδικας) που αποτρέπουν μια καλή λύση από το να ξαναχρησιμοποιηθεί και αναγκάζουν του ανθρώπους να "ξανα-ανακαλύπτουν τροχούς".
(Δεν είσαι υποχρεωμένος να πιστεύεις πως είσαι αναγκασμένος να μοιράζεσαι όλο το δημιουργικό υλικό σου, αλλά οι hackers που το κάνουν είναι αυτοί που έχουν τον περισσότερο σεβασμό από τους άλλους hackers. Είναι συμβατό με τις αξίες των hacker να πουλάς αρκετό υλικό σου, ώστε να μπορείς να ζεις μια αξιοπρεπή ζωή. Είναι εντάξει να χρησιμοποιείς τις ικανότητες σου στο hacking για να υποστηρίξεις μια οικογένεια ή ακόμα και για να γίνεις πλούσιος, εφόσον δεν ξεχνάς την πίστη στην τέχνη σου και στους φίλους hackers όσο το κάνεις αυτό.)
3. Η πλήξη και η αγγαρεία είναι διαβολικές.
Οι hackers (και οι δημιουργικοί άνθρωποι γενικότερα) δεν πρέπει ποτέ να πλήττουν και να εξαναγκάζονται να κάνουν κάποια ανόητη δουλειά ρουτίνας, επειδή όταν συμβαίνει κάτι τέτοιο, σημαίνει πως δεν κάνουν αυτό που θέλουν και μπορούν - να λύνουν καινούρια προβλήματα. Αυτή η σπατάλη χρόνου και κόπου, κάνει κακό σε όλους. Συνεπώς η πλήξη και η αγγαρεία δεν είναι απλώς ανεπιθύμητες, αλλά διαβολικές.
Για να συμπεριφέρεσαι σαν hacker, πρέπει να το πιστέψεις αυτό τόσο, ώστε να θέλεις να αυτοματοποιήσεις τις πληκτικές εργασίες όσο περισσότερο γίνεται, όχι μόνο για εσένα, αλλά και για όλους τους άλλους (ειδικά για τους άλλους hackers).
(Υπάρχει μιά προφανής εξαίρεση σε αυτό. Οι hackers μερικές φορές μπαίνουν σε διαδικασίες που μπορεί να φανούν σαν αγγαρεία σε κάποιον παρατηρητή, με σκοπό την άσκηση του μυαλού τους, ή για να αποκτήσουν μια ικανότητα, ή κάποιο είδος εμπειρίας που δεν αποκτάται αλλιώς. Αλλά αυτό είναι θέμα επιλογής - κανένας σκεπτόμενος άνθρωπος δεν πρέπει ποτέ να εξαναγκάζεται να βρίσκεται σε μια κατάσταση που τον πλήττει.)
4. Η ελευθερία είναι αγαθή.
Οι hackers είναι εκ του φυσικού τους αντιεξουσιαστές. Οποιοσδήποτε σου δίνει διαταγές, μπορεί να σε σταματήσει από το να λύσεις κάποιο πρόβλημα που σε διασκεδάζει - και, σύμφωνα με τον τρόπο που σκέπτονται οι εξουσιαστές, θα βρει κάποια ανόητη αφορμή για να το κάνει. Έτσι, η ιδεολογία των εξουσιαστών πρέπει να πολεμάται όπου κι αν βρίσκεται, επειδή καταπνίγει εσένα και τους άλλους hackers.
(Αυτό δεν είναι το ίδιο με το να καταπολεμάς όλες τις μορφές εξουσίας. Τα παιδιά πρέπει να συμβουλεύονται και οι εγκληματίες να εμποδίζονται. Κάποιος hacker μπορεί να συμφωνήσει να δεχθεί ένα είδος εξουσίας, περισσότερο για να πετύχει κάτι που θέλει, παρά για να ξοδεύει χρόνο ακολουθώντας διαταγές. Αλλά αυτή είναι μια περιορισμένη, συνειδητή συμφωνία. Το είδος προσωπικής παράδοσης που επιθυμούν οι εξουσιαστές δεν το προσφέρουμε.)
Οι εξουσιαστές υποστηρίζουν την λογοκρισία και την μυστικότητα. Και δεν εμπιστεύονται την εθελοντική συνεργασία και την κοινοποίηση πληροφοριών. Τους αρέσει μόνο η 'συνεργασία' που αυτοί ελέγχουν. Έτσι, για να συμπεριφέρεσαι ως hacker, πρέπει να αναπτύξεις μια ενστικτώδη αντιπάθεια για τη λογοκρισία, τη μυστικότητα, την κατάχρηση εξουσίας και την εξαπάτηση. Και πρέπει να είσαι πρόθυμος να δράσεις σύμφωνα με την άποψη αυτή.
5. Η ιδεολογία δεν είναι υποκατάστατο της ικανότητας.
Για να είσαι hacker, πρέπει να αναπτύξεις αυτή την ιδεολογία. Αλλά με το να αποκτήσεις απλώς μια ιδεολογία δεν γίνεσαι hacker, όπως δεν γίνεσαι αθλητής, ή σταρ της Rock. Το να γίνεις hacker απαιτεί ευφυία, εξάσκηση, αφιέρωση, και σκληρή δουλειά.
Συνεπώς, θα πρέπει να μάθεις να εκτιμάς την ικανότητα. Οι hackers δεν χάνουν τον χρόνο τους με ανθρώπους που επιδυκνύονται συνεχώς, αλλά εκτιμούν βαθύτατα την ικανότητα - ειδικά την ικανότητα στο hacking, αλλά η ικανότητα σε οποιονδήποτε τομέα, θεωρείται σημαντική. Το να είσαι ικανός σε τομείς που λίγοι τα καταφέρνουν, είναι ιδιαίτερα καλό, και η ικανότητα σε τομείς που απαιτούν οξύτητα του νου, τέχνη, και συγκέντρωση, είναι ακόμα καλύτερο.
Αν σέβεσαι την ικανότητα, θα το βρεις διασκεδαστικό να την αναπτύξεις για τον εαυτό σου - η σκληρή δουλειά και η αφιέρωση θα γίνουν ένα είδος έντονου παιχνιδιού αντί για ρουτίνα. Αυτό το σκεπτικό είναι ζωτικής σημασίας για την πορεία σου ως hacker.
Βασικές Ικανότητες του Hacking
1. Μάθε να Προγραμματίζεις.
2. Πάρε ένα από τα Unixes ανοικτού κώδικα και μάθε να το χρησιμοποιείς και να το τρέχεις.
3. Μάθε πώς να χρησιμοποιείς τον Παγκόσμιο Ιστό και να γράφεις HTML.
4. Αν δεν γνωρίζεις λειτουργικά αγγλικά, μάθε.
Η ιδεολογία των hacker είναι ζωτική, αλλά οι ικανότητες είναι ακόμα πιο ζωτικές. Η ιδεολογία δεν είναι υποκατάστατο της ικανότητας, και υπάρχει ένα συγκεκριμένο πεδίο γνώσεων το οποίο πρέπει να έχεις πριν καν ονειρευτείς πως κάποιος hacker θα σε ονομάσει έτσι.
Αυτό το πεδίο γνώσεων μεταβάλλεται αργά κατά τη διάρκεια του χρόνου, καθώς η τεχνολογία δημιουργεί καινούριες ικανότητες και αχρηστεύει τις παλιές. Για παράδειγμα, παλιά έπρεπε να ξέρεις να προγραμματίζεις σε γλώσσα μηχανής, και μέχρι πρόσφατα, δεν απαιτούνταν η γνώση HTML. Αλλά τώρα, ξεκάθαρα, απαιτούνται τα ακόλουθα:
1. Μάθε να Προγραμματίζεις
Αυτό, φυσικά, είναι η πιο σημαντική ικανότητα για το hacking. Αν δεν γνωρίζεις καμία γλώσσα προγραμματισμού, σου συνιστώ να αρχίσεις με την Python. Είναι καθαρά σχεδιασμένη, καλά τεκμηριωμένη, και σχετικά φιλική προς τους αρχάριους. Εκτός από το ότι αποτελεί μια καλή πρώτη γλώσσα, δεν είναι απλώς ένα παιχνίδι. Είναι πολύ ισχυρή και ελαστική και κατάλληλη για μεγάλα projects. Έχω γράψει μια πιο λεπτομερή αξιολόγηση της Python. Καλά εγχειρίδια είναι διαθέσιμα στο web site της Python.
Στο σημείο αυτό, πρότεινα τη Java ως γλώσσα για εκμάθηση νωρίς, αλλά αυτή η κριτική μού άλλαξε γνώμη (ψάξτε για το "The Pitfalls of Java as a First Programming Language" μέσα σε αυτή). Ένας hacker δεν μπορεί, όπως καταστροφικά το θέτουν "να προσεγγίσει τη λύση προβλημάτων όπως ένας υδραυλικός σε μαγαζί hardware". Πρέπει να γνωρίζεις ουσιαστικά το τί κάνουν τα συστατικά. Πλέον πιστεύω ότι μάλλον είναι καλύτερο να μάθεις C και Lisp πρώτα, και μετά Java.
Αν μπεις σε σοβαρό προγραμματισμό, θα πρέπει να μάθεις C, τη γλώσσα του πυρήνα του Unix. Η C++ είναι παρόμοια με τη C. Αν ξέρεις τη μία, δεν θα δυσκολευτείς να μάθεις την άλλη. Όμως καμία από αυτές τις δύο γλώσσες δεν είναι καλή για να τη μάθεις ως πρώτη σου. Και, βασικά, όσο περισσότερο μπορείς να αποφεύγεις να προγραμματίζεις σε C τόσο περισσότερο παραγωγικός θα είσαι.
Η C είναι πολύ αποδοτική, και πολύ οικονομική για τους πόρους της μηχανής σου. Δυστυχώς, η C είναι τόσο αποδοτική επειδή απαιτεί να κάνεις πολλή, χαμηλού επιπέδου διαχείρηση (όπως διαχείρηση της μνήμης του υπολογιστή) μόνος σου. Όλος αυτός ο κώδικας χαμηλού επιπέδου είναι περίπλοκος και επιρρεπής στα λάθη, και θα σπαταλήσει πάρα πολύ από τον χρόνο σου στην αποσφαλμάτωση. Με τις σημερινές μηχανές, τόσο ισχυρές που είναι, αυτή, είναι συνήθως μια κακή επιλογή - είναι πιο έξυπνο να χρησιμοποιήσεις μια γλώσσα που χρησιμοποιεί τον χρόνο της μηχανής σου λιγότερο αποδοτικά, αλλά τον δικό σου χρόνο πολύ περισσότερο αποδοτικά. Κατά συνέπεια, την Python.
Αλλες γλώσσες ιδιαίτερης σημασίας για hackers αποτελούν η Perl και η LISP. Αξίζει να μάθεις Perl για πρακτικού λόγους. Χρησιμοποιείται ευρέως για τη δημιουργία δυναμικών ιστοσελίδων και για διαχείρηση συστημάτων, έτσι, ακόμα και αν δεν γράψεις ποτέ Perl, πρέπει να μάθεις να τη διαβάζεις. Πολλοί, χρησιμοποιούν την Perl όπως συστήνω να χρησιμοποιείται η Python, δηλαδή, για να αποφευχθεί ο προγραμματισμός σε C, σε περιπτώσεις που δεν απαιτείται η αποδοτικότητα της C. Θα πρέπει να μπορείς να καταλαβαίνεις τον κώδικά τους.
Αξίζει να μάθεις LISP για ένα διαφορετικό λόγο - για τη βαθιά εμπειρία που θα αποκτήσεις όταν τη μάθεις. Αυτή η εμπειρία θα σε βελτιώσει σημαντικά ως προγραμματιστή, ακόμα και αν δεν χρησιμοποιήσεις πολύ τη LISP καθεαυτή. (Μπορείς να αποκτήσεις κάποια αρχική εμπειρία με τη LISP σχετικά εύκολα, γράφοντας και τροποποιώντας μορφές του επεξεργαστή κειμένου Emacs, ή πρόσθετα Script-Fu για το GIMP.)
Θα ήταν πολύ καλό, λοιπόν, να μάθεις και τις πέντε γλώσσες: Python, C/C++, Java, Perl, και LISP. Εκτός από το ότι είναι οι πιο σημαντικές γλώσσες για το hacking, αντιπροσωπεύουν πολύ διαφορετικές προσεγγίσεις στον προγραμματισμό, και η καθεμία θα σε επιμορφώσει με τον δικό της τρόπο.
Αλλά να ξέρεις πως δεν θα φτάσεις το επίπεδο ικανοτήτων ενός hacker ή ακόμα ούτε ενός προγραμματιστή αν γνωρίζεις μόνο μία ή δύο γλώσσες προγραμματισμού. Πρέπει να μάθεις πώς να σκέφτεσαι για τα προγραμματιστικά προβλήματα γενικά, ανεξαρτήτως από οποιαδήποτε γλώσσα. Για να είσαι ένας πραγματικός hacker, πρέπει να φτάσεις στο σημείο να μπορείς να μάθεις μια καινούρια γλώσσα σε μέρες, συσχετίζοντας το τί υπάρχει στο εγχειρίδιο με αυτά που ήδη ξέρεις. Αυτό σημαίνει πως πρέπει να μάθεις πολλές, πολύ διαφορετικές μεταξύ τους, γλώσσες.
Δεν μπορώ να δώσω εδώ πλήρεις οδηγίες για το πώς να μάθεις να προγραμματίζεις - είναι μια περίπλοκη ικανότητα. Αλλά μπορώ να σου πω πως τα βιβλία και τα μαθήματα δεν θα σε βοηθήσουν πολύ (πολλοί, ίσως οι περισσότεροι από τους καλύτερους hackers είναι αυτοδίδακτοι). Μπορείς να μάθεις στοιχεία των γλωσσών - κομμάτια γνώσης - από τα βιβλία, αλλά η μέθοδος που θα μετατρέψει αυτή τη γνώση σε ζωντανή ικανότητα μπορεί να διδαχθεί μόνο από την εξάσκηση και από τη μαθητεία. Αυτό που πραγματικά θα σε μάθει, είναι (α) να διαβάζεις κώδικα και (β) να γράφεις κώδικα.
Ο Peter Norvig, ο οποίος είναι ένας από τους καλύτερους hackers της Google και ο ένας από τους δύο συντάκτες του περισσότερο διαδεδομένου βιβλίου στην Τεχνητή Νοημοσύνη, έχει γράψει ένα εξαιρετικό δοκίμιο που λέγεται Teach Yourself Programming in Ten Years. Η "συνταγή για την προγραμματιστική επιτυχία" που έγραψε, αξίζει ιδιαίτερη προσοχή.
Το να μαθαίνεις να προγραμματίζεις είναι σαν να μαθαίνεις να γράφεις σωστά τη μητρική σου γλώσσα. Ο καλύτερος τρόπος να το κάνεις, είναι να διαβάζεις υλικό γραμμένο από τους ειδικούς, να γράφεις λίγο, να διαβάζεις περισσότερο, να γράφεις λίγο παραπάνω, να διαβάζεις ακόμα περισσότερο, να γράφεις λίγο ακόμα ... και ου το καθ εξής, μέχρι το γράψιμό σου να αρχίσει να ανατπύσσει το είδος της δύναμης και της οικονομίας που βλέπεις στα μοντέλα σου.
Παλιά ήταν δύσκολο να βρεις καλό κώδικα για να διαβάσεις, επειδή δεν υπήρχαν πολλά διαθέσιμα μεγάλα καλογραμμένα προγράμματα σε κώδικα, ώστε να τα διαβάσουν οι hackers και να τα τροποποιήσουν. Αυτό έχει αλλάξει δραματικά. Το λογισμικό ανοικτού κώδικα, τα προγραμματιστικά εργαλεία και τα λειτουργικά συστήματα (όλα χτισμένα από hackers) είναι τώρα διαθέσιμα. Και έτσι θα προχωρήσουμε στο επόμενο θέμα...
2. Πάρε ένα από τα Unixes ελεύθρου λογισμικού και μάθε να το χρησιμοποιείς και να το τρέχεις.
Θα θεωρήσω πως έχεις έναν προσωπικό υπολογιστή ή πως έχεις πρόσβαση σε έναν. (Σκέψου λίγο πόσο σημαντικό είναι αυτό. Η κουλτούρα των hacker εξελίχθηκε όταν οι υπολογιστές ήταν τόσο ακριβοί που ένα άτομο μόνο του δεν μπορούσε να έχει έναν.) Το πρώτο και το πιο σημαντικό που μπορεί να κάνει ένας αρχάριος ωστέ να αρχίσει την πορεία του στο hacking, είναι να πάρει ένα αντίγραφο του Linux ή ένα από τα BSD-Unixes ή το OpenSolaris, να το εγκαταστήσει σε έναν προσωπικό υπολογιστή , και να το τρέξει.
Ναι, υπάρχουν και άλλα λειτουργικά συστήματα στον κόσμο εκτός από το Unix. Αλλά όλα τα άλλα μοιράζονται σε δυαδική μορφή - δεν μπορείς να διαβάσεις τον κώδικα και δεν μπορείς να τον τροποποιήσεις. Το να προσπαθείς να μάθεις να κάνεις hacking σε μια μηχανή Microsoft Windows ή σε οποιοδήποτε άλλο σύστημα κλειστού κώδικα, είναι σαν να προσπαθείς να μάθεις να χορεύεις ενώ φοράς μια πανοπλία.
Στο Mac OS X είναι εφικτό, αλλά μόνο κομμάτι του συστήματος είναι ανοικτού κώδικα - πιθανότατα θα "χτυπήσεις" σε πολλούς "τείχους", και θα πρέπει να προσέξεις να μην αναπτύξεις την κακιά συνήθεια να εξαρτάσαι από τον ιδιόκτητο κώδικα της Apple . Αν συγκεντρωθείς αποκλειστικά στο Unix, θα μάθεις κάποια χρήσιμα πράγματα.
Το Unix είναι το λειτουργικό σύστημα του Internet. Ενώ μπορείς να μάθεις να χρησιμοποιείς το Internet χωρίς να γνωρίζεις το Unix, δεν μπορείς να γίνεις Internet hacker χωρίς να καταλαβαίνεις το Unix. Για αυτό το λόγο, η κουλτούρα των hacker σήμερα είναι ιδιαίτερα επικεντρωμένη στο Unix. (Αυτό δεν ήταν πάντα αλήθεια , και κάποιοι παλιοί hackers ακόμα δεν είναι ευχαριστημένοι με αυτό, αλλά η συμβίωση ανάμεσα στο Unix και στο Internet έχει γίνει τόσο δυνατή που ούτε ο μυς της Microsoft δεν φαίνεται ικανός να την κάμψει σοβαρά.)
Έτσι, πάρτε ένα Unix - Προσωπικά μου αρέσει το Linux αλλά υπάρχουν και άλλα είδη (και ναι, μπορείς να τρέχεις και Linux και Microsoft Windows στην ίδια μηχανή). Μάθε το. Τρέξ' το. Παίξε μαζί του. Μίλα στο Internet μέσω αυτού. Διάβασε τον κώδικα. Τροποποίησε τον κώδικα. Θα έχεις πολύ περισσότερα προγραμματιστικά εργαλειά (συμπεριλαμβανομένης της C, της LISP, της Python, και της Perl) από οποιδήποτε λειτουργικό σύστημα της Microsoft. Πέρνα καλά, και θα μάθεις τόσα πολλά, που κάποια στιγμή θα θυμάσαι τον εαυτό σου να μαθαίνει, ενώ θα είσαι ένας ικανότατος hacker.
Για περισσότερες πληροφορίες περί του Unix, βλέπε το The Loginataka. Μπορείς επίσης να ρίξεις μια ματία στο The Art Of Unix Programming.
Για να πάρεις στα χέρια σου το Linux, δες την ιστοσελίδα Linux Online! - μπορείς να το κατεβάσεις από εκεί, ή (μια καλύτερη ιδέα) να βρεις έναν τοπικό σύλλογο φίλων του Linux για να σε βοηθήσει με την εγκατάσταση.
Κατά τη διάρκεια των πρώτων δέκα χρόνων της ζωής αυτού του HOWTO, ανέφερα ότι από την οπτική γωνία ενός νέου χρήστη, όλες οι διανομές του Linux είναι σχεδόν ίδιες. Αλλά μέσα στο 2006-2007, μια αντικειμενικά καλύτερη επιλογή εμφανίστηκε: το Ubuntu. Ενώ οι άλλες διανομές έχουν τα δικά τους προτερήματα, το Ubuntu είναι μακράν το πιο εύχρηστο για αρχάριους στο Linux.
Μπορείς να βρεις βοήθεια και πηγές για το BSD Unix στο [You must be registered and logged in to see this link.]
Ένας καλός τρόπος για να πάρετε μια ιδέα είναι να τρέξετε αυτό που οι φίλοι του Linux αποκαλούν live CD, μια διανομή που τρέχει αποκλειστικά από ένα CD, χωρίς να απαιτείται τροποποίηση του σκληρού δίσκου. Αυτό θα είναι αργό, επειδή τα CD είναι αργά, αλλά είναι ένας τρόπος να δείτε πώς έχουν τα πράγματα, χωρίς να χρειαστεί να κάνετε τίποτα δραστικό.
Μπορείς να βρεις βοήθεια και πόρους για το BSD Unix στο [You must be registered and logged in to see this link.]
Έχω γράψει κάποια πράγματα, σχετικά με τα βασικά του Unix και του Internet.
(Σημείωση: Δεν συστήνω να εγκαταστήσεις το Linux η το BSD μόνος σου, αν είσαι αρχάριος. Για το Linux, βρες έναν τοπικό σύλλογο φίλων του Linux και ζήτα βοήθεια.)
3. Μάθε πώς να χρησιμοποιείς τον Παγκόσμιο Ιστό και να γράφεις HTML.
Τα περισσότερα πράγματα που έχουν δημιουργήσει οι hackers, τρέχουν στο παρασκήνιο, βοηθάνε τα εργοστάσια, τα γραφεία και τα πανεπιστήμια να δουλεύουν, χωρίς να γνωρίζουν για αυτά οι άνθρωποι που δεν είναι hackers. Ο Ιστός είναι μια μεγάλη εξαίρεση, το τεράστιο λαμπερό παιχνίδι των hacker, που ακόμα και οι πολιτικοί παραδέχονται πως έχει αλλάξει τον κόσμο. Για αυτό τον λόγο (και για άλλους επίσης) πρέπει να μάθεις πώς να δουλεύεις με τον Ιστό.
Αυτό δεν σημαίνει απλώς να ξέρεις να οδηγείς έναν φυλλομετρητή (οποιοσδήποτε μπορεί να το κάνει αυτό), αλλά να μάθεις να γράφεις HTML, την περιγραφική γλώσσα του Ιστού. Αν δεν ξέρεις να προγραμματίζεις, γράφοντας HTML θα διδαχθείς κάποιες καλές συνήθειες που θα σε βοηθήσουν να μάθεις. Φτιάξε μια προσωπική ιστοσελίδα. Προσπάθησε να ακολουθήσεις την XHTML, η οποία είναι καθαρότερη γλώσσα από την κλασική HTML. (Υπάρχουν καλά εγχειρίδια στο Διαδύκτιο - εδώ είναι ένα.)
Αλλά μόνο του το γεγονός ότι απλώς θα έχεις μια ιστοσελίδα δεν θα σε κάνει σε καμιά περίπτωση hacker. Το Διαδύκτιο είναι γεμάτο από προσωπικές ιστοσελίδες. Οι περισσότερες από αυτές είναι άσκοπες, χωρίς ουσιαστικό περιεχόμενο - κακοσχεδιασμένες, και άσχημες (για περισσότερα περί αυτού, βλέπε το The HTML ***** Page).
Για να είναι σημαντική, η σελίδα σου πρέπει να έχει ουσία - πρέπει να έιναι ενδιαφέρουσα και/ή σημαντική για τους άλλους hackers. Και αυτό με φέρνει στο επόμενο θέμα...
4. Αν δεν γνωρίζεις λειτουργικά αγγλικά, μάθε.
Σαν Αμερικάνος, και έχων την αγγλική ως μητρική γλώσσα, είχα αμφιβολίες ως προς το να συμβουλέψω αυτό, επειδή μπορεί να θεωρούνταν πολιτισμικός ιμπεριαλισμός. Αλλά και άλλοι άνθρωποι, που δεν έχουν την αγγλική ως μητρική γλώσσα, με προέπεμψαν να τονίσω πως η αγγλική, είναι η γλώσσα της κουλτούρας των hacker και του Internet, και έτσι λοιπόν, θα πρέπει να την γνωρίζεις για να λειτουργήσεις στην κοινωνία των hacker.
Πίσω στο 1991 έμαθα πως hackers που δεν έχουν την αγγλική ως μητρική, την χρησιμοποιούν στις τεχνικές τους συζητήσεις, ακόμα και αν έχουν κοινή μητρική γλώσσα. Πληροφορήθηκα τότε, πως η αγγλική έχει πλουσιότερο τεχνικό λεξιλόγιο από οποιαδήποτε άλλη γλώσσα και, απλά, είναι ένα καλύτερο εργαλείο για τη δουλειά. Για παρόμοιους λόγους, μεταφράσεις Αγγλικών τεχνικών βιβλίων, είναι συχνά μη ικανοποιητικές (αν τελικά ολοκληρώνονται).
Ο Linus Torvalds, ένας Φινλανδός, γράφει Αγγλικά σχόλια στον κώδικά του (προφανώς δεν διανοήθηκε ποτέ πως μπορεί να κάνει αλλιώς). Η ευχαίρειά του στα Αγγλικά υπήρξε σημαντικός παράγοντας στην ικανότητά του να μαζέψει προγραμματιστές από όλο τον κόσμο για να φτιάξουν μαζί το Linux. Αποτελεί παράδειγμα προς μίμηση.
Ακόμα και αν έχεις την αγγλική για μητρική σου, δεν είναι σίγουρο πως έχεις τις κατάλληλες γλωσσικές ικανότητες ώστε να λειτουργήσεις ως hacker. Αν τα γραπτά σου είναι ανορθόγραφα και με άσχημο συντακτικό, πολλοί hackers, (συμπεριλαμβανομένου και εμένα) θα σε αγνοούν. Παρόλο που το άσχημο γράψιμο δεν σημαίνει απαραιτήτως μη ικανό μυαλό, έχουμε γενικώς παρατηρήσει πως η σχέση μεταξύ των δύο είναι μεγάλη - και δεν δεχόμαστε άτομα που δεν έχουν την ικανότητα να σκεφτούν. Αν δεν έχεις μάθει ακόμα να γράφεις σωστά, κάντο.
Κοινωνικό Προφίλ στην Κουλτούρα των Hacker
1. Γράφε λογισμικό ανοικτού κώδικα
2. Βοήθησε στον έλεγχο και στην αποσφαλμάτωση λογισμικού ανοικτού κώδικα
3. Δημοσίευε χρήσιμες πληροφορίες
4. Βοήθησε στη διατήρηση της υποδομής
5. Υπηρέτησε την κουλτούρα των hacker, καθεαυτή
Όπως στις περισσότερες κουλτούρες χωρίς οικονομική δραστηριότητα, έτσι και στον κόσμο του hacking μετράει η φήμη και η αναγνωρισιμότητα. Προσπαθείς να λύσεις ενδιαφέροντα προβλήματα, αλλά το πόσο χρήσιμα είναι, και το αν οι λύσεις σου είναι καλές, είναι κάτι που θα το κρίνουν τα κατοχυρωμένα μέλη της κοινωνίας.
Παρομοίως, όταν "παίζεις" το "παιχνίδι" του hacking, μαθαίνεις να "κρατάς σκορ" σύμφωνα με το τί νομίζουν οι άλλοι hackers για σένα (για αυτό το λόγο δεν είσαι hacker μέχρι άλλοι hackers να σε καλέσουν έτσι). Αυτό αποκρύπτεται από το γεγονός ότι το hacking είναι δουλειά που γίνεται απόμερα.
Συγκεκριμένα, ο κόσμος του hacking είναι αυτό που οι κοινωνιολόγοι ονομάζουν κουλτούρα δώρων. Σε αυτή, δεν γίνεσαι αναγνωρίσιμος με το να κατακτείς άλλους ανθρώπους, ούτε με το να είσαι όμορφος, ούτε με το να έχεις πράγματα που θέλουν οι άλλοι , αλλά με το να δίνεις πράγματα. Συγκεκριμένα, με το να δίνεις τον χρόνο σου, τη δημιουργικότητά σου, και τα αποτελέσματα των ικανοτήτων σου.
Υπάρχουν πέντε βασικά πράγματα που μπορείς να κάνεις για να σε σέβονται οι hackers:
1. Γράφε λογισμικό ανοικτού κώδικα
Το πρώτο (το πιο σημαντικό και το πιο παραδοσιακό) είναι να γράφεις προγράμματα τα οποία οι hackers να βρίσκουν διασκεδαστικά, ή χρήσιμα, και να δίνεις ελεύθερα τον κώδικα των προγραμμάτων, ώστε η κοινότητα των hacker να τον διαβάζει και να τον χρησιμοποιεί.
(Παλαιότερα, αυτό το αποκαλούσαμε "ελεύθερο λογισμικό", αλλά αυτό προκαλούσε τη σύγχυση πολλών ανθρώπων οι οποίοι δεν διερμήνευαν σωστά τη λέξη "ελεύθερο". Οι περισσότεροι από εμάς, τώρα προτιμούμε τον όρο "λογισμικό ανοικτού κώδικα" .)
Οι "ημίθεοι" στον κόσμο του hacking είναι άνθρωποι που έχουν γράψει μεγάλα, χρήσιμα προγράμματα τα οποία έχουν διαδώσει ευρέως, και έτσι τώρα όλοι τα χρησιμοποιούν.
Εδώ, αξίζει να αναφέρω μια σημαντική ιστορική αλήθεια. Ενώ οι κοινότητα των hacker σχεδόν πάντα αποτελούνταν από προγραμματιστές ανοικτού κώδικα, πριν τα μέσα του 1990, οι περισσότεροι hackers, έγραφαν κυρίως κλειστό κώδικα. Αυτό ίσχυε μέχρι τη συγγραφή της πρώτης έκδοσης του παρόντος εγγράφου , το 1996. Μετά το 1997, η κατάσταση αυτή άλλαξε ριζικά. Σήμερα, "η κοινωνία των hacker" και οι "προγραμματιστές ανοικτού κώδικα" αποτελούν δύο περιγραφές της ίδιας κουλτούρας και του ίδιου πληθυσμού - αλλά αξίζει να θυμόμαστε πως τα πράγματα δεν ήταν πάντα έτσι.
2. Βοήθησε στον έλεγχο και στην αποσφαλμάτωση λογισμικού ανοικτού κώδικα
Πολύ σημαντικό θεωρείται το έργο των ανθρώπων που κάθονται και αποσφαλματώνουν λογισμικό ανοικτού κώδικα. Σε αυτόν τον ατελή κόσμο, θα ξοδέψουμε πολύ από τον χρόνο μας στην φάση της αποσφαλμάτωσης των προγραμμάτων. Για αυτό οι προγραμματιστές ανοικτού κώδικα θεωρούν πως οι καλοί εθελοντές ελεγκτές beta επιπέδου (που ξέρουν πώς να περιγράφουν τα λάθη καθαρά, να επικεντρώνονται στο πρόβλημα, να είναι σύντομοι και περιεκτικοί, και έχουν όρεξη να βοηθήσουν) αξίζουν το βάρος τους σε χρυσάφι. Ακόμα και ένας τους μπορεί να κάνει τη διαφορά στη φάση της αποσφαλμάτωσης, η οποία είναι εξουθενωτική, δυσάρεστη και δεν έχει μεγάλο ενδιαφέρον.
Αν είσαι αρχάριος, δοκίμασε να βρεις ένα πρόγραμμα υπό ανάπτυξη το οποίο σε ενδιαφέρει, και γίνε ένας καλός ελεγκτής beta επιπέδου. Υπάρχει μια φυσική πρόοδος από το να βοηθάς στον έλεγχο προγραμμάτων, στο να βοηθάς στην αποσφαλμάτωσή τους και τέλος, στην τροποποίησή τους. Θα μάθεις πολλά με αυτόν τον τρόπο, και θα αναπτύξεις καλές σχέσεις με ανθρώπους, τη βοήθεια των οποίων θα χρειαστείς αργότερα.
3. Δημοσίευε χρήσιμες πληροφορίες
Ένα άλλο καλό πράγμα είναι να συλλέγεις και να φιλτράρεις χρήσιμες και ενδιαφέρουσες πληροφορίες, σε ιστοσελίδες ή έγγραφα όπως λίστες Συχνά Υποβαλλόμενων Ερωτήσεων (FAQ), και να τις κοινοποιείς.
Οι συντηρητές σημαντικών FAQ χαίρουν τόσου σεβασμού, σχεδόν όσο οι προγραμματιστές ανοικτού κώδικα.
4. Βοήθησε στη διατήρηση της υποδομής
Η κοινότητα των hacker (και η τεχνική ανάπτυξη του Internet) τρέχει από εθελοντές. Υπάρχει πολλή, απαραίτητη, αλλά δυσάρεστη δουλειά που πρέπει να γίνει για τη διατήρηση της υποδομής - η διαχείρηση λιστών ηλεκτρονικού ταχυδρομείου, η οργάνωση ομάδων συζητήσεων, η διατήρηση ηλεκτρονικών τοποθεσιών που αποθηκεύουν μεγάλες ποσότητες λογισμικού, η ανάπτυξη των RFC, και άλλα τεχνικά καθήκοντα.
Οι άνθρωποι που ασχολούνται με αυτού του είδους τις δουλειές χαίρουν μεγάλου σεβασμού, διότι όλοι γνωρίζουν πως αυτές οι εργασίες είναι τεράστιες σπατάλες χρόνου και δεν είναι τόσο διασκεδαστικές, όσο το να "παίζεις" με κώδικα. Το να τις κάνεις δείχνει αφοσίωση.
5. Υπηρέτησε την κουλτούρα των hacker, καθεαυτή
Τέλος, μπορείς να υπηρετήσεις και να διαδώσεις την κουλτούρα καθεαυτή (για παράδειγμα, γράφοντας ένα εύστοχο δοκίμιο για το πώς να γίνεις hacker :-)). Αυτό δεν είναι κάτι που θα κάνεις μέχρι να γίνεις γνωστός για κάποιο/κάποια από τα τέσσερα πρώτα.
Η κοινότητα των hacker δεν έχει ακριβώς αρχηγούς, αλλά έχει "σοφούς", ιστορικούς και εκπροσώπους. Αν είσαι για πολύ καιρό μέσα στα πράγματα, μπορεί να γίνεις ένας από αυτούς. Πρόσεξε: Οι hackers δεν εμπιστεύονται εγωιστές και ανθρώπους που θέλουν να τραβάνε την προσοχή. Έτσι, αντί να το επιδιώκεις συνεχώς, πρέπει να κερδίσεις τον σεβασμό των άλλων και να τους κάνεις να σε εμπιστεύονται.
Η Σύνδεση Hacker/Nerd
Αντιθέτως με τον διαδεδομένο μύθο, δεν είναι απαραίτητο να είσαι nerd για να είσαι hacker. Βοηθάει όμως, και πολλοί hackers είναι στην ουσία nerds. Το να είσαι κοινωνικά αποκλεισμένος σε βοηθάει να μένεις συγκεντρωμένος σε πραγματικά σημαντικά πράγματα, όπως η σκέψη και το hacking.
Για αυτό το λόγο, πολλοί hackers έχουν "υιοθετήσει" τον τίτλο 'nerd' και μερικές φορές χρησιμοποιούν και τον ακόμα σκληρότερο όρο 'geek' σαν σύμβολο υπερηφάνειας - είναι ένας τρόπος να δηλώσουν την ανεξαρτησία τους από τα κοινωνικά πρότυπα.
Αν καταφέρνεις να συγκεντρώνεσαι στο hacking, και να είσαι καλός σε αυτό, ενώ έχεις ζωή, αυτό είναι εντάξει. Αυτό είναι πολύ πιο εύκολο σήμερα από ότι ήταν όταν ήμουν αρχάριος, το 1970. Ο κόσμος τώρα, είναι πολύ πιο φιλικός απέναντι στους nerds. Επίσης, υπάρχουν ομάδες ανθρώπων που πιστεύουν πως οι hackers είναι συχνά πολύ καλοί εραστές ή σύζυγοι.
Αν προσελκύστηκες στο hacking επειδή δεν έχεις ζωή, αυτό είναι επίσης εντάξει - τουλάχιστον δεν θα αντιμετωπίζεις προβλήματα στο να συγκεντρώνεσαι. Ίσως αποκτήσεις ζωή αργότερα.
Αναφορές Για το Στυλ
Για να είσαι hacker, πρέπει να έχεις το σκεπτικό των hacker. Υπάρχουν κάποια πράγματα που μπορείς να κάνεις όταν δεν βρίσκεσαι σε έναν υπολογιστή, που φαίνεται πως βοηθάνε. Δεν είναι υποκατάστατα του hacking (τίποτα δεν είναι) αλλά πολλοί hackers τα κάνουν, και νιώθουν πως σχετίζονται με κάποιο τρόπο, με την ουσία του hacking.
Μάθε να γράφεις σωστά τη μητρική σου γλώσσα. Παρόλο που συνήθως οι προγραμματιστές δεν είναι καλοί στο γράψιμο, ένα μεγάλο μέρος των hackers (συμπεριλαμβανομένων ακόμα και των πιο ικανών) είναι πολύ καλοί συγγραφείς.
Διάβαζε επιστημονική φαντασία. Πήγαινε σε συναντήσεις επιστημονικής φαντασίας (ένας καλός τρόπος να συναντήσεις hackers και proto-hackers).
Να εξασκείς μια πολεμική τέχνη. Το είδος της διανοητικής πειθαρχίας που απαιτείται στις πολεμικές τέχνες, φαίνεται να είναι παραπλήσιο σε αυτό που κάνουν οι hackers. Οι πιο δημοφιλής πολεμικές τέχνες για τους hackers είναι σίγουρα οι ασιάτικες τέχνες άδειου χεριού, όπως το Tae Kwon Do, το Judo, διάφορα είδη του Karate, το Wing Chun, το Aikido, ή το Ju Jitsu. Οι δυτικές και οι ασιατικές τέχνες του σπαθιού, επίσης είναι μια καλή ασχολία. Σε μέρη που είναι νόμιμο, η σκοποβολή γίνεται δημοφιλής από το 1990. Οι τέχνες που σχετίζονται περισσότερο με το hacking είναι αυτές που επικεντρώνονται στην πειθαρχία του νου, στη χαλάρωση, και στον έλεγχο, και όχι στην ωμή δύναμη, ή στη φυσική ανθεκτικότητα.
Μελέτησε ένα είδος νοητικής συγκέντρωσης. Το πλέον διαδεδομένο στους hackers είναι το Zen (είναι δυνατόν να ωφεληθείς από το Zen χωρίς να χρειαστεί να προσκυνήσεις μια καινούρια θρησκεία ή να απαρνηθείς αυτή στην οποία πιστεύεις). Και άλλα είδη είναι καλά επίσης, αλλά να είσαι προσεκτικός να μην διαλέξεις ένα που απαιτεί να πιστεύεις παράλογα πράγματα.
Ανέπτυξε ένα αναλυτικό αυτί στη μουσική. Μάθε να ακούς συγκεκριμένα είδη μουσικής. Μάθε να παίζεις καλά ένα μουσικό όργανο, ή να τραγουδάς.
Ανέπτυξε δικά σου λογοπαίγνια.
Όσα περισσότερα από αυτά ήδη κάνεις, τόσο είναι πιθανότερο πως έχεις το hacking μέσα σου. Όλα αυτά δεν είναι εντελώς ξεκάθαρα, αλλά είναι συσχετισμένα με ένα μείγμα των αριστερών και των δεξιών ικανοτήτων του μυαλού, κάτι που είναι σημαντκό. Οι hackers πρέπει να είναι ικανοί και να σκέπτονται λογικά, αλλά και να ξεφεύγουν από τη λογική σε συγκεκριμένες περιπτώσεις.
Δούλευε όσο έντονα παίζεις και παίζε όσο έντονα δουλεύεις. Για τους αληθινούς hackers, τα σύνορα ανάμεσα στο "παιχνίδι", στην "εργασία", στην "επιστήμη" και στην "τέχνη" τείνουν να εξαφανιστούν, ή να ενωθούν σε ένα παραγωγικό και ψυχαγωγικό μίγμα. Επίσης, να μην περιορίζεσαι σε λίγες ικανότητες. Παρόλο που οι περισσότεροι hackers περιγράφουν τον εαυτό τους σαν προγραμματιστές, πιθανώς είναι πολύ ικανοί και σε άλλους τομείς - διαχείρηση συστημάτων, σχεδίαση ιστοσελίδων, και αντιμετώπιση προβλημάτων του υλικού του υπολογιστή είναι κάποια συνιθισμένα. Ένας hacker που είναι διαχειριστής συστημάτων, μπορεί να είναι ικανός στον προγραμματισμό και στη σχεδίαση ιστοσελίδων. Οι hackers δεν κάνουν τα πράγματα μισά. Αν αφοσιωθούν σε έναν τομέα θα γίνουν πολλοί καλοί σε αυτόν.
Τέλος, μερικά πράγματα τα οποία να μην κάνεις
Μην χρησιμοποιείς ανόητα, υπερβολικά μεγαλοπρεπή user ID ή screen names.
Μην συμμετέχεις σε διαμάχες στο Usenet (ή οπουδήποτε αλλού).
Μην αποκαλείς τον εαυτό σου 'cyberpunk', και μη χάνεις τον χρόνο σου σε όποιον το κάνει.
Μην δημοσιεύεις γραπτά, και μη στέλνεις email που είναι γεμάτα ορθογραφικά λάθη και άσχημη γραμματική.
Θα αποκτήσεις άσχημη φήμη κάνοντας οποιοδήποτε από τα παραπάνω. Οι hackers έχουν μεγάλες μνήμες - θα μπορούσε να πάρει χρόνια για να ξεχαστεί κάτι άσχημο που έκανες.
Το πρόβλημα με τα screen names ή με τις "μάσκες" αξίζει κάποια ανάλυση. Το να αποκρύπτεις την ταυτότητά σου πίσω από μια μάσκα είναι παιδιάστικη και ανόητη συμπεριφορά. Είναι χαρακτηριστικό των crackers, των warez d00dz, και άλλων χαμηλότερων μορφών ζωής. Οι hackers δεν το κάνουν αυτό. Είναι περήφανοι για το τί κάνουν και θέλουν να είναι συσχετισμένο με το πραγματικό τους όνομα. Έτσι, αν έχεις κάποια μάσκα, πέταξέ την. Στην κουλτούρα των hacker απλώς θα σε σημειώσει ως αποτυχημένο.