Pengaturcara, pergi ke temuduga

Pengaturcara, pergi ke temuduga
Gambar diambil dari video dari saluran "Amethysts MilitanΒ»

Saya bekerja sebagai pengaturcara sistem untuk Linux selama kira-kira 10 tahun. Ini adalah modul kernel (ruang kernel), pelbagai daemon dan bekerja dengan perkakasan dari ruang pengguna (ruang pengguna), pelbagai pemuat but (u-boot, dll.), perisian tegar pengawal dan banyak lagi. Malah kadangkala ia berlaku untuk memotong antara muka web. Tetapi lebih kerap berlaku bahawa saya terpaksa duduk dengan besi pematerian dan berinteraksi dengan pereka papan litar bercetak. Salah satu masalah dengan kerja sedemikian ialah agak sukar untuk menilai tahap kecekapan anda, kerana anda mungkin mengetahui satu tugas dengan sangat mendalam, tetapi anda mungkin tidak mengetahui yang lain sama sekali. Satu-satunya cara yang mencukupi untuk memahami ke mana hendak pergi dan arus yang ada sekarang ialah pergi ke temu duga.

Dalam artikel ini saya ingin meringkaskan pengalaman saya menemu duga untuk kekosongan sebagai pengaturcara sistem Linux, spesifikasi temu duga, pekerjaan, dan cara menilai tahap pengetahuan peribadi anda dengan berkomunikasi dengan majikan masa depan dan perkara yang tidak sepatutnya anda lakukan. mengharapkan daripadanya.

Artikel itu akan merangkumi pertandingan kecil dengan hadiah.

Ciri profesion

Seorang pengaturcara sistem, dalam bidang khusus di mana saya bekerja, adalah seorang generalis yang lengkap: Saya terpaksa menulis kod dan perkakasan nyahpepijat. Dan selalunya terdapat keperluan untuk menyolder sesuatu sendiri. Dari semasa ke semasa, pelarasan saya pada perkakasan kemudiannya dipindahkan kepada pemaju. Oleh itu, untuk bekerja di kawasan ini anda memerlukan asas pengetahuan yang cukup baik, baik dalam bidang litar digital dan dalam pengaturcaraan. Oleh sebab itu, temu duga untuk jawatan pengaturcara sistem selalunya kelihatan seperti mencari pakar elektronik.

Pengaturcara, pergi ke temuduga
Stesen kerja biasa untuk pengaturcara sistem.

Foto di atas menunjukkan tempat kerja biasa saya semasa menyahpepijat pemandu. Penganalisis logik menunjukkan ketepatan mesej yang dihantar, osiloskop memantau bentuk tepi isyarat. Selain itu, penyahpepijat jtag tidak disertakan dalam bingkai, yang digunakan apabila alat penyahpepijatan standard tidak dapat mengatasinya lagi. Dan anda perlu dapat bekerja dengan semua peralatan ini.

Ia sering berlaku bahawa lebih cepat dan lebih mudah untuk memateri semula beberapa elemen dan membetulkan sendiri ralat topologi daripada membawa produk ke pemasang. Dan kemudian stesen pematerian juga mengambil tempat tinggal di tempat kerja anda.

Satu lagi ciri pembangunan di peringkat pemacu dan perkakasan ialah Google tidak membantu. Selalunya anda perlu mencari maklumat tentang masalah anda, dan terdapat tiga pautan, dua daripadanya adalah soalan anda sendiri di beberapa forum. Atau lebih teruk lagi, apabila anda terjumpa soalan daripada lelaki miskin yang sama yang menanyakannya 5 tahun lalu pada senarai mel kernel dan tidak pernah menerima jawapan. Dalam kerja ini, sebagai tambahan kepada ralat dalam reka bentuk kedua-dua perkakasan dan perisian, ralat dokumentasi sering dihadapi - ini mungkin masalah yang paling teruk dan tidak menyenangkan. Kadangkala daftar diterangkan secara tidak betul, atau tiada penerangan untuk mereka sama sekali. Masalah sedemikian hanya boleh diselesaikan dengan memasukkan nombor rawak secara saintifik ke dalam daftar tertentu (semacam terbalik). Selalunya berlaku bahawa pemproses mengandungi beberapa fungsi, tetapi tiada siapa kecuali anda yang melaksanakan fungsi ini (terutamanya jika pemproses itu baru). Dan ini bermakna berjalan melintasi padang dengan garu, 70% daripadanya adalah untuk kanak-kanak. Tetapi apabila terdapat dokumentasi, walaupun dengan ralat, ini sudah menjadi kemajuan. Selalunya ia berlaku bahawa tiada dokumentasi sama sekali, dan ketika itu berjalan melalui ladang ranjau bermula apabila besi terbakar. Dan ya, saya juga berjaya menyelesaikan masalah sedemikian.

