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
- Programming Interviews Exposed: Secrets to Landing Your Next Job
- JavaEE Job Interview Companion
- Cracking programming interview
- careercup
leave a comment