Anda di halaman 1dari 3

DIMY TEKNOLOGI

PROGRAMMER QUIZ
Kategori soal yang tidak memiliki tanda bintang (*) tidak wajib untuk diisi, tetapi jika diisi akan menjadi
nilai tambah

Warmup test*
1. Dibawah ini terdapat beberapa link untuk melakukan tes dasar algoritma, test ini bisa dilakukan dengan
bahasa apa saja (diutamakan Node Js, Go, Python, Java, Kotlin, PHP).

Test dilakukan menggunakan platform HackerRank (https://www.hackerrank.com), register atau login


terlebih dahulu sebelum mengakses link dibawah. Kirimkan file code hasil test.

Berikut adalah beberapa link test yang harus dikerjakan :

a. Simple Array Sum

https://www.hackerrank.com/challenges/simple-array-sum

b. Compare the Triplets

https://www.hackerrank.com/challenges/compare-the-triplets

c. A Very Big Sum

https://www.hackerrank.com/challenges/a-very-big-sum

d. StairCase

https://www.hackerrank.com/challenges/staircase

link ada di github code.js

https://github.com/annandltp/dimy_test

Design pattern & System Optimization


1. Aplikasi modern dituntut untuk banyak melakukan banyak task dalam suatu request, sebagai contoh ketika
user melakukan register pada suatu aplikasi maka aplikasi tersebut harus mengirim email konfirmasi
kepada user, atau memasukan user ke mailing list.
Kegiatan diatas bisa menyebabkan sistem membutuhkan waktu yang lebih untuk memproses semua task
tersebut, sedangkan user tidak bisa menunggu terlalu lama sampai task tersebut selesai dilakukan.

Bagaimana solusi yang anda tawarkan untuk menangani hal tersebut ?

Code Knowledge & Optimization


1. Apa fungsi dan kegunaan dari code refactoring ?

Untuk membantu mengurangi kompleksitas, meningkatkan kejelasan, dan membuat kode lebih mudah
dimengerti serta lebih mudah dikelola
2. Apakah komentar dalam kode berguna ?, sebagian orang menyarankan komentar dalam kode sebaiknya
dihindari. Apakah anda setuju dengan hal tersebut ?, jelaskan alasannya.
Perlu, tapi tidak semuanya dengan cara memberikan sedikit komentar tapi dengan cara yang ringkas. Tidak
perlu banyak hiasan seperti membuat bingkai mengelilingi komentar. Cukup membuat deskripsi singkat di
samping baris kode.
3. What makes good code good?
Easy to read and understand by other programmers

Web development
1. Jelaskan tentang API versioning dan kegunaannya, dan bagaimana anda akan memanage API versioning
pada Web Services ?

Berguna untuk membuat perubahan pada API yang sudah ada, tapi ingin memastikan agar tidak
menyenggol yang versi sebelumnya.

Database
1. How would you explain the recent rise in interest in NoSQL?

The rise in interest in NoSQL databases is driven by the need for scalable flexible, and high-performance
data storage solution that can handle modern data challenges

Code collaboration & Team management


1. How would you deal with legacy code?
Managing legacy code entails understanding, incremental improvements, and careful maintenance. Start by
comprehending the codebase and setting clear objectives. Implement tests, refactor gradually, and maintain
version control. Upgrade tools, make incremental updates, and involve stakeholders. Track metrics, ensure
security, and share knowledge within the team. In extreme cases, consider a rewrite. It requires strategic
planning and a focus on delivering value while mitigating risks.

2. What is the biggest difference between Agile and Waterfall?


The most significant distinction between Agile and Waterfall methodologies lies in their project
management and development approaches. Agile embraces flexibility, iterative development, and rapid
adaptability to changing requirements through short development cycles. It encourages constant
stakeholder collaboration and prioritizes delivering increments of a product quickly. In contrast, Waterfall
follows a rigid, sequential process where each project phase must be completed before moving to the next.
It offers limited flexibility for changes once a phase begins and often results in longer project timelines.
Agile emphasizes risk mitigation through continuous testing and feedback, while Waterfall's linear
approach can make risk management more challenging.

Software development knowledge*


1. Why is writing software difficult? What makes maintaining software hard?

Writing software is challenging due to its inherently abstract nature, where developers must translate
complex logic and requirements into code without a physical form. The ever-changing nature of software
requirements, coupled with an almost infinite range of possible tasks software can perform, makes the
development process complex and iterative. Bugs and debugging add to the difficulty, requiring strong
problem-solving skills.

Maintaining software compounds these challenges with the continuous growth of complexity, the presence
of legacy code lacking modern documentation, and the need to manage dependencies, security, and
technical debt.

Anda mungkin juga menyukai