it-swarm-id.com

Keterampilan apa yang akan Anda harapkan dan hargai dalam Junior Software Engineer?

Saya baru saja menyelesaikan Master of Science dalam Rekayasa Perangkat Lunak, dan saya akan memulai karir profesional saya dalam beberapa minggu. Peran saya adalah sebagai Pengembang Junior untuk perusahaan yang mengembangkan perangkat lunak menggunakan Java & teknologi terkait (di antaranya Spring dan Hibernate). Sejujurnya, saya sangat senang dengan apa yang akan datang, terutama karena saya ingin mengembangkan karir saya sebagai Java pengembang. Saya juga sangat tertarik untuk mendapatkan pengalaman di bidang ini. Selain itu, ini akan menjadi pengalaman kerja pertama saya sebagai pengembang profesional jadi saya benar-benar ingin melakukan yang terbaik dari awal.

Saya ingin mengetahui keterampilan dan kemampuan mana, baik lunak maupun teknis, yang paling dihargai dalam profesional baru (Pengembang Junior) yang dapat menjadi bagian dari tim Anda dan di mana keterampilan yang harus saya fokuskan untuk mencapai karier yang sukses sebagai Perangkat Lunak Insinyur.

64
Bartzilla

Banyak dari ini benar di mana pun Anda berada dalam karir Anda, tetapi mungkin sangat penting bagi seseorang yang baru memulai.

  • Dengarkan lebih dari yang Anda bicarakan. Belajarlah dari apa yang dikatakan orang lain.
  • Jadilah rendah hati. Jangan takut membagikan ide Anda, tetapi jangan menganggap Anda benar dan orang lain salah. Jika Anda melihat sesuatu yang Anda pikir salah, tanyakan tentang itu, jangan membuat pernyataan tentang hal itu.
  • Terus belajar. Fondasi dari pendidikan Anda adalah (harus) hebat, tetapi Anda baru mulai mempelajari profesi. Belajar sambil bekerja. Saya tidak berpikir Anda dapat benar-benar belajar kecuali Anda benar-benar mempraktekkan apa yang Anda pelajari.
  • Pelanggan jarang tahu apa yang dia inginkan sampai dia melihatnya. Biasakan perubahan kebutuhan Anda. Adopsi gaya pengembangan (jika diizinkan) yang membuat segala sesuatunya cepat di depan pelanggan untuk mendapatkan umpan balik.
  • Temukan orang yang pandai bekerja dengan pelanggan dan minta mereka membimbing Anda tentang cara mengembangkan hubungan dengan mereka.
  • Tulis kode yang teruji dan kuat. Menyelesaikannya bukanlah tujuan; menyelesaikannya dengan benar adalah. Jika Anda ahli dalam hal itu, kecepatan akan datang seiring waktu.
  • Bekerja keras. Jangan menunggu untuk diminta melakukan sesuatu; mencari atau meminta hal-hal yang harus dilakukan.
  • Mengakui kesalahan Anda atau kesalahan tim Anda. Jangan membuang anggota tim Anda di bawah bus di depan pelanggan, tetapi jujurlah ketika Anda memiliki masalah kode.
  • Anda mungkin berpikir bahwa rekan setim Anda ingin Anda menjadi pembuat kode yang brilian. Itu akan luar biasa, tetapi rekan tim Anda benar-benar ingin Anda menjadi kompeten dan tidak brengsek. Jika Anda akan menjadi brengsek, lebih baik Anda menjadi brilian.
50
tvanfosson

Berikut adalah daftar cepat dari atas kepala saya:

  • Follow-through (selesaikan apa yang Anda mulai)
  • Kejujuran (beri tahu saya jika Anda mandek)
  • Keingintahuan (cari tahu cara yang lebih baik untuk melakukan sesuatu)
  • Keterbukaan pikiran (baik kritik maupun ide yang bukan milik Anda)
  • Kedermawanan (bagikan apa yang Anda pelajari; latih generasi berikutnya)
61
Alex Feinman

Dua hal: kemauan untuk belajar dan kemampuan untuk belajar.

8
Dima

Motivasi. Apakah Anda tahu cara memotivasi diri sendiri? Apakah Anda tahu taktik apa yang bisa bekerja lebih baik daripada yang lain? Ini adalah tentang kesadaran diri bahwa beberapa orang mungkin mengharapkan Anda untuk mengetahui dari semua pendidikan yang telah Anda lakukan untuk mengetahui hal ini.

