Bagaimana cara menghindari melompat ke solusi ketika di bawah tekanan? [Tutup]

18

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? .

GlenPeterson
sumber
2
Ini berbeda untuk semua orang. Saya dulu kenal seseorang yang tidak akan menyentuh keyboard untuk jangka waktu yang lama, maka dia bisa membuat solusi yang baik dalam waktu singkat. Bagi saya, saya menemukan TDD menyalurkan pandangan saya ke solusi yang benar paling cepat. Tidak ada yang bisa memberi tahu Anda apa yang akan bekerja untuk Anda.
pdr
1
Nah, itu dua teknik. Jika orang mendaftar cukup teknik, teknik yang berbeda akan bekerja untuk orang yang berbeda.
GlenPeterson
2
Saya khawatir tidak ada jumlah programmer yang dapat membantu Anda. Biasanya programmer mengerti masalahnya, dan mereka hanya melakukannya dengan ... memahaminya. Ada sejumlah metode sepele untuk memastikan Anda melakukannya dengan benar, tetapi sulit untuk menemukan satu untuk Anda, mengingat fakta bahwa mereka harus jelas. Jenis terburu-buru yang Anda gambarkan sepertinya ... sedikit gila? Sudahkah Anda mencoba berlatih lebih banyak, dengan tes tepat waktu? Pernahkah Anda mempertimbangkan untuk mencari bantuan psikologis untuk kecemasan, atau setidaknya membaca beberapa buku self-help tentang bekerja dalam kondisi stres?
ZJR
2
@ZJR - Saran bagus untuk berlatih dengan tes waktunya dan lihat sumber psikologis kinerja yang lebih baik di bawah tekanan. Mungkin saya bersikap negatif di sini, tetapi sebagian dari komentar Anda berbunyi seperti Anda pikir saya tidak punya bakat, atau saya punya masalah psikologis klinis. Aduh!
GlenPeterson
1
Pertama cari tahu apa yang dibutuhkan atau diharapkan PERSIS. Apa yang harus dipecahkan seringkali lebih sulit daripada bagaimana menyelesaikannya membutuhkan lebih banyak analisis dan sering mengungkapkan pertanyaan yang berbeda sama sekali.
minusSeven

Jawaban:

17

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

  1. Reaksi - Memobilisasi sumber daya untuk kejadian
  2. Pengintaian - Kumpulkan data tentang situasi tersebut
  3. Penghargaan - Pilih tindakan berdasarkan skenario terbaik dan terburuk
  4. Rencana - kembangkan rencana berdasarkan tindakan
  5. Masalah Pesanan - Gunakan format pengarahan standar
  6. Deployment - Jalankan dan monitor

atau secara lebih umum:

  1. Bangun semua orang dan buat mereka bergerak
  2. Cari tahu apa yang terjadi
  3. Solusi Brainstorm
  4. Pilih satu dan rencanakan
  5. Beritahu semua orang apa pekerjaan mereka
  6. Jalankan dan monitor
John Mee
sumber
1

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.

HLGEM
sumber
1

... Kecenderungan saya adalah melompat ke coding tanpa rencana nyata dan berharap saya mengetahuinya saat saya melanjutkan.

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 sudah cukup berhasil, jika tidak benar-benar kontraproduktif. Saya tidak selalu nyaman duduk di sana berpikir sementara jam terus berdetak.

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.

Apakah ada daftar periksa atau apakah ada teknik untuk mengenali ketika Anda memahami masalah dengan cukup baik untuk memulai pengkodean?

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.

Kapan paling produktif untuk berpikir dan mendesain lebih banyak vs kode beberapa eksperimen dan mencari tahu desain secara keseluruhan nanti?

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.

Lembek
sumber