Apakah menjadi Pengembang Senior yang menggunakan satu bahasa membuat Anda memenuhi syarat untuk menjadi Pengembang Senior yang menggunakan bahasa lain? [Tutup]


27

Jika saya bekerja sebagai Pengembang dalam satu bahasa (mis. Java) dan bekerja sampai ke Pengembang Senior, apakah itu memenuhi syarat saya untuk menjadi Pengembang Senior untuk posisi yang menggunakan bahasa lain (mis. Ruby)?


2
@ Pilip - pertanyaan ini benar-benar pertanyaan batas di beberapa bidang. Ini adalah batas "terlalu terlokalisasi" karena itu hanya akan memiliki nilai bagi Anda dan itu merupakan batas "tidak konstruktif" karena tidak benar-benar membahas pedoman untuk mengajukan pertanyaan yang tercantum dalam FAQ kami. Jika Anda dapat mengedit pertanyaan ini dan membahas pedomannya, mungkin ada baiknya menyimpan pertanyaan itu.
Walter

8
@Walter - Saya harus tidak setuju dengan komentar pertama Anda tentang pelokalan. Ini adalah pertanyaan / jawaban yang berlaku umum mengenai apakah menjadi pengembang senior dalam satu bahasa memberikan Anda posisi pengembang senior dalam bahasa lain.
Craige

1
@Walter - menghapus masalah pelokalan, saya pikir itu mungkin masuk akal sekarang.
Jon Hopkins

1
@ Walker - Maaf, pertanyaannya dimaksudkan seperti yang dikatakan Craige. Saya hanya menulis seperti itu karena saya berasumsi bahwa sebagian besar programmer yang dianggap Junior ingin menjadi Pengembang Senior suatu hari nanti. Oleh karena itu, memilih posisi Junior yang tepat sangat penting (atau tidak)
Philip

11
Pertanyaan ini tampaknya menganggap bahwa "Pengembang Senior" memiliki semacam makna yang diterima secara umum. Biasanya itu semacam jabatan, dan jabatan adalah apa pun yang Anda dan majikan Anda bisa setujui.
David Thornley

Jawaban:


33

Cara terbaik untuk menjawab ini adalah dengan melihat perbedaan antara Pengembang dan Pengembang Senior. Dengan anggapan bahwa ini bukan hanya masalah waktu, umumnya saya berharap Pengembang dan Pengembang Senior dapat:

  • Tulis kode dengan kompeten dalam bahasa yang dibutuhkan oleh peran
  • Diagnosis dan perbaiki bug
  • Tulis tes unit
  • Ikuti standar dan praktik terbaik yang wajar (kontrol versi, dokumentasi)
  • Memiliki kompetensi teknis dasar yang luas
  • Bertindak secara profesional

Selain itu, saya berharap Pengembang Senior untuk:

  • Mentor anggota staf lain dalam praktik terbaik
  • Jadilah dan akui poin referensi untuk setidaknya beberapa bahasa yang digunakan oleh tim
  • Secara aktif melakukan riset dan memperjuangkan area baru praktik terbaik
  • Ambil kepemilikan teknis atas masalah / bidang kode yang lebih kompleks dan berikan solusi yang solid

Jadi, pertanyaannya adalah apakah Anda memenuhi kriteria yang diperluas untuk bahasa kedua (atau ketiga atau keempat) Anda? Saya menyarankan bahwa selama Anda cukup kompeten secara teknis dalam bahasa yang Anda pindahkan maka ya karena sebagian besar hal Pengembang Senior cenderung dapat ditransfer.


1
Ini sangat tergantung pada lingkungan, terutama bos. Beberapa "Sr" merasa mereka perlu menunjukkan pengetahuan mereka pada setiap mata pelajaran, terutama di mana "jr" mungkin memiliki lebih banyak pengetahuan dan pengalaman tentang suatu subjek. Beberapa ketegangan serius dapat meningkat ketika Sr dengan latar belakang C ++ bekerja pada proyek C #. "Jr" mungkin memiliki basis pengetahuan yang lebih besar untuk kerangka kerja khusus ini. Ini dapat menyebabkan beberapa pertempuran sengit, terutama ketika bos mendengarkan.
P.Brian.Mackey

@ P.Brian.Mackey - Cukup adil, ada beberapa perbedaan yang lumayan besar antara pekerjaan yang berbeda dengan judul yang sama. Saya pergi dengan apa yang saya pikir adalah definisi yang cukup umum (dan masuk akal) tetapi bisa berkisar dari "lebih dari usia 30" hingga "tahu segalanya tentang segalanya".
Jon Hopkins

