Kita semua mungkin pernah bertemu seseorang seperti ini, pengembang yang baru tahu bahwa bahasanya adalah satu-satunya bahasa yang benar dan tidak akan diam tentang hal itu. Bagaimana Anda menghadapi orang seperti ini? Saya tidak ingin menyinggung siapa pun (terutama karena fanboy di tempat kerja saya adalah pengembang senior). Tetapi saya ingin dapat menggunakan pilihan bahasa scripting saya sendiri ketika saya harus menulis naskah sekali pakai yang tidak pernah sampai ke repositori dan tidak ada orang lain yang perlu tahu ada.
Pikiran bahwa saya harus berurusan dengan ini:
- Tertawakan saja - "Haha ya mungkin bahasa X sedikit lebih mudah, saya kira saya seorang masokis!"
- Ikutilah - saya benar-benar lebih suka untuk menghindari ini karena saya tidak mampu menurunkan produktivitas yang terkait dengan mengambil bahasa baru.
- Sembunyikan bahasa saya - Menjadi pemrogram lemari dan sembunyikan monitor saya setiap kali saya membuat skrip atau mengotomatisasi sesuatu.
Apa yang akan Anda sarankan untuk situasi ini?
programming-languages
teamwork
language-choice
Daniel Gratzer
sumber
sumber
Jawaban:
Beberapa hal melompat keluar dari pertanyaan.
Saya agak mengerti bagian fan-boy, karena dari satu sisi, saya kadang-kadang berperilaku seperti fan-boy, sambil melindungi beberapa bahasa pilihan saya. Dan saya juga berurusan dengan penggemar-anak laki-laki lain yang mencoba membawa barang baru.
Pandangan saya tentang situasi ini adalah seperti ini:
Itu karena tidak ada yang tahu cara menulis perangkat lunak yang aman dan cepat dalam bahasa yang tidak dikenal, dan semua pengembang harus belajar. Naskah bodoh harus didukung lebih dari 20 tahun atau ditulis ulang. Lebih dari 20 tahun, setidaknya 50 pengembang berubah di toko rata-rata. Jika masing-masing menulis beberapa skrip mewah dalam bahasa baru, Anda memerlukan 50 runtime bahasa, 50 keahlian berbeda di tim, dan basis kode memiliki kode buggy dalam 50 bahasa. Dan beberapa bahasa tidak lagi didukung di Windows atau Linux. Dan kebutuhan server kustom berumur 10 tahun yang belum ditambal, tanpa suku cadang tersedia, 24/7.
Juga, tidak ada yang benar-benar ingin mendukung bahasa mati seperti VB, Silverlight, D, dll, ketika basis kode mungkin akan hidup lebih lama dari bahasa itu sendiri.
sumber
Apakah dia memutuskan apa yang Anda gunakan berdasarkan kebijakan perusahaan? Banding kasus Anda kepadanya; jika ia masih memutuskan untuk tidak melakukannya, tutup mulut dan lakukan pekerjaan Anda dengan alat yang menurut atasan Anda harus Anda gunakan.
Anda bekerja di sana, bukan bermain di sana. Pada akhirnya itu keluar dari tangan Anda.
Bahkan jika dia bukan bosmu, aku akan mempertimbangkan semua sudut di sini. Apakah Anda suka jika dia tahu Fortran dan suatu hari Anda mewarisi semua kode-nya. Anda harus belajar bahasa baru dari awal dengan cepat , itu sangat menegangkan. Sekarang bayangkan sisinya, Anda mungkin menulis skrip Anda menggunakan Cobol dan dia mungkin tidak tahu Cobol.
Gunakan sesuatu yang diketahui sebagian besar tim Anda.
sumber
Ini satu-satunya jawaban yang masuk akal. Anda memiliki peluang besar di sini.
Gunakan komentar programmer senior untuk mendorong perusahaan Anda membayar waktu dan / atau kursus dan / atau sertifikasi untuk mempelajari bahasa baru. Skenario kasus terburuk: sertifikasi dan bahasa akan meningkatkan resume Anda, Anda mungkin mendapatkan rekomendasi yang bagus untuk menjadi pemain tim, dan Anda bisa tertawa sampai ke pekerjaan yang lebih baik di tempat lain.
Saya telah memperoleh wawasan berharga tentang pemrograman dari setiap bahasa yang saya pelajari. Bahkan bahasa yang paling tidak praktis ( batuk XSLT batuk ) memiliki sweet spot dan penuh dengan kesempatan belajar yang menarik (dan membayar tagihan saya selama beberapa tahun). Pembelajaran konstan adalah salah satu manfaat besar menjadi seorang programmer.
Semua proyek keren mungkin menggunakan bahasa favorit pengembang senior. Mengetahui bahasa itu menempatkan Anda dalam kumpulan talenta yang dapat mengerjakan proyek-proyek itu.
Seseorang mungkin membayar Anda untuk melakukan pekerjaan tertentu dengan cara tertentu. Respons lain apa pun mungkin pembangkangan dan kemungkinan berakhir buruk.
Pengembang / arsitek senior biasanya memilih bahasa utama yang digunakan di toko dan memastikan bahwa semua orang menggunakan bahasa itu. Dengan cara ini, sebuah perusahaan membangun basis pengetahuan dalam teknologi tertentu sehingga satu karyawan (Anda) dapat berlibur dan orang lain dapat mengambil kode Anda dan memperbaikinya saat Anda pergi. Juga perusahaan dapat membawa bakat pelatihan yang relevan dan departemen SDM akan tahu kata kunci mana yang harus dicari di resume.
Dengan mempelajari bahasanya dan menggunakannya untuk pekerjaan, Anda mengumpulkan modal politik yang Anda butuhkan untuk mengadvokasi bahasa favorit Anda secara efektif . Banyak perusahaan memiliki bahasa infrastruktur resmi dan bahasa scripting resmi untuk laporan. Persiapkan daftar pro dan kontra yang menunjukkan di mana bahasa mereka unggul dan di mana bahasa Anda berada, juga di mana masing-masing kurang. Anda perlu menyimpan daftar ini dalam konteks aplikasi tertentu, seperti laporan yang Anda tulis. Rencanakan waktu bersamanya untuk secara pribadi dan penuh hormat memperlihatkan daftar itu dan mendiskusikannya dengannya. Tuliskan keberatannya, teliti setelah pertemuan, dan jika Anda memiliki argumen balasan yang bagus, rencanakan pertemuan tindak lanjut.
Semoga berhasil!
sumber
Tunjukkan bahwa dalam konteks tertentu, bahasa lain adalah pilihan yang lebih pragmatis.
Jika orang tersebut menyukai C ++ dan Anda sedang mengerjakan proyek aplikasi web, itu tidak akan terlalu sulit. Dengan cara yang sama, beberapa konteks yang sangat condong ke pemrograman fungsional dan menggunakan bahasa non-fungsional akan sangat tidak bijaksana.
Catatan:
Hindari situasi di mana bahasa Anda dan pilihannya sangat mirip.
Sebagai contoh, saya tidak akan membayangkan konteks di mana Java akan "lebih baik" daripada C #, atau C #, "lebih baik" dari Jawa.
Ingatlah bahwa pilihan bahasa sering kali bersifat subyektif dan lebih banyak dijelaskan oleh pengalaman pengembang sebelumnya daripada beberapa elemen berbasis bukti.
Sebagai contoh jika saya diminta untuk melakukan aplikasi relatif terhadap sektor keuangan, saya masih akan menggunakan C # daripada Haskell, bahkan jika saya menemukan Haskell lebih tepat dan benar-benar menarik. Alasan pilihan ini adalah bahwa saya memiliki pengalaman bertahun-tahun dengan C #, tetapi ketika datang ke Haskell, saya hanya membaca beberapa tutorial dan tidak pernah menggunakannya secara profesional.
sumber
Jawabannya adalah 2) Ikuti itu.
Ini win-win-win-win. Nikmati!
sumber
Jawabannya adalah Anda tidak menghadapinya. Berdebat dengan mereka hanya menyeret arguer ke tingkat mereka (di mana mereka mengalahkan Anda dengan pengalaman) dan pada akhirnya tidak konstruktif karena mereka berpikiran dekat.
Abaikan setiap argumen yang mereka berikan untuk atau menentang bahasa mereka dan buat keputusan sendiri. Gunakan teknik yang biasa seperti menghindari kontak mata, menjawab monosylabically dan pindah ke subjek baru ketika keheningan memastikan. Latih mereka untuk mengganggu orang di sebelah Anda.
Tantangannya di sini adalah penggemarnya mengasosiasikan bahasa dengan identitasnya dan segala negativitas yang terkait dengan bahasa itu bersifat pribadi. Jangan menyerang atau bertahan. Abaikan saja.
sumber
Sangat sedikit hal di pekerjaan yang benar-benar skrip dibuang. Saya akhirnya meletakkan banyak hal seperti itu di wiki atau di repositori jika diperlukan lagi.
Bahkan hal-hal yang saya pikir berada di bawah tingkat berbagi, rekan tim saya sering merasa berbeda. Misalnya, saya memiliki alias rgrep di. Profil saya. Itu hanya pernyataan find dengan parameter karena saya tidak memiliki akses ke rgrep nyata di server itu. Seorang rekan tim mendapat angin dan menginginkannya di wiki .. Ya, pernyataan satu baris. Jelas kami tidak memiliki perdebatan tentang bahasa implementasi - itu harus UNIX. Tetapi ini menyoroti perlunya melakukan hal-hal yang dapat dimengerti oleh orang lain dalam tim.
Putaran lain adalah kemungkinan pengembang senior memiliki alasan yang tidak Anda ketahui tentang penggunaan bahasa itu. Sudahkah Anda bertanya?
Mungkin cobalah membuat skrip yang sama dalam kedua bahasa sekaligus untuk menunjukkan mengapa skrip Anda lebih baik.
sumber
Anda harus mencoba fogging . Ini berarti setuju dengan semua yang dikatakan oleh fanboy (sebagian atau keseluruhan), tetapi lakukan hal Anda sendiri kecuali diperintahkan untuk melakukan sebaliknya.
sumber
Pilihan pasif-agresif 1,3 menyebabkan lebih banyak tekanan emosional, jadi beri saya 2) bawa dagu.
Beberapa saran umum untuk jalan: 4) Jika Anda tidak mendapatkan yang lebih pintar mendengarkan senior Anda, lakukan studi Anda sendiri dalam desain bahasa / kompiler. Pilih bahasa dan pelajari pemikiran apa yang ada di dalamnya. Apa kompromi antara fitur, kinerja, dan kekuatan ekspresif. Apa pilihan lain yang ada. Ini saja akan memberi Anda kekuatan super pemrograman tidak manusiawi. Belajar NBL bahkan, itu akan menjadi sangat besar.
Menegaskan diri sendiri dengan mendorong pendapat tentang orang lain menghambat produktivitas dan komunikasi. Orang-orang mungkin berpikir menyerah pada dorongan emosional itu membantu, tetapi itu hanyalah bantuan band pada ketidakamanan mereka.
Bersikap rendah hati dan baik hati dengan nasihat, dan meningkatkan diri sendiri akan melakukan keajaiban untuk mengekspresikan perasaan Anda pada tingkat teknis. Anda akan merasa lebih baik dan melihat apa adanya, karena Anda akan dapat bernalar. Sulit untuk marah ketika Anda mengeksternalisasi kritik ke konteks teknis.
sumber