Rencana Menulis Buku dan Mengajar

Ketika seseorang bertanya hal teknis, saya sering memberi jawaban untuk googling (mungkin sedang tidak mood untuk menjelaskan) tapi terkadang saya memberi jawaban panjang lebar (yang mungkin malah membuat sipenanya semakin bingung). Saya yakin kesalahan ada pada saya dalam hal menjelaskan. Untuk itu saya berusaha mengasah cara penyampaian dengan mulai berbicara di depan banyak orang. Jika tidak halangan, insyaallah, hari sabtu dan minggu saya akan membawakan materi di acara bertema Joomla di Paramadina. Dengan membiasakan diri menyampaikan materi di depan banyak orang, saya berharap ke depannya akan lebih mudah menyampaikan suatu materi kepada orang lain.

Di waktu saya yang tidak terlalu sibuk ini, saya terpikir ingin menulis buku dan mengajar. Untuk menulis buku ada beberapa tema yang ingin saya tuliskan, antara lain: Python atau Django, cakePHP, jQuery dan HTML5 CSS3. Saya tidak tahu apakah tema-tema tersebut sudah banyak bukunya atau belum di Indonesia. Mungkin saya akan survey dulu untuk mencari tahu. Saya juga tidak tahu penerbit buku mana yang tepat untuk tema komputer. Rencana saya (kalau memungkinkan) adalah menggratiskan pengunduhan buku dalam format pdf atau HTML, tapi memungkinkan orang lain untuk mendapatkan hardcopy buku tersebut di toko buku. Ini seperti buku Dive Into Python. Saya tidak tahu apakah ada penerbit buku di Indonesia seperti Apress. Apakah memungkinkan di Indonesia jika tulisan kita lisensikan di bawah lisensi Creative Common tapi penerbit mau mencetaknya?

Dulu saat saya rajin ke Gramedia, saya sering menumpang membaca buku-buku komputer. Ada hal yang mengagetkan saya dari salah seorang penulis buku komputer Indonesia. Penulis ini banyak menulis buku komputer dan buku yang ditulis bukan buku terjemahan. Temanya meliputi elektronika dan bahasa pemrograman. Yang membuat saya kaget adalah tulisan yang ada di buku ini sudah saya baca semuanya di internet, dengan kata lain apa yang ada di buku-bukunya itu ada semua di internet, hanya saja berbeda bahasa. Ini bukan lagi kutipan, tapi kumpulan terjemahan halaman situs berbahasa Inggris ke bahasa Indonesia. Pantas saja buku komputer yang ditulisnya banyak sekali. Memang sekilas tidak ada yang salah, tapi seharusnya di buku tersebut di jelaskan bahwa tulisan bab sekian merupakan terjemahan dari halaman situs blablabla. Menurut saya mengambil referensi dari buku lain atau halaman situs itu tidak ada yang salah selama pengutip tidak menyalahi hak cipta penulis. Tapi ini menjadi tidak wajar jika banyaknya halaman yang diterjemahkan tanpa mengubah gaya penulisan. Buku-buku luar , seperti buku pemrograman Python atau HTML CSS itu banyak sekali. Tapi mereka semua menulis dengan gaya yang berbeda dan mereka menyusun chapter-nya berbeda pula. Apakah penerbit Indonesia meloloskan buku seperti ini dengan mudah? Atau saya saja yang lebay? Dan juga kebanyakan buku komputer di Indonesia itu tidak di jaga kelanjutannya oleh penulisnya sendiri. Beberapa penerbit luar seperti O’reilly dan Apress menyediakan halaman resource tersendiri untuk buku yang diterbitkan, ini meliputi errata, halaman unduh dan bahkan penulisnya membuatkan situs khusus untuk buku tersebut sebagai wadah diskusi, saran dan kritik dari pembaca. Sepertinya berat juga jadi penulis berpikir kembali sebelum menulis.

Selain berkeinginan menulis, kenapa tiba-tiba juga ingin mengajar? Well, menulis itu mudah. Kita tidak langsung mengetahui apakah pembaca memahami atau tidak. Sedangkan dengan mengajar kita langsung bertatap muka, sehingga setidaknya bisa diketahui apakah penyimak memahami apa yang kita sampaikan atau tidak. Ada beberapa ide yang terpikir oleh saya dalam mengajar, antara lain:

  1. Jika saya mengajar yang berkaitan dengan bahasa pemrograman, saya ingin yang saya ajarkan nanti membuat kelompok, merencakan membuat suatu proyek sumber terbuka lalu mengunggahnya di repositori dengan sistem kontrol versi (seperti di github.com, code.google.com atau sf.net). Mereka akan menjalani siklus pengembangan aplikasi sumber terbuka. Jika hitungan mengajar materi pemrograman ini selama 6 bulan, maka cukup bagi mereka untuk merilis sampai beberapa versi stabil. Saya lihat belum ada (CMIIW) perguruan tinggi berbasis IT di Indonesia yang mempunyai repositori sistem kontrol versi sendiri seperti github atau sf.net. Padahal ini bisa menjadi pemicu mahasiswanya untuk berkarya dan berkontribusi di dunia aplikasi sumber terbuka.
  2. Di kampus saya ada kompetisi membuat perangkat lunak, tapi saya tidak tahu bagaimana proses pengembangan di belakangnya. Terkait dengan point no. 1, pastinya juri dapat memantau proses pengembangannya, juri dapat mengetahui siapa programmer yang paling aktif meng-commit. Selain penilaian secara fungsionalitas dan kekreatifan ide, seharusnya aplikasi juga dinilai dari kualitas kode yang dibuat. Mungkin ini agak sulit bagi juri jika harus mereview kualitas kode, tapi bisa digunakan skrip yang membaca dari repositori untuk melihat frekuensi baris komentar, membaca seberapa banyak log commit, frekuensi keaktifan programmer dalam commit — seperti Ohloh Analysis Summary. Dan baiknya setiap aplikasi menyediakan unit testing, sehingga juri bisa langsung melihat seberapa banyak unit test mencangkup aspek fungsionalitas aplikasi.

Ya ini hanya rencana yang saya ingin wujudkan, insyaallah.