1
semoga sukses dengan yang terakhir dalam bahasa apa pun yang lebih rumit dari BF ... bahkan C memiliki sudut yang lebih gelap daripada yang Anda harapkan!
SamB

'Beberapa' Sr 'merasa mereka perlu menunjukkan pengetahuan mereka tentang setiap topik'. Orang-orang ini harus disuruh bersantai. Anda tidak dapat mempelajari apa pun jika Anda tidak mengakui ada hal-hal yang tidak Anda ketahui. Kemampuan untuk secara bebas mengakui ketidaktahuan tentang sesuatu adalah tanda kekuatan, bukan kelemahan.
PeterAllenWebb

1
+1 Untuk menunjukkan bahwa sebagian tetapi tidak semua keterampilan dapat ditransfer. Cara yang bagus untuk menggambarkannya.
Nicole

5

Anda dapat melamar posisi apa pun di perusahaan mana pun yang Anda suka, apa pun status Anda saat ini.

Terserah Anda buktinya di CV / surat lamaran / wawancara bahwa Anda adalah orang yang tepat untuk pekerjaan itu.


5

Saya mencari kualitas berikut ketika saya mewawancarai Sr. Developers.

  • Telah bekerja dalam berbagai bahasa
  • Pakar dalam setidaknya satu, kompeten dalam setidaknya satu lainnya, lebih disukai dalam paradigma yang berbeda
  • Sadar akan teknologi saat ini, canggih, dll di area yang dipilih
  • Basis CS yang baik yaitu (algoritma, biaya algoritmik, struktur data, dll)
  • Kemampuan untuk beralih antara detail masalah tertentu dan gambaran besar
  • Ekspresikan ketika segala sesuatu bergerak ke arah yang salah dan mengapa; dan kemudian dapat melanjutkan ke arah yang salah itu (alias profesionalisme)
  • Kemampuan untuk Mentor
  • Kemampuan untuk bekerja di dalam dan dengan tim

Ada banyak hal lain yang saya cari, tetapi ini adalah poin utama.

Sementara saya merekomendasikan untuk mempekerjakan Sr. Pengembang yang bukan ahli dalam bahasa yang digunakan di tempat kerja, mereka adalah ahli dalam bahasa yang serupa.


3

Anda bisa melamar, tetapi setidaknya jika saya melakukan perekrutan, saya mungkin atau mungkin tidak mempekerjakan Anda.

Senioritas berhubungan dengan (setidaknya) dua bidang. Keahlian pengembangan umum dan keahlian bahasa / kerangka kerja. (Saya sengaja meninggalkan pengetahuan bisnis-ruang) saat ini. Menjadi pengembang senior dalam buku-buku saya juga akan mencakup tingkat keahlian desain / arsitektur. Bagaimana membangun sistem yang baik / dapat diuji, dll.

Mendapatkan ke tingkat ini di Jawa akan memberi Anda manfaat yang baik untuk bahasa lain (serupa / prosedural).

Tetapi di era produktivitas langsung yang diharapkan ini, Anda tidak mungkin tahu tentang Ruby sebanyak Java. Cara membagi sistem Anda menjadi konstruksi ramah-Ruby alih-alih konstruksi ramah-Java. Anda mungkin tahu beberapa kerangka kerja Java dan bukan Rails atau hal-hal khusus Ruby lainnya.

Jika saya meminta Anda untuk melakukan pengkodean papan tulis di Ruby selama wawancara, dapatkah Anda melakukannya?

Semua ini akan menjadi keputusan saya untuk mempekerjakan Anda atau tidak, pada tingkat apa pun; tetapi khususnya untuk peran senior .

Semoga berhasil


Terima kasih atas jawaban Anda, ya saya bisa melakukan coding papan tulis di Ruby (sama untuk C ++, Java). Sebenarnya saya menganggap diri saya pada titik saat ini bahkan lebih mahir di Ruby daripada di Jawa karena sejak setahun saya bekerja pada proyek pribadi yang dibangun di atas Ruby.
Philip

3

Nggak.

Itulah salah satu perbedaan besar antara profesi kita dan profesi yang lebih 'formal' lainnya. Jika Anda telah bekerja sebagai pengacara yang melakukan surat wasiat & wasiat selama 20 tahun, maka Anda akan mendapatkan tingkat tinggi karena Anda memiliki 20 tahun pengetahuan yang dibangun di domain itu .

Jika Anda telah melakukan C ++ / Win32 / MFC selama 15 tahun, itu tidak benar-benar memenuhi syarat Anda untuk posisi senior sebagai pengembang Rails, bahkan jika Anda masih menyelesaikan masalah yang sama dalam domain yang sama ... katakanlah medis penagihan, misalnya.

