Ketika menjadi jenius teknis tidak cukup untuk menjadi pengembang yang sukses? [Tutup]

18

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.

Komunitas
sumber
Perusahaan saya sarat dengan menara gading dengan gaji gading untuk penghuninya :(
dr Hannibal Lecter
Tampilannya bagus dari atas menara gading :)
Reputasi tinggi di sini membuat saya undangan untuk menaruh profil pada karier StackOverflow yang menyebabkan panggilan dari seorang perekrut yang menyebabkan tawaran untuk pindah ke Seattle :-)
kevin cline

Jawaban:

22

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
Apakah Anda akan menambahkan rincian lebih lanjut tentang cara berkomunikasi dengan orang-orang non teknis (seperti manajemen atau pelanggan) tentang hal-hal yang sangat teknis? Saat ini saya sedang membaca buku yang bagus tentang topik yang disebut "Even a Geek Can Speak".
Yah, itu pada dasarnya hanya sebuah pertanyaan jika Anda dapat berpikir dalam pola pikir MEREKA. Saya pernah menemukan bahwa menjelaskan pengembangan perangkat lunak sebagai "kami menulis resep rajutan" sangat cocok dengan pola pikir nenek.
3
Saya selalu memiliki preferensi untuk kandidat yang memiliki kemampuan bahasa Inggris yang sangat baik dan kemauan untuk mengambil waktu ekstra untuk mengerjakan keterampilan komunikasi tertulis dan lisan mereka. Di sisi lain, jika dia berbicara atau menulis seolah-olah hidup hanyalah aplikasi lain yang digunakan di atas Twitter, saya akan melakukan yang terbaik untuk bersikap sopan saat saya menunjukkan kepada mereka pintu.
Adam Crossland
@Pierre, apakah buku ini tersedia online? Saya tidak dapat menemukannya di Safari.
1
@ Pierre303 Anda mungkin menemukan "The Nerd Handbook" menarik. randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html . Penulis memiliki blog yang sangat menarik.
15

Kerja tim / komunikasi:

  • untuk dapat menjelaskan solusi Anda atau masalah Anda
  • untuk dapat bekerja dengan orang lain tanpa membuat mereka merasa buruk (dengan cara apa pun) - untuk membuat mereka merasa bekerja dengan Anda itu menyenangkan

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.

Klaim
sumber
15

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.

Michael K.
sumber
+1 untuk komentar kegigihan - Saya ingin tahu apakah perwakilan SO yang tinggi akan berkorelasi dengan kegigihan?
Gary Rowe
@Gary - Saya kira itu bisa, jika itu diperoleh dengan jawaban atas pertanyaan yang membutuhkan beberapa pekerjaan untuk diselesaikan, bukan pertanyaan pemula yang tidak ada titik koma atau sesuatu. ;)
Michael K
12

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:

Delapan, Bob. Jadi itu berarti bahwa ketika saya melakukan kesalahan, saya memiliki delapan orang yang berbeda untuk memberi tahu saya tentang hal itu. Itulah satu-satunya motivasi saya yang sebenarnya untuk tidak diganggu, itu dan ketakutan kehilangan pekerjaan saya. Tapi Anda tahu, Bob, itu hanya akan membuat seseorang bekerja cukup keras untuk tidak dipecat.

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.

JB King
sumber
Terima kasih satu juta, sementara sudah ada beberapa jawaban cemerlang, jawaban Anda adalah yang saya cari. Saya berharap lebih banyak orang akan datang ke sini dengan lebih banyak keterampilan yang dapat kita kembangkan untuk menjadi programmer yang lebih baik. (Saya tidak bisa memilih lagi untuk hari ini, maaf)
7

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.

Berin Loritsch
sumber
6

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.

Adam Crossland
sumber
4

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.

Larry Coleman
sumber
2

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.

Dave
sumber
1

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.

Aseem Gautam
sumber