Ketika di bawah tenggat waktu pemrograman yang sangat ketat (seperti satu jam), jika saya panik sama sekali, kecenderungan saya adalah melompat ke pengkodean tanpa rencana nyata dan berharap saya mengetahuinya saat saya melanjutkan. Dengan waktu yang cukup, ini bisa berhasil, tetapi dalam sebuah wawancara, ini cukup berhasil, jika tidak benar-benar kontraproduktif. Saya tidak selalu nyaman duduk di sana berpikir sementara jam terus berdetak.
Apakah ada daftar periksa atau apakah ada teknik untuk mengenali ketika Anda memahami masalah dengan cukup baik untuk memulai pengkodean? Kapan paling produktif untuk berpikir dan mendesain lebih banyak vs kode beberapa eksperimen dan mencari tahu desain secara keseluruhan nanti?
Berikut adalah daftar teknik untuk mengambil tes matematika dan yang lainnya untuk mengikuti ujian lisan . Apakah ada daftar teknik serupa untuk menangani masalah pemrograman di bawah tekanan?
JAWABAN: Saya pikir ini adalah jawaban yang valid: Cara Memecahkannya . Saya menemukan tautan itu sebagai jawaban untuk Langkah-langkah untuk diselesaikan atau pendekatan ke arah solusi . Ada juga beberapa tips yang sangat baik untuk Apakah berpikir keras selama wawancara benar-benar strategi terbaik? . Argumen yang hebat dan ringkas untuk TDD adalah jawaban pertama untuk kode Menulis TDD vs Mencari tahu jawaban untuk masalah? .
sumber
Jawaban:
Saya ingat membaca sebuah penelitian tentang bagaimana marshal api membentuk rencana aksi pada saat kedatangan di lokasi kebakaran; studi mengamati (dan mengutuk) mereka untuk datang dengan ide, kemudian mengejar ide pertama itu segera. Karena tekanan waktu, itu cukup banyak "ini mungkin berhasil" diikuti oleh "ok, mari kita lakukan itu". Studi ini mencatat bahwa pilihan yang lebih baik, lebih cepat, lebih aman tersedia, tetapi mereka tidak diikuti hanya karena marshal tidak memikirkannya terlebih dahulu.
Jika Anda menginginkan pendekatan terstruktur untuk menangani "kebakaran", mungkin perlu membaca buku mereka (baru) yang mengatur beberapa fase:
RRAPID
atau secara lebih umum:
sumber
Saya selalu mulai dengan memahami persyaratan dan mencari celah di dalamnya yang membutuhkan jawaban.
Lalu saya membuat sketsa (sangat kasar dan di atas kertas atau papan tulis) dua atau tiga solusi yang mungkin. Lalu saya bertanya pada diri sendiri, "Apakah ada hal lain yang perlu saya ketahui untuk menerapkan semua ini?"
Setelah saya memiliki pertanyaan awal saya (ada pertanyaan 100% dari waktu, jika Anda tidak punya, Anda belum benar-benar melihat persyaratan secara mendalam.), Saya kembali ke pemangku kepentingan untuk mendapatkan jawaban saya.
Sementara saya membahas tanggapan mereka, saya mempertimbangkan solusi saya dan melihat apakah ada yang lebih baik daripada yang lain atau akan lebih baik setelah saya mendapatkan jawaban atas pertanyaan. Sebagai contoh jika seberapa cepat Anda membutuhkannya pertanyaan adalah segera, saya mungkin pergi untuk yang dengan pengembangan tercepat tetapi meninggalkan cara terbuka untuk meningkatkan desain nanti. Jika mereka mengatakan kepada saya kinerja sangat penting, maka saya melihat solusi dan menentukan mana yang lebih mungkin untuk melakukan lebih baik (ini adalah dugaan pada titik ini, tetapi yang diinformasikan pada umumnya). Jika GUI terlibat, saya mungkin membuat prototipe kertas dari beberapa desain berbeda dan meminta para pemangku kepentingan untuk melihatnya sebelum saya membuat kode apa pun (Biasanya mereka akan melihat bahwa mereka lupa memberi tahu Anda tentang XYZ yang merupakan sesuatu yang penting bagi rancangan!)
Setelah saya mendapatkan jawaban saya, saya memilih desain kasar dan kemudian saya membuat daftar semua hal yang harus saya lakukan untuk mengimplementasikannya. Lalu saya mulai coding.
sumber
Saya melakukan ini saat di universitas. Itu menjadi masalah nyata dan biasanya menghasilkan kode penulisan ulang. Saya mulai mengatasi ini dengan tidak menulis kode. Saya menekankan pemikiran tentang masalah tersebut. Dengan latihan yang cukup, saya secara naluriah meraih pikiran saya daripada menggunakan keyboard.
Dalam sebuah wawancara, harus ada implementasi yang masuk akal dan dipikirkan dengan matang untuk sebuah solusi dan itu tidak selalu mudah. Yang tidak ingin Anda lakukan adalah mengatakan jawaban tanpa berpikir. Jika Anda tahu jawabannya, cepat berikan. Jika tidak, andalkan pikiran Anda untuk mencari solusi. Selalu tunjukkan kapan Anda tidak tahu dan tunjukkan bagaimana cara mencari solusi.
Saya akan mengecilkan hati karena Anda dapat mengandalkannya dengan kaku. Sebaliknya, tanyakan pada diri Anda apakah Anda memahami masalah dengan cukup baik untuk memulai pengkodean. Bagaimana kamu tahu? Karena ketika Anda beralasan pendekatan Anda dan kemudian memeriksanya, mengingat pengetahuan bahasa Anda saat ini, itu akan masuk akal. Selalu punya rencana dan pendekatan. Juga ingat bahwa kode tidak pernah selesai dan kode yang tidak berevolusi akan mati sehingga berharap untuk sering kembali ke kode Anda.
Anda akan ingin mengetahui desain secara keseluruhan dan memikirkannya. Kemudian Anda mulai membuat struktur kelas dan bertopik. Kemudian tinjau kembali. Apakah masuk akal? Eksperimen pengkodean adalah cara yang bagus untuk mendemonstrasikan sesuatu bekerja dengan baik dan harus digunakan tetapi tidak dapat diandalkan untuk membuat atau membentuk kode yang Anda tulis.
sumber