Lebih buruk lagi, sebagian besar perusahaan bahkan tidak akan mempertimbangkan Anda untuk posisi yang kira - kira sama ... Misalnya, jika Anda telah melakukan C ++ / MFC selama 5-7 tahun, Anda harus dapat meningkatkan kecepatan pada C # /.NET sangat cepat, setidaknya untuk desktop. Sayangnya sebagian besar perusahaan tidak melihatnya seperti itu.


4
Saya tidak tahu bahwa "sebagian besar" perusahaan melihatnya seperti itu. Masalahnya saat ini, dalam ekonomi turun, adalah bahwa ada begitu banyak orang tersedia yang sudah tahu (dari contoh Anda) C #, sehingga mereka dapat mempersempit Anda dari pencarian hanya berdasarkan angka.
Wonko the Sane

Saya pikir sebagian besar keterampilan dan pengalaman dapat ditransfer. Mempelajari sintaks baru itu mudah. Sayangnya, Anda benar: itu bukan apa yang Anda pikirkan, tetapi apa yang dipikirkan orang yang mempekerjakan Anda.
Tidak ada yang

3

Tergantung

Keluarkan "pemrograman" dari situ. Sebaliknya, berpura-puralah Anda seorang penerjemah profesional.

Anggaplah bahasa Inggris adalah bahasa pertama Anda, dan Anda juga mahir berbahasa Prancis. Anda cenderung belajar bahasa Spanyol dengan mudah.

Namun, Anda tidak akan cepat menguasai banyak dialek Cina. Sementara pengalaman Anda sebagai ahli bahasa akan membantu Anda mempelajari bahasa, memberi Anda keuntungan lebih dari seseorang yang tidak pernah belajar bahasa asing, itu masih akan membawa Anda waktu lebih lama untuk menjadi seorang "ahli" (yaitu "senior" ) penerjemah dalam bahasa itu.


2

Iya dan tidak.

Jika bahasanya mirip , katakanlah C ++, Java atau Ruby yakin Anda harus dipertimbangkan. Bergantung pada seberapa fleksibel orang-orang yang duduk di kantor itu, Anda memiliki peluang untuk bertarung.

Namun jika bahasanya sangat berbeda , dan maksud saya Anda adalah orang COBOL yang suka dengan Haskell, maka terlepas dari 10+ tahun peluang COBOL Anda tersebar luas bahwa Anda mungkin tidak dapat melakukan banyak hal seperti mengamankan wawancara.

PASANGAN HAL-HAL YANG AKAN PERGI DALAM FAVOR ANDA DALAM SITUASI TERSEBUT:

  1. Jika Anda sudah tahu banyak bahasa dan memiliki pengalaman yang terbukti hampir sama. Katakanlah Anda pandai C ++, tetapi juga tahu Perl, Tcl dan beberapa Ruby saya bersedia mempertimbangkan Anda untuk Java. Sebenarnya saya tahu orang-orang yang telah mendapatkan pekerjaan Java dengan C ++ di resume mereka.
  2. Jika pengalaman Anda dalam domain terkait maka Anda memiliki peluang bagus untuk membuatnya. Sebagai contoh, jika Anda seorang programmer game C ++, saya tidak melihat alasan mengapa Anda tidak dapat dipekerjakan untuk pekerjaan C # yang membutuhkan sedikit multi-threading.

1
Oke, saya harus bertanya - bagaimana Ruby seperti C ++ atau Java? C ++ dan Java keduanya bahasa gaya-C, sedangkan Ruby berasal dari Perl, Python dan Smalltalk.
Craige

Saya menyebut OOP sebagai tema penuntun.
Fanatic23

2

Saya jarang melihat judul "senior" berdasarkan bahasa. Saya tahu beberapa programmer sistem senior , beberapa programmer web senior dan satu programmer COBOL senior.

Pemrograman memiliki banyak segi dan memiliki beberapa disiplin ilmu untuk ditawarkan. Saya berharap pengembang web senior (dalam judul, programmer dan pengembang tampaknya dapat dipertukarkan) menjadi mahir dalam beberapa bahasa utama yang digunakan dalam pengembangan web. Apakah itu membuat guru Python dan PHP ahli instan dalam C #? Tidak. Di sisi lain, tidak semua guru C # telah menguasai seni manajemen dan kepemimpinan proyek.

Saya melayani peran CTO di sebuah perusahaan, selain menjadi programmer sistem senior. Namun, saya dengan senang hati akan menunda skema atau ahli LISP jika kami menemukan proyek yang mengharuskannya. Bagian dari menjadi pemimpin yang baik adalah memahami batas dan kekurangan Anda sendiri terlebih dahulu .

Saya tidak yakin ingin bekerja di perusahaan, atau bahkan departemen yang fokus pada satu dan hanya satu bahasa. Kedengarannya seperti itu akan melakukan apa yang selalu mereka katakan merokok akan lakukan: menghambat pertumbuhan Anda ketika kenyataannya sebenarnya jauh lebih buruk.

Jangan mengejar gelar, kejar ilmu. Tetapi, agar adil, peran Anda dalam posisi kepemimpinan sebelumnya mungkin akan memberi Anda keunggulan tambahan, asalkan Anda menunjukkan kompetensi dalam bahasa yang ada.


0

Saya pikir itu tergantung pada apa yang Anda anggap sebagai pengembang Senior? Jika ini lebih merupakan peran arsitek, banyak prinsip desain dan pola desain akan siap membantu Anda dari pengalaman Anda sebagai pengembang, terlepas dari bahasa. Jadi itu plus ;-)

Namun, ketika melihat membuat aplikasi atau kode seproduktif dan terpelihara mungkin (menggulung bit sleaves Anda), saya tidak berpikir Anda bisa masuk pada tingkat pengalaman yang sama ketika beralih bahasa, IDE dan / atau kerangka kerja.

Tapi seperti yang dikatakan runrun, ini tidak menghentikan Anda dari melamar apa pun


0

Ini akan sangat tergantung pada perusahaan tempat Anda mewawancarai karena biasanya prosedur sumber daya manusia internal yang mendorong bagaimana karyawan baru diangkat. Perusahaan besar cenderung sangat kaku dan jika mereka mengatakan Anda harus memiliki n tahun mengalami dalam bahasa tertentu untuk dianggap sebagai tingkat senior maka Anda mungkin menemukan bahwa mereka hanya akan membawa Anda di aa pengembang tingkat menengah.

Walaupun begitu, ini seharusnya tidak mencegah Anda dari melamar posisi dan jika mereka membawa Anda untuk wawancara itu adalah sesuatu yang harus Anda diskusikan.


0

Saya akan mengatakan bahwa semakin rendah tingkat bahasa atau mesin-ramah, semakin ahli Anda.

Keahlian Java / C # lebih murah daripada keahlian ASM / C / C ++.

Bahasa-bahasa yang terakhir melakukan manajemen memori dan hal-hal lain yang sebenarnya MASALAH saat pemrograman.

Tetapi untuk bahasa "mudah" lainnya, Anda perlu membuat perbandingan cepat tentang fitur yang membuatnya "lebih mudah", tetapi saya merasa tidak berguna. Pengalaman dengan bahasa yang mudah lebih baik diukur dengan CMS / kode buatan lainnya yang Anda gunakan untuk bekerja, seperti penyala kode atau Django atau Apache atau RoR.

Bagi saya, pengembang senior adalah orang yang memprogram kernel, sistem, perangkat keras tertanam, dll. Pemrogram yang menggunakan bahasa yang tidak ramah mesin bukan senior bagi saya. Mereka hanya melakukan pekerjaan itu, tetapi itu saja.


Pendapat menarik. Saya setuju, C ++ jauh lebih menyakitkan. Di sisi lain, banyak rasa sakit C ++ ada di sana karena bagian dari bahasa (saat ini) agak ketinggalan zaman. Bahasa yang lebih baru memiliki lebih banyak fungsi perpustakaan, Lambdas, untuk-setiap-loop dan sintaksis kurang samar untuk banyak hal. Masalah-masalah ini dapat mengalihkan perhatian seseorang dari fokus pada hal-hal tingkat rendah yang sebenarnya.
Philip

Ini pendapat yang menarik. Dalam pengalaman saya, seorang senior lebih banyak berurusan dengan manajemen, tidak harus karena mereka tidak kode, tetapi karena mereka memiliki lebih banyak pengalaman menerjemahkan hal-hal tingkat rendah ke non-techies. Anda tentu bisa menghargai kemampuan itu atau tidak. Sudut pandang Anda menimbulkan pertanyaan, pada tim yang terdiri dari 30 pengembang web, apakah tidak ada yang senior karena mereka tidak dapat menulis kernel? Tidak ada bedanya bagi Anda jika mereka bekerja di Mosaic atau baru saja lulus SMA?
Steve Jackson

30 pengembang web? PENGEMBANG? Nah "senior" berarti bagi saya bahwa orang tersebut telah lama mengkode, atau lebih tua. Tetapi jika saya berpikir "senior" dalam hal pengalaman dan pengetahuan yang penting, saya tidak berpikir Anda bisa menyebutnya pengalaman pemrograman jika Anda menggunakan bahasa sampah yang dikumpulkan.
jokoon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.