Keterampilan pengujian dan debugging dasar. Apakah Anda tahu apa itu unit test? Apakah Anda tahu beberapa cara untuk men-debug masalah? Ini bukan tentang mengetahui secara spesifik apa yang harus dilakukan dalam suatu lingkungan, tetapi lebih pada gagasan umum tentang tes apa yang paling mendasar dan strategi apa yang harus dilakukan dalam melihat suatu masalah.

Kemampuan berkomunikasi. Seberapa tepat Anda dengan bahasa? Seberapa baik Anda bisa beralih dari teknis ke non-teknis? Memang ini adalah sesuatu untuk dikembangkan, tetapi itu adalah sesuatu yang perlu diperhatikan dan dalam beberapa kasus menyelamatkan seseorang yang mungkin mendapatkan masalah dengan tidak memahami implikasi dari apa yang mereka klaim. Seberapa baik Anda bergaul dengan orang-orang? Bukannya ini persyaratan yang ketat, tetapi jika Anda bisa memiliki hubungan baik dengan rekan kerja, itu bisa membuat beberapa pekerjaan sedikit lebih mudah ditangani. Kejujuran dan integritas juga termasuk dalam kelompok keterampilan ini karena secara umum mungkin ada pertanyaan tentang seberapa baik Anda mengatakan apa yang Anda maksud dan apa yang Anda katakan. "Ruang Kantor" memiliki banyak contoh komunikasi yang buruk dan sementara pekerjaan itu fiktif, mungkin ada banyak adegan yang benar-benar dekat dengan kenyataan bagi sebagian orang dalam hal bekerja di lingkungan kantor.

Keserbagunaan. Orang-orang baru dalam tim mungkin mendapatkan serangkaian tanggung jawab yang luas sehingga jika di perusahaan kecil Anda mungkin harus membuat basis data, jaringan, server web, dan hal-hal lain yang berada di luar pengembangan. Melempar masuk untuk membantu tim memenuhi tenggat waktu akan menjadi contoh lain di sini.

4
JB King

Keingintahuan, antusiasme, menetapkan standar tinggi untuk diri sendiri, kemauan untuk belajar, mau mengakui bahwa mereka tidak tahu, tertarik dengan apa yang dilakukan bisnis dan bagaimana hal itu memengaruhi pekerjaan yang Anda hasilkan. (Semua kualitas baik bahkan jika Anda memiliki 20 tahun pengalaman)

Pengetahuan teknis yang baik itu bagus tetapi Anda harus menunjukkan bagaimana Anda akan menerapkan pengetahuan ini.

Di atas semua itu, pewawancara harus dapat melihat Anda bekerja di sana membuat kontribusi dan ingin tinggal. Jika Anda terlalu bagus, itu bisa membuat beberapa orang lebih cepat daripada di bawah rata-rata. ;)

4
Peter Lawrey

Saya setuju dengan semua yang telah dinyatakan, tetapi saya ingin menekankan bahwa Anda tidak boleh melupakan keterampilan umum (dan lunak) ini sebagai pengganti menjadi ahli teknis. Anda harus mengerjakan keduanya, tetapi saya lebih suka memiliki perantara yang dapat mengkomunikasikan apa yang mereka ketahui kemudian memiliki master yang lebih suka bekerja sendiri.

Juga, jangan menghabiskan terlalu banyak waktu dengan hidung Anda di buku. Buku memang bagus, hebat, tetapi jika Anda menghabiskan sebagian besar waktu membaca dan sedikit bekerja, Anda tidak akan mendapatkan setengah dari jumlah buku itu.

3
Wes Baker

Bagi saya, sebagai pengembang junior tanpa gelar apa pun, kesediaan saya untuk bekerja keras dan meningkatkan diri telah sangat membantu karier saya. Saya juga memperhatikan bahwa mampu mengatasi beberapa kritik (positif atau tidak) dan mampu menindaklanjuti yang dihargai oleh atasan saya.

Adapun lingkungan baru: Saya akan menyarankan untuk mengikuti arus untuk minggu pertama atau lebih. Saya membuat kesalahan dengan berusaha terlalu keras, itu tidak dihargai.

3
Zsub

Jawaban yang bagus sekali. Saya hanya akan menambahkan, dari pengalaman terbang saya yang terbatas - Anda tahu apa yang mereka sebut lisensi pilot?

Lisensi untuk belajar.

2
Mike Dunlavey

Banyak jawaban bagus.

Bahkan jika saya tidak bekerja untuk 'orang besar' dan saya bukan seorang guru, saya akan menambahkan 2 sen saya.

Bersikap baik kepada orang lain.

