Di dunia yang ideal:
Dalam sebuah artikel yang luar biasa, Jangan Menelepon Diri Anda Programmer, Dan Nasihat Karir Lainnya , Patrick McKenzie menjelaskan, antara lain, bahwa bahasa tidak masalah:
Pengembang adalah orang yang memecahkan masalah, secara umum. Pengembang bukan orang yang menulis kode dalam bahasa tertentu.
Bisnis tidak peduli dengan bahasa yang Anda tahu. Jika mereka perlu menyewa pengembang untuk proyek yang ditulis dalam bahasa tertentu, dan mereka memiliki kandidat yang sangat berpengalaman tetapi tidak pernah menulis garis kode dalam bahasa ini, ia masih akan dipekerjakan.
Menurut pengalaman saya baik sebagai pengembang maupun sebagai orang yang harus merekrut pengembang lain, pengamatannya sangat mirip:
Pengalaman N tahun di Jawa atau pengalaman N tahun di C # tidak masalah. Yang penting adalah bahwa kandidat tahu bagaimana menyelesaikan masalah, tahu perbedaan antara kode spaghetti dan kode bersih dengan arsitektur yang dipikirkan dengan matang, dll.
Saya tidak peduli dengan bahasa yang Anda gunakan sebelumnya. Untuk proyek C #, saya lebih suka menyewa pengembang profesional yang menghabiskan hidupnya menulis kode Java, Python dan Ruby on Rails daripada seorang pemula yang hanya tahu C #, dan sangat mengetahuinya.
Pengetahuan dan pengalaman yang Anda peroleh menggunakan satu bahasa sebagian besar dapat digunakan kembali dalam bahasa lain.
Pengembang berpengalaman yang menggunakan Ruby on Rails untuk pengembangan web dan menghabiskan sisa karirnya menulis aplikasi Java desktop menggunakan Oracle sangat cocok untuk proyek ASP.NET MVC menggunakan Microsoft SQL Server. Karena orang ini sudah mengetahui semua yang dia butuhkan untuk pekerjaan ini , selain beberapa hal khusus dan perbedaan sintaksis.
Di sisi lain, seseorang yang hanya melakukan beberapa situs web kecil ASP.NET MVC tidak cocok sama sekali, karena dia mungkin tidak sepenuhnya memahami arsitektur MVC, mungkin tahu tahu apa itu profil SQL, dan mungkin kekurangan beberapa hal penting lainnya. pengetahuan.
Jangan bilang bahwa saya tidak dapat memperbaiki masalah kecil dengan situs web PHP yang menggunakan CodeIgniter hanya karena saya tidak pernah menggunakan CodeIgniter sebelumnya.
Dalam praktek:
Dalam praktiknya, ketika saya mencari pekerjaan lepas dan ketika saya melihat penawaran pekerjaan secara umum, mereka sangat spesifik dalam bahasa.
Beberapa akan mencari pengembang PHP dengan pengalaman dua tahun di Magento. Orang lain akan mencari seseorang dengan pengalaman VB.NET setidaknya tiga tahun, dan jika Anda mengirim mereka resume yang menyebutkan bahwa Anda telah melakukan pengembangan C # selama enam tahun, tetapi tanpa menyebutkan VB.NET, mereka tidak akan repot-repot untuk menjawab. Jika mereka meminta orang yang berpengalaman dengan Firebird, mereka tidak akan mendengarkan pengalaman sepuluh tahun Anda dengan Oracle.
Mengapa ada perbedaan antara teori dan apa yang saya dan Patrick McKenzie gambarkan sebagai akal sehat, dan dunia nyata dari tawaran pekerjaan?
sumber
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.
Meskipun Anda benar-benar mampu memperbaiki masalah, jika akar penyebabnya adalah CodeIgniter (salah satu dari beberapa quirks kerangka kerja, atau salah satu dari banyak bug terbuka), maka itu akan membawa Anda lebih banyak waktu untuk memperbaiki masalah.<rant>...</rant>
. Serius, apakah ada pertanyaan nyata di sini?Jawaban:
Karena banyak perusahaan memiliki drone SDM melakukan perekrutan yang tidak tahu tentang hal itu. Ketika HR mengatakan "Kualifikasi apa yang dibutuhkan kandidat?" jauh lebih mudah untuk mengatakan "Enam tahun C #" daripada mengatakan "Menulis kode yang baik". Drone itu tidak tahu seperti apa "Menulis kode yang baik" atau bagaimana memfilter resume dengan apakah mereka dapat menulis kode yang baik atau tidak. Namun, mereka dapat dengan cepat membaca resume dan melihat "Lima dan tiga perempat tahun C #" dan membuangnya.
sumber
Saya pikir sudah waktunya untuk meletakkan mitos ini bahwa pengembang dengan pengalaman X tahun dalam bahasa Y dapat dengan mudah mentransfer ke bahasa Y2. Ini bukan cara kerjanya.
Jika Anda memperlakukan bahasa hanya sebagai sintaks dan pola umum kemudian mengetahui, katakanlah, Java akan memberi Anda awal yang sangat besar ketika pindah ke C #. Namun itu tidak akan mempersiapkan Anda untuk WCF, WPF, Klik Sekali, berbagai pustaka threading, Linq, dan tentu saja tidak akan mempersiapkan Anda untuk hal-hal yang dikatakan brosur berfungsi, tetapi dalam praktiknya tidak.
Anda lihat Anda tidak berbicara tentang bahasa, Anda biasanya berbicara tentang platform. Dan di mana platform, .NET adalah contoh yang baik, mendukung banyak bahasa, orang cenderung berkumpul pada pilihan yang lebih disukai.
Jadi ketika saya meminta pengembang C #, saya sebenarnya beriklan untuk pengembang platform .NET yang pengalamannya ada di proyek C #. Mereka cenderung proyek .net server, winforms / proyek WPF.
sumber
Saya dapat memikirkan beberapa alasan:
sumber
Tidak semua pekerjaan pemrograman sama. Pekerjaan saya saat ini tentu cocok dengan model Anda. Ini melibatkan banyak analisis data ad hoc dan kami mengambil dan meletakkan alat sesuai kebutuhan. Saya dipekerjakan sebagian karena saya memiliki rekam jejak untuk dapat dengan cepat menjadi produktif dengan alat-alat baru.
Di sisi lain ada pekerjaan di mana Anda sedang mencari keahlian teknis tertentu. Kembali di tahun 90-an saya bekerja untuk sebuah toko perangkat lunak kecil, dan kami perlu dengan cepat mengembangkan keahlian dalam C ++. Meskipun secara eksplisit meminta keahlian dalam C ++ dalam iklan kami, sebagian besar pelamar tahu lebih sedikit C ++ daripada saya. "Tapi aku bisa belajar C ++ dengan cepat!" kata mereka semua. Ya, saya yakin Anda bisa, tetapi saya juga bisa, dan begitu juga orang-orang lain yang sudah ada di sana. Kami sedang mencari seseorang yang sudah benar-benar tahu C ++, jadi kami akan memiliki sumber keahlian sendiri saat kami semua datang dengan cepat. Memiliki pemula lain di tim benar-benar tidak akan membantu.
sumber
Katakanlah, Anda mencari kandidat untuk pekerjaan .NET / C #. Jika Anda memiliki dua kandidat untuk pekerjaan itu, keduanya tampaknya sama-sama sangat berpengalaman, tetapi yang pertama mendapatkan pengalamannya di ekosistem Jawa, yang kedua di ekosistem .NET - yang mana favorit Anda?
Siapa yang bisa mengatakan mengapa Anda tidak mendapatkan jawaban? Mungkin ada cukup berpengalaman VB.NET pengembang melamar pekerjaan? Mungkin departemen sumber daya manusia menggunakan pengalaman bahasa pemrograman sebagai filter untuk mengurangi jumlah lamaran pekerjaan dari 100 menjadi 10. Mungkin Anda baru saja berbicara dengan perusahaan yang salah (saya kira di perusahaan saya, kami akan mengirim jawaban dalam contoh kasus Anda dijelaskan di atas).
sumber
Dalam sebagian besar pekerjaan berdasarkan hasil proyek diperlukan dengan cepat dan orang-orang perlu menghasilkan keuntungan sesegera mungkin.
Orang yang mampu memenuhi kebutuhan ini dan tidak terikat dengan bahasa tertentu sangat langka dan akibatnya terlalu mahal. Orang-orang ini hanya disewa oleh perusahaan besar yang meminta keterampilan luar biasa.
Orang yang mampu menyelesaikan masalah tetapi tidak dapat mempelajari bahasa tertentu dengan cepat kurang langka. Mereka masih membutuhkan banyak uang, dan mereka memiliki biaya waktu tambahan yang diperlukan untuk mempelajari bahasa tertentu.
Biaya waktu tambahan ini dikurangi dengan meminta programmer khusus bahasa. Dia telah mempelajari keterampilan yang diperlukan dan dapat memberikan hasil dengan cepat.
Singkatnya, sebuah proyek yang perlu dilakukan di JAWA tidak memerlukan pengembang perangkat lunak yang luar biasa mahal, juga tidak memerlukan pengembang .net rata-rata yang akan membutuhkan waktu untuk mempelajari bahasa / kerangka kerja. Dibutuhkan hasil langsung dengan jumlah uang paling sedikit, yang dikirimkan oleh orang yang sudah memiliki pengalaman dengan JAVA dan memiliki keterampilan pemecahan masalah yang relatif baik.
Seperti biasa, ini tentang uang, dan mendapatkan hasil terbaik dari investasi
sumber
Saya pikir Anda salah menafsirkan frasa standar "<language here> developer". Perusahaan tidak memasukkan frasa itu dalam iklan untuk menghalangi pengembang yang memiliki pengalaman dalam bahasa lain. Mengapa mereka ingin menghalangi pengembang yang cakap? Dari sudut pandang majikan, semakin banyak kandidat, semakin baik. Mereka selalu tidak dapat mengundang orang yang tidak mereka minati.
Maksud sebenarnya dari frasa ini adalah untuk memberi tahu Anda, pembaca, apa yang akan ditawarkan oleh tawaran pekerjaan itu. Dan itu masuk akal, IMHO. Apakah Anda akan melamar pekerjaan di mana Anda berkembang dalam bahasa assembly Z80? Atau COBOL? Atau Fortran?
Dan, jelas, jika perusahaan memiliki dua kandidat yang tampaknya sama pintarnya, maka yang memiliki pengalaman dalam <bahasa di sini> menang. Tidak lebih, tidak kurang. (Ada kasus khusus, di mana orang disewa hanya untuk satu proyek, atau untuk proyek yang sudah terlambat, atau untuk proyek pertama perusahaan berkembang dalam <bahasa di sini>, di mana Anda benar - benar membutuhkan pengalaman dalam bahasa itu dari awal, tapi saya tidak berpikir itu aturannya.
Kebetulan, perusahaan saya pernah menulis iklan seperti yang Anda sarankan ( sepertinya masuk akal, setelah semua). Hasilnya sangat menghancurkan. Orang-orang yang sangat peduli dengan pekerjaan mereka hanya melewatkan iklan. Hanya yang putus asa, yang melamar posisi terbuka yang diterapkan. Kami tidak pernah mencobanya lagi.
sumber
Mundur dan pikirkan premisnya. Anda ingin seseorang melakukan pekerjaan .net. Anda memasukkannya ke dalam deskripsi pekerjaan Anda dan mencari kandidat dengan keterampilan itu! Ini hanya akal sehat.
Saya tentu saja setuju dengan filosofi Anda yang lebih terperinci tentang mengapa itu mungkin bukan ide yang baik, tetapi kebanyakan orang hanya akan beriklan, meminta dan mencari kandidat dengan keterampilan yang mereka butuhkan sekarang. Sederhana saja, jadi saya pikir ini menjawab judul pertanyaan Anda mengapa.
Jika mereka tidak mendapatkan kandidat sama sekali, atau melalui beberapa kandidat yang buruk, maka mereka mungkin belajar sedikit dan lebih setuju dengan item yang Anda detailkan. Bahkan di area tempat saya berada (Ruby on Rails) ada BANYAK iklan yang mengatakan "tidak diperlukan pengalaman, kami akan melatih Anda", dll. Dan pada kenyataannya beberapa organisasi Ruby on Rails teratas adalah sangat terbuka untuk kandidat "tanpa kebiasaan buruk" yang dapat mereka latih. Jadi pendekatan yang tepat ada di luar sana oleh beberapa organisasi.
Ingat juga bahwa sebagian besar iklan dilakukan oleh perekrut eksternal atau perekrut internal non-teknis yang hanya tidak memiliki pengetahuan untuk "berjalan ke samping" seperti yang Anda gambarkan.
sumber