Temuduga

Pendapat saya ialah anda harus pergi untuk temu duga sekurang-kurangnya sekali setiap enam bulan, walaupun anda menyukai pekerjaan anda dan tidak mahu mengubahnya. Temu bual membolehkan anda memahami tahap anda sebagai pakar. Saya percaya wawancara yang paling berharga adalah yang gagal. Mereka adalah orang yang paling tepat menunjukkan kesesakan dalam pengetahuan anda yang perlu diperbaiki.

Satu lagi ciri menarik ialah kualiti temu duga. Ini adalah pemerhatian saya, dan ia bukan kebenaran, saya akui bahawa saya hanya bertuah. Jika temu bual mengikut senario:

  • beritahu kami tentang diri anda;
  • Kami mempunyai tugas sedemikian;
  • awak suka?

Dan jika selepas dialog ini anda suka antara satu sama lain, anda pergi bekerja, maka, sebagai peraturan, syarikat dan tugas ternyata sangat menyenangkan dan mencukupi. Jika temu bual menyerupai melalui 12 lingkaran neraka: temu bual pertama dengan HR, kemudian temu bual dengan sekumpulan pengaturcara, kemudian pengarah, lebih banyak kerja rumah, dll., maka sebagai peraturan ini adalah organisasi yang gagal di mana saya tidak bekerja lama sangat. Sekali lagi, ini adalah pemerhatian peribadi, tetapi sebagai peraturan, terlalu banyak birokrasi dan proses pengambilan pekerja yang berlarutan menunjukkan bahawa proses yang sama berlaku dalam syarikat. Keputusan dibuat secara perlahan dan tidak berkesan. Terdapat juga situasi yang bertentangan, apabila terdapat bulatan neraka temu duga, dan syarikat itu ternyata hebat, dan apabila, selepas tamparan di pergelangan tangan, syarikat itu ternyata menjadi paya, tetapi ini jarang berlaku.

Jika anda berpendapat bahawa senario: bertemu, memberitahu tentang diri anda dan mendapat pekerjaan, hanya wujud dalam syarikat kecil, maka tidak. Saya telah melihat ini dalam syarikat yang sangat besar yang menggaji lebih daripada ratusan orang dan diwakili di pasaran dunia. Ini adalah mekanisme biasa, terutamanya jika anda mempunyai rekod prestasi yang kaya dan mempunyai peluang untuk menghubungi majikan anda sebelum ini dan bertanya tentang anda.

Bagi saya, ini adalah penunjuk yang sangat baik bagi syarikat apabila mereka meminta untuk menunjukkan contoh projek dan kod mereka. Tahap latihan pemohon segera ditunjukkan. Dan, bagi saya, dari sudut pemilihan calon, ini adalah kaedah pemilihan yang paling berkesan berbanding temuduga tunjuk. Malah, anda boleh gagal dalam temu duga kerana keterujaan, atau, sebaliknya, keluar dengan adrenalin. Tetapi dalam kerja sebenar, anda tidak dapat mengatasi tugas sebenar. Dan saya juga menghadapi ini apabila saya menemu bual orang sendiri. Seorang pakar datang, menunjukkan dirinya cemerlang, saya suka dia, dia suka kami. Dan saya bergelut dengan masalah paling mudah selama sebulan, dan sebagai hasilnya, pengaturcara lain menyelesaikannya dalam beberapa hari. Saya terpaksa berpisah dengan pengaturcara itu.

Saya sangat menghargai tugas pengaturcaraan dalam temu duga. Dan perkara-perkara yang perlu diselesaikan semasa mesyuarat, di bawah tekanan, dan kerja rumah. Yang pertama menunjukkan betapa anda bersedia untuk menyelesaikan masalah dengan cepat dan tepat dalam situasi yang tertekan dan kecemasan. Yang kedua menunjukkan tahap kecekapan dan keupayaan anda untuk mencari maklumat dan menyelesaikan masalah semasa.

