Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Ongoing Learning

Hidup sebagai programmer bisa diibaratkan seperti nyemplung di laut. Untuk bisa survive, kita harus terus bergerak dan berenang. Begitu kita diam, langsung deh tenggelam.

Ini juga berlaku buat saya yang sudah 12 tahun jadi programmer. Teknologi baru bermunculan dengan cepat dan kita harus keep up to date. Artikel ini adalah bagian pertama dari catatan perjalanan saya belajar teknologi baru. Seperti biasa, source code yang dihasilkan akan saya share di Github.

Mari kita mulai.

Pemilihan Teknologi

Pertama, saya tentukan dulu apa yang mau dipelajari. Sebetulnya ada banyak teknologi yang belum saya kuasai, misalnya:

  • Grails
  • Spring Roo
  • Spring Batch
  • Pentaho
  • NoSQL
  • NodeJS
  • Android
  • iOS Programming
  • Advanced Functional Programming (LISP, Clojure, Scala)
  • Amazon Cloud Services
  • dan masih banyak lagi

Tapi kita harus memilih salah satu yang akan didahulukan. Tidak mungkin belajar semua.

Dari sekian banyak dalam list, saya akhirnya pilih NodeJS dan NoSQL.

Kenapa?

Karena kedua hal itu memiliki ekosistem yang sangat berbeda dari yang selama ini saya tekuni. Kalau selama ini terbiasa dengan ekosistem Java dan database relasional, kali ini kita akan coba dunia di luar Java dan pemodelan data non-relasional.

Selanjutnya, seperti sering saya sarankan di berbagai forum, untuk belajar programming kita harus bikin aplikasi. Cuma baca-baca saja tidak akan banyak hasilnya.

Contoh Aplikasi

Nah kebetulan istri saya dapat amanah jadi sekretaris di pengajiannya, dia butuh aplikasi untuk menyimpan data member. Tidak rumit-rumit, berikut daftar fitur yang dibutuhkan:

Fitur Administrator

  • Entri data member
  • Entri data pembayaran iuran
  • Entri pengumuman

Fitur Member

  • Lihat pengumuman
  • Lihat data pembayaran iuran

Paling penting di sini adalah mulai dari hal yang sederhana dulu. Jangan terlalu ambisius ingin fitur canggih seperti:

  • Mobile Interface
  • Pemberian tugas/target individu
  • Tracking progress penyelesaian tugas/target

Kalaupun mau fitur tersebut, bisa kita tunda di rilis versi selanjutnya.

Langkah Pertama

Di jaman sekarang, jarang sekali aplikasi bisa dibangun hanya dengan satu library/framework saja. Beda dengan jaman VB 6 dulu. Sekali buka Visual Studio, beres langsung aplikasinya. Di jaman sekarang, kita harus pakai kombinasi teknologi atau yang biasa disebut Development Stack.

Karena ini dunia yang baru bagi saya, kombinasi stacknya masih belum saya pahami. Untuk itu perlu googling dulu. Beberapa link yang berhasil saya kumpulkan antara lain:

Perlu diketahui, NodeJS adalah JavaScript untuk di sisi server. Di sisi client, kita akan menggunakan AngularJS dan Twitter Bootstrap. Untuk itu, kita cari tahu dulu bagaimana menyambungkan AngularJS dan NodeJS. Terutama, bagaimana mengatur struktur folder aplikasinya.

Dari hasil pencarian di atas, saya menemukan beberapa artikel, yaitu:

Langkah Selanjutnya

Setelah materi dan referensi terkumpul, saatnya kita mulai bekerja. Pertama tentu kita install dulu NodeJS. Setelah itu, kita buat repository Githubnya.

Lalu, kita mulai coding. Follow terus repositorynya dan nantikan artikel lanjutannya ;)