Ada banyak diskusi seputar pertanyaan bagus " Akankah reputasi tinggi di Stack Overflow membantu mendapatkan pekerjaan yang baik? ". Saya langsung setuju dengan JoshK yang pada dasarnya mengatakan " Tidak " (saya akan menjelaskan alasannya), tetapi Joel menimpali dengan banyak fakta meyakinkan yang membuat saya juga jengkel.
Pertanyaan saya adalah keterampilan apa lagi (selain menjadi jenius teknis) yang Anda butuhkan dari pengembang? Untuk mendapatkan pekerjaan, atau untuk mempertahankannya .
Saya percaya menjadi jenius jauh dari cukup. Saya telah bertemu banyak jenius teknis di berbagai perusahaan tempat saya bekerja yang sangat mengesankan saya, tetapi sayangnya dalam banyak kasus, mereka hanya dipecat setelah beberapa bulan atau dimasukkan ke menara gading (terutama karena pemberontakan internal dari pengembang lain). Saya telah melihat banyak orang dalam kesulitan pribadi sebagai akibat dari ini yang saya mengerti.
Itu sebabnya saya penggemar pertanyaan non-teknis untuk posisi teknis. Saya ingin tahu bagaimana kandidat akan berinteraksi dengan orang lain (termasuk karyawan non-teknis), berapa banyak pertimbangan yang akan dia miliki untuk bisnis, apakah dia akan bekerja untuk hasil yang diinginkan, dan sebagainya.
Saya ingin tahu apa yang Anda butuhkan dari pengembang Anda dan MENGAPA itu penting (toh, Anda mempekerjakan seseorang untuk menulis kode, bukan? Mengapa Anda ingin dia bersikap tegas?) . Idealnya, saya ingin Anda memberikan contoh pertanyaan yang akan Anda tanyakan selama wawancara untuk mendukung jawaban Anda.
Jawaban:
Keahlian komunikasi yang sangat baik.
Jika kolega Anda tidak dapat membaca otak Anda secara langsung, Anda harus dapat memberi tahu mereka apa yang Anda pikirkan. Lebih disukai baik secara lisan dan tertulis.
EDIT: Cara untuk melihatnya pada waktu wawancara mungkin dengan bertanya kepada mereka apa kerangka favorit mereka untuk melakukan X, dan kemudian mengatakan bahwa mereka perlu bekerja pada proyek di mana X dapat digunakan, tetapi itu adalah keputusan politik untuk menggunakan teknologi Y (yang jelas lebih tua dan memiliki beberapa keterbatasan yang dipecahkan X).
Jika ini berakhir dengan argumen tentang mengapa keputusan politik salah, Anda memiliki indikasi kuat bahwa orang ini tidak melakukan dengan baik dengan keputusan pragmatis.
sumber
Kerja tim / komunikasi:
Tanpa keterampilan itu, Anda tidak bisa bekerja dalam tim, dan jika tidak bisa, Anda tidak akan bisa masuk ke perusahaan yang mengharuskannya (dan hampir semuanya membutuhkan kerja tim, tentu saja). Anda masih bisa menjadi freelance dan mengerjakan proyek yang tidak memiliki orang lain untuk dikerjakan, tetapi Anda masih harus berkomunikasi dengan orang-orang dari perusahaan lain.
Bahkan untuk belajar, jika Anda tidak dapat berkomunikasi dengan banyak orang yang berbeda, seperti di web, maka Anda mungkin tidak dapat melakukan yang lebih baik dalam kehidupan nyata dan dalam masyarakat (apa pun pekerjaan itu) itu adalah cacat.
sunting> Dalam wawancara, kerja tim / sosialisasi / komunikasi benar-benar mudah untuk diperiksa, mungkin itu hal yang paling mudah. Anda hanya perlu mengajukan beberapa pertanyaan, bukan teknis, pertanyaan yang mudah dijawab atau hanya pertanyaan tentang apa yang dipikirkan kandidat tentang sesuatu atau apa yang disukai atau tidak disukai kandidat dalam suatu domain atau lainnya. Buat dia bicara. Anda akan melihat.
sumber
Ketekunan adalah keterampilan yang tidak banyak saya lihat. Dan itu adalah keterampilan - kemampuan untuk membuat diri Anda mengatasi masalah, bahkan jika Anda tidak dapat melihat akhirnya. Banyak orang tidak melakukan ini; mereka bekerja hanya dengan momentum, atau hanya melakukan yang minimum untuk bertahan. Sayangnya, tidak ada cara untuk mengetahui apakah seseorang memiliki sifat ini dengan berbicara kepada mereka. Anda benar-benar harus dapat berbicara dengan orang lain yang telah bekerja dengan orang tersebut. Referensi dapat melakukan ini, tetapi opsi itu tidak selalu tersedia.
sumber
Ini lebih banyak ciri daripada keterampilan, tetapi saya mungkin menyarankan ini masih layak ditemukan pada seseorang untuk menjadi pengembang yang sukses:
Keserbagunaan akan menjadi sifat lain yang saya pakai di sana. Terkadang pengembang mungkin harus mengisi peran di luar pengembangan murni, misalnya analis bisnis, arsitek, atau penguji. Saya tahu saya memiliki berbagai bagian pada proyek di mana saya melakukan sesuatu selain merancang atau menulis kode dan ini harus menjadi sesuatu untuk dilihat di bagian lain. Tidak semua orang bisa menerima peran lain itu. Tanyakan situasi seperti apa yang dimiliki pengembang di masa lalu di mana mereka harus mengisi peran lain dan bagaimana hasilnya.
Kerendahan hati akan menjadi hal lain yang sepertinya saya perlukan. Ego dapat menyebabkan banyak masalah di beberapa tempat dan tidak semua orang dapat menerima bahwa mungkin ada seseorang yang lebih baik dalam sesuatu daripada mereka. Jika orang lain memiliki ide yang lebih baik, biarkan itu terjadi. Anda mungkin memiliki sampel kode pengembang yang Anda minta mereka kritik dan lihat seberapa baik mereka dapat memperbaikinya sendiri atau tidak.
Kebanggaan akan menjadi hal lain yang harus diletakkan di sana. Ini agak berbeda dengan kualitas sebelumnya, tetapi jika seseorang tidak memiliki rasa bangga pada pekerjaan mereka, kualitas seperti apa yang Anda pikirkan? Tidak puas sedikit berbeda di sini karena mungkin banyak pengembang dapat menjadi sempurna. Tanyakan proyek masa lalu apa yang paling mereka banggakan?
Motivasi diri juga akan menjadi keterampilan penting untuk dilihat. Apa yang mendorong mereka? Seberapa baik mereka mengartikulasikan ini? "Ruang Kantor" memiliki baris ini dari Peter Gibbons:
Itu adalah sesuatu yang saya duga banyak pengembang dan non-pengembang dapat berhubungan. Mengapa Anda melakukan pekerjaan yang Anda lakukan? Ini bisa menjadi pertanyaan yang bagus tetapi mencari ketulusan dan keaslian dalam respon karena kadang-kadang jawaban kalengan dapat terjadi bahwa seseorang harus menemukan.
Keingintahuan akan menjadi yang terakhir dalam daftar saya untuk ditambahkan. Keinginan untuk melihat bagaimana sesuatu bekerja, untuk mempelajari teknologi baru dan melangkah keluar dari zona nyaman seseorang, adalah penanda lain untuk ini yang dapat ditemukan di pengembang yang sukses. Sebuah cerita pendek tentang bagaimana seseorang masuk ke dalam pengembangan mungkin merupakan cara untuk melihat sifat ini meskipun yang lain adalah bertanya kepada mereka tentang sesuatu yang belum mereka lihat dan melihat apakah mereka memiliki, "Ya, itu mungkin menarik untuk dijelajahi," atau " Oh saudara, jangan lagi, "jenis tampilan.
sumber
1) Komunikasi mungkin merupakan keterampilan yang paling penting bagi siapa pun, termasuk jenis rekayasa perangkat lunak yang harus dimiliki. Keterampilan komunikasi itu sama pentingnya untuk berurusan dengan manajer dan klien seperti halnya untuk berurusan dengan rekan kerja.
2) Kerja tim adalah keterampilan yang sedikit berbeda yang sangat bergantung pada yang pertama. Pada dasarnya, saya perlu menentukan apakah orang yang saya pekerjakan akan menguntungkan tim secara keseluruhan, atau akankah ada beberapa konflik kepribadian yang berpotensi saya pekerjakan. Tidak ada yang bisa memprediksi masa depan, tetapi Anda juga tidak bisa mengabaikan tanda-tanda peringatan dalam wawancara.
Salah satu taktik yang saya gunakan dalam proses wawancara adalah meminta orang tersebut untuk menggambarkan salah satu masalah teknis yang lebih menantang (yang dapat mereka bicarakan) dan bagaimana mereka memecahkannya. Ketika mereka berbicara melalui proses penalaran mereka dan bagaimana mereka mengungkap masalah Anda bisa mendapatkan ide yang lebih baik tentang seberapa baik mereka dapat berkomunikasi tentang hal-hal yang berpotensi rumit. Jika mereka mencari bantuan tambahan dalam proses, saya melihat itu sebagai nilai tambah. Tidak seorang pun dari kita adalah teknolog yang sempurna. Jika masalah yang mereka pilih berakhir dengan bentrokan kepribadian (yang hanya terjadi satu kali), Anda dapat melewati atau menyelidiki sedikit lebih dalam.
Dalam banyak hal proses wawancara seperti pergi pada kencan buta. Kedua orang memasang wajah terbaik mereka, mencoba mencari tahu apakah mereka ingin menghabiskan waktu lagi dengan pihak lain. Semakin Anda bisa mendapatkan wawancara mengalir seperti percakapan, semakin santai orang yang akan diwawancarai; dan akibatnya semakin baik Anda akan melihat apakah mereka cocok.
sumber
Meskipun kualitas yang mungkin lebih berlaku untuk tim daripada pengembang individu, saya pikir ada banyak alasan di balik pepatah, "Insinyur hebat mengirim."
Ini adalah sesuatu yang sulit untuk diperlihatkan dalam sebuah wawancara untuk kebanyakan orang, tetapi jika saya mewawancarai seorang kandidat yang, misalnya, telah menulis dan mengirimkan aplikasi, perpustakaan, atau kerangka kerja open-source yang substansial dan dapat berbicara dengan fasih tentang sesuatu yang ekstra yang dibutuhkan untuk benar-benar menyelesaikan proyek non-sepele, saya harus memberikan orang itu kaki di atas kompetisinya.
Sebaliknya, jika seorang kandidat potensial mengarahkan saya ke akun Github-nya dan saya melihat bahwa itu penuh dengan proyek-proyek yang setengah jadi, buggy, terbengkalai, atau tidak terdokumentasi dengan baik, saya akan memiliki alasan yang baik untuk mengabaikan pencalonannya.
"Kopi adalah untuk penutup," seperti yang dikatakan seorang pria dalam sebuah film.
sumber
Keterampilan komunikasi dan kerja tim adalah penting, tetapi saya ingin menambahkan bahwa mampu memahami persyaratan pelanggan dan memperoleh pengetahuan domain bisnis juga sangat penting dalam pengalaman saya.
sumber
Saya setuju bahwa komunikasi adalah yang terpenting, tetapi saya telah mengalami kegagalan dalam pengkode yang sangat baik yang tidak akan menunjukkan kepada insinyur lain penggunaan prosesnya. Saya bisa menduplikasi prosesnya dan menunjukkannya kepada orang lain tetapi tanpa bantuannya. Dia dipecat karena dia tidak mau mengajar.
sumber
Tidak pernah cukup.
Akal sehat Penyelesaian masalah. Minat teknologi secara keseluruhan. Sikap melakukan sesuatu dengan cara yang benar. Kegigihan. Bermain tim / Komunikasi.
Nilai setiap keterampilan pada 1-5. Jika Anda mendapat minimal 3 dan rata-rata 20+. Anda akan memiliki kehidupan yang baik sebagai pengembang. 25+ akan menjadi pengembang yang sukses. Kurang dari 10 dan Anda perlu serius memikirkan karier dalam pengembangan perangkat lunak.
sumber