Pekerjaan paling menarik yang saya ada adalah di kompleks pertahanan negara kita. Dalam proses kerja, saya terpaksa menyelesaikan masalah hebat yang tidak pernah diimpikan oleh pengaturcara komersial. Superkomputer, mereka bentuk penghala, pelbagai sistem pertempuran nod - ini sangat menarik. Apabila semasa perarakan anda melihat kompleks yang menyimpan kod anda, ia sangat bagus. Anehnya, temu bual dengan syarikat sedemikian biasanya sangat mudah, secara literal datang, seperti itu, diterima (mungkin spesifik tentera, yang tidak suka bercakap terlalu banyak), ditumpangkan. Cabaran yang saya hadapi di sana sungguh menarik dan mencabar. Dengan pengalaman, ternyata mereka bagus untuk belajar menjadi pengaturcara sistem yang berkualiti tinggi. Terdapat juga keburukan, dan ini bukan gaji yang rendah. Pada masa ini, gaji di kompleks pertahanan agak lumayan, dengan bonus dan faedah. Sebagai peraturan, terdapat banyak birokrasi, waktu bekerja yang panjang, pekerjaan tergesa-gesa yang tidak berkesudahan, dan bekerja di bawah tekanan yang besar. Dalam kes tertentu, kerahsiaan tidak boleh diketepikan, yang menambah masalah tertentu untuk melancong ke luar negara. Plus, sudah tentu, kezaliman bos, dan ini, malangnya, juga berlaku. Walaupun pengalaman saya bekerja dengan wakil pelanggan sangat menyenangkan. Ini adalah gambaran kolektif tiga institut penyelidikan dan syarikat berbeza yang berkaitan dengan perintah pertahanan negara.

Tugasan temuduga

Untuk mengelakkan salah faham dan untuk tidak mendedahkan syarikat yang saya temu bual, saya tidak akan menggoda nasib dan menyatakan butiran mereka. Tetapi saya bersyukur untuk setiap temu bual, untuk masa yang orang habiskan untuk saya, untuk peluang untuk melihat diri saya dari luar. Saya hanya boleh mengatakan bahawa tugas itu adalah untuk syarikat antarabangsa besar yang diwakili di negara yang berbeza.

Saya akan memberitahu anda perkara yang paling menarik: apakah tugasan yang diberikan semasa temu duga. Secara umum, soalan yang paling biasa untuk kekosongan pengaturcara sistem dan pengaturcara mikropengawal adalah operasi bit, dalam semua variasi yang mungkin. Oleh itu, persiapkan diri anda dengan sebaiknya dalam bidang ini.

Topik kedua yang paling polarisasi ialah papan tanda, ini sepatutnya melompat dari gigi anda. Supaya mereka membangunkan anda di tengah malam dan anda boleh memberitahu dan menunjukkan segala-galanya.

Saya mencuri soalan daripada beberapa temu bual dalam kepala saya, dan saya akan membentangkannya di sini, kerana saya mendapati ia agak menarik. Saya sengaja tidak memberikan jawapan kepada soalan-soalan ini supaya pembaca boleh menjawab sendiri soalan-soalan ini di dalam komen dan mempunyai sedikit bedak apabila melalui temuduga sebenar.

Soalan No 1

I. Pengetahuan tentang SI. Apakah maksud entri berikut:

const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;

Adakah semua entri betul?

II. Mengapakah program ini akan menimbulkan kesalahan segmentasi?

int main ()
{
       fprintf(0,"hellon");
       fork();
       return(0);
}

III. Untuk menjadi bijak.

Terdapat sebatang kayu sepanjang satu meter. Sepuluh semut jatuh ke atasnya secara rawak, merangkak ke arah yang berbeza. Kelajuan pergerakan seekor semut ialah 1 m/s. Jika seekor semut bertemu semut lain, ia berpusing dan merangkak ke arah yang bertentangan. Apakah masa maksimum yang anda perlukan untuk menunggu semua semut jatuh dari kayu?

