Rabu, 03 Desember 2008

Mau menjadi pakar IT


Salah satu pertanyaan yang sering muncul dari mahasiswa saya, atau dari peserta presentasi yang saya berikan, adalah bagaimana caranya untuk menjadi pakar IT. Ini sebuah pertanyaan singkat yang jawabannya bisa panjang. Pertanyaan lain yang terkait dengan itu adalah "apa saja yang harus saya pelajari untuk menjadi pakar IT (programming, networking, database, dan bidang lain yang seperti itu)?"

Saya tidak tahu jawaban yang singkat dan pamungkas. Itu jawaban yang langsung to the point. Jawaban yang panjang ... ya panjang, tapi akan coba saya uraikan di dalam tulisan ini.
Passion, belajar dan praktek

Hal pertama yang sangat penting menurut saya adalah passion, minat, kecintaan. Sama seperti bidang lain, penguasaan bidang IT harus disertai dengan adanya keinginan yang menggebu-gebu. Mengapa Anda ingin menekuni bidang ini?

Penguasaan bidang IT tidak terjadi dalam waktu sekejap. Dia tidak bisa tercipta hanya dengan mengikuti sebuah seminar saja. Saya melihat banyak orang/siswa yang datang ke seminar dan kemudian berharap menjadi seorang jagoan. Ini sama seperti kita menonton pertandingan sepak bola dan kemudian pulang ke rumah berharap langsung menjadi jagoan sepak bola. Tidak bisa! Untuk menjadi pakar sungguhan dibutuhkan waktu tahunan, kecuali Anda mau sekedar menjadi "pakar" (atau sering juga disebut selebriti IT).

Belajar dan praktek merupakan metoda yang saya lakukan. Belajar di sini termasuk membaca buku, majalah, dan sumber referensi lainnya (kalau sekarang adalah Internet). Jika diperlukan, pelajari juga latar belakang teorinya. Praktek mencoba menerapkan apa yang Anda baca untuk meningkatkan ketrampilan (skill) dan memperkaya "perpustakaan" solusi Anda.

Untuk urusan membaca, saya termasuk yang maniak. Semua saya baca. Kesenangan saya membaca hal-hal yang terkait dengan komputer dimulai waktu saya membeli majalah bekas di dekat sungai Cikapundung (Bandung). Jaman itu banyak majalah asing yang nampaknya tidak dikembalikan ke penerbit akan tetapi dijual dengan sampul yang digunting. Jadi, saya mulai dengan majalah bekas! Itulah sebabnya saya sering heran dan kesal dengan mahasiswa yang mengeluh bahwa dia tidak punya uang untuk belajar komputer. Kalau sekarang sudah banyak buku komputer berbahasa Indonesia yang terjangkau harganya. Kalau dulu, saya harus membeli majalah asing.

Untuk soal praktek, banyak yang mengeluh tidak punya uang untuk membeli komputer. Siapa yang suruh untuk beli komputer? Untuk praktek komputer anda tidak harus memiliki komputer sendiri. Ada banyak tempat untuk belajar komputer, seperti misalnya lab di kampus, dan warnet. Anda bisa bekerja di sana sambil belajar. Kalau perlu bekerja tanpa dibayar. Ketika saya belajar UNIX (di mesin Sun), saya membantu admin di lab kampus. Saya ikut mengangkat komputer, menarik kabel, membereskan hal-hal lain secara voluntir selama 1 tahun. Baru setelah itu saya diberi kepercayaan untuk mengurus salah satu komputer di sana, dan akhirnya seluruh jaringan.
Pendidikan formal, training, atau belajar sendiri?

Ada orang-orang yang memberi contoh bahwa pendidikan formal di dunia IT tidak diperlukan karena bisa dipelajar sendiri. Kemudian mereka memberikan contoh-contoh jagoan IT di sekitar mereka yang tidak memiliki pendidikan formal di bidang IT. Bill Gates drop out dari Harvard. Steve Jobs tidak pernah menyelesaikan college. Masih banyak contoh lainnya. Tapi, apakah benar bahwa pendidikan formal tidak dibutuhkan? Orang lupa bahwa untuk satu Bill Gates yang sukses, mungkin ada 10 ribu dropout yang gagal. Tentu saja berita mengenai dropout yang gagal tidak menarik untuk diceritakan sehingga dapat dianggap natural saja. Maka akan aneh jika kesuksesan dropout dianggap normal. Saya masih termasuk yang beranggapan bahwa pendidikan formal itu dibutuhkan karena dia memberikan fondasi, meskipun itu bukan menjadi jaminan kesuksesan.

