it-swarm-id.com

Kapan Anda harus menyebut diri Anda seorang pengembang senior?

Kemungkinan Duplikat:
Apa perbedaan antara Entry Level/Jr/Sr developer?

Saya ingin tahu apa artinya pengembang senior karena tampaknya definisi itu tidak berarti apa yang saya pikir akan terjadi. Saya terus melihat remaja ini pada usia 22-23 tahun yang menyebut diri mereka pengembang senior X atau pengembang senior Y. Bagi saya, seorang senior harus memiliki 10 tahun atau lebih pengalaman dalam pemrograman untuk menyebut dirinya 'senior'. Saya telah melihat banyak remaja ini di sini (karena itu pertanyaannya). Apakah aku salah? Mengapa?

298
Kev

Anda dapat menyebut diri Anda Senior ketika:

  • Anda dapat menangani seluruh siklus hidup pengembangan perangkat lunak, ujung ke ujung
  • Anda memimpin orang lain, atau orang lain mencari bimbingan.
  • Anda dapat mengatur sendiri proyek Anda

Pengembangan perangkat lunak adalah makhluk yang aneh seperti bidang lainnya.

Kadang-kadang, seorang punk baru yang keluar dari perguruan tinggi dapat menjalankan lingkaran di sekitar veteran yang memiliki 20 tahun pengalaman. Pemrograman adalah dunia yang aneh di mana kode adalah raja.

Beberapa mencapai di atas dalam 2 tahun atau kurang, yang lain memakan waktu 10 tahun.

433
Darknight

Ketika saya mendengar "Pengembang Senior", saya memikirkan seseorang yang telah menguasai pemrograman. Saya memikirkan seseorang yang dapat merancang, kode, dan menguji suatu sistem. Mereka dapat berbicara dengan arsitektur sistem atau desain komponen. Mereka memahami dan menggunakan pola desain. Orang ini dapat mengantisipasi hambatan kinerja, tetapi tahu untuk tidak melakukan pra-optimisasi. Orang ini akan memanfaatkan pemrograman yang tidak sinkron, antri, caching, masuk, keamanan, dan ketekunan bila diperlukan. Ketika ditanya mereka dapat memberikan penjelasan detail tentang pilihan mereka dan pro dan kontra. Dalam kebanyakan kasus mereka telah menguasai pemrograman dan desain berorientasi objek, ini bukan bahasa lain absolut seperti Javascript, F #, Skema yang kuat dan tidak berorientasi objek. Mereka mahir dalam manajemen risiko dan yang paling penting dari semua itu mereka dapat berkomunikasi sebelum disebutkan kepada rekan-rekan mereka.

Apa itu penguasaan? Ada ide yang diterima secara umum, bahwa untuk menguasai APA SAJA satu keterampilan, dibutuhkan 10.000 jam pengulangan bagi tubuh dan pikiran manusia untuk memahami dan menginternalisasi suatu keterampilan. Ini ditulis untuk panjang lebar dalam buku Malcolm GladWell Pencilan . Ketika penulis asli berbicara tentang menguasai bidang, ia merujuk untuk mencapai puncak bidang yang sangat kompetitif akan memakan waktu 10.000 jam.

Beberapa contoh dalam Outliers Malcolm GladWell adalah:

Mozart konser pertamanya pada usia muda 21. Yang pada awalnya tampak muda, tetapi ia telah menulis musik sejak ia berusia 11 tahun.

The Beatles awalnya dijauhi. Mereka diberi tahu bahwa mereka tidak memiliki mustard dan harus mempertimbangkan pekerjaan yang berbeda. Mereka menghabiskan 3 tahun di Jerman bermain sekitar 1200 kali di tempat yang berbeda, masing-masing 5 hingga 8 jam. Mereka muncul kembali sebagai The Beatles yang kita kenal dan cintai hari ini.

Dan terakhir, Bill Gates pada usia 20 keluar dari Harvard untuk menemukan Microsoft. Untuk beberapa ini mungkin tampak bodoh, tetapi dianggap pada 20 dia telah menghabiskan hampir setengah dari program kehidupan mudanya. Pada tahun 1975, hanya mungkin 50 orang di dunia yang memiliki pengalaman yang dia lakukan. Pengalamannya memberinya pandangan ke depan untuk melihat masa depan di Microsoft.

Peter Norvig juga membahas aturan 10.000 jam dalam esainya " Teach Yourself Programming in Ten Years ".

Dalam buku Penguasaan oleh George Leonard, detail besar diberikan tentang cara menguasai keterampilan. Seseorang harus melatih keterampilan berulang-ulang. Semakin banyak pengulangan, semakin Anda menyadari perbedaan dalam setiap pengulangan. Hanya dengan wawasan ini Anda bisa menjadi lebih baik.

Judul industri perangkat lunak (Junior, Tingkat Menengah dan Lanjut Usia) menyesatkan dan tidak konsisten dari organisasi ke organisasi. Saya telah bekerja dengan perusahaan, yang mendefinisikan Pengembang Senior sebagai seseorang dengan pengalaman 5 tahun atau lebih. Tidak disebutkan kualitas pengalamannya, hanya saja mereka duduk di depan komputer selama 5 tahun. Dalam bekerja dengan orang-orang ini, banyak dari mereka belum memahami pemrograman berorientasi objek - namun mereka dianggap Pengembang Senior.

Harus ada cara yang lebih objektif dan lebih baik untuk mengukur keterampilan seorang insinyur perangkat lunak. John Haugeland memposting matriks keterampilan pemrogram komputer. Ini adalah cara obyektif untuk mengukur tingkat keterampilan programmer , yang jika tidak maka akan tersisa perasaan.

Saat melihat insinyur perangkat lunak, saya melihat 4 tingkatan keterampilan: Luminary, Senior, Mid-Level, dan Junior.

Luminary (10+ tahun) adalah orang yang telah menguasai keterampilan dan telah mulai meningkatkan disiplin masing-masing. Beberapa contoh termasuk: Ted Neward , Paman Bob Martin , Donald Knuth, Oren Eini , Peter Norvig , Linus Torvalds . Tokoh-tokoh penting berubah berdasarkan pada keahlian Anda.

Senior (7 hingga 10+ tahun, Level 3) adalah orang yang telah menghabiskan 10.000 jam terakhir untuk memprogram dalam genre tertentu. Ada pemahaman yang kuat tentang pola desain, Mereka memanfaatkan pemrograman yang tidak sinkron, antri, caching, logging, keamanan dan ketekunan bila diperlukan.

Sangat mungkin bahwa Senior tidak akan pernah mencapai Luminary. Tokoh-tokoh terkenal sering ditemukan berbicara dan menulis. Mereka secara aktif berusaha memengaruhi disiplin mereka.

Tingkat Menengah (4 hingga 6 tahun, Tingkat 2) adalah orang yang mengerti pemrograman sehari-hari. Mereka bekerja secara independen dan menciptakan solusi yang kuat. Namun mereka belum berpengalaman menciptakan atau memelihara sistem yang besar atau kompleks. Secara umum, pengembang tingkat menengah sangat hebat dalam pengembangan tingkat komponen.

Junior (1 hingga 3 tahun, Level 1) adalah orang yang memahami dasar-dasar pemrograman. Mereka memiliki gelar dalam rekayasa perangkat lunak atau ilmu komputer atau mereka belajar sendiri. Kode mereka terus ditinjau. Bimbingan diberikan sehubungan dengan algoritma, rawatan dan struktur.

243
Chuck Conway

"Kapan Anda harus menyebut diri Anda seorang pengembang senior?" - Ketika saya mulai mentor pengembang junior.

111
duros

Saya perhatikan tren yang sama. Salah satu pertanyaan tempo hari adalah tentang pengembang senior dengan pengalaman 2-3 tahun pindah ke arsitek.

Anda bisa menyebut biji pohon ek, tetapi itu tidak mengubah apa itu.

Satu-satunya kesimpulan logis adalah bahwa "senior" berarti sesuatu yang lain:

  • peringkat relatif, seperti pada "senior ke cowok yang baru lulus kuliah"
  • ejaan bahasa Spanyol yang buruk, mis. maksudnya adalah menempatkan señor
  • ejaan selatan, seperti pada "senior butt-crack, tarik celana mereka"

Hari-hari ini, itu hanya judul pekerjaan, dan mungkin atau tidak mengatakan apa-apa tentang pengalaman industri relatif.

23
Steven A. Lowe

anda melewatkan intinya.

Senior tidak ada artinya. Junior tidak ada artinya. Judul tidak berarti apa-apa. Judul saya - Direktur Sistem Bisnis Rekan. Tanggung jawab saya - mengelola semua hal mulai dari pengembangan perangkat lunak internal hingga infrastruktur, melalui keamanan, hingga situs web pelanggan. Pengalaman pengembangan perangkat lunak saya - otodidak. Pengalaman jaringan saya - otodidak. Kemampuan umum saya di bidang TI - lebih buruk dari milik Anda.

Kemampuan saya untuk mengelola dan mengarahkan - dapat diperdebatkan, tetapi karakter dan kepribadian saya membuat saya mendapatkan pekerjaan dan membuat saya berhasil.

Gelar tidak berarti kemampuan dan upaya berarti segalanya. Saya bukan yang terbaik - dan percaya itu akan menjadi sombong.

Lupakan hang up Anda tentang judul dan buktikan nilai Anda!

21
Steve

Saya pikir jawaban terbaik diberikan oleh Darknight .

Saya merasa perlu menunjukkan hal berikut.

2-3 tahun pengalaman pemrograman (bekerja + pribadi bersama) tidak cukup bagi seseorang untuk melihat cukup banyak proyek dan telah menangani sejumlah masalah yang cukup. Tidak akan berhasil. Anda perlu waktu untuk membiarkan hal-hal melewati kepala Anda, untuk merefleksikan pengalaman Anda dan untuk bergerak secara mental ke tingkat pemikiran yang lebih tinggi. Tidak terjadi dalam semalam.

Saya akan mengatakan di bawah 5-7 tahun latihan (sekali lagi bekerja + pribadi bersama) keajaiban tidak diharapkan. Seseorang mungkin mendapatkan banyak pengalaman dengan bahasa dan kerangka kerja tertentu, tetapi belum melompat ke tingkat pemikiran baru.

Hal lainnya adalah kematangan keseluruhan individu. Menurut saya itu pertama kali mendekati 30 tahun. Sebelumnya, otak kita mungkin bekerja pada clock rate yang lebih tinggi, tetapi akan memproses sampah, karena kekurangan data yang cukup dalam memori untuk melihat gambar yang lebih besar. Pengalaman hidup umum kita menambahkan sesuatu yang halus tetapi nyata dalam cara kita berpikir dan bekerja, sehingga pemrograman juga merupakan jenis pekerjaan lain.

Penerimaan pribadi saya atas seorang senior: seseorang setidaknya 27 tahun. dengan setidaknya 7 tahun latihan . Sebelum itu saya pribadi akan skeptis (tetapi masih berpikiran terbuka, itu hanya akan mengambil lebih banyak bukti bagi saya).

19
user8685

Ada posting blog yang bagus oleh Martin Fowler baru-baru ini. Hal-hal yang saya ambil dari itu adalah:

  • Ini tidak ada hubungannya dengan berapa lama Anda telah bekerja untuk seseorang. Anda bekerja selama tiga tahun dan Anda menjadi pengembang senior. Apa yang terjadi setelah enam tahun? Apakah Anda menjadi pengembang senior senior?

  • Pengembang senior tidak memandang rendah Anda atau berpikir bahwa mereka lebih baik daripada Anda. Itu sangat penting. Begitu Anda membiarkan ego Anda menghalangi Anda, Anda berada dalam kesulitan.

  • Pengembang senior tidak menyalahkan. Mereka mengantisipasi masalah dan mengatasinya secara positif.

  • Orang ingin bekerja dengan pengembang senior. Ini kunci bagi saya. Saya ingin orang-orang bekerja dengan saya dan saya ingin mereka menikmati bekerja dengan saya.

  • Pengembang senior bukanlah insinyur yang paling pintar. Mereka tidak bekerja pada masalah yang paling rumit. Keahlian mereka tidak semuanya tentang pemrograman. Keahlian komunikasi mereka memainkan peran yang sama pentingnya.

  • Pengembang senior pandai memperkirakan.

  • Pengembang senior selalu peduli dengan apa yang mereka lakukan. Mereka memahami bahwa tugas-tugas yang membosankan harus diselesaikan dengan kualitas yang sama dengan tugas-tugas lain yang berpotensi lebih menarik.

Hanya untuk memperjelas

Keterampilan yang saya sebutkan di atas adalah apa yang saya yakini harus dimiliki oleh seorang insinyur perangkat lunak senior yang baik selain keterampilan dan praktik rekayasa perangkat lunak yang mendasar.

14
CodeART

Ketika Anda telah membimbing banyak orang, dan sebagian besar berterima kasih atas hal itu bertahun-tahun kemudian setelah tidak setuju dengan Anda pada awalnya, jangan ragu untuk menambahkan 'Senior' ke judul apa pun yang dapat Anda perintahkan.

Sampai saat itu, 'timah' mungkin merupakan istilah yang lebih deskriptif.

Bagi saya, istilah 'senior' menunjukkan puncak pengalaman praktis DAN kebijaksanaan ketika berhadapan dengan orang-orang dan harapan mereka yang sewenang-wenang. Pertimbangkan skenario ini:

16 programmer dalam satu tim, masing-masing dengan tepat 1 tahun lebih banyak pengalaman daripada yang lain. Ini berarti, programmer ke-16 memiliki 16+ tahun pengalaman. Delapan anggota yang paling berpengalaman terbunuh secara tragis ketika sebuah bus menabrak sebuah toko. Apakah pria dengan setengah pengalaman sekarang dianggap sebagai pengembang senior? Saya harap tidak, saya berharap perusahaan dengan cepat mengganti kekosongan dengan orang-orang dengan kaliber yang sama atau lebih dari yang baru saja hilang.

Saya benci membawa istilah ' pekerja harian ' ke dalam pemrograman, tetapi beberapa di antaranya berlaku. Istilah 'senior' bukanlah sesuatu yang saya berikan kepada siapa pun dengan pengalaman kurang dari 15 tahun, karena itu jauh melampaui pengetahuan teknis.

13
Tim Post

Saya menemukan judul "Pengembang Junior/Senior" ini salah dan menyesatkan karena tidak ada unit pengukuran nyata untuk ini. Kita semua Pengembang Perangkat Lunak dengan lebih sedikit atau lebih banyak pengalaman langsung. Jangan mencoba membuat hierarki untuk Pengembang Perangkat Lunak, tidak ada gunanya dan itu bisa membahayakan titik fokus utama: tim pengembangan perangkat lunak yang hebat.

7

Ketika Anda melihat kembali pekerjaan Anda sebelumnya dan menyadari apa itu omong kosong. Dan Anda mengerti bahwa Anda sudah menjadi lebih baik tetapi ada beberapa mil lagi, dan pembelajaran itu selamanya.

5
Bernard Dy

Kadang-kadang saya melihat profesi lain dan bertanya-tanya mengapa pemrograman perangkat lunak tidak membuat standar sendiri. Tidak akan ada gunanya untuk pertanyaan ini karena akan ada standar yang diterima untuk mendapatkan level tertentu. Kemudian saya sampai pada kesadaran, "Siapa yang mati dan meninggalkan mereka raja?"

Kita semua tahu bahwa pengalaman, pendidikan, sertifikasi, dan gelar adalah untuk semua orang untuk mendapatkan gambaran dasar kemampuan programmer. Anda tahu apa yang Anda lakukan atau tidak. Anda bisa mencium jenis Anda sendiri atau tidak.

3
JeffO

"WHAAAT .... UJI UNIT !!!! Saya seorang programmer senior ... Saya tidak perlu menguji kode saya lagi"

Mendengar itu sebelumnya .... Jadi dia membiarkan "Junior" memperbaiki bug dan mengujinya.

"Kami akan menyewa seorang arsitek ... tidak, bukan Tuan X, kami menginginkan seseorang yang jauh lebih senior, seseorang yang tidak lagi berkode"

nanti dalam wawancara:

  • jadi bahasa pemrograman apa yang Anda kenal?

  • ahem ... Saya telah menggunakan COBOL dan FORTRAN tetapi sekarang kebanyakan adalah MS Word, Excel dan PowerPoint.

  • Luar biasa ... kapan Anda bisa mulai?

Benar-benar senior hanyalah masalah perspektif, Judul seperti yang dikatakan Steven. Namun, saya berharap bahwa saya dapat mengatakan bahwa pada akhirnya itu adalah kode yang Anda tulis yang penting, tetapi sayangnya dalam banyak kasus, setelan dan dasi membuat dampak yang lebih besar, terutama ketika Anda tidak lagi diukur dengan pencapaian (kode) nyata tetapi bagaimana baik Anda meyakinkan hierarki esensi Anda.

3
Newtopian

Ketika orang lain memanggil Anda pengembang senior. Tidak ada satu definisi pun. Perubahannya dari perusahaan ke perusahaan. Dalam sebuah perusahaan yang mapan, karyawan baru diberi lebih sedikit pekerjaan, dan kurva belajar mereka lambat. Di perusahaan startup yang lebih segar dapat mengambil banyak tanggung jawab dan belajar banyak hal dalam waktu yang lebih singkat. Saya telah mengalami tangan pertama ini. Sayangnya hanya orang-orang berpengalaman lainnya yang dapat menghitung kedalaman pengetahuan Anda, dengan melihat kualitas kode atau pekerjaan Anda. Dan saya yakin semua orang mendapatkan gelar mereka ketika waktunya habis.
Dan jika Anda tidak mengubah perusahaan. :-)

2
Manoj R

Itu judul seperti banyak judul lainnya. "Remaja" ini di sini bahkan mungkin memiliki gelar PhD, itu tidak berarti apa-apa. Tapi itu jelas akan memberi mereka gaji yang lebih tinggi. Hal yang sama berlaku untuk Pengembang Senior atau Arsitek Senior. Atau Manajer Proyek Senior, dll.

Mengingat fakta itu, lebih baik disebut "Pengembang Senior Kami" oleh rekan kerja Anda, daripada menambahkan judul itu ke kartu Anda sendiri setelah pengalaman bertahun-tahun - yang saya lakukan ketika saya memiliki kesempatan. :-)

Selain itu, saya katakan 10 tahun adalah minimum (termasuk perguruan tinggi atau pendidikan lainnya).

2
Lukas Eder

Saya telah melihat beberapa lowongan pekerjaan baru-baru ini mencari lulusan CS dengan pengalaman kurang dari setahun. Ini sepertinya gila bagi saya, bahkan jika itu hanya sebuah gelar. Untuk satu, itu menunjukkan mempermudah judul. Saya yakin beberapa perusahaan yang saya lihat dengan posting-posting itu memiliki judul "super senior" lainnya untuk menunjukkan senior yang sebenarnya. Kurasa itu bukan strategi perekrutan yang buruk. Judul bukan segalanya, tetapi semua yang lain sama antara dua pekerjaan, saya mungkin akan mengambil satu dengan judul "Master Chief Developer".

Poin ketika "Master Chief Developer" (atau apa pun posisi yang tinggi itu, "senior" atau lainnya) sebenarnya dibenarkan meskipun sulit untuk dijabarkan. Saya tidak berpikir kita bisa terlalu objektif tentang mengukurnya. Sebagai formula kasar, saya akan mengatakan mereka harus disebut senior jika mereka biasanya yang terbaik di ruangan itu dan ruangan itu mengandung setidaknya 8 pengembang profesional. Itu akan menunjukkan bahwa seorang senior berada di persentil ke-87 di minimum. Meskipun saya akan mengatakan bahwa para devs ini kemungkinan akan menjadi orang-orang dengan pengalaman terbanyak, saya pasti tidak akan mengatakan bahwa pengalaman == “senior”, atau bahkan mendekati. Pada saat yang sama, sementara saya skeptis bahwa jumlah senior sejati dengan kurang dari 7 atau 8 tahun harus sangat kecil, bukan tidak mungkin bagi seseorang dengan kurang dari itu untuk menjadi master.

Menjadi 22, saya tentu jatuh ke dalam "tidak mungkin menjadi kategori utama". Walaupun saya berada di sekitar beberapa tipe "10 (atau 30) tahun 1 tahun pengalaman" itu, dan saya benar-benar tergoda untuk berpikir bahwa saya lebih baik, saya mencoba untuk mengingat orang-orang itu, bahkan jika mereka tidak mengedepankan upaya dalam berpuluh-puluh tahun belajar, mungkin masih memperoleh lebih banyak pengetahuan daripada saya tentang beragam subjek melalui osmosis murni. Tidak mungkin saya bisa tahu sebanyak mereka tentang siklus hidup proyek penuh. Saya bekerja dengan satu orang yang proyeknya lebih tua dari saya! Akan sangat sombong bagi saya untuk benar-benar berpikir bahwa saya tahu lebih banyak tentang memelihara proyek dengan cakupan seperti itu daripada dia.

Hal lain yang perlu diingat adalah jika Anda mulai menyebut diri Anda senior pada usia 22 tahun, apa yang akan Anda lakukan pada usia 32? Ini sedikit merugikan masa depan Anda untuk menganggap bahwa Anda sudah di atas. Banyak orang melihat aturan 10.000 jam untuk menentukan kapan seseorang ahli. Dalam buku Malcom Gladwell di mana ide itu diajukan, cukup jelas bahwa para ahli bukan hanya yang terbaik, tetapi mereka melakukan peran tertentu. Murid bukanlah yang terburuk dalam hal apa pun, tetapi ini adalah deskripsi metode bahkan lebih dari kemampuan. Novis dapat mempelajari hal-hal aneh dengan cepat tetapi sering mengalami kesulitan melakukan beberapa hal yang paling umum secepat seseorang yang ahli. Para ahli dapat melakukan hal-hal rutin dengan presisi dan kecepatan ekstrem, dan mengetahui hal-hal apa yang harus dicari yang dapat menunjukkan masalah, tetapi sering mengalami kesulitan bereaksi terhadap perubahan, atau mempelajari hal-hal yang berada di luar zona nyaman mereka. Dengan pemikiran itu, saya bahkan belum ingin menjadi seorang ahli. Saya ingin menyerap informasi baru sebanyak yang saya bisa, selama saya bisa sebelum menetap di domain yang stabil.

2
Morgan Herlocker

Itu mungkin ada hubungannya dengan uang.

Beberapa perusahaan mengikuti rencana gaji yang ditetapkan. Mereka tidak dapat menempatkan Anda di tengah tangga 'Pengembang', karena beberapa aturan yang diberikan. Tetapi mereka dapat menempatkan Anda di bawah tangga 'Pengembang Senior'.

Secara pribadi, saya merasa aneh jika seseorang diberikan gelar senior setelah lulus dari perguruan tinggi, tetapi di sisi lain - siapa yang peduli? Saya telah menjadi 'pengembang' selama sekitar sepuluh tahun sekarang, dan meskipun saya mendapatkan gelar 'senior' ketika saya mengubah tempat kerja sekarang, itu tidak berarti apa-apa. Saya masih akan menjadi mahasiswa baru di domain baru - setidaknya untuk sementara ...

2
Vegar

Pertama kali Anda mendapatkan pekerjaan berdasarkan setidaknya satu sesi wawancara yang tidak bersifat "wawancara teknis klasik" (mis., Berbicara tentang arsitektur, konsep, desain, pandangan perusahaan, pengalaman, dll.)

Pengalaman saya (terbatas) adalah bahwa pengembang junior biasanya disewa hanya berdasarkan kinerja dalam baterai standar pertanyaan wawancara, dan yang senior didasarkan pada berbagai interaksi lainnya.

1
Uri

10 tahun ?? Kamu pasti bercanda. Ok, bagaimana Anda mendefinisikan 10 tahun? Katakanlah seseorang mulai pemrograman pada usia 15 tetapi menjadi proffesional pada usia 25?

Industri tidak bekerja seperti itu. Saya pikir perusahaan yang berbeda membiarkan orang memanggil mereka Senior Dev X atau Y kapan saja antara 5-8 tahun. Banyak senioritas dalam Organisasi tidak datang dengan kemampuan sendirian, ini banyak berkaitan dengan inisiatif yang diambil seorang individu dan jenis tanggung jawab yang ingin ia bagikan. Sebagian besar waktu orang-orang dengan keterampilan yang masuk akal dan motivasi yang kuat menjadi profesional senior.

BTW 22 tahun bukan remaja ;-)

1
Geek