How To Become A Hacker
Eric Steven Raymond

Apa Itu Hacker?
Jargon File berisi sejumlah definisi tentang istilah 'hacker', sebagian besar berkaitan dengan kecakapan teknis dan kegembiraan dalam memecahkan masalah dan mengatasi batasan. Namun, jika Anda ingin tahu bagaimana menjadi seorang hacker, hanya ada dua definisi yang benar-benar relevan.
Ada sebuah komunitas, sebuah budaya bersama, dari para programmer ahli dan ahli jaringan yang jejak sejarahnya dapat ditelusuri kembali beberapa dekade ke masa komputer minicomputer berbagi waktu dan eksperimen ARPAnet awal. Anggota dari budaya ini adalah orang-orang yang menciptakan istilah 'hacker'. Hackerlah yang membangun Internet. Hackerlah yang membuat sistem operasi Unix menjadi seperti yang sekarang. Hackerlah yang membuat World Wide Web berfungsi. Jika Anda bagian dari budaya ini, jika Anda telah berkontribusi di dalamnya dan orang-orang di dalamnya mengenal Anda dan menyebut Anda sebagai hacker, maka Anda adalah seorang hacker.
Pola pikir hacker tidak terbatas pada budaya hacker perangkat lunak ini. Ada orang-orang yang menerapkan sikap hacker pada hal-hal lain, seperti elektronik atau musik — sebenarnya, Anda bisa menemukannya di tingkat tertinggi dalam setiap ilmu atau seni. Hacker perangkat lunak mengenali semangat sejati ini di tempat lain dan mungkin juga menyebut mereka sebagai 'hacker' — dan beberapa orang berpendapat bahwa sifat hacker sebenarnya independen dari media khusus tempat hacker bekerja. Namun, dalam dokumen ini, kita akan fokus pada keterampilan dan sikap hacker perangkat lunak, serta tradisi budaya bersama yang menciptakan istilah 'hacker'.
Ada kelompok lain orang yang keras-keras menyebut diri mereka sebagai hacker, padahal sebenarnya bukan. Mereka adalah orang-orang (terutama remaja laki-laki) yang senang meretas komputer dan memanipulasi sistem telepon. Hacker sejati menyebut orang-orang ini sebagai 'cracker' dan tidak ingin berhubungan dengan mereka. Hacker sejati sebagian besar berpikir bahwa para cracker malas, tidak bertanggung jawab, dan tidak terlalu cerdas, dan mereka menolak pendapat bahwa kemampuan meretas keamanan membuat Anda menjadi seorang hacker, sama seperti kemampuan menghidupkan mesin mobil tanpa kunci membuat Anda menjadi seorang insinyur otomotif. Sayangnya, banyak jurnalis dan penulis yang terkecoh dengan menggunakan kata 'hacker' untuk menggambarkan para cracker; hal ini sangat mengganggu para hacker sejati.
Perbedaan dasarnya adalah ini: hacker membangun hal-hal, cracker merusaknya.
Jika Anda ingin menjadi seorang hacker, teruslah membaca. Jika Anda ingin menjadi seorang cracker, silakan baca kelompok berita alt.2600 dan siapkan diri untuk mendekam di penjara selama lima hingga sepuluh tahun setelah mengetahui bahwa Anda tidak secerdas yang Anda kira. Dan itu saja yang akan saya katakan tentang para cracker.
Sikap Seorang Hacker
Para hacker memecahkan masalah dan membangun hal-hal, dan mereka percaya pada kebebasan dan bantuan saling sukarela. Untuk diterima sebagai seorang hacker, Anda harus berperilaku seolah-olah Anda memiliki sikap seperti itu sendiri. Dan untuk berperilaku seolah-olah Anda memiliki sikap tersebut, Anda harus benar-benar meyakini sikap tersebut.
Namun, jika Anda menganggap mengembangkan sikap hacker hanya sebagai cara untuk diterima dalam budaya tersebut, Anda akan melewatkan intinya. Menjadi orang yang percaya pada hal-hal ini penting bagi Anda — untuk membantu Anda belajar dan menjaga motivasi Anda. Seperti halnya dalam seni kreatif lainnya, cara yang paling efektif untuk menjadi seorang master adalah dengan meniru pola pikir para master — bukan hanya secara intelektual tetapi juga secara emosional.
Atau, seperti yang dikatakan dalam puisi Zen modern berikut ini:
Untuk mengikuti jalan:
lihatlah sang guru,
ikutlah sang guru,
berjalanlah bersama sang guru,
melihat melalui sang guru,
menjadi sang guru.
Jadi, jika Anda ingin menjadi seorang hacker, ulangi hal-hal berikut ini sampai Anda meyakininya:
1. Dunia ini penuh dengan masalah menarik yang menunggu untuk dipecahkan.
Menjadi seorang hacker sangat menyenangkan, tetapi ini adalah jenis kesenangan yang membutuhkan banyak usaha. Usaha ini membutuhkan motivasi. Para atlet sukses mendapatkan motivasi mereka dari kegembiraan fisik dalam membuat tubuh mereka berkinerja, dalam mendorong diri mereka melewati batas fisik mereka sendiri. Demikian pula, untuk menjadi seorang hacker, Anda harus merasakan kegembiraan dasar dalam memecahkan masalah, mengasah keterampilan Anda, dan menggunakan kecerdasan Anda.
Jika Anda bukan tipe orang yang merasakan hal ini secara alami, Anda perlu menjadi salah satunya untuk berhasil sebagai seorang hacker. Jika tidak, energi hacking Anda akan terkuras oleh gangguan seperti seks, uang, dan persetujuan sosial.
(Anda juga harus mengembangkan kepercayaan pada kemampuan belajar Anda sendiri — keyakinan bahwa meskipun Anda mungkin tidak tahu semua yang Anda butuhkan untuk memecahkan suatu masalah, jika Anda menangani hanya sebagian kecilnya dan belajar dari itu, Anda akan belajar cukup untuk memecahkan bagian berikutnya — dan seterusnya, hingga selesai.)
2. Tidak ada masalah yang harus diselesaikan dua kali.
Pikiran kreatif adalah sumber daya berharga yang terbatas. Mereka tidak boleh disia-siakan untuk menciptakan ulang sesuatu yang sudah ada ketika masih ada begitu banyak masalah baru yang menarik di luar sana.
Untuk berperilaku seperti seorang hacker, Anda harus percaya bahwa waktu berpikir para hacker lainnya sangat berharga — begitu berharganya sehingga hampir menjadi kewajiban moral bagi Anda untuk berbagi informasi, memecahkan masalah, dan kemudian memberikan solusinya agar para hacker lain dapat memecahkan masalah baru alih-alih terus-menerus menghadapi masalah lama.
Namun, perlu dicatat bahwa "Tidak ada masalah yang harus diselesaikan dua kali" tidak berarti Anda harus menganggap semua solusi yang ada sebagai suci, atau bahwa hanya ada satu solusi yang benar untuk setiap masalah yang diberikan. Seringkali, kita mempelajari banyak hal tentang masalah yang sebelumnya tidak kita ketahui dengan mempelajari solusi awal. Tidak masalah, bahkan seringkali diperlukan, untuk memutuskan bahwa kita bisa melakukan yang lebih baik. Yang tidak baik adalah adanya hambatan teknis, hukum, atau institusional yang buatan (seperti kode sumber tertutup) yang mencegah solusi yang baik untuk digunakan kembali dan memaksa orang untuk menciptakan ulang hal-hal yang sudah ada.
(Anda tidak harus percaya bahwa Anda berkewajiban untuk memberikan semua produk kreatif Anda, meskipun hacker yang melakukannya adalah yang mendapatkan penghargaan tertinggi dari hacker lainnya. Sesuai dengan nilai-nilai hacker, Anda dapat menjual sebagian dari produk kreatif Anda untuk memenuhi kebutuhan makanan, tempat tinggal, dan komputer. Tidak masalah menggunakan keterampilan hacking Anda untuk mendukung keluarga atau bahkan menjadi kaya, selama Anda tidak melupakan kesetiaan Anda pada seni dan sesama hacker saat melakukannya.)
3. Rasa bosan dan pekerjaan membosankan adalah jahat.
Para hacker (dan orang-orang kreatif pada umumnya) seharusnya tidak pernah merasa bosan atau harus melakukan pekerjaan yang membosankan dan berulang-ulang, karena ketika ini terjadi berarti mereka tidak melakukan hal-hal yang hanya mereka bisa lakukan — memecahkan masalah baru. Pemborosan ini merugikan semua orang. Oleh karena itu, rasa bosan dan pekerjaan membosankan bukan hanya tidak menyenangkan tetapi sebenarnya jahat.
Untuk berperilaku seperti seorang hacker, Anda harus cukup percaya pada hal ini sehingga ingin mengotomatisasi bagian-bagian yang membosankan sebanyak mungkin, bukan hanya untuk diri Anda sendiri tetapi juga untuk semua orang lain (terutama hacker lainnya).
(Terdapat satu pengecualian yang tampak terhadap hal ini. Para hacker kadang-kadang melakukan hal-hal yang mungkin tampak berulang atau membosankan bagi pengamat sebagai latihan untuk membersihkan pikiran, atau untuk memperoleh keterampilan atau pengalaman tertentu yang tidak bisa Anda dapatkan dengan cara lain. Tetapi ini adalah pilihan — tidak ada orang yang bisa berpikir harus dipaksa ke dalam situasi yang membosankan.)
4. Kebebasan itu baik.
Para hacker secara alami anti-otoriter. Siapa pun yang bisa memberi perintah kepada Anda dapat menghentikan Anda dari memecahkan masalah apa pun yang sedang Anda teliti — dan, mengingat cara pikiran otoriter bekerja, mereka biasanya akan menemukan alasan yang sangat bodoh untuk melakukannya. Jadi sikap otoriter harus diperangi di mana pun Anda menemukannya, agar tidak menyelubungi Anda dan para hacker lainnya.
(Ini bukan berarti melawan semua otoritas. Anak-anak perlu diarahkan dan penjahat perlu ditahan. Seorang hacker mungkin setuju untuk menerima beberapa jenis otoritas untuk mendapatkan sesuatu yang lebih diinginkan daripada waktu yang dihabiskan mengikuti perintah. Tetapi itu adalah kesepakatan terbatas dan sadar; jenis penyerahan pribadi yang diinginkan oleh otoriter tidak ditawarkan.)
Otoriter berkembang dengan adanya sensor dan kerahasiaan. Dan mereka tidak mempercayai kerjasama sukarela dan berbagi informasi — mereka hanya menyukai 'kerjasama' yang mereka kendalikan. Jadi, untuk berperilaku seperti seorang hacker, Anda harus mengembangkan rasa benci naluriah terhadap sensor, kerahasiaan, dan penggunaan kekuatan atau tipu muslihat untuk memaksa orang dewasa yang bertanggung jawab. Dan Anda harus bersedia bertindak berdasarkan keyakinan tersebut.
5. Sikap bukan pengganti kompetensi.
Untuk menjadi seorang hacker, Anda harus mengembangkan beberapa sikap ini. Tetapi hanya memiliki sikap saja tidak akan membuat Anda menjadi seorang hacker, sama seperti hal itu tidak akan membuat Anda menjadi atlet juara atau bintang rock. Menjadi seorang hacker akan membutuhkan kecerdasan, latihan, dedikasi, dan kerja keras.
Oleh karena itu, Anda harus belajar untuk tidak mempercayai sikap dan menghormati kompetensi dalam segala bentuknya. Para hacker tidak akan membiarkan orang yang hanya berpura-pura membuang-buang waktu mereka, tetapi mereka mengagumi kompetensi — terutama kompetensi dalam hacking, tetapi kompetensi dalam apa pun dihargai. Kompetensi dalam keterampilan yang sulit dikuasai oleh sedikit orang sangat baik, dan kompetensi dalam keterampilan yang melibatkan kecerdasan mental, keahlian, dan konsentrasi adalah yang terbaik.
Jika Anda menghormati kompetensi, Anda akan menikmati mengembangkannya dalam diri Anda sendiri — kerja keras dan dedikasi akan menjadi jenis permainan yang intens daripada pekerjaan membosankan. Sikap ini sangat penting untuk menjadi seorang hacker.
Keterampilan Dasar Hacking
Sikap hacker sangat penting, tetapi keterampilan lebih penting lagi. Sikap tidak dapat menggantikan kompetensi, dan ada seperangkat keterampilan dasar tertentu yang harus Anda miliki sebelum seorang hacker mau menyebut Anda sebagai hacker.
Perkakas dasar ini berubah secara perlahan seiring waktu karena teknologi menciptakan keterampilan baru dan membuat yang lama menjadi usang. Misalnya, dulu termasuk pemrograman dalam bahasa mesin, dan baru-baru ini melibatkan HTML. Tetapi saat ini, secara jelas hal itu mencakup hal-hal berikut:
1. Pelajari cara memprogram.
Ini, tentu saja, adalah keterampilan hacking yang fundamental. Jika Anda tidak menguasai bahasa pemrograman apa pun, saya sarankan mulai dengan Python. Python dirancang dengan baik, didokumentasikan dengan baik, dan relatif ramah bagi pemula. Meskipun merupakan bahasa pemrograman yang baik untuk pemula, bukan berarti hanya mainan; Python sangat kuat, fleksibel, dan cocok untuk proyek-proyek besar. Saya telah menulis evaluasi lebih rinci tentang Python. Tersedia tutorial yang bagus di situs web Python; ada tutorial pihak ketiga yang sangat baik di Computer Science Circles.
Dulu, saya merekomendasikan Java sebagai bahasa yang baik untuk dipelajari di awal, tetapi kritik ini telah mengubah pendapat saya (cari "The Pitfalls of Java as a First Programming Language" di dalamnya). Seorang hacker tidak dapat, seperti yang mereka katakan dengan mematikan, "mendekati pemecahan masalah seperti tukang ledeng di toko peralatan"; Anda harus tahu apa yang sebenarnya dilakukan oleh komponen tersebut. Sekarang saya pikir mungkin lebih baik untuk mempelajari C dan Lisp terlebih dahulu, kemudian Java.
Ada mungkin juga poin yang lebih umum di sini. Jika sebuah bahasa melakukan terlalu banyak hal untuk Anda, mungkin itu adalah alat yang baik untuk produksi tetapi buruk untuk pembelajaran. Ini bukan hanya berlaku untuk bahasa, tetapi juga kerangka aplikasi web seperti RubyOnRails, CakePHP, Django yang mungkin membuatnya terlalu mudah untuk mencapai pemahaman yang dangkal yang akan membuat Anda kehabisan sumber daya ketika Anda harus menangani masalah yang sulit, atau bahkan hanya memperbaiki solusi untuk masalah yang mudah.
Alternatif yang lebih baik daripada Java adalah mempelajari Go. Bahasa yang relatif baru ini cukup mudah dipelajari setelah Anda menguasai Python, dan mempelajarinya akan memberi Anda keuntungan yang serius pada langkah selanjutnya yang mungkin, yaitu mempelajari C. Selain itu, salah satu hal yang belum diketahui tentang beberapa tahun mendatang adalah sejauh mana Go dapat menggantikan C sebagai bahasa pemrograman sistem. Ada kemungkinan masa depan di mana hal itu terjadi di sebagian besar wilayah tradisional C.
Jika Anda serius dalam pemrograman, pada akhirnya Anda harus belajar C, bahasa inti dari Unix. C++ sangat erat hubungannya dengan C; jika Anda menguasai salah satu, mempelajari yang lain tidak akan sulit. Namun, kedua bahasa tersebut bukanlah bahasa yang baik untuk dipelajari sebagai bahasa pertama. Dan, sebenarnya, semakin Anda dapat menghindari pemrograman dalam bahasa C, semakin produktif Anda akan menjadi.
C sangat efisien dan sangat hemat sumber daya mesin Anda. Sayangnya, C mencapai efisiensinya dengan mengharuskan Anda melakukan banyak pengelolaan sumber daya tingkat rendah (seperti memori) secara manual. Semua kode tingkat rendah tersebut kompleks dan rentan terhadap bug, dan akan memakan banyak waktu Anda untuk debugging. Dengan mesin saat ini yang begitu kuat, ini biasanya adalah pertukaran yang buruk — lebih cerdas untuk menggunakan bahasa yang menggunakan waktu mesin dengan kurang efisien, tetapi waktu Anda jauh lebih efisien. Oleh karena itu, Python.
Bahasa lain yang penting bagi para hacker meliputi Perl dan LISP. Perl layak dipelajari karena alasan praktis; bahasa ini sangat banyak digunakan untuk halaman web aktif dan administrasi sistem, sehingga meskipun Anda tidak pernah menulis Perl, Anda harus belajar membacanya. Banyak orang menggunakan Perl dengan cara yang saya sarankan Anda gunakan Python, untuk menghindari pemrograman dalam bahasa C pada pekerjaan yang tidak membutuhkan efisiensi mesin C. Anda perlu dapat memahami kode mereka.
LISP layak dipelajari karena alasan yang berbeda — pengalaman pencerahan yang mendalam yang akan Anda dapatkan ketika Anda akhirnya memahaminya. Pengalaman itu akan membuat Anda menjadi seorang programmer yang lebih baik sepanjang hidup Anda, meskipun Anda mungkin tidak banyak menggunakan LISP itu sendiri. (Anda dapat mendapatkan beberapa pengalaman awal dengan LISP dengan menulis dan memodifikasi mode pengeditan untuk editor teks Emacs, atau plugin Script-Fu untuk GIMP.)
Sebaiknya, Anda belajar semua lima bahasa Python, C/C++, Perl, dan LISP. Selain menjadi bahasa hacking yang paling penting, mereka mewakili pendekatan pemrograman yang sangat berbeda, dan masing-masing akan mendidik Anda dengan cara yang berharga. Go belum sepenuhnya mencapai titik di mana dapat dimasukkan ke dalam bahasa hacking yang paling penting, tetapi tampaknya menuju ke status tersebut.
Namun, perlu diingat bahwa Anda tidak akan mencapai tingkat keterampilan seorang hacker atau bahkan sekadar seorang programmer hanya dengan mengumpulkan bahasa-bahasa — Anda perlu belajar cara berpikir tentang masalah pemrograman secara umum, independen dari bahasa pemrograman tertentu. Untuk menjadi seorang hacker sejati, Anda perlu mencapai titik di mana Anda dapat mempelajari bahasa baru dalam beberapa hari dengan menghubungkan apa yang ada di manual dengan apa yang Anda sudah ketahui. Ini berarti Anda harus belajar beberapa bahasa yang sangat berbeda.
Saya tidak dapat memberikan instruksi lengkap tentang cara belajar memprogram di sini — ini adalah keterampilan yang kompleks. Tetapi saya bisa memberi tahu Anda bahwa buku dan kursus tidak akan cukup — banyak, mungkin sebagian besar hacker terbaik adalah mereka yang belajar sendiri. Anda dapat mempelajari fitur bahasa — sebagian pengetahuan — dari buku-buku, tetapi pola pikir yang membuat pengetahuan itu menjadi keterampilan hidup hanya bisa dipelajari melalui praktik dan magang. Yang dapat melakukannya adalah (a) membaca kode dan (b) menulis kode.
Peter Norvig, salah satu hacker teratas di Google dan co-penulis buku teks yang paling banyak digunakan tentang AI, telah menulis sebuah esai yang sangat bagus berjudul Teach Yourself Programming in Ten Years. "Resep kesuksesan pemrograman" yang ditulisnya patut diperhatikan.
Belajar memprogram seperti belajar menulis bahasa alami yang baik. Cara terbaik untuk melakukannya adalah dengan membaca beberapa hal yang ditulis oleh para ahli dalam bidang tersebut, menulis beberapa hal sendiri, membaca lebih banyak, menulis sedikit lebih banyak, membaca lebih banyak lagi, menulis sedikit lebih banyak, dan mengulanginya sampai tulisan Anda mulai memiliki kekuatan dan efisiensi seperti yang Anda lihat pada contoh-contoh yang Anda pelajari.
Saya telah lebih banyak membahas proses pembelajaran ini dalam How To Learn Hacking. Ini adalah serangkaian instruksi yang sederhana, tetapi bukanlah hal yang mudah.
Mencari kode yang baik untuk dibaca dulu sulit, karena sedikit program besar yang tersedia dalam bentuk sumber bagi para hacker pemula untuk dibaca dan diubah-ubah. Ini telah berubah secara dramatis; perangkat lunak sumber terbuka, alat pemrograman, dan sistem operasi (semua dibangun oleh para hacker) sekarang tersedia secara luas. Ini membawa kita dengan mulus ke topik berikutnya...
2. Dapatkan salah satu sistem operasi Unix sumber terbuka dan pelajari cara menggunakannya dan menjalankannya.
Saya akan berasumsi bahwa Anda memiliki komputer pribadi atau dapat mengaksesnya. (Ambil sejenak untuk menghargai betapa berartinya itu. Budaya hacker awalnya berkembang ketika komputer begitu mahal sehingga individu tidak bisa memilikinya.) Langkah paling penting yang dapat diambil oleh seorang pemula untuk mengembangkan keterampilan hacker adalah mendapatkan salinan Linux atau salah satu BSD-Unix, menginstalnya di komputer pribadi, dan menjalankannya.
Ya, ada sistem operasi lain di dunia selain Unix. Tetapi mereka didistribusikan dalam bentuk biner — Anda tidak dapat membaca kode sumbernya dan Anda tidak dapat memodifikasinya. Mencoba belajar hacking di mesin Microsoft Windows atau di bawah sistem sumber tertutup lainnya seperti mencoba belajar menari sambil mengenakan gips tubuh.
Di bawah Mac OS X memungkinkan, tetapi hanya sebagian dari sistemnya yang sumber terbuka — Anda mungkin akan menemui banyak hambatan, dan Anda harus berhati-hati agar tidak mengembangkan kebiasaan buruk bergantung pada kode milik Apple. Jika Anda fokus pada Unix di baliknya, Anda dapat belajar beberapa hal yang berguna.
Unix adalah sistem operasi Internet. Meskipun Anda dapat belajar menggunakan Internet tanpa mengenal Unix, Anda tidak dapat menjadi seorang hacker Internet tanpa memahami Unix. Oleh karena itu, budaya hacker saat ini sangat berpusat pada Unix. (Ini tidak selalu benar, dan beberapa hacker lama masih tidak senang tentang hal itu, tetapi simbiosis antara Unix dan Internet telah menjadi cukup kuat sehingga bahkan kekuatan Microsoft tampaknya tidak mampu merusaknya secara serius.)
Jadi, jalankan Unix — saya sendiri lebih suka Linux tetapi ada cara lain (dan ya, Anda bisa menjalankan Linux dan Microsoft Windows di mesin yang sama). Pelajari itu. Jalankan itu. Coba-coba itu. Berbicaralah dengan Internet menggunakan itu. Baca kode sumbernya. Ubah kode sumbernya. Anda akan mendapatkan alat pemrograman yang lebih baik (termasuk C, LISP, Python, dan Perl) daripada sistem operasi Microsoft mana pun, Anda akan bersenang-senang, dan Anda akan menyerap lebih banyak pengetahuan daripada yang Anda sadari bahwa Anda pelajari sampai Anda melihatnya kembali sebagai seorang hacker yang mahir.
Untuk informasi lebih lanjut tentang belajar Unix, lihat The Loginataka. Anda mungkin juga ingin melihat The Art Of Unix Programming.
Blog Let's Go Larval! adalah jendela pada proses pembelajaran pengguna Linux baru yang menurut saya sangat jelas dan membantu. Postingan How I Learned Linux adalah titik awal yang baik.
Untuk mendapatkan Linux, lihat situs Linux Online!; Anda dapat mengunduh dari sana atau (ide yang lebih baik) temukan kelompok pengguna Linux lokal untuk membantu Anda dengan instalasi.
Selama sepuluh tahun pertama kehidupan HOWTO ini, saya melaporkan bahwa dari sudut pandang pengguna baru, semua distribusi Linux hampir sama. Tetapi pada tahun 2006-2007, pilihan terbaik yang sebenarnya muncul: Ubuntu. Meskipun distro lain memiliki keunggulan masing-masing, Ubuntu jauh lebih mudah diakses oleh pemula Linux. Namun, berhati-hatilah dengan antarmuka desktop "Unity" yang mengerikan dan sulit digunakan yang diperkenalkan oleh Ubuntu beberapa tahun kemudian sebagai default; varian Xubuntu atau Kubuntu lebih baik.
Anda dapat menemukan bantuan dan sumber daya BSD Unix di www.bsd.org.
Cara yang baik untuk mencoba-coba adalah dengan memulai apa yang disebut penggemar Linux sebagai live CD, distribusi yang berjalan sepenuhnya dari CD atau USB tanpa harus memodifikasi hard disk Anda. Ini mungkin lambat, karena CD lambat, tetapi ini adalah cara untuk melihat kemungkinan tanpa harus melakukan sesuatu yang drastis.
Saya telah menulis panduan tentang dasar-dasar Unix dan Internet.
Dulu, saya menyarankan agar tidak menginstal Linux atau BSD sendirian jika Anda pemula. Saat ini, program instalasi telah cukup baik sehingga Anda dapat melakukannya sepenuhnya sendiri, bahkan untuk pemula. Namun demikian, saya masih merekomendasikan untuk menghubungi kelompok pengguna Linux lokal Anda dan meminta bantuan. Itu tidak akan merugikan, dan mungkin akan memperlancar prosesnya.
3. Pelajari cara menggunakan World Wide Web dan menulis HTML.
Sebagian besar hal yang telah dibangun oleh budaya hacker bekerja di luar pandangan, membantu menjalankan pabrik, kantor, dan universitas tanpa dampak yang jelas pada kehidupan non-hacker. Web adalah pengecualian besar, mainan hacker yang besar dan berkilauan yang bahkan politisi mengakui telah mengubah dunia. Karena alasan ini saja (dan banyak alasan bagus lainnya juga), Anda perlu belajar cara menggunakan Web.
Ini tidak hanya berarti belajar cara menggunakan browser (siapa pun bisa melakukannya), tetapi belajar cara menulis HTML, bahasa markup Web. Jika Anda tidak tahu cara memprogram, menulis HTML akan mengajarkan Anda beberapa kebiasaan berpikir yang akan membantu Anda belajar. Jadi, bangunlah sebuah halaman rumah.
Tetapi hanya memiliki halaman rumah tidak cukup untuk membuat Anda menjadi seorang hacker. Web penuh dengan halaman rumah. Sebagian besar dari mereka tidak berarti, tidak ada konten yang bermanfaat — hanya sludge yang terlihat sangat bagus, tetapi tetap saja sludge (untuk informasi lebih lanjut tentang hal ini, lihat The HTML Hell Page).
Untuk menjadi berharga, halaman Anda harus memiliki konten — halaman Anda harus menarik dan/atau berguna bagi hacker lain. Dan itu membawa kita ke topik berikutnya...
4. Jika Anda tidak menguasai bahasa Inggris secara fungsional, pelajarilah.
Sebagai seorang Amerika dan penutur asli bahasa Inggris, saya sebelumnya enggan menyarankan ini, takut dianggap sebagai imperialisme budaya. Tetapi beberapa penutur asli bahasa lain telah mendorong saya untuk menunjukkan bahwa bahasa Inggris adalah bahasa kerja budaya hacker dan Internet, dan bahwa Anda perlu menguasainya untuk berfungsi dalam komunitas hacker.
Kira-kira pada tahun 1991, saya mengetahui bahwa banyak hacker yang bahasa Inggris bukan bahasa ibu mereka menggunakan bahasa itu dalam diskusi teknis bahkan ketika mereka berbicara dalam bahasa asli mereka; pada waktu itu, dilaporkan kepada saya bahwa bahasa Inggris memiliki kosakata teknis yang lebih kaya daripada bahasa lainnya dan oleh karena itu secara sederhana merupakan alat yang lebih baik untuk pekerjaan tersebut. Untuk alasan yang sama, terjemahan buku-buku teknis yang ditulis dalam bahasa Inggris sering tidak memuaskan (jika mereka diterjemahkan sama sekali).
Linus Torvalds, seorang orang Finlandia, memberi komentar dalam kode sumbernya dalam bahasa Inggris (tidak pernah terlintas dalam pikirannya untuk melakukannya dengan bahasa lain). Kecekapan bahasa Inggrisnya telah menjadi faktor penting dalam kemampuannya untuk merekrut komunitas pengembang Linux di seluruh dunia. Ini adalah contoh yang patut diikuti.
Menjadi penutur asli bahasa Inggris tidak menjamin bahwa Anda memiliki keterampilan bahasa yang cukup baik untuk berfungsi sebagai seorang hacker. Jika tulisan Anda setengah literat, tidak tata bahasa, dan penuh dengan kesalahan ejaan, banyak hacker (termasuk saya sendiri) akan cenderung mengabaikan Anda. Meskipun tulisan yang tidak rapi tidak selalu berarti pemikiran yang tidak rapi, kami umumnya menemukan korelasi yang kuat di antara keduanya — dan kami tidak membutuhkan pemikir yang tidak rapi. Jika Anda belum dapat menulis dengan baik, pelajari untuk melakukannya.
Status dalam Budaya Hacker
Seperti kebanyakan budaya tanpa ekonomi uang, budaya hacker berjalan berdasarkan reputasi. Anda mencoba memecahkan masalah yang menarik, tetapi seberapa menarik masalah tersebut, dan seberapa baik solusi Anda, adalah sesuatu yang hanya dapat dinilai oleh rekan teknis atau atasan Anda.
Oleh karena itu, ketika Anda bermain dalam permainan hacker, Anda belajar untuk mengukur prestasi terutama dengan apa yang dipikirkan oleh hacker lain tentang kemampuan Anda (inilah mengapa Anda tidak benar-benar seorang hacker sampai hacker lain secara konsisten menyebut Anda sebagai hacker). Fakta ini tersembunyi di balik citra hacking sebagai pekerjaan yang soliter; juga oleh sebuah tabu budaya hacker (yang mulai memudar sejak akhir tahun 1990-an tetapi masih kuat) terhadap mengakui bahwa ego atau validasi eksternal terlibat dalam motivasi seseorang.
Secara khusus, budaya hacker adalah apa yang disebut oleh ahli antropologi sebagai budaya pemberian. Anda mendapatkan status dan reputasi di dalamnya bukan dengan mendominasi orang lain, bukan dengan menjadi cantik, bukan dengan memiliki hal-hal yang diinginkan orang lain, tetapi dengan memberikan sesuatu. Secara khusus, dengan memberikan waktu Anda, kreativitas Anda, dan hasil keterampilan Anda.
Secara umum, ada lima hal yang dapat Anda lakukan untuk mendapatkan penghargaan dari para hacker:
1. Menulis perangkat lunak sumber terbuka
Hal pertama (yang paling sentral dan paling tradisional) adalah menulis program-program yang dianggap menyenangkan atau berguna oleh hacker lain, dan memberikan sumber program tersebut kepada seluruh budaya hacker untuk digunakan.
(Kami dulu menyebut karya-karya ini sebagai "perangkat lunak bebas", tetapi ini membingungkan banyak orang yang tidak yakin apa yang sebenarnya dimaksudkan dengan "bebas". Kebanyakan dari kami sekarang lebih suka istilah perangkat lunak "sumber terbuka".)
Dewa-dewi setengah dewa yang paling dihormati dalam budaya hacker adalah orang-orang yang telah menulis program-program besar dan mampu yang memenuhi kebutuhan yang luas dan memberikannya secara cuma-cuma, sehingga sekarang semua orang menggunakannya.
Namun, ada sedikit hal historis yang halus di sini. Meskipun hacker selalu mengagumi pengembang sumber terbuka di antara mereka sebagai inti terkeras dari komunitas kami, sebelum pertengahan 1990-an, sebagian besar hacker sebagian besar waktu bekerja pada sumber tertutup. Hal ini masih benar ketika saya menulis versi pertama HOWTO ini pada tahun 1996; baru setelah tahun 1997, dengan populerinya perangkat lunak sumber terbuka, hal-hal berubah. Hari ini, "komunitas hacker" dan "pengembang sumber terbuka" adalah dua deskripsi yang pada dasarnya sama untuk budaya dan populasi yang sama — tetapi perlu diingat bahwa hal ini tidak selalu terjadi. (Untuk informasi lebih lanjut tentang hal ini, lihat bagian yang disebut “Catatan Sejarah: Hacking, Sumber Terbuka, dan Perangkat Lunak Bebas”.)
2. Membantu menguji dan memperbaiki perangkat lunak sumber terbuka
Mereka juga berjasa yang berdiri dan memperbaiki perangkat lunak sumber terbuka. Di dunia yang tidak sempurna ini, kita akan menghabiskan sebagian besar waktu pengembangan perangkat lunak kita dalam fase debugging. Itulah sebabnya setiap pengembang sumber terbuka yang berpikir akan memberi tahu Anda bahwa para beta-tester yang baik (yang tahu cara mendeskripsikan gejala dengan jelas, membatasi masalah dengan baik, dapat mentoleransi bug dalam rilis cepat, dan bersedia menerapkan beberapa rutinitas diagnostik sederhana) memiliki nilai yang sangat berharga. Bahkan satu orang seperti itu dapat membuat perbedaan antara fase debugging yang menjadi mimpi buruk yang berkepanjangan dan fase yang hanya menjadi gangguan yang bermanfaat.
Jika Anda pemula, cobalah mencari program yang sedang dikembangkan yang Anda minati dan menjadi beta-tester yang baik. Ada kemajuan alami dari membantu menguji program ke membantu memperbaikinya hingga membantu memodifikasinya. Anda akan belajar banyak dengan cara ini dan menghasilkan karma baik dengan orang-orang yang akan membantu Anda nantinya.
3. Menerbitkan informasi yang berguna
Hal lain yang baik adalah mengumpulkan dan menyaring informasi yang berguna dan menarik ke dalam halaman web atau dokumen seperti daftar Pertanyaan yang Sering Diajukan (FAQ), dan membuatnya tersedia secara umum.
Pemeliharaan FAQ teknis utama mendapatkan penghargaan hampir sebanyak pengembang sumber terbuka.
4. Membantu menjaga infrastruktur tetap berjalan
Budaya hacker (dan pengembangan teknik Internet, pada kenyataannya) dijalankan oleh sukarelawan. Ada banyak pekerjaan yang diperlukan tetapi tidak menarik yang perlu dilakukan untuk menjaga semuanya berjalan — mengelola milis, memoderasi grup diskusi, memelihara situs arsip perangkat lunak besar, mengembangkan RFC dan standar teknis lainnya.
Orang-orang yang melakukan hal seperti ini dengan baik mendapatkan banyak penghargaan, karena semua orang tahu pekerjaan-pekerjaan ini membutuhkan banyak waktu dan tidak se menyenangkan bermain dengan kode. Melakukan hal-hal ini menunjukkan dedikasi.
5. Melayani budaya hacker itu sendiri
Akhirnya, Anda dapat melayani dan menyebarkan budaya itu sendiri (misalnya, dengan menulis panduan yang akurat tentang cara menjadi seorang hacker :-)). Ini bukan sesuatu yang dapat Anda lakukan sampai Anda telah berada dalam lingkungan tersebut cukup lama dan menjadi terkenal karena salah satu dari empat hal pertama.
Budaya hacker tidak memiliki pemimpin yang tepat, tetapi memiliki pahlawan budaya, tetua suku, sejarawan, dan juru bicara. Ketika Anda telah lama berada di garis depan, Anda mungkin akan menjadi salah satunya. Hati-hati: para hacker tidak mempercayai ego yang terlalu mencolok pada para tetua suku mereka, jadi mencari ketenaran semacam ini adalah berbahaya. Daripada berusaha mencapainya, Anda harus mencoba menempatkan diri Anda sehingga hal itu jatuh ke pangkuan Anda, dan kemudian bersikap rendah hati dan ramah tentang status Anda.
Koneksi Hacker/Nerd
Tidak seperti mitos populer, Anda tidak harus menjadi seorang nerd untuk menjadi seorang hacker. Namun, menjadi seorang nerd memang membantu, dan banyak hacker sebenarnya adalah nerd. Menjadi sosok yang agak terasing membantu Anda tetap fokus pada hal-hal yang benar-benar penting, seperti berpikir dan hacking.
Untuk alasan ini, banyak hacker mengadopsi label 'geek' sebagai tanda kebanggaan — ini adalah cara untuk menyatakan kemandirian mereka dari harapan sosial normal (serta kecintaan pada hal-hal lain seperti fiksi ilmiah dan permainan strategi yang seringkali menjadi ciri khas seorang hacker). Istilah 'nerd' dulu digunakan dengan cara ini pada tahun 1990-an, ketika 'nerd' adalah ejekan yang ringan dan 'geek' adalah ejekan yang lebih keras; setelah tahun 2000, posisi keduanya berubah, setidaknya dalam budaya populer Amerika, dan bahkan ada budaya kebanggaan geek yang signifikan di kalangan orang-orang yang bukan teknisi.
Jika Anda dapat berkonsentrasi cukup pada hacking untuk menjadi ahli di bidangnya dan masih memiliki kehidupan, itu baik. Ini jauh lebih mudah sekarang daripada saat saya masih pemula pada tahun 1970-an; budaya mainstream sekarang jauh lebih ramah terhadap teknologi dan nerd. Bahkan, semakin banyak orang yang menyadari bahwa hacker seringkali merupakan pasangan yang berkualitas tinggi.
Jika Anda tertarik pada hacking karena Anda tidak memiliki kehidupan, itu juga tidak masalah — setidaknya Anda tidak akan mengalami kesulitan berkonsentrasi. Mungkin nanti Anda akan memiliki kehidupan.
Poin untuk Gaya
Sekali lagi, untuk menjadi seorang hacker, Anda harus masuk ke dalam pola pikir hacker. Ada beberapa hal yang dapat Anda lakukan ketika Anda tidak berada di depan komputer yang tampaknya membantu. Hal-hal ini bukan pengganti untuk hacking (tidak ada yang bisa menggantikannya), tetapi banyak hacker melakukannya dan merasa bahwa hal-hal tersebut terhubung dengan cara dasar hacking.
Pelajari menulis dalam bahasa asli Anda dengan baik. Meskipun merupakan stereotip umum bahwa programmer tidak pandai menulis, sejumlah besar hacker (termasuk semua yang paling terampil yang saya kenal) adalah penulis yang sangat mampu.
Baca fiksi ilmiah. Ikuti konvensi fiksi ilmiah (cara yang baik untuk bertemu dengan hacker dan proto-hacker).
Bergabunglah dengan hackerspace dan buatlah sesuatu (cara lain yang baik untuk bertemu dengan hacker dan proto-hacker).
Latih diri dalam bentuk seni bela diri. Jenis disiplin mental yang diperlukan dalam seni bela diri tampaknya mirip dalam hal-hal penting dengan apa yang dilakukan hacker. Bentuk yang paling populer di kalangan hacker adalah seni bela diri kosong Asia seperti Tae Kwon Do, berbagai bentuk Karate, Kung Fu, Aikido, atau Ju Jitsu. Fencing Barat dan seni pedang Asia juga memiliki pengikut yang terlihat. Di tempat-tempat di mana hal ini legal, olahraga menembak pistol telah semakin populer sejak akhir tahun 1990-an. Seni bela diri yang paling sesuai dengan hacker adalah yang menekankan disiplin mental, kesadaran yang rileks, dan kontrol yang tepat, bukan kekuatan mentah, kegesitan fisik, atau kekuatan fisik.
Pelajari disiplin meditasi yang sebenarnya. Favorit abadi di kalangan hacker adalah Zen (penting untuk dicatat, Anda dapat mendapatkan manfaat dari Zen tanpa mengadopsi agama atau meninggalkan agama yang Anda miliki). Gaya lain mungkin juga berhasil, tetapi berhati-hatilah memilih yang tidak mengharuskan Anda untuk mempercayai hal-hal gila.
Kembangkan pendengaran analitis terhadap musik. Pelajari untuk menghargai jenis musik yang aneh. Pelajari untuk memainkan alat musik dengan baik, atau cara menyanyi.
Kembangkan apresiasi Anda terhadap lelucon kata dan permainan kata.
Semakin banyak hal-hal ini yang sudah Anda lakukan, semakin mungkin Anda memiliki bakat alami sebagai hacker. Mengapa hal-hal ini khususnya belum sepenuhnya jelas, tetapi mereka terkait dengan kombinasi keterampilan otak kiri dan otak kanan yang tampaknya penting; hacker perlu dapat berpikir secara logis dan keluar dari logika yang tampak pada saat yang tepat.
Bekerjalah dengan intensitas sebanyak Anda bermain dan bermainlah dengan intensitas sebanyak Anda bekerja. Bagi hacker sejati, batasan antara "bermain", "bekerja", "ilmu" dan "seni" cenderung menghilang atau menyatu dalam tingkat kreativitas yang tinggi. Selain itu, jangan puas dengan keterampilan yang terbatas. Meskipun sebagian besar hacker menggambarkan diri mereka sebagai programmer, mereka sangat mampu dalam beberapa keterampilan terkait lainnya — administrasi sistem, desain web, dan pemecahan masalah perangkat keras PC adalah beberapa yang umum. Seorang hacker yang juga seorang administrator sistem, di sisi lain, cenderung sangat terampil dalam pemrograman skrip dan desain web. Hacker tidak melakukan hal-hal setengah-setengah; jika mereka berinvestasi dalam suatu keterampilan, mereka cenderung menjadi sangat baik di dalamnya.
Terakhir, ada beberapa hal yang tidak perlu dilakukan.
Jangan menggunakan ID pengguna atau nama layar yang konyol dan megah.
Jangan terlibat dalam perang api di Usenet (atau di tempat lain).
Jangan menyebut diri Anda sebagai 'cyberpunk', dan jangan membuang waktu Anda dengan orang lain yang melakukannya.
Jangan memposting atau mengirim tulisan yang penuh dengan kesalahan ejaan dan tata bahasa yang buruk.
Reputasi yang Anda bangun dengan melakukan hal-hal ini hanya akan membuat Anda terlihat bodoh. Hacker memiliki ingatan yang panjang — mungkin butuh bertahun-tahun bagi Anda untuk melupakan kesalahan awal Anda sehingga diterima.
Permasalahan dengan nama layar atau alias perlu diperjelas. Menyembunyikan identitas Anda di balik alias adalah perilaku yang konyol dan bodoh yang merupakan ciri khas cracker, warez d00dz, dan bentuk kehidupan rendah lainnya. Hacker tidak melakukan hal ini; mereka bangga dengan apa yang mereka lakukan dan ingin dikaitkan dengan nama asli mereka. Jadi jika Anda memiliki alias, tinggalkan. Dalam budaya hacker, hal itu hanya akan menandai Anda sebagai pecundang.
Catatan Sejarah: Hacking, Open Source, dan Free Software
Ketika saya pertama kali menulis panduan ini pada akhir tahun 1996, beberapa kondisi sekitarnya sangat berbeda dari yang terlihat saat ini. Beberapa kata tentang perubahan ini mungkin membantu menjelaskan hubungan antara open source, free software, dan Linux dengan komunitas hacker bagi orang-orang yang bingung. Jika Anda tidak penasaran tentang hal ini, Anda dapat langsung melompat ke FAQ dan daftar pustaka dari sini.
Etos dan komunitas hacker seperti yang saya jelaskan di sini jauh sebelum munculnya Linux setelah tahun 1990; saya pertama kali terlibat dengannya sekitar tahun 1976, dan akarnya dapat ditelusuri kembali hingga awal tahun 1960-an. Namun sebelum Linux, sebagian besar hacking dilakukan pada sistem operasi berlisensi atau beberapa sistem rumahan eksperimental seperti MIT's ITS yang tidak pernah digunakan di luar lingkungan akademik aslinya. Meskipun telah ada beberapa upaya sebelumnya (sebelum Linux) untuk mengubah situasi ini, dampaknya paling banyak hanya sangat terbatas dan terbatas pada komunitas pengikut yang sangat kecil bahkan di dalam komunitas hacker, apalagi jika dibandingkan dengan dunia perangkat lunak secara umum.
Apa yang sekarang disebut "open source" sudah ada sejak komunitas hacker ada, tetapi hingga tahun 1985, itu adalah praktik rakyat yang tidak memiliki nama, bukan gerakan sadar dengan teori dan manifesto yang terkait dengannya. Masa pra-sejarah ini berakhir ketika pada tahun 1985, arsitek hacker Richard Stallman ("RMS") mencoba memberinya nama — "free software". Namun tindakannya memberi nama juga merupakan tindakan klaim; ia melampirkan beban ideologis pada label "free software" yang tidak diterima oleh sebagian besar komunitas hacker yang ada. Akibatnya, label "free software" ditolak dengan keras oleh sebagian besar minoritas komunitas hacker (terutama yang terkait dengan BSD Unix), dan digunakan dengan keberatan serius tetapi diam oleh mayoritas sisanya (termasuk saya sendiri).
Meskipun ada keberatan ini, klaim RMS untuk mendefinisikan dan memimpin komunitas hacker di bawah bendera "free software" secara luas diterima hingga pertengahan 1990-an. Hal ini baru serius ditantang oleh munculnya Linux. Linux memberikan tempat alami bagi pengembangan open source. Banyak proyek yang diterbitkan dengan syarat yang sekarang kita sebut open source bermigrasi dari Unix berlisensi ke Linux. Komunitas seputar Linux berkembang pesat, menjadi jauh lebih besar dan lebih heterogen daripada budaya hacker sebelum munculnya Linux. RMS dengan tekun mencoba mengakomodasi semua aktivitas ini ke dalam gerakan "free software"-nya, tetapi dia terhalang oleh keragaman yang meledak dalam komunitas Linux dan skeptisisme publik dari pendirinya, Linus Torvalds. Torvalds tetap menggunakan istilah "free software" karena tidak ada alternatif lain, tetapi secara terbuka menolak beban ideologis RMS. Banyak hacker muda mengikuti jejaknya.
Pada tahun 1996, ketika saya pertama kali menerbitkan Panduan Hacker ini, komunitas hacker sedang mengalami reorganisasi cepat di sekitar Linux dan beberapa sistem operasi open source lainnya (terutama yang berasal dari BSD Unix). Kenangan komunitas tentang kenyataan bahwa sebagian besar dari kami telah menghabiskan beberapa dekade mengembangkan perangkat lunak sumber tertutup pada sistem operasi sumber tertutup belum mulai memudar, tetapi kenyataan itu sudah mulai terlihat seperti bagian dari masa lalu yang mati; hacker, secara semakin meningkat, mendefinisikan diri mereka sebagai hacker berdasarkan keterikatan mereka pada proyek open source seperti Linux atau Apache.
Namun, istilah "open source" belum muncul; itu baru terjadi pada awal tahun 1998. Ketika itu terjadi, sebagian besar komunitas hacker mengadopsinya dalam enam bulan berikutnya; pengecualian adalah minoritas yang secara ideologis terikat pada istilah "free software". Sejak tahun 1998, dan terutama setelah sekitar tahun 2003, identifikasi 'hacking' dengan 'pengembangan open-source (dan free software)' menjadi sangat erat. Saat ini, tidak ada gunanya mencoba membedakan antara kategori-kategori ini, dan tampaknya tidak mungkin berubah di masa depan.
Namun, perlu diingat bahwa hal ini tidak selalu demikian.
Sumber Daya Lainnya
Paul Graham telah menulis sebuah esai yang berjudul Great Hackers, dan yang lainnya tentang Undergraduation, di mana ia berbicara banyak kebijaksanaan.
Hacker muda mungkin menemukan Things Every Hacker Once Knew menarik dan berguna.
Saya juga telah menulis A Brief History Of Hackerdom.
Saya telah menulis sebuah makalah, The Cathedral and the Bazaar, yang menjelaskan banyak tentang bagaimana budaya Linux dan open-source bekerja. Saya juga membahas topik ini secara lebih langsung dalam sekuelnya Homesteading the Noosphere.
Rick Moen telah menulis sebuah dokumen yang sangat baik tentang cara menjalankan kelompok pengguna Linux.
Rick Moen dan saya telah bekerja sama dalam dokumen lain tentang How To Ask Smart Questions. Ini akan membantu Anda mencari bantuan dengan cara yang membuatnya lebih mungkin Anda benar-benar mendapatkannya.
Jika Anda membutuhkan instruksi dasar tentang cara kerja komputer pribadi, Unix, dan Internet, lihat The Unix and Internet Fundamentals HOWTO.
Ketika Anda merilis perangkat lunak atau menulis patch untuk perangkat lunak, cobalah mengikuti panduan dalam Software Release Practice HOWTO.
Jika Anda menikmati puisi Zen, Anda mungkin juga menyukai Rootless Root: The Unix Koans of Master Foo.
Pertanyaan yang Sering Diajukan
| Q: | Bagaimana cara saya tahu apakah saya sudah menjadi seorang hacker? |
| A: | Tanyakan pada diri Anda tiga pertanyaan berikut:Apakah Anda menguasai pemrograman dengan lancar?Apakah Anda mengidentifikasi diri dengan tujuan dan nilai-nilai komunitas hacker?Pernahkah anggota senior komunitas hacker menyebut Anda sebagai seorang hacker?Jika Anda dapat menjawab ya untuk ketiga pertanyaan ini, maka Anda sudah menjadi seorang hacker. Satu atau dua saja tidak cukup.Ujian pertama berkaitan dengan keterampilan. Anda mungkin lulus jika memiliki keterampilan teknis minimum yang dijelaskan sebelumnya dalam dokumen ini. Anda akan melewatinya dengan mudah jika telah memiliki sejumlah kode yang diterima oleh proyek pengembangan open source.Ujian kedua berkaitan dengan sikap. Jika lima prinsip sikap hacker terasa jelas bagi Anda, lebih seperti deskripsi tentang cara hidup Anda daripada sesuatu yang baru, maka Anda sudah setengah jalan menuju lulus. Itu adalah bagian dalam; bagian luar adalah sejauh mana Anda mengidentifikasi diri dengan proyek jangka panjang komunitas hacker.Di bawah ini adalah daftar yang tidak lengkap tetapi mengindikasikan beberapa proyek-proyek tersebut: Apakah penting bagi Anda bahwa Linux meningkat dan menyebar? Apakah Anda bersemangat tentang kebebasan perangkat lunak? Melawan monopoli? Apakah Anda bertindak berdasarkan keyakinan bahwa komputer dapat menjadi alat pemberdaya yang membuat dunia menjadi lebih kaya dan lebih manusiawi?Namun, perlu diingat dengan hati-hati di sini. Komunitas hacker memiliki kepentingan politik tertentu, terutama yang bersifat defensif — dua di antaranya adalah mempertahankan hak kebebasan berbicara dan melawan upaya pengambilalihan "hak kekayaan intelektual" yang akan membuat open source menjadi ilegal. Beberapa proyek jangka panjang tersebut adalah organisasi hak sipil seperti Electronic Frontier Foundation, dan sikap luar secara tepat melibatkan dukungan terhadap mereka. Namun, di luar itu, sebagian besar hacker melihat upaya untuk menjadikan sikap hacker sebagai program politik eksplisit dengan kecurigaan; kita telah belajar, dengan cara yang sulit, bahwa upaya-upaya tersebut dapat memecah belah dan mengalihkan perhatian. Jika seseorang mencoba merekrut Anda untuk berunjuk rasa di ibu kota Anda atas nama sikap hacker, mereka telah salah paham. Respon yang tepat mungkin adalah "Diam dan tunjukkan kode Anda."Ujian ketiga memiliki elemen rekursif yang rumit. Saya perhatikan dalam bagian yang disebut "Apa Itu Seorang Hacker?" bahwa menjadi seorang hacker sebagian adalah tentang menjadi bagian dari subkultur atau jaringan sosial tertentu dengan sejarah bersama, ada yang di dalam dan di luar. Di masa lalu yang jauh, hacker adalah kelompok yang lebih tidak terikat dan kurang sadar akan diri sendiri daripada yang ada saat ini. Namun, pentingnya aspek jaringan sosial telah meningkat selama tiga puluh tahun terakhir seiring dengan Internet yang membuat koneksi dengan inti subkultur hacker menjadi lebih mudah untuk dikembangkan dan dijaga. Salah satu indikator perilaku yang mudah dari perubahan ini adalah bahwa pada abad ini, kami memiliki kaos kaki kami sendiri.Sosiolog, yang mempelajari jaringan seperti yang ada dalam budaya hacker di bawah istilah umum "kolese tak terlihat", telah mencatat bahwa satu karakteristik dari jaringan-jaringan tersebut adalah adanya penjaga gerbang — anggota inti dengan otoritas sosial untuk menerima anggota baru ke dalam jaringan. Karena "kolese tak terlihat" yang merupakan budaya hacker adalah kelompok yang longgar dan informal, peran penjaga gerbang juga bersifat informal. Tetapi satu hal yang semua hacker pahami dengan baik adalah bahwa tidak semua hacker adalah penjaga gerbang. Penjaga gerbang harus memiliki tingkat keberadaan dan prestasi tertentu sebelum mereka dapat memberikan gelar tersebut. Seberapa tinggi tingkat tersebut sulit diukur, tetapi setiap hacker tahu ketika mereka melihatnya. |
| Q: | Bisakah Anda mengajari saya cara hacking? |
| A: | Sejak saya pertama kali menerbitkan halaman ini, saya telah menerima beberapa permintaan setiap minggu (seringkali beberapa permintaan setiap hari) dari orang-orang yang meminta "ajarilah saya semua tentang hacking". Sayangnya, saya tidak memiliki waktu atau energi untuk melakukannya; proyek hacking saya sendiri dan pekerjaan sebagai advokat open source menghabiskan 110% waktu saya.Walau bagaimanapun, hacking adalah sikap dan keterampilan yang harus Anda pelajari sendiri. Anda akan menemukan bahwa sementara hacker sejati ingin membantu Anda, mereka tidak akan menghormati Anda jika Anda memohon untuk diberi segala pengetahuan yang mereka miliki.Belajarlah beberapa hal terlebih dahulu. Tunjukkan bahwa Anda berusaha, bahwa Anda mampu belajar sendiri. Kemudian datanglah kepada para hacker dengan pertanyaan yang spesifik.Jika Anda mengirim email kepada seorang hacker meminta saran, ada dua hal yang perlu diketahui sebelumnya. Pertama, kami telah menemukan bahwa orang yang malas atau ceroboh dalam menulis biasanya sama malas dan cerobohnya dalam berpikir sehingga tidak menjadi hacker yang baik — jadi berhati-hatilah dalam mengeja dengan benar, dan gunakan tata bahasa dan tanda baca yang baik, jika tidak, kemungkinan besar Anda akan diabaikan. Kedua, jangan berani meminta balasan ke akun ISP yang berbeda dari akun yang Anda gunakan untuk mengirim email; kami menemukan bahwa orang yang melakukannya biasanya adalah pencuri yang menggunakan akun yang dicuri, dan kami tidak tertarik untuk memberi penghargaan atau membantu pencurian. |
| Q: | Bagaimana saya bisa memulai, lalu? |
| A: | Cara terbaik bagi Anda untuk memulai mungkin adalah pergi ke pertemuan LUG (kelompok pengguna Linux). Anda dapat menemukan kelompok-kelompok tersebut di LDP General Linux Information Page; kemungkinan ada di dekat Anda, mungkin terkait dengan perguruan tinggi atau universitas. Anggota LUG kemungkinan akan memberikan Anda distribusi Linux jika Anda memintanya, dan pasti akan membantu Anda menginstalnya dan memulai langkah pertama.Anda langkah berikutnya (dan langkah pertama jika Anda tidak dapat menemukan LUG di dekat Anda) sebaiknya mencari proyek open source yang menarik bagi Anda. Mulailah membaca kode dan meninjau bug. Pelajari untuk berkontribusi, dan maju secara bertahap.Satu-satunya cara untuk masuk adalah dengan bekerja untuk meningkatkan keterampilan Anda. Jika Anda meminta saran secara pribadi kepada saya tentang cara memulai, saya akan memberi Anda nasihat yang sama persis ini, karena saya tidak memiliki jalan pintas ajaib untuk Anda. Saya juga akan menganggap Anda sebagai kemungkinan pecundang — karena jika Anda tidak memiliki daya tahan untuk membaca FAQ ini dan kecerdasan untuk memahami bahwa satu-satunya cara untuk masuk adalah dengan bekerja untuk meningkatkan keterampilan Anda, maka Anda tidak punya harapan.Lain kemungkinan menarik adalah mengunjungi hackerspace. Ada gerakan yang berkembang di mana orang menciptakan lokasi fisik — klub pembuat — di mana mereka dapat berkumpul untuk bekerja pada proyek perangkat keras dan perangkat lunak bersama, atau bekerja sendiri dalam suasana yang menyenangkan. Hackerspace seringkali mengumpulkan alat dan peralatan khusus yang akan terlalu mahal atau sulit secara logistik untuk dimiliki oleh individu. Hackerspace mudah ditemukan di Internet; mungkin ada yang berlokasi di dekat Anda. |
| Q: | Kapan saya harus memulai? Apakah sudah terlambat bagi saya untuk belajar? |
| A: | Setiap usia di mana Anda termotivasi untuk memulai adalah usia yang baik. Sebagian besar orang tampaknya tertarik antara usia 15 dan 20, tetapi saya tahu ada pengecualian di kedua arah. |
| Q: | Berapa lama waktu yang dibutuhkan untuk belajar hacking? |
| A: | Itu tergantung pada seberapa berbakat Anda dan seberapa keras Anda bekerja untuk itu. Sebagian besar orang yang mencoba dapat mengembangkan keterampilan yang layak dalam waktu delapan belas bulan hingga dua tahun, jika mereka fokus. Namun, jangan berpikir bahwa itu berakhir di sana; dalam hacking (seperti dalam banyak bidang lainnya), diperlukan sekitar sepuluh tahun untuk mencapai penguasaan. Dan jika Anda seorang hacker sejati, Anda akan menghabiskan sisa hidup Anda untuk belajar dan menyempurnakan keterampilan Anda. |
| Q: | Apakah Visual Basic bahasa yang baik untuk memulai? |
| A: | Jika Anda mengajukan pertanyaan ini, hampir pasti berarti Anda berpikir untuk mencoba hacking di bawah Microsoft Windows. Ini adalah ide yang buruk. Ketika saya membandingkan usaha untuk belajar hacking di bawah Windows dengan usaha untuk belajar menari sambil mengenakan gips tubuh, saya tidak bercanda. Jangan pergi ke sana. Itu jelek, dan itu tidak pernah berhenti menjadi jelek.Ada masalah khusus dengan Visual Basic; terutama karena tidak portabel. Meskipun ada implementasi open source prototipe dari Visual Basic, standar ECMA yang berlaku tidak mencakup lebih dari sekumpulan kecil antarmuka pemrogramannya. Di Windows, sebagian besar dukungan perpustakaannya adalah milik tunggal vendor (Microsoft); jika Anda tidak sangat berhati-hati dengan fitur-fitur yang Anda gunakan — lebih berhati-hati daripada yang mampu dilakukan oleh pemula — Anda akan terjebak hanya pada platform-platform yang dipilih oleh Microsoft. Jika Anda memulai di sistem Unix, bahasa yang lebih baik dengan perpustakaan yang lebih baik tersedia. Contohnya adalah Python.Selain itu, seperti Basics lainnya, Visual Basic adalah bahasa yang dirancang dengan buruk yang akan mengajarkan Anda kebiasaan pemrograman yang buruk. Tidak, jangan meminta saya untuk menjelaskannya secara rinci; penjelasan tersebut akan membutuhkan buku. Pelajari bahasa yang dirancang dengan baik sebagai gantinya. Salah satu kebiasaan buruk tersebut adalah menjadi tergantung pada perpustakaan, widget, dan alat pengembangan dari satu vendor tertentu. Secara umum, bahasa yang tidak didukung sepenuhnya di setidaknya Linux atau salah satu BSD, dan/atau setidaknya tiga sistem operasi dari vendor yang berbeda, adalah bahasa yang buruk untuk dipelajari dalam hacking. |
| Q: | Bisakah Anda membantu saya meretas sistem, atau mengajari saya cara meretas? |
| A: | Tidak. Siapa pun yang masih bisa mengajukan pertanyaan seperti itu setelah membaca FAQ ini terlalu bodoh untuk bisa diajari, bahkan jika saya punya waktu untuk mengajar. Permintaan semacam itu yang saya terima melalui email akan diabaikan atau dijawab dengan kasar. |
| Q: | Bagaimana cara mendapatkan kata sandi untuk akun orang lain? |
| A: | Ini adalah tindakan meretas. Pergi saja, bodoh. |
| Q: | Bagaimana cara membobol/membaca/memonitor email orang lain? |
| A: | Ini adalah tindakan meretas. Pergilah, bodoh. |
| Q: | Bagaimana cara mencuri hak op di saluran IRC? |
| A: | Ini adalah tindakan meretas. Pergi, dungu. |
| Q: | Saya telah diretas. Bisakah Anda membantu saya melawan serangan lebih lanjut? |
| A: | Tidak. Setiap kali saya ditanya pertanyaan ini, itu selalu berasal dari seseorang yang malang yang menggunakan Microsoft Windows. Tidak mungkin untuk secara efektif mengamankan sistem Windows dari serangan meretas; kode dan arsitekturnya memiliki terlalu banyak kekurangan, yang membuat mengamankan Windows seperti mencoba mengevakuasi kapal dengan saringan. Pencegahan yang dapat diandalkan dimulai dengan beralih ke Linux atau sistem operasi lain yang dirancang setidaknya mampu untuk keamanan. |
| Q: | Saya mengalami masalah dengan perangkat lunak Windows saya. Bisakah Anda membantu saya? |
| A: | Ya. Pergi ke prompt DOS dan ketik "format c:". Semua masalah yang Anda alami akan berhenti dalam beberapa menit. |
| Q: | Di mana saya bisa menemukan hacker sejati untuk berbicara? |
| A: | Cara terbaik adalah mencari kelompok pengguna Unix atau Linux lokal di sekitar Anda dan pergi ke pertemuan mereka (Anda dapat menemukan tautan ke beberapa daftar kelompok pengguna di situs LDP di ibiblio).(Saya dulu mengatakan di sini bahwa Anda tidak akan menemukan hacker sejati di IRC, tetapi saya diberi tahu bahwa ini sedang berubah. Ternyata beberapa komunitas hacker sejati, yang terkait dengan hal-hal seperti GIMP dan Perl, sekarang memiliki saluran IRC.) |
| Q: | Bisakah Anda merekomendasikan buku-buku yang berguna tentang subjek terkait hacking? |
| A: | Saya menjaga Linux Reading List HOWTO yang mungkin berguna bagi Anda. Loginataka mungkin juga menarik.Untuk pengenalan tentang Python, lihat tutorial di situs Python. |
| Q: | Apakah saya perlu pandai matematika untuk menjadi seorang hacker? |
| A: | Tidak. Hacking menggunakan matematika formal atau aritmatika yang sangat sedikit. Secara khusus, Anda biasanya tidak akan memerlukan trigonometri, kalkulus, atau analisis (ada pengecualian dalam beberapa bidang aplikasi khusus seperti grafik komputer 3D). Mengetahui logika formal dan aljabar Boolean yang baik adalah bagus. Beberapa pemahaman tentang matematika hingga (termasuk teori himpunan hingga, kombinatorika, dan teori graf) dapat membantu.Namun, yang lebih penting adalah kemampuan Anda berpikir logis dan mengikuti rangkaian penalaran yang tepat, seperti yang dilakukan oleh para matematikawan. Meskipun isi dari sebagian besar matematika tidak akan membantu Anda, Anda akan membutuhkan disiplin dan kecerdasan untuk menangani matematika. Jika Anda kurang cerdas, maka sedikit harapan bagi Anda sebagai seorang hacker; jika Anda kurang disiplin, Anda lebih baik mengembangkannya. Saya pikir cara yang baik untuk mengetahui apakah Anda memiliki kemampuan yang diperlukan adalah dengan membaca buku Raymond Smullyan yang berjudul What Is The Name Of This Book?. Konundrum logis yang dimainkan oleh Smullyan sangat sesuai dengan semangat hacker. Kemampuan untuk memecahkannya adalah pertanda baik; menikmati memecahkannya adalah pertanda yang lebih baik. |
| Q: | Bahasa apa yang harus saya pelajari terlebih dahulu? |
| A: | HTML jika Anda belum menguasainya. Ada banyak buku HTML yang berkilauan dan penuh dengan hype yang buruk di luar sana, dan sangat sedikit buku yang baik. Salah satu yang saya sukai adalah HTML: The Definitive Guide.Namun, HTML bukanlah bahasa pemrograman lengkap. Ketika Anda siap untuk mulai pemrograman, saya akan merekomendasikan untuk memulai dengan Python. Anda mungkin akan mendengar banyak orang merekomendasikan Perl, tetapi Perl lebih sulit untuk dipelajari dan (menurut pendapat saya) kurang dirancang dengan baik.C sangat penting, tetapi juga jauh lebih sulit daripada Python atau Perl. Jangan mencoba mempelajarinya terlebih dahulu.Pengguna Windows, jangan puas dengan Visual Basic. Ini akan mengajarkan Anda kebiasaan buruk, dan tidak dapat digunakan di luar Windows. Hindari. |
| Q: | Hardware apa yang perlu saya miliki? |
| A: | Dulu komputer pribadi cukup lemah dan memiliki sedikit memori, cukup untuk memberikan batasan buatan pada proses pembelajaran seorang hacker. Namun, hal ini berhenti menjadi kenyataan pada pertengahan tahun 1990-an; mesin apa pun mulai dari Intel 486DX50 ke atas sudah cukup kuat untuk pekerjaan pengembangan, X, dan komunikasi Internet, dan disk terkecil yang dapat Anda beli saat ini sudah cukup besar yang cukup.Ketika memilih mesin untuk belajar, yang penting adalah apakah perangkat kerasnya kompatibel dengan Linux (atau kompatibel dengan BSD, jika Anda memilih jalur tersebut). Sekali lagi, ini akan berlaku untuk hampir semua mesin modern. Area yang benar-benar rumit adalah modem dan kartu nirkabel; beberapa mesin memiliki perangkat keras yang khusus untuk Windows yang tidak akan berfungsi dengan Linux.Ada FAQ tentang kompatibilitas perangkat keras; versi terbaru ada di sini. |
| Q: | Saya ingin berkontribusi. Bisakah Anda membantu saya memilih masalah yang harus saya kerjakan? |
| A: | Tidak, karena saya tidak tahu bakat atau minat Anda. Anda harus memiliki motivasi dan inisiatif sendiri, dan kemampuan untuk belajar sendiri. Mulailah sekarang... |