Temu bual seterusnya adalah kegagalan untuk saya, dan saya menganggapnya paling berguna dalam amalan pengaturcaraan saya. Ia menunjukkan kedalaman ketidakcekapan saya. Sebelum temu bual ini, saya sudah biasa dengan setiap soalan ini dan ia sentiasa muncul dalam latihan saya, tetapi entah bagaimana saya tidak mementingkan mereka, dan oleh itu, saya tidak memahaminya dengan baik. Oleh itu, saya gagal dalam peperiksaan ini dengan memalukan. Dan saya sangat bersyukur kerana kegagalan seperti itu berlaku; ia mempunyai kesan yang paling menyedihkan kepada saya. Anda fikir anda seorang pakar yang hebat, anda tahu reka bentuk litar, antara muka dan bekerja dengan kernel. Dan kemudian anda mempunyai soalan sebenar dan anda terapung. Jadi mari kita lihat.

Soalan Temuduga #2

Isu perkakasan.

  • Cara panggilan sistem linux diatur dalam bahasa pemasangan pada pemproses ARM, pada x86. Apakah perbezaannya?
  • Apakah alat penyegerakan yang ada? Alat penyegerakan yang manakah boleh digunakan dalam konteks gangguan, yang tidak boleh dan mengapa?
  • Apakah perbezaan antara bas i2c dan bas spi?
  • Mengapakah terdapat terminator pada bas i2c dan apakah nilainya?
  • Bolehkah antara muka RS-232 berfungsi HANYA pada dua wayar: RX dan TX? Di sini saya akan memberikan jawapan: Ternyata ia buruk, pada 9600, tetapi boleh!!!
  • Dan sekarang soalan kedua: kenapa?
  • Apakah cara terbaik untuk mengatur talian isyarat dan kuasa dalam papan berbilang lapisan dan mengapa? Kuasa dalam lapisan, atau garis isyarat di dalam lapisan? (Persoalannya secara amnya semata-mata mengenai reka bentuk litar).
  • Mengapakah garisan pembezaan mempunyai trek yang bersatu di mana-mana?
  • bas RS-485. Biasanya terdapat terminator pada talian sedemikian. Walau bagaimanapun, kami mempunyai litar bintang, dengan bilangan modul pemalam yang berubah-ubah. Apakah cara untuk mengelakkan perlanggaran dan gangguan yang harus digunakan?
  • Apakah pokok merah dan binari?
  • Bagaimana untuk bekerja dengan cmake?
  • Soalan tentang membina yocto Linux.

Objektif temuduga ini:

1. Tulis fungsi yang menyongsangkan kepada uint32_t semua bit. (bekerja dengan bit sangat popular semasa temu duga, saya mengesyorkannya)
2.

int32_t a = -200;
uint32_t b = 200;
return *(uint32_t) * (&a)) > b;

Apakah fungsi ini akan kembali? (penyelesaian di atas kertas, tanpa komputer)

3. Fungsi untuk mengira min aritmetik bagi dua nombor int32_t.

4. Apakah kaedah output dalam program, termasuk. ke dalam aliran ralat.

Pemilihan ketiga adalah agak baru-baru ini, dan saya tidak akan terkejut jika masih terdapat soal selidik seperti itu di sana, jadi saya tidak akan mendedahkan syarikat itu supaya tidak mendedahkannya... Tetapi secara umum saya akan memberi contoh soalan yang mungkin, dan jika anda mengenali soalan anda, maka saya bertanya khabar :).

Soalan Temuduga #3

  1. Contoh kod traversal pokok diberikan; adalah perlu untuk memberitahu apa yang sedang dilakukan dalam kod ini dan menunjukkan ralat.
  2. Tulis satu contoh utiliti ls. Dengan pilihan paling mudah "-l".
  3. Berikan contoh cara membuat pautan statik dan dinamik. Apakah perbezaannya?
  4. Bagaimanakah RS-232 berfungsi? Apakah perbezaan antara RS-485 dan RS-232? Apakah perbezaan antara RS-232 dan RS-485 dari sudut pandangan pengaturcara?
  5. Bagaimanakah USB berfungsi (dari sudut pandangan pengaturcara)?
  6. Terjemahan teks teknikal dari bahasa Rusia ke bahasa Inggeris.

Temuduga yang berjaya bukanlah jaminan untuk berjaya

Bab ini mungkin bukan untuk pengaturcara (walaupun untuk mereka juga), tetapi lebih kepada HR. Syarikat yang paling mencukupi tidak melihat dengan teliti keputusan temu duga. Adalah perkara biasa untuk membuat kesilapan; selalunya mereka melihat bagaimana seseorang itu tahu cara menyelesaikan masalah dan alasan.