Cobalah bersosialisasi dengan kolega Anda, habiskan sedikit waktu Anda bersama beberapa dari mereka setiap hari jika memungkinkan. Pergi makan malam bersama mereka sesekali, bersenang-senanglah dengan mereka.

Dengan kata lain, cobalah membangun "komunitas" jika tidak ada, atau menjadi bagian dari itu jika memang ada.

Mengenal rekan kerja Anda akan membantu Anda bergaul dengan mereka dengan lebih mudah. Plus, peluangnya bagus Anda akan bersenang-senang melakukannya.

2
s.m

Serta semua hal baik yang disampaikan oleh komunitas (di atas), saya juga berharap untuk melihat bukti dari beberapa keterampilan keras. Bukan kesempurnaan atau kekuatan über-geek, tetapi pengetahuan yang baik tentang dasar-dasar dan konsep dasar. Anda sudah mendapatkan pekerjaan itu (selamat ngomong-ngomong!) Jadi Anda cukup banyak di sana.

Tetapi menyegarkan pengetahuan Anda dan/atau meningkatkan kecepatan dengan alat, bahasa, dan teknologi yang digunakan perusahaan Anda akan berarti bahwa Anda akan berhasil dan menciptakan kesan pertama yang baik.

Seorang hipotetis sempurna pengembang junior akan mengetahui fundamental hal-hal seperti

  • bahasa.
  • I/O
  • Konsep OO seperti warisan
  • Antarmuka objek
  • akses basis data (khususnya terkait dengan bagaimana mereka melakukannya di toko kode baru Anda)
  • model HTTP
  • CSS
  • JavaScript/JQuery
  • desain basis data
  • SQL dan prosedur tersimpan
  • iDE yang akan Anda gunakan
  • kerangka kerja yang relevan (Anda menyebutkan Spring)

dan seterusnya. Dia akan dapat berkonsentrasi untuk mengambil keterampilan baru tanpa harus berhenti dan belajar dasar-dasar. Dia akan dapat melakukan plod pada (menanyakan sebanyak --- masuk akal pertanyaan yang dia suka - kebanyakan senior Senior cinta ditanyakan masuk akal pertanyaan teknis) dengan ongkos rutin formulir online, halaman admin yang dihadapi banyak junior selama beberapa bulan pertama. Menjadi seorang dev, junior yang andal dapat menjadi ujian inisiasi tim pertama Anda ;-)

Ketika saya mulai sebagai junior di tim web dari sebuah perusahaan besar, sebagian besar pekerjaan awal yang saya ditugaskan agak tidak menginspirasi tetapi menarik saya ke titik di mana saya membuka buku setiap malam sehingga saya bisa mengerti apa yang akan saya lakukan harus dilakukan hari berikutnya. Saya berhasil melewatinya, tetapi itu adalah stres lima atau enam bulan setelah kemewahan relatif dari kursus Masters saya ;-)

Jika Anda dapat melakukan semua hal dasar secara efisien, Anda mendapatkan lebih banyak hal menarik untuk dilakukan dengan cukup cepat dan ini tentu saja akan membantu memajukan karir Anda.

Dan menggemakan apa yang dikatakan banyak orang di atas, dunia komputer dan kode terus berkembang. Anda perlu mempelajari hal-hal baru setiap hari. Biarkan pikiran Anda terbuka lebar dan coba perhatikan mengapa Anda memulai ini - karena Anda <3 itu. Di tahun-tahun mendatang mungkin ada saat-saat ketika ini tidak akan berada di garis depan pikiran Anda. Antusiasme akan membantu Anda mengatasi sebagian besar gundukan dan rintangan.

Setelah mengatakan semua itu, pengalaman saya selama dua belas tahun terakhir menunjukkan bahwa sebagian besar junior tidak tinggal di perusahaan pertama mereka selamanya, jadi jangan terlalu terpaku untuk menjadi 'sempurna'. Membuat kesalahan adalah bagian dari proses yang akan membawa Anda dari junior ke mana pun Anda ingin berakhir. Saya sudah melakukan ini untuk sementara waktu sekarang dan hampir - menghapus basis data produksi setidaknya beberapa kali setahun.

Semoga sukses dengan karier Anda.

2
5arx
  • Gairah tentang pekerjaan

  • Bersedia belajar lebih banyak & lebih banyak & lebih banyak ..

  • kejujuran

  • konsistensi

1
Jigar Joshi

Jawaban yang bagus di sana, jika Anda mengikuti semua yang dikatakan orang di sini, saya yakin ada orang yang pandai melakukan apa yang ia lakukan,

