Job Hunting Preparation Part 3 (Technical Test)
Technical Test
Jenis teknikal test ada beberapa macam, tergantung perusahaan:
- Paper test, Kamu diberikan kertas yang berisi test teknikal. Biasanya mengenai algoritma, software design, database, dll.
- Live coding, kamu disediakan satu laptop, IDE, dan studi kasus. Kamu harus menyelesaikan studikasus tersebut dengan coding di laptop menggunakan IDE yang sudah di sediakan. Biasaya yang dilihat bukan sekedar studikasus tersebut selesai dikerjakan, namun yang arsitektur dan clean code
- Technical Interview, tanya jawab antara kamu dengan interviewer, terkadang kamu presentasi didepan, lalu kamu dan interview melakukan tanya jawab. Interviewer juga menanyakan hal-hal dasar sampai ke hal kompleks mengenai software development.
Tiga bentuk teknikal test ini yang akan kamu temui saat melamar kerja, terkadang ada perusahaan yang hanya memberikan technical test, kadang ada technical test dan live coding, terkadang ada ketiga-tiga jenis technical test diatas.
Model Test
Yang biasa ditanyakan saat technical test:
Discrete Math
- Konversi bilangan decimal – hexa desimal – binary
- Penjumlahan, pengurangan bilangan binari
- Tabel Kebenaran True| False -> AND, OR, XOR
Algoritma
- Bilangan prima, tahun kabisat, faktorial, fibonaci, palindrome
- Loop, print shape {triangle, rectangle, diamond} with stars (*)
- Deret, buat program untuk menggenerate date seperti ini -> (2, 4, 5, 6)
- Sorting {bubble, insertion, selection, quick sort}, Searching {Binary search}
- Struktur Data {Stack, Queue, Tree}
Object Oriented
- Class, method, attribute, constructor, object
- Encapsulation, object not data
- Polymorphism (Overloading, overriding)
- Inheritance
- Abstract dan Interface, kenapa harus dibikin abstract, kenapa harus dibikin interface. Kapan harus menggunakan abstract dan interface.
- Single responsibilities
- Command and Queries
Screeencast menarik mengenai Object Oriented bisa di liat di sini, summary bisa diliat di sini
Software Design
Diberikan satu kasus, lalu kamu merancang class ataupun arsitektur software berdasarkan studikasus tersebut. Biasanya diimplementasikan dengan class diagram, sequence diagram. Model kasusnya kira2 seperti ini:
Kamu disuruh merancang system untuk traffic lamp controller, traffic lamp biasanya memiliki 3 jenis lampu.
- Lampu merah di beli dari vendor A. Untuk menghidupkan lampu merah menggunakan method turnOn(), untuk mematikan lampu merah digunakan method turnOff().
- Lampu kuning di beli dari vendor B, untuk menghidupkan lampu kuning dengan cara meng invoke method switch(true), untuk mematikan lampu kuning dengan menginvoke method switch(off).
- Kamu harus mengimplementasikan lampu hijau, dan satu buah component untuk mengontrol lampu-lampu tersebut sesuai dengan perputaran nyala lampu tesebut (lampu merah -> lampu kuning -> lampu hijau -> lampu merah … )
- Disini kamu harus merancang component yang loosely couple dan flexible
Referensi untuk melatih software design adalah Buku Head First Design Pattern dan Code Kata
Database
- Apa itu database
- Jenis database
- Data Definition Language (Create, alter, table)
- Query, Aggregate query, Join (Inner, Left, Right)
- Transaction, Index
- ERD
Software Testing
- Membuat acceptance Test
- Beda QA, QC, Tester
- Unit Test
Pengetahuan Umum
Pengetahuan umum ini biasanya hanya dasar-dasar saja. Tapi banyak orang yang lupa
- Beda Thread dan Proses
- Jenis HTTP Method dan kegunaanya
- Beda TCP dan UDP
- Software License
Additional references
Job Hunting Preparation Part 2
Setelah mempersiakan CV dan meng-apply ke perusahaan yang dituju. Jika kamu qualified, makan perusahaan itu pun akan mengundang kamu ke kantornya untuk melakukan proses rekrutment. Proses yang paling commonly used di dunia software developer recruitment:
Technical Test
Jenis teknikal test ada beberapa macam, tergantung perusahaan:
- Paper test, Kamu diberikan kertas yang berisi test teknikal. Biasanya mengenai algoritma, software design, database, dll.
- Live coding, kamu disediakan satu laptop, IDE, dan studi kasus. Kamu harus menyelesaikan studikasus tersebut dengan coding di laptop menggunakan IDE yang sudah di sediakan. Biasaya yang dilihat bukan sekedar studikasus tersebut selesai dikerjakan, namun yang arsitektur dan clean code
- Technical Interview, tanya jawab antara kamu dengan interviewer, terkadang kamu presentasi didepan, lalu kamu dan interview melakukan tanya jawab. Interviewer juga menanyakan hal-hal dasar sampai ke hal kompleks mengenai software development.
Tiga bentuk teknikal test ini yang akan kamu temui saat melamar kerja, terkadang ada perusahaan yang hanya memberikan technical test, kadang ada technical test dan live coding, terkadang ada ketiga-tiga jenis technical test diatas.
Personality Interview
Personality interview ini untuk menggali tentang dirimu, bagai mana sifat, attitude kamu. Interviewiernya biasanya dari orang HRD. Yang perlu kamu lakukan pada di personality interview:
- berpenampilan rapi, default manusia biasanya menilai awal dari penampilan.
- Berbicara dengan tegas namun sopan
- Jujur, tidak melebih-lebihkan
- Rendah hati
Adapun test lain yang kadang di lakukan oleh perusahaan:
- Psikotest
- English Test [TOEFL / IELTS]
- Test Kesehatan
Job Hunting Preparation Part 1
Beberapa hal yang perlu dipersiapkan sebelum apply ke perusahaan adalah:
- Cover letter, merupakan content email saat melamar kerja.
- CV
- Foto copy transkrip nilai, ijasah, dan juga KTP
Cover Letter
application letter biasanya dikirim via email atau juga quick apply melalui job provider webbsite. is email itu disebut dengan cover letter.apa-apa saja yang perlu di tulis pada cover letter:
- Perkenalkan nama mu, last education
- dari mana kamu dapat lowongan pekerjaan ini
- ceritakan secara singkat skill dan passion kamu
- bagai mana ketertarikan kamu terhadap lowongan tersebut
- kata penutup standar seperti (looking forward for your call to arrange test and interview in your company)
Curriculum Vitae (CV)
CV dilampirkan bersamaan dengan email application. Apa yang diisi pada CV:
- Personal Information: Nama, alamat, contact, working experience, foto, kalau kamu memiliki blog yang related tetang ke kerjaan kamu seperti blog tutorial akan menjadi nilai plus
- Summary: Berisi deskripsi singkat tetang kepribadian kamu. kamu berpengalaman di bidang apa, passion kamu dimana, dan spesialisasi kamu apa.
- Formal education: berisi list formal education yang kamu jalani mulai yang terakhir sampai SD
- Achievement and Award : Penghargaan apa yang pernah kamu dapat seumur hidup mu
- Social Task: Kegiatan sosial apa yang kamu ikuti: Aktif di perhimpunan mahasiswa, ikut kegiatan sosaial di daerah, paduan suara, aktif di milis A, dll.
- Employment experience: Berisi history berisi dimana saja kamu sudah bekerja.
- Project Experience: Berisi history project-project yang pernah kamu kerjakan. Di list secara ascending mulai yang dari latest sampai yang lama. Isinya: Project name (PNL Payment Switching), Project Owner (Bank BRI), Vendor (PT Sigma), Duration (Berapa lama project ini dekambangkan samapai production), Project descritption, Role (Role kamu di project itu), Responsiblity kamu di project itu, Platform and Skills (Technlogy, Architecture, Methodology yang digunakan saat mendevelop project ini)
- Trainer Experience: Pengalaman kamu mentraining orang, Topik training nya apa, siapa orang yang di training (IT Staff Beacukai), berapa lama.
- Training Experience: Pengalaman kamu di training, toping trainingnya apa, dari mana yang mentraining (IBM), berapa lama
Template CV Bisa di download dari CV-Template.
Saat kamu datang ke perusahaan untuk melakukan interview biasanya membawa CV, Transkrip nilai, Ijasah, KTP untuk diserahkan ke perusahaan. Usahakan meyimpan item-item ini kedalam satu container (Map/Amplop Coklat) agar lebih rapi dan profiesional.
Mau apply ke perusahaan mana ?
Saya dah tamat kuliah, kira2 perusahaan bagus untuk dimasuki apa ya ?
Banyak Lulusan Universitas/Politeknik tamat kerja bingung mau apply ke perusahaan apa, pastinya pengen masuk ke perusahaan bagus. Namun, kriteria perusahaan bagus itu apa ?
Kriteria perusahaan bagus menurutku:
- Teknlolgi Update
- Bisnis domain yang project yang dikerjakan perusahaan menantang
- Memperhatikan kesejahteraan staff, artinya tidak sekedar memanfaatkan tenaga staff saja.
- Salary ga overkill
Berdasarkan pengalaman interview, info dari teman, dan juga hasil searching dari internet. Berikut perusahaan yang menurutku paling recommended untuk di coba, tapi kusus untuk perusahaan di bidang software industry:
- Mitrais, tidak banyak yang bisa lulus ke perusahaan ini. Test nya lumayan sulit. Perusahaanya memang bagus.
- Artivisi Media, Owner perusahaan ini sering nimbrung di milis Java User Group Indonesia, sharing knowledge, jawab trouble shooting. Perusahaan ini sangat update dengan teknologi di Java. Cukup recommended untuk di coba.
- Petrolink, Perusahaan yang cukup bagus. Product mereka kusus untuk real time data delivery dan document management untuk Oli dan Gas domain. Aku dengar, karyawan disana rata-rata expert. Mereka selalu update di teknologi .NET
- Sigma Telcom, Bisnis domain mereka di bidang banking kususnya ATM dan Accounting untuk Bank. Project management dan juga model development mereka cukup bagus.
- Obhertur, perusahaan dari prancis. Bergerak di bidang Sim Card Application Development.
Perusahaan lain yang cocok untuk dicoba:
- LinkIT360
- Praweda Ciptakarsa Informatika
- Quadra Solutions
- Emrio Corp
- Mitra Integrasi Komputindo
- Anabatic
- Mobafone
- Aprisma, Teknologi kurang update. Tapi bisnis domain mereka cukup menarik. Internet Banking, Corporate banking, Payment Gateway Banking.
- eBworx, Mirip seperti aprisma
- Jatis solusion & Mobile. Sering overtime, namun alumni jatis biasanya tahan banting
- Formulatrix, Posisi di Salatiga Jawa tengah. Fokus mereka Research & Development hardware untuk kimia dan obat-obatan
Mungkin masih banyak perusahaan yang tidak aku list, bukan berarti tidak recomended namun saya belum tahu situasi disana. Kalau ada perusahaan rekomended dari pembaca, silahkan hubungi saya. supaya aku tambah di post ini
Have a nice job hunting.
Life is not only for code.
Akhrinya aku memutuskan untuk mengaktifkan kembali blog aku yang satu ini. Dua tahun belakangan ini aku hanya aktif menulis tentang programming di blog ini. Tapi setelah dipikir2, hidup ini bukan sekedar untuk coding. Banyak juga perjalanan hidup dan juga beberapa article lain yang perlu di share.
Skarang aku memiliki 3 blog yang mudah2an aktif untuk di isi:
- Adi Sembiring WordPress: Berisi seputar Software Development dan Arsitektur
- Zuntuk : Life Story
- Sticky Code : Notes to remember
leave a comment