Salah satu masalah utama ialah calon berjaya menyelesaikan masalah semasa temu duga, menunjukkan dirinya sebagai pakar yang sangat baik, tetapi gagal pada tugas sebenar yang pertama. Saya tidak akan berbohong, ini juga berlaku kepada saya. Saya berjaya melalui semua lingkaran neraka, menyelesaikan semua tugas ujian, tetapi dalam keadaan sebenar kerja itu ternyata terlalu sukar kerana kekurangan pengalaman yang mudah. Memasuki kapal bukanlah tugas yang paling sukar. Perkara yang paling sukar adalah untuk kekal di dalam syarikat ini.

Oleh itu, saya mempercayai lebih banyak syarikat yang menjalankan temu duga mudah dengan calon dan berkata: selepas bulan pertama bekerja, ia akan menjadi jelas sama ada anda sesuai untuk kami atau tidak. Ini adalah pendekatan yang paling sesuai, ya, mungkin sedikit mahal, tetapi segera jelas siapa itu.

Terdapat satu lagi pilihan untuk temu duga: apabila anda berjaya lulus, tetapi berdasarkan keputusan temu duga anda memahami bahawa majikan tidak mencukupi. Saya segera menolak kerja jika ditawarkan bekerja sebagai usahawan individu, menjanjikan pendapatan yang besar. Ini adalah satu bentuk pengelakan cukai untuk organisasi yang beroperasi, dan mengapa masalah majikan perlu membimbangkan saya sebagai seorang pengaturcara? Pilihan lain ialah pelbagai agensi kerajaan. Saya mempunyai temu duga, akibatnya saya ditawarkan gaji yang baik, tetapi mereka mengatakan bahawa pengaturcara sebelumnya berhenti, jatuh sakit, meninggal dunia, makan malam kerana beban kerja, dan hari bekerja anda bermula pada pukul 8 pagi . Dari tempat sebegitu juga dia berlari sehingga tumitnya berkilauan. Ya, HR, sila ambil perhatian bahawa pengaturcara bersedia untuk menolak walaupun pekerjaan yang paling lazat jika hari bekerja perlu bermula awal pagi.

Pada akhirnya, saya akan memberikan video pemilihan pengaturcara yang sangat baik, tangkapan skrin yang diberikan pada permulaan artikel ini. Saya juga mempunyai temuduga sedemikian lebih daripada sekali. Jika anda melihat kezaliman pada peringkat soalan, maka hormati diri anda, bangun, ambil barang anda dan pergi - ini adalah perkara biasa. Jika HR dan pengurus menegaskan diri mereka atas perbelanjaan anda semasa temu duga, ini menunjukkan bahawa syarikat itu toksik dan anda tidak sepatutnya bekerja di sana melainkan anda suka bos yang tidak mencukupi.

Penemuan

Pengaturcara, pergi ke temuduga! Dan sentiasa cuba untuk naik pangkat. Katakan jika anda mendapat wang N, kemudian pergi temu duga sekurang-kurangnya N*1,2, atau lebih baik N*1,5. Walaupun anda tidak mengambil kekosongan ini dengan segera, anda akan memahami perkara yang diperlukan untuk tahap gaji ini.
Pemerhatian saya telah menunjukkan bahawa pengetahuan yang baik tentang bahasa Inggeris, pengalaman yang cukup kaya dalam industri dan keyakinan diri membuat keputusan. Yang terakhir adalah kualiti utama, seperti di mana-mana dalam kehidupan. Sebagai peraturan, calon yang lebih yakin boleh menunjukkan prestasi yang lebih baik dalam temu duga, walaupun dengan lebih banyak kesilapan, daripada pemohon yang cemerlang, tetapi lebih pemalu dan proaktif. Semoga berjaya dengan temuduga anda!

Pertandingan P/S

Jika anda mempunyai contoh masalah yang menarik yang telah dimuatkan oleh HR kepada anda, maka dialu-alukan dalam ulasan. Kami telah menyediakan pertandingan kecil - syaratnya mudah: anda menulis tugas paling luar biasa yang anda lakukan semasa temu bual, pembaca menilainya (tambah), dan selepas seminggu kami merumuskan keputusan dan memberi ganjaran kepada pemenang dengan hadiah yang menyeronokkan.

Pengaturcara, pergi ke temuduga

Pengaturcara, pergi ke temuduga

Sumber: www.habr.com

Tambah komen