Di pekerjaan saya, ada's benar-benar tidak ada review kode, tidak ada pengujian, tidak ada kontrol versi, tidak ada organisasi arsitektur perangkat lunak, tidak ada konsep "tes vs server produksi", tidak ada kode komentar. Pada kenyataannya, semua ini secara eksplisit dilarang dan saya sering mendapatkan "masalah" untuk menulis komentar atau menggunakan modular kecil fungsi - PM saya mengatakan itu's tidak layak ruang disk.
Setiap kali saya'm wawancara di tempat lain, saya'm biasanya bertanya tentang bagaimana saya bekerja dan bagaimana saya pergi tentang pengujian atau verifikasi/validasi. Aku merasa seperti jika saya adalah pewawancara dan calon dibesarkan yang ada's semua ini terjadi,'d menjadi bendera merah besar dan I'd hanya membuang aplikasi mereka. Bagaimana saya harus pergi untuk membahas hal ini dalam wawancara?
Dalam hal cara persiapan untuk wawancara, hal terbaik untuk dilakukan adalah untuk meneliti topik ini sendiri, dan bekerja pada proyek-proyek pribadi yang menggunakannya.
Misalnya, software pertama saya pekerjaan yang sama, kita tidak't terlibat dalam praktik-praktik yang baik dan mereka sulit untuk melaksanakan. Jadi saya bekerja pada proyek-proyek swasta, di mana aku bisa melakukan apa yang saya mau dan punya waktu. Di orang-orang proyek-proyek yang saya akan benar merencanakan hal-hal, saya akan mengatur src kontrol dengan benar, saya akan menguji semua kode saya, saya akan komentar kode dan mencoba untuk membuat hal itu dapat dimengerti, dapat digunakan kembali dan terukur, dll.. Sehingga ketika datang waktu untuk berbicara tentang praktik terbaik dalam wawancara, saya memiliki beberapa pengetahuan dan pengalaman di dalamnya, bahkan jika saya tidak't telah terkena mereka pada pekerjaan yang sebenarnya saya.
Saya cenderung untuk menemukan bahwa pewawancara don't ingin contoh-contoh spesifik dari praktek-praktek dari pekerjaan anda saat ini, mereka hanya ingin tahu bahwa anda're menyadari mereka dan apa yang mereka libatkan. Anda mungkin terhalang dari yang terkena mereka dalam pekerjaan anda, tetapi tidak ada yang menghentikan anda meneliti dan menggunakan mereka di luar jam tersebut. It'll pasti bernilai waktu, karir bijaksana. Dan proyek-proyek pribadi yang menunjukkan praktik terbaik ini adalah besar untuk portofolio anda, bahkan jika mereka're kecil.
Jika mereka benar-benar menekan super keras untuk pekerjaan saat ini contoh-contoh, maka saya secara pribadi hanya akan mengatakan bahwa pekerjaan anda saat ini doesn't benar-benar melakukannya, sehingga anda mengambil upaya untuk belajar/praktek mereka sendiri. Yang menunjukkan inisiatif dan dapat memberikan mereka dengan konteks tambahan mengapa anda'kembali mencari tempat lain.
I've telah dalam situasi ini baru-baru ini. Pada sebelumnya saya manggung, kami bekerja pada basis kode lama (beberapa java 1.2/1.3 sesuai kode); kode itu penuh dengan keajaiban angka dan magic string yang digunakan untuk mengakses Objek
referensi dari Vektor
's yang kemudian cor; tidak ada unit test, hampir setiap pengujian integrasi, tidak ada itu otomatis; sedikit atau tidak ada waktu yang dialokasikan untuk refactoring kode lama; tidak ada kode review; komentar esoteris di alam...
Ketika saya merasa sudah waktunya bagi saya untuk pergi ke padang rumput hijau, saya ditanya pertanyaan ini, saya melanjutkan tentang bagaimana saya ingin bekerja, dan bagaimana hal ini kurangnya kepuasan dalam pekerjaan pribadi saya etika adalah bagian dari alasan saya cari di tempat lain.
Saya menjelaskan apa karakteristik penting untuk saya di kode kualitas (robustness dari menyeluruh pengujian otomatis, keterbacaan dari variabel dan fungsi penamaan, membagi kode menjadi sekecil mungkin fungsi alih dari 1000's dari garis panjang blok mengulangi kode, dll) dan saya mendarat saya saat manggung.
Seperti @Sascha ditunjukkan dalam jawaban mereka, tidak perlu untuk menyalahkan anda saat ini/majikan sebelumnya. It's tentang persepsi yang saling bertentangan dari praktek-praktek terbaik yang mencegah anda dari menemukan kepuasan dalam pekerjaan yang anda lakukan.
Anda're framing dan mendekati hal ini dengan cara yang salah.
Fakta bahwa anda've punya pengalaman aktual dengan praktek-praktek buruk dan bahaya yang mereka lakukan adalah sebuah baik. Anda've melihat itu, belajar dari itu, dan tahu lebih baik daripada untuk melewatkan semua praktek-praktek yang "memperlambat anda" dan "menghentikan anda dari mendapatkan barang-barang dilakukan".
Apa's lebih, dalam waktu anda sendiri anda've mengulurkan tangan dan membaca segala sesuatu yang anda dapat tentang praktek-praktek ini, dilaksanakan mereka di sisi proyek, dan dapat berbicara sampai orang-orang bosan mendengar semua tentang manfaat yang mereka melakukan bawa untuk setiap proyek dan akan membawa spesifik anda, tempat kerja saat ini's proyek-benar?
Saat ini sedang terbuka untuk praktek-praktek buruk (penting - tidak berikut mereka - seperti's tidak pilihan anda) sebagai pengalaman, dan pengetahuan anda tentang praktik yang lebih baik dan mereka nilai sebagai sesuatu yang anda've belajar dari pengalaman itu.
Tidak hanya akan ini tidak hadir setiap bendera merah kepada seorang pewawancara, itu mungkin akan datang lebih baik dari orang lain yang hanya memiliki pengalaman praktik yang baik, tapi hanya membawa mereka untuk diberikan dan mungkin tidak memiliki sesuatu yang sangat menarik untuk mengatakan tentang mereka (Apa, yang? Ya yakin, bahwa's hanya apa yang setiap orang melakukan yang benar?).
Saya telah dalam situasi ini dan dibingkai itu seperti saya memiliki mengemukakan banyak praktik yang lebih baik tetapi tidak pernah diizinkan untuk menerapkan mereka, yang merupakan bagian dari alasan mengapa saya ingin pindah.
Yang menunjukkan sebuah kesadaran tentang masalah ini dan untuk memperbaiki hal itu, dan keinginan untuk bekerja untuk standar yang lebih tinggi.
Membuat "mengapa saya percaya bahwa perusahaan saya melakukan wawancara dengan lebih besar dan lebih baik dari tempat kerja saya saat ini" jawabannya.
Setiap kali saya'm wawancara di tempat lain, saya'm biasanya bertanya tentang bagaimana saya bekerja dan bagaimana saya pergi tentang pengujian atau verifikasi/validasi.
Bukan "bagaimana saya pergi" menjawab "bagaimana saya berniat untuk pergi". Negara yang jelas-jelas memproduksi wajar kualitas perangkat lunak adalah investasi dalam waktu dan pelatihan yang kadang-kadang dianggap tidak wajar karena latar belakang perusahaan dan jenis proyek, tetapi anda lebih memilih untuk bekerja di lingkungan dan pada proyek-proyek di mana hal-hal yang berhubungan dengan profesional SW dieksekusi. Jika itu benar, katakan bahwa ini adalah reputasi perusahaan anda melakukan wawancara dengan.
aku merasa seperti jika saya adalah pewawancara dan calon dibesarkan yang ada's semua ini terjadi,'d menjadi bendera merah besar dan I'd hanya membuang aplikasi mereka. Bagaimana saya harus pergi untuk membahas hal ini dalam wawancara?
Don't membawa anda saat ini lingkungan kerja. Ini tidak ada hubungannya dengan anda bekerja di tempat anda melakukan wawancara di.
Ketika pewawancara menanyakan pertanyaan-pertanyaan tersebut, mereka meminta proses berpikir anda, bahwa anda memahami konsep-konsep dan anda telah berlatih sebelumnya. Saya akan mengatakan "Biasanya, saya suka melakukan X,Y, dan Z" dan TIDAK menyebutkan bahwa anda saat ini lingkungan kerja tidak't melakukan hal-hal ini.
Jika pewawancara benar-BENAR mendorong untuk bagaimana pekerjaan anda melakukan hal-hal, aku'd mengatakan "Yah aku ingin melakukannya dengan cara ini, tapi saya saat ini bekerja di lingkungan doesn't menggunakan praktek-praktek terbaik, dan yang's salah satu alasan utama saya mencari pekerjaan baru."
I'm biasanya bertanya tentang bagaimana saya bekerja dan bagaimana saya pergi tentang pengujian atau verifikasi/validasi
Menggambarkan pekerjaan anda saat ini praktik memang akan menaikkan bendera merah. Masalahnya adalah, anda benar-benar tidak memiliki keterampilan kebanyakan perusahaan mencari. Membaca tentang TDD/Git/Apapun dan membangun proyek mainan di waktu luang anda menggunakan itu adalah satu hal. Menggunakan TDD/Git/Apapun dalam pekerjaan anda untuk terakhir X tahun lagi.
Realistis, anda harus mencoba untuk mendapatkan pekerjaan baru di sebuah perusahaan dengan waras kerja praktek yang ingin memiliki anda di papan, sampai beberapa tahun dari pengalaman yang ada, kemudian oleskan pada suatu perusahaan anda ingin bekerja di.
Anda dapat mencoba untuk mengembangkan beberapa keterampilan anda sendiri dengan melakukan OSS proyek-proyek di waktu luang anda, namun perlu diingat bahwa mereka harus benar-benar baik. Banyak pengembang menggunakan coding yang baik praktek di tempat kerja dan memiliki sesuatu di Github saat ini, dan anda akan harus bersaing dengan orang-orang ketika anda terapkan.
Jika anda ingin praktek prinsip-prinsip yang anda percaya yang unggul sehingga anda mendapatkan pengalaman dengan mereka, maka saya sangat merekomendasikan menemukan sebuah proyek Open Source yang menarik minat anda, dan memberikan kontribusi. Tidak hanya akan anda mendapatkan latihan yang lebih baik praktek rekayasa dan saksi superioritas mereka tangan pertama, tetapi anda juga akan memiliki sesuatu untuk menunjukkan untuk wawancara anda sirkuit.
Tentu saja, pihak swasta proyek bekerja dengan baik juga, tapi kurangnya manfaat dari berada di sebuah tim insinyur lain yang memberikan umpan balik dan perspektif yang berbeda.
Jawaban yang jujur dari seorang pria yang telah menghabiskan 20 tahun merancang dan melaksanakan VLS industri perangkat lunak sistem dengan 100 ribuan hingga jutaan baris kode dan 1000 meter persegi diagram UML dan 10s ribuan halaman dokumentasi, termasuk kasus uji sebagai berikut ketat FDA pedoman bagi industri farmasi untuk membuat UHA (Ultra-High-Availability) 9-oleh-9 (diharapkan handal hingga saat 99.9999999%) sistem perangkat lunak?
Kecuali jika anda melamar untuk perangkat lunak manajemen proyek - posisi itu tidak penting. Tunjukkan anda adalah seorang insinyur perangkat lunak yang baik yang bisa menulis dengan baik kode dan cukup cerdas untuk cepat belajar KAMI "praktek-praktek terbaik" - dan anda baik untuk pergi.
Bakat sejati untuk merancang dan menulis perangkat lunak adalah sesuatu yang benar-benar unik - birokrasi dan struktur perusahaan (termasuk komunikasi dan dokumentasi standar) berbeda dari satu perusahaan ke perusahaan lain dan tidak sulit untuk belajar. Terutama bahwa anda tidak sedang disewa untuk melaksanakan atau memimpin struktur itu, hanya untuk mengikuti itu.
Post Scriptum
Komentar di modern kode ADALAH buang-buang waktu. Anda harus menulis sendiri kode seperti komentar
publik CapsuleOrder GetOrderByPoNumber(String PoNumber) {}
Segala sesuatu yang lain harus di SEBENARNYA sistem dokumentasi.