Lantas bagaimana dengan orang yang tidak berpendidikan formal? Mereka bisa saja berhasil, asal mau berusaha lebih keras. Salah satu jalur yang dapat ditempuh adalah dengan mengikuti training, bahkan training di beberapa tempat malah memiliki nilai (value) yang lebih tinggi dibandingkan pendidikan formal biasa. Hal ini dibuktikan dengan lebih diakuinya sertifikat vendor (yang notabene terkait dengan training, bukan dengan pendidikan formal) dibandingkan dengan ijasah perguruan tinggi.

Saya mungkin termasuk kategori yang menempuh jalur belajar sendiri. Saya tidak punya sertifikat, akan tetapi malah mengeluarkan sertifikat. (Lihat BRcertified.com.) Apakah Bill Gates punya sertifikat dari Microsoft?) Pendidikan formal IT saya sangat minim karena ketika saya kuliah lebih banyak ilmu elektronikanya. Kalau elektronika dapat dianggap sebagai IT, maka saya memiliki pendidikan formal IT. Tentu saja latar belakang pendidikan elektronika saya sangat membantu dalam memahami IT. Namun kalau diurut-urut, pendidikan formal programming saya hanyalah pemrograman dalam bahasa FORTRAN. Sementara itu penguasaan bahasa pemrograman lainnya (perl, C, C++, Java, dan masih banyak lainnya) berasal dari belajar sendiri.

Dalam belajar sendiri saya mencoba mencari (buku) referensi yang terbaik, referensi yang digunakan oleh para jagoan lainnya. (Pendekatan ini mungkin belum tentu cocok untuk Anda, tetapi inilah "aliran" atau "madzhab" yang saya pilih.) Caranya adalah dengan mencari informasi di milis, situs web, dan tanya ke orang lain. Kadang buku referensi ini sukar dimengerti, akan tetapi lama kelamaan saya menjadi lebih mengerti mengapa referensi tersebut digunakan. Jadi saya tidak mencari buku "xyz for dummies" atau buku terjemahan yang malah membingungkan. Jika ingin berguru, cari guru yang terbaik. Jangan cari guru yang biasa-biasa saja.

Contoh buku-buku yang saya gunakan ketika belajar misalnya:

* Buku "camel" (terbitan O'Reilly) saya gunakan untuk belajar bahasa perl. Saya pilih buku ini karena Larry Wall yang menulis buku ini dan dia kebetulan adalah pengarang bahasa perl. Lagian, waktu itu ini adalah satu-satunya buku perl yang ada. hi hi hi.
* Buku "dragon" (karangan Aho dan kawan-kawan) untuk belajar compiler.
* Buku karangan Lippman (C++ Primer) ketika belajar C++. (Yang ini tidak ada nama binatangnya. ha ha ha.)

Kelebihan penggunaan buku-buku yang sama dengan buku yang digunakan oleh pakar di luar negeri adalah kita bisa nyambung kalau berdiskusi. Jadi tidak ada bedanya antara mereka dan saya.

Catatan mengenai nama buku. Biasanya buku diberi julukan berdasarkan gambar sampul (cover) dari buku itu. Sebagai contoh buku "camel" memiliki sampul bergambar onta.
Bahasa pemrograman apa yang harus saya kuasai?

Setiap waktu selalu muncul bahasa pemrograman (dan metodologi) yang baru. Pada saat saya belajar pemrograman, bahasa FORTRAN dan pembuatan flow chart merupakan hal yang wajib diketahui oleh seorang programmer. Kalau sekarang mungkin bahasa Java atau C/C++ yang lebih dicari. Demikian pula metodologi yang menggunakan agile atau extreme programming mungkin sedang naik daun. Untuk pengembangan yang berbasis web, bahasa PHP dan ASP yang sedang populer. (Saya sendiri lebih suka menggunakan bahasa perl.)

Jadi bagaimana? Apakah Anda perlu mengetahui semua bahasa yang baru? Jawabannya adalah tidak. Hanya orang "gila" saja yang melakukan hal itu. (Dalam hal ini mungkin saya termasuk orang yang "gila" karena saya senang mencoba bahasa-bahasa yang baru.) Hal yang paling penting adalah dasar-dasar dari pemrograman. Bahasa hanya sekedar "alat komunikasi." Jika Anda menguasai C, misalnya, maka tidaklah terlalu sukar untuk menguasai bahasa lain (yang filosofinya sama atau mirip). Namun jika Anda tidak memiliki dasar pemrograman, maka akan sulit bagi untuk berkembang. Sebagai contoh, saya menguasai bahasa perl. Ketika muncul bahasa PHP maka dengan mudah saya mengerti karena sedikit banyak prinsipnya tidak jauh berbeda dengan bahasa perl.

0 Comments: