Apa perbedaan antara pengembang Entry Level / Jr / Sr? [Tutup]

198

Selain judul dan gaji, apa bedanya?

  • Apa tanggung jawab berbeda yang mereka miliki.

  • Seberapa luas pengetahuan mereka?

  • Apa ukuran dasar untuk menentukan di mana pengembang cocok dengan struktur dasar ini?

JD Isaacks
sumber

Jawaban:

341

Ini akan bervariasi tetapi ini adalah bagaimana saya melihatnya di tempat yang cukup besar untuk memiliki perbedaan antara jenis programer.

Saya akan mengatakan entry level dan Junior adalah hal yang sama. Mereka baru lulus sekolah dan memiliki pengalaman kerja kurang dari dua tahun. Mereka diberi tugas yang paling tidak rumit dan harus diawasi dengan cukup cermat. Umumnya mereka tahu sekitar 10% dari apa yang mereka pikir tahu. Biasanya mereka belum melalui seluruh siklus pengembangan dan seringkali membuat beberapa pilihan yang sangat naif jika diberi kesempatan untuk memilih. Sayangnya banyak dari mereka tidak benar-benar peduli apa persyaratannya, mereka ingin membangun sesuatu dengan cara mereka. Mereka sering memiliki keterampilan debugging yang buruk.

Tingkat menengah adalah tempat banyak programmer jatuh. Mereka memiliki lebih dari dua tahun pengalaman dan umumnya kurang dari sepuluh, meskipun beberapa dapat tetap pada tingkat ini sepanjang karir mereka. Mereka dapat menghasilkan kode kerja dengan sedikit pengawasan selama mereka ditugaskan untuk tugas-tugas yang relatif rutin. Mereka umumnya tidak ditugaskan dengan desain tingkat tinggi atau tugas yang sangat rumit yang membutuhkan tingkat pengetahuan yang mendalam. Mereka mungkin ditugaskan dengan desain sepotong aplikasi, terutama karena mereka berada di zona untuk menjadi pengembang senior. Mereka pandai tugas pemeliharaan atau tugas di mana mereka dapat fokus hanya pada potongan puzzle mereka, tetapi biasanya tidak diharapkan untuk mempertimbangkan aplikasi secara keseluruhan kecuali bekerja dengan pengembang senior atau sedang dipersiapkan untuk promosi ke senior. Mereka biasanya dapat melakukan pekerjaan pemecahan masalah dan debugging yang baik, tetapi mereka harus benar-benar bekerja keras untuk mendapatkan yang sulit. Mereka belum memiliki pengalaman yang cukup untuk melihat pola dalam masalah yang mengarahkan mereka ke tempat yang memungkinkan mereka terjadi. Tetapi mereka mendapatkan keterampilan itu dan jarang perlu meminta bantuan debugging. Mereka mungkin telah melalui seluruh siklus pengembangan setidaknya sekali dan melihat hasil dari masalah desain dan belajar bagaimana menghindarinya di masa depan. Biasanya mereka cenderung lebih cenderung untuk mengambil persyaratan pada nilai nominal dan tidak mendorongnya kembali ketika memiliki masalah atau kesenjangan yang jelas. Mereka telah belajar cukup banyak untuk mengetahui apa yang tidak mereka ketahui dan mulai mendapatkan pengetahuan itu. Mereka adalah workhorses dari dunia pemrograman,

Tidak seorang pun yang tingkat senior bahkan perlu mengajukan pertanyaan ini. Mereka ahli dalam tumpukan teknologi yang mereka pilih. Mereka diberi tugas-tugas sulit (yang tidak ada yang tahu bagaimana menyelesaikannya) dan sering mendapatkan tanggung jawab desain. Mereka sering bekerja secara independen karena mereka memiliki rekam jejak yang terbukti dalam pengiriman barang. Mereka diharapkan untuk menjadi mentor bagi pengembang menengah dan menengah. Seringkali mereka adalah pemecah masalah yang luar biasa. Mereka telah mengalami masalah yang sama sebelumnya dan memiliki ide yang sangat bagus dari mana harus mencari pertama. Lansia sering menjadi mentor di luar tempat kerja juga. Mereka umumnya memiliki setidaknya sepuluh tahun pengalaman dan hampir selalu berada di setidaknya satu mars kematian dan tahu persis mengapa beberapa hal harus dihindari. Mereka tahu bagaimana mengirimkan produk yang berfungsi dan memenuhi tenggat waktu. Mereka tahu sudut apa yang bisa dipotong dan sudut apa yang tidak boleh dipotong. Mereka tahu setidaknya satu dan sering beberapa bahasa di tingkat ahli. Mereka telah melihat banyak "teknologi baru yang panas" menghantam tempat kerja dan menghilang, sehingga mereka cenderung sedikit lebih konservatif tentang melompat pada kereta musik untuk alat pengembangan baru yang menarik berikutnya (tetapi tidak sepenuhnya tahan terhadap perubahan - itu akan menjadi pengembang Menengah yang lebih tua yang tidak pernah melakukan lompatan ke Senior). Mereka mengerti bahwa tugas mereka adalah memberikan perangkat lunak yang berfungsi sesuai keinginan pengguna, bukan untuk bermain dengan alat yang menyenangkan. Mereka sering memilih di mana mereka akan bekerja karena mereka dapat dan karena mereka telah melihat secara langsung betapa buruknya beberapa tempat. Mereka mencari tempat-tempat yang memiliki tugas paling menarik untuk dilakukan. Seringkali mereka tahu lebih banyak tentang produk perusahaan mereka daripada orang lain, bahkan jika mereka telah berada di sana hanya beberapa bulan. Mereka tahu mereka membutuhkan lebih dari pengetahuan pemrograman dan pandai mendapatkan pengetahuan tentang domain bisnis yang mereka dukung juga. Mereka sering menyadari masalah yang tidak pernah dipertimbangkan oleh junior dan perantara tidak sering berpikir seperti masalah regulasi dan hukum dalam domain bisnis yang mereka dukung. Mereka dapat dan akan mendesak kembali suatu persyaratan karena mereka tahu masalah apa yang akan terjadi dan dapat menjelaskan hal yang sama kepada orang awam.

HLGEM
sumber
2
apakah ada Judul (dalam bahasa Inggris) ke "Tingkat menengah" penerjemah Google menggunakan "Pengembang penuh". Tapi itu bukan sumber yang berharga =)
Michel Ayres
23
Penjelasan luar biasa, seperti cerita. Saya senang membacanya.
Saeed Neamati
1
Terima kasih atas penjelasannya. Saya otodidak di iOS dev (tidak ada pendidikan komputer) dan telah merilis aplikasi pertama saya yang memiliki beberapa fitur non-sepele (yaitu JSON CRUD, beberapa komponen sosial, desain yang bagus). Saya tidak berpikir saya seorang programmer yang hebat tetapi saya memang menulis aplikasi kembali ke depan dan mengerti apa yang diperlukan untuk mengirim. Di mana Anda menempatkan seseorang seperti saya, secara hipotesis?
SamYoungNY
1
@NYCTechEngineer, well stack overflow muncul di pikiran. Juga kelompok pengguna lokal, blogging, menulis artikel, dan buku.
HLGEM
1
@BrianHaak Thx - menarik apa yang Anda katakan. Sejak tahun lalu saya telah mengerjakan proyek yang jauh lebih besar dari sebelumnya. Saya mendapatkan firasat melihat kode yang saya tulis beberapa bulan yang lalu dan mengatakan "wtf? Siapa yang mengira ini adalah ide yang bagus?" :) - Memulai proyek ini dari kernel kecil menjadi proyek yang dapat diperpanjang dengan mudah & juga mampu mengakomodasi non-pengembang yang ingin menambahkan konten telah memaksa saya untuk berpikir tentang struktur tingkat yang lebih tinggi. Berpasangan dengan programmer yang lebih berpengalaman menunjukkan kepada saya bahwa saya kehilangan banyak opps. untuk menggunakan abstraksi. Saya juga memiliki masalah dengan namespace.
SamYoungNY
43

Level Awal - harus memberi mereka instruksi eksplisit, memeriksa semua yang mereka lakukan, sedikit atau tidak ada tanggung jawab desain, tidak ada tanggung jawab analisis

