Seperti yang dinyatakan oleh judul, apa perbedaan pengalaman bertahun-tahun dalam bahasa tertentu dalam hal pengembang? Misalnya, jika satu pengembang telah memiliki lima tahun bekerja dengan bahasa A dan pengembang lain telah memiliki dua tahun bekerja dengan bahasa B diikuti dengan tiga tahun bekerja dengan bahasa A, apakah akan ada perbedaan yang dapat dilihat di antara mereka?
9
Tergantung.
Saya punya teman yang cenderung berpegang pada satu bahasa, jadi jika Anda menganggapnya "programmer A" dia punya pengalaman 1 tahun dengan bahasa itu, lima kali.
Bahasa yang berbeda memungkinkan Anda melakukan hal yang berbeda. Satu esai yang sangat saya sukai disebut " Beating the Averages " oleh Paul Graham. Di dalamnya ia berusaha meyakinkan orang untuk belajar bahasa Inggris, tetapi ia juga membuat beberapa poin yang sangat berguna:
Secara umum, saran saya adalah belajar lebih dari satu bahasa, dan mempelajari apa kelebihan dan kekurangan bahasa.
sumber
Tentu saja, pengembang yang memiliki pengalaman bertahun-tahun dalam satu bahasa akan memiliki pemahaman yang lebih baik tentang perpustakaan inti dan keistimewaan bahasa itu. Jika bahasa merangkul paradigma yang sama (imperatif vs fungsional) maka mereka seharusnya tidak memiliki kesulitan mengambil bahasa itu selain belajar itu.
Kesulitan terbesar saya mengambil bahasa baru datang dari mencoba beralih dari C # ke Erlang, karena itu tidak hanya mewakili sintaks baru tetapi cara berpikir baru tentang pemrograman juga.
sumber
Inilah yang saya harapkan / harapkan:
sumber
Bahasa bukan masalah. Anda dapat mempelajari seluruh bahasa dalam beberapa hari. Yang membutuhkan waktu lebih lama untuk diserap adalah konvensi, API, dan berbagai kerangka kerja pihak ketiga. Ketika orang-orang meminta lima tahun X, mereka tidak peduli tentang bahasa, mereka menginginkan seseorang yang memiliki banyak pengalaman memecahkan masalah di dalam dan dengan bahasa itu sehingga mereka tidak harus membayar untuk setiap kurva pembelajaran.
sumber
Keahlian dan praktik yang disengaja.
Jika Anda tidak berlatih dengan sengaja, Anda tidak akan mendapatkan keahlian. (Anda harus memeriksa kesalahan Anda dan memperbaikinya, mempraktikkan apa yang Anda lemah, dan memiliki seorang ahli untuk memberi tahu Anda apa yang Anda lakukan salah juga membantu.)
Jika Anda tidak mencoba untuk meningkatkan, Anda bisa menjadi pendatang baru selamanya!
Setelah sepuluh ribu jam latihan yang disengaja, Anda akan mencapai keahlian. (Temuan dari pendidikan / pelatihan ini semuanya ada di internet.)
Jika programmer Anda A tidak sengaja berlatih, mereka tidak pernah menjadi lebih baik.
Jika programmer B Anda tidak sengaja berlatih, mereka tidak pernah menjadi lebih baik.
Satu temuan lain dari penelitian yang sama: bahwa jika saya punya 15.000 jam dan Anda punya 10.000, dan saya terus berlatih dan Anda juga, Anda tidak akan pernah lebih baik dari saya.
Mengetahui dua bahasa mungkin akan menjadikan B pemrogram yang lebih baik (tunduk pada aturan praktik).
sumber
Dan Anda menggunakannya untuk bahasa A, saya kira? (Jelas, akan ada perbedaan dalam bahasa B.)
Sebagian tergantung pada perbedaan antara A dan B (terutama jika kita mempersingkat pengalaman pengembang kedua dengan A). Jika mereka cukup mirip, pada dasarnya tidak akan ada perbedaan dalam pengalaman. Jika A memiliki konsep yang sangat berbeda, tiga tahun kemungkinan masih cukup untuk mempelajarinya. Mengingat perpustakaan sangat besar dan alat yang rumit, mungkin ada perbedaan antara tiga dan lima tahun.
Tentu saja, yang paling penting di sini adalah individu. Pengembang yang baik dapat mempelajari platform baru secara menyeluruh dalam tiga tahun, jadi ini seharusnya tidak menjadi masalah.
sumber
Saya setuju bahwa bahasa adalah bahasa dan konsep adalah konsep.
Masalah saya adalah bahwa ada sejumlah besar pemrogram hari ini yang tanpa IDE canggih mereka tidak dapat memprogram sama sekali. Mereka benar-benar bukan programmer tetapi lebih seperti desainer.
Saya tahu dari pengalaman pribadi bahwa ada banyak orang yang telah tergoda oleh lingkungan pengembangan Microsoft yang drop - droppy. Bukan salah bahwa mereka menjatuhkan kotak teks ke layar kemudian mengatur properti dengan wizard dan menyeret data dari gambar database, tetapi apakah mereka benar-benar coders dalam bahasa apa pun jika semua yang mereka lakukan adalah mengatur tes kesetaraan dasar?
Orang-orang itu tidak akan pernah bisa mengambil Konsep yang telah mereka pelajari dan menerapkannya ke bahasa lain.
Ketika saya mewawancarai orang-orang, saya lebih tertarik pada bagaimana mereka melakukan pengembangan dan kerangka kerja apa yang mereka gunakan. Saya suka mengajukan pertanyaan seperti, "Bagaimana Anda menulis event handler?", "Bagaimana tepatnya Anda memasukkan data ke dalam DB?", Atau bahkan "Bagaimana cara mengubah tombol warna ungu ini ketika saya mengkliknya?" ini akan dengan cepat menyingkirkan desainer dan meninggalkan programer. Saya telah menemukan bahwa 3 atau 4 tahun sebenarnya pemrograman dengan satu tahun dalam bahasa pilihan saya sudah cukup untuk apa yang saya butuhkan.
Pendapat lain,
Tal
sumber
"Pengalaman bertahun-tahun dalam bahasa X / platform" sebagian besar merupakan patologi rekrutmen ...
Ini terbuka untuk interpretasi dan tidak sedekat berguna seperti yang terlihat pada pandangan pertama. Seperti yang telah dikatakan, Mitos Tahun Pengalaman adalah bacaan yang bagus.
Juga, yang terpenting, pengukuran "tahun pengalaman" itu sendiri bisa sangat tidak akurat. Berikut ini contoh dari pertunjukan saya saat ini: tugas utama saya adalah mengembangkan dan memelihara aplikasi web Java. Namun, ini berjalan dari ujung belakang yaitu MFC / C ++ / SQL Server. Akibatnya saya berurusan dengan kode C ++ hampir setiap hari juga. TETAPI - pengalaman C ++ ini relatif dangkal dan berorientasi pada pemeliharaan, dan saya tidak benar-benar menulis seluruh komponen besar atau program dari awal di MFC / C ++ lagi (saya dulu dalam peran sebelumnya).
Apakah saya masih dapat menghitung 5 tahun terakhir ini sebagai "5 tahun pengalaman C ++"? Mungkin. Mungkin tidak. Bergantung pada bagaimana saya ingin menjualnya untuk mengamankan peran tertentu, saya dapat dengan mudah memainkannya tanpa berbohong, atau saya bisa mengakui bahwa itu bukan 5 tahun "pengalaman C ++ yang solid". :) Saya yakin banyak kasus di luar sana yang sama-sama terbuka untuk masalah "ketidaktepatan pengukuran" semacam ini. Kedalaman pengalaman bisa sangat mengaburkan kualitas pengalaman. Jadi "jumlah waktu X yang dihabiskan dengan C ++" tidak berarti banyak dalam dirinya sendiri.
sumber
Ya, Programmer 1 tidak memiliki pengetahuan sintaksis bahasa B.
Konsep pemrograman adalah konsep pemrograman. Bahasa hanyalah sintaks.
sumber