Seorang programmer, selain harus bisa melakukan tugasnya (memprogram), juga paling ngga harus memiliki 3 skill tambahan dibawah untuk mendukung tugas2 nya. Antara lain:

  1. Mengerti SQL

    Dalam memprogram, sering banget kita bersinggungan dengan relasional database. Operasi database hampir selalu pakai SQL, kecuali jika kita menggunakan database model lain semacam SimpleDB, LDAP atau CouchDB, lain ceritanya. Tanpa pengetahuan mendasar tentang SQL, index dan trik2 database lain, aplikasi yang dihasilkan menjadi kurang optimise

  2. Mengerti Jaringan

    Apa itu IP, bagaimana konsep untuk mengirim data dan menerima data dari jaringan, port dan basic routing adalah skill dasar jaringan yang perlu dipelajari oleh programmer sebagai tambahan persenjataan untuk menghajar problem2 dalam aplikasinya.

  3. Regular Expression

    Pattern matching, akan sangat mempermudah kita dalam melakukan validasi data dan operasi string dengan efisien. Jadi, segera pelajari Regex bila anda belum.

  4. Tentang Sistem Operasi

    Memory (simpan variabel ini di heap atau tinggalkan saja di stack), File system (Untuk write file di *nix perlu write permission, maksimum jumlah file dalam direktori di BSD adalah 32k), Proses (apa itu proses, apa itu thread) dan sedikit tentang concurrency (Locking file, locking database table / rows, semaphore, mutex). Ini vital bagi seorang programmer, kita bikin aplikasi yg berjalan di sistem operasi. Jika kita ngga tau bagaimana sistem operasi itu bekerja, bagaimana kita akan membuat aplikasinya??

  5. Tentang Version Control

    Apakah CVS, Perforce, Subversion atau Source Safe, silahkan pelajari itu. Software ini sangat membantu dalam bekerja dan mempermudah bila kita bekerja secara team.

  6. (Buat Web Programmer) Protokol HTTP

    Memprogram aplikasi web tanpa mengetahui bagaimana seluk beluk protokol HTTP adalah konyol.

Eh, kok lebih dari 3, gpp… Anggep aja bonus.