Junior - instruksi kurang eksplisit, kurang memeriksa, beberapa desain kecil dan tanggung jawab analisis; membantu orang entry-level menemukan kompiler dan menggunakan repositori

Disain senior dan tanggung jawab analisis utama, diharapkan untuk memperbaiki pengawasan sendiri, sedikit / tanpa pemeriksaan, sedikit / tanpa instruksi; membantu orang-orang tingkat junior belajar / meningkatkan keterampilan analisis dan desain

Steven A. Lowe
sumber
20
Bagus, kecuali saya tidak tahu bahwa saya sepenuhnya setuju dengan "tidak ada pemeriksaan / instruksi" untuk tingkat senior. Kecuali Anda tidak bekerja pada atau dengan tim, tidak ada yang benar-benar harus menjadi pulau.
Wonko the Sane
@WonkotheSane kami memiliki orang yang menggabungkan kode dengan kesalahan tanpa kodeReview atau menarik permintaan. Tidak banyak membahas tentang arsitektur aplikasi selain hanya menggunakan pola observasi di mana-mana. Buat semua keputusan sendiri sehingga dia tidak akan beradaptasi dengan hal baru . Semua karena dia sendiri adalah sebuah pulau. Dia tidak ada di dalamnya. Dia adalah pulau :(
Sayang
16

Sungguh, saya pikir itu hanya sampai berapa lama Anda telah bekerja. Jika Anda memiliki 10 tahun pengalaman, Anda adalah seorang dev senior, jika Anda seorang lulusan maka Anda mungkin entry level. Saya telah melihat banyak dev senior yang hampir tidak bisa kode dan tidak benar-benar tahu apa yang mereka lakukan dan banyak dev junior yang fantastis.

Craig
sumber
7
Ini menggemakan pengalaman saya. "Senior" berarti waktu dengan perusahaan dan biasanya tidak ada yang lain; keterampilan tidak memperhitungkan satu sedikitpun. Saya telah bekerja dengan banyak pengembang "senior" (dan manajer dalam hal ini) yang tidak tahu apa-apa tentang perangkat lunak di luar pengembangan coba-coba tetapi telah bersama perusahaan selama 5+ tahun, atau merupakan programmer pertama yang dipekerjakan ketika Tempat dimulai, dan dipromosikan karena masa jabatan.
Wayne Molina
8

Saya pikir slot pengrajin sekolah tua magang, pekerja harian dan master cocok dengan slot ini dengan baik untuk entry level, junior (atau hanya tidak ada awalan) dan senior.

Seseorang entry level diberikan tugas yang relatif sederhana yang tidak memiliki konsekuensi mendalam dan pekerjaan mereka diperiksa oleh junior atau senior. Seiring waktu mereka mendapat lebih banyak tanggung jawab dan diberi tugas yang lebih kompleks, mempelajari tali sepanjang jalan.

Di junior (atau hanya penghapusan "entry level" / "junior" dari judul / deskripsi) Anda telah menyelesaikan magang Anda dan telah mencakup bidang utama pengembangan untuk perusahaan Anda, setelah masuk ke setiap area utama sehingga Anda akrab dengan masing-masing. Anda sekarang membantu memberikan panduan dan masukan untuk siswa magang yang setara, tetapi pekerjaan Anda sendiri masih ditinjau oleh master / senior, meskipun mungkin tidak sebanyak ketika Anda masih junior.

Seiring waktu dan pengiriman proyek yang sukses, Anda akhirnya menjadi senior. Pada tingkat senior, Anda telah menguasai segala sesuatu yang tercakup di wilayah Anda, yang mencakup seluruh proses pengembangan dan semua alat dan teknologi yang terlibat. Anda diberdayakan untuk membuat keputusan teknis yang signifikan dan diharapkan dapat memberikan wawasan kepada manajemen tentang proses pengembangan perangkat lunak.

Jadi, dengan memberikan panduan itu, Anda harus dapat melihat seseorang atau suatu posisi dan menentukan di mana dari ketiga tempat sampah mereka.

Todd Williamson
sumber
6

Ini akan bermuara pada harapan perusahaan terhadap programmer.

Jika saya adalah perusahaan yang mempekerjakan dan saya menyewa seorang programmer Entry Level, saya tahu bahwa orang itu tidak tahu apa-apa dan kita akan menganggap dia perlu mempelajari segalanya. Jika saya mempekerjakan orang tingkat senior, secara teori, mereka akan mandiri, dari sudut pandang teknis.

Walter
sumber
4

Ini sangat tergantung pada perusahaan. Tetapi kata-katanya cukup jelas: entry level adalah seseorang yang baru saja memasuki bidang, junior adalah seseorang yang berada di luar entry level dan tahu ada cara di sekitar beberapa teknologi bahasa. Yang terakhir senior adalah mereka yang lebih bertanggung jawab atas proyek dan duduk di tingkat yang lebih tinggi. Mereka biasanya dapat mendelegasikan sebanyak kode mereka.

Chris
sumber
Saya mendapatkan ini, tetapi pada titik apa Anda "melampaui entry level" atau "di luar junior"? Jika Anda selalu belajar maka setiap hari Anda melampaui apa yang Anda lakukan sehari sebelumnya.
JD Isaacks
Level awal memang mudah, tetapi saya lebih banyak mencari contoh pengalaman / pengetahuan yang akan menyarankan junior atau senior.
JD Isaacks
Seperti yang saya katakan ini tergantung pada perusahaan, konteks teknologi / bahasa yang bersangkutan dan lebih khusus soal opini kecuali Anda berbicara tentang jabatan pekerjaan resmi. Saya tidak berpikir saya akan pernah menganggap diri saya seorang ahli dalam bahasa apa pun kecuali saya sendiri yang menulisnya.
Chris
Selain itu, jika Anda berada di perusahaan melihat jr, sr pengembang dan membandingkan / kontras diri Anda dengan mereka. Ini adalah ukuran yang baik dalam konteks khusus untuk perusahaan tersebut.
Chris
4

Seperti yang dikatakan kebanyakan orang, ini bervariasi dari perusahaan ke perusahaan, dan pekerjaan ke pekerjaan.

Misalnya, saya pernah bekerja di sebuah perusahaan yang menganggap siapa saja yang bekerja di sana selama lebih dari 5 tahun sebagai "Insinyur Perangkat Lunak Senior". Di sisi lain, tempat lain tempat saya bekerja memiliki definisi yang sangat ketat (dan skala upah terkait).

Beberapa tempat mungkin menganggap "entry level" dan "junior" memiliki arti yang sama.

Ini dapat bervariasi berdasarkan pengalaman bertahun-tahun, pengetahuan umum, pengetahuan khusus (yaitu mengetahui fitur-fitur dari bahasa tertentu), pengalaman manajerial dan / atau kepemimpinan, semua kombinasi darinya, dan tentu saja lebih banyak.

Wonko the Sane
sumber
3

Saya akan menjawab dengan sangat sederhana di sini: pengembang senior (secara umum) adalah orang-orang yang dapat melihat hutan untuk pepohonan. Mereka berpikir di luar masalah langsung di depan wajah mereka dan memiliki pemahaman tentang perubahan arsitektur apa yang bisa atau harus terjadi sebagai akibat dari memperbaiki masalah yang mereka hadapi.

Sebagian besar perusahaan perangkat lunak yang pernah saya lihat memiliki orang-orang entry level yang melakukan pengkodean sehari-hari sementara para senior dev mengawasi apa yang dilakukan orang-orang baru dan menangani masalah yang benar-benar jelek dan sulit.

Jelas ini hanya pendapat saya, dan bukan aturan yang keras dan cepat. YMMV.

MattC
sumber
2

Sederhananya dan dari pengamatan pribadi yang ditemukan di situs posting pekerjaan dan hanya mengenai tingkat pengalaman.

Entri = Baru Anda mungkin pekerjaan pertama Anda.

Junior = Anda baik tetapi tidak seharusnya menjadi yang terbaik, Anda juga biasanya memiliki kurang dari 5 tahun dan lebih dari 2 tahun pengalaman.

Senior = Anda seharusnya menjadi yang terbaik dan memiliki pengalaman lebih dari 5 tahun.

tuan-fu
sumber
Anda melewatkan perantara.
Neolisk