Hanya ingin menekankan beberapa poin.

  • Bersikaplah rendah hati, jangan takut untuk memberikan pendapat Anda, tetapi begitu sebuah pendapat dibagikan, jangan bertahan, bersiaplah untuk belajar dari orang lain.
  • membentuk hubungan dengan anggota tim Anda, orang sebanyak yang kami inginkan untuk bekerja dengan programmer yang cerdas dan mapan, kami masih membutuhkan orang-orang yang dapat kami ajak bicara, memiliki hubungan yang sehat dengan anggota tim Anda akan sangat membantu karier Anda.
  • Jadilah proaktif, jangan menunggu untuk diberikan pekerjaan, cari pekerjaan, usulkan ide-ide baru ke lingkungan, bahkan jika itu tidak diterima, ini akan meningkatkan nilai Anda kepada perusahaan.
  • Bagikan dengan orang lain apa yang Anda pelajari, ini akan meningkatkan tingkat pemahaman Anda, meningkatkan nilai Anda bagi perusahaan dan masyarakat.
  • Selesaikan apa yang Anda mulai, komitmen adalah kualitas hebat yang harus dimiliki.
  • Tetap bahagia dan jangan kecewa ketika segala sesuatunya tidak berjalan sesuai rencana, akan ada pasang surut, tetapi bertahanlah

Semua yang terbaik dalam pekerjaan Anda

1
Brian Paul

Mengambil inisiatif. Saya memiliki banyak orang yang tidak melakukan ini sama sekali dan selalu menunggu untuk diberi tahu apa yang harus dilakukan. Jika Anda melihat sesuatu yang harus diperbaiki, lakukanlah. Anda punya ide untuk meningkatkan sesuatu? Bawa ke depan. Perlu keahlian lain untuk meningkatkan sesuatu? Pelajari itu.

Menunjukkan bahwa Anda peduli dengan apa yang Anda lakukan dan ingin tingkatkan.

1
jmq

Satu keterampilan yang saya pikir tidak dimiliki oleh banyak Pemrogram Jr, tetapi benar-benar bagus, kemampuan untuk membuat alat Anda sendiri. Anda dapat menghemat BANYAK waktu dan upaya dengan beberapa alat kustom yang dibuat dengan baik. Dan mereka tidak harus mewah, sebagian besar milik saya adalah skrip Shell 3 baris, meskipun beberapa jauh lebih lama.

Tetapi belajar mengotomatisasi berbagai hal akan membuat hidup Anda lebih mudah. (Dan mengesankan rekan kerja Anda ketika Anda bisa menyelesaikan sesuatu dengan baik)

1
Zachary K

Sama sekali tidak menakut-nakuti Anda, tetapi satu hal yang saya akan memperingatkan Anda terhadap hal itu di setiap perusahaan tempat saya bekerja, adalah metode pengguliran besar yang sangat kotor, dan benda-benda dengan nama buruk yang membuat Anda takut membuka file sumber secara tipis. kaget dan ngeri kekacauan seperti itu. Tempat-tempat yang biasanya Anda temukan ada di penangan acara untuk tombol "OK" pada dialog, atau tombol "Kirim" pada halaman web.

Saya memohon Anda dari lubuk hati saya. Silakan instal bel alarm mental, bahwa ketika suatu metode mulai terlihat besar, dan besar, maksud saya lebih dari 10 baris atau lebih, pikirkan tentang membuat metode lain ... begitu banyak metode kemudian, Anda akan mengerti betapa banyak tanggung jawab objek yang Anda kembangkan memiliki.

Bel alarm berikutnya yang saya rekomendasikan, adalah 2-3 parameter maks dalam suatu metode. Jika Anda melihat metode dengan sekitar 10 parameter input, say hello ke pemrograman fungsional dalam bahasa OO ...

Maaf atas sedikit frustrasi yang diungkapkan dalam respons ini, saya hanya tidak bisa menjerit cukup bermanfaat untuk belajar bagaimana menulis kode bersih.

Silakan ambil sendiri salinan Robert. C Martins Clean Code . Bacakan setiap minggu, keluarkan untuk makan malam, tidur dengan itu di bawah bantal Anda, bawa salinannya di toilet, dan cetak beberapa halaman dan tempelkan di langit-langit sehingga ketika Anda pergi tidur, Anda dapat membacanya sebelum Anda tertidur;).

Saya berharap yang terbaik dalam karir Anda. Gairah Anda pada titik ini sudah menunjukkan bahwa Anda akan melakukan yang terbaik.

1
Martin Blore

Satu-satunya saran yang bisa saya tawarkan adalah tidak pernah berhenti belajar. Cara yang dimiliki para pengembang rockstar di sana adalah dengan meluangkan waktu untuk mempelajari teknik dan bahasa baru adalah waktu luang mereka sendiri. Meskipun sangat bagus jika Anda tinggal di sana selama 10 tahun, ketika Anda keluar Anda hanya akan tahu Java + Spring + Hibernate. Inilah sebabnya di waktu senggang saya melihat platform .NET, Python, dan kode C++ sesekali untuk tetap aktif. Sebagai seseorang yang mengerjakan MS dalam info detik, waktu bisa berharga dan harus dihabiskan dengan bijak.

1
Woot4Moo

Kemampuan menggunakan google. Betulkah.

Bukannya aku tidak akan pernah membantu siapa pun, khususnya kolega yunior. Tetapi tidak ada yang lebih membuat frustrasi ketika seseorang tidak melakukan uji tuntas dalam menyelesaikan masalah, secara terus-menerus.

Saran saya untuk junior lunak. insinyur adalah untuk melakukan uji tuntas Anda dalam memecahkan masalah. Gunakan google, wikipedia, atau stackoverflow dengan rajin dan metodis saat Anda tidak tahu sesuatu.

Jangan menunggu terlalu lama sebelum meminta bantuan rekan kerja yang lebih senior - itu tergantung pada jenis organisasi. Di perusahaan yang baik di mana orang-orang saling membantu, jika Anda menghabiskan lebih dari setengah hari untuk mencari jawaban, jangan ragu untuk menghentikan penelitian Anda sendiri untuk meminta bantuan.

Di organisasi lain di mana orang selalu saling keji, Anda mungkin harus menghabiskan beberapa hari sendirian (mendokumentasikan semua yang telah Anda lakukan dan di mana pun Anda telah meneliti) sebelum meminta bantuan. Di perusahaan seperti itu, mendokumentasikan apa yang Anda lakukan membantu sehingga Anda dapat menunjukkan kepada mereka bahwa "Anda melakukannya di Google" karena itu akan menjadi jawaban pertama yang akan mereka berikan kepada Anda.

Tapi bagaimanapun, esensi dari apa yang akan saya cari dalam seorang insinyur junior adalah melakukan uji tuntasnya dalam mencoba memecahkan masalah alih-alih mengharapkan jawaban yang ditangani kepadanya sepanjang waktu. Singkatnya, tunjukkan padaku kamu bisa menggunakan google.

1
luis.espinal

(1) Pikiran terbuka. Anda tidak ingin seseorang yang dilembagakan menggunakan bahasa X dan lingkungan Y untuk setiap proyek. Anda menginginkan seseorang yang dapat bermukim kembali ketika teknologi tertentu tidak akan menyelesaikan masalah dengan bersih dan menawarkan alternatif yang baik. Di atas semua itu, Anda menginginkan seseorang yang dapat menantang pemikiran konvensional dan menghasilkan solusi yang memotivasi bisnis. Anda mungkin mengalaminya sendiri, tetapi saya telah menemukan bahwa orang-orang terbiasa dengan suatu proses sehingga mereka tidak mengubahnya, tetapi mereka masih mengeluh tentang jumlah rasa sakit yang disebabkannya. Biasanya ketika saya tiba, saya melihat bagaimana meningkatkannya dan menawarkan solusi kepada manajer saya. Sekarang, saya juga mengatakan, bahwa orang tersebut harus "diplomatis" tentang saran-sarannya :)

(2) Keahlian pemodelan domain yang baik. Ini yang cukup besar yang saya temukan beberapa orang abaikan. Di beberapa tempat saya pernah bekerja, belajar tentang bisnis adalah 'membuat tangan Anda kotor' dan orang-orang menghindar ke masalah teknis murni seperti mengintegrasikan pemeriksa ejaan ke kontrol versi dll dan mereka tidak menginvestasikan banyak waktu untuk meningkatkan bisnis. Mampu melihat bisnis dan membuat model (penyederhanaan) dari itu dan mengomunikasikan bahwa kepada berbagai audiens baik itu diucapkan, visual (UML, SSADM atau apa pun) atau sedikit dari keduanya, Anda ingin seseorang dengan mentalitas itu.

Dua buku yang dapat saya rekomendasikan pada subjek adalah: The Passionate Programmer dan The Pragmatic Programmer . Kedua buku ini menawarkan saran yang bagus untuk para programmer junior dan senior.

1
Desolate Planet