Saya mulai membangun jaringan di sekolah dan telah bekerja demi uang selama lebih dari 16 tahun. Saya mendapat banyak pekerjaan, di perusahaan besar dan kecil, kemudian saya membuka bisnis sendiri dan secara teratur mempekerjakan orang sendiri. Selama bertahun-tahun dan pengalaman, saya, dan banyak lainnya, mengembangkan intuisi wawancara.
Ini terjadi ketika tidak ada algoritma yang jelas. Anda hanya berbicara dengan seseorang dan memahami sesuatu untuk diri Anda sendiri. Anda bertanya apa yang kandidat lakukan di pekerjaan sebelumnya, Anda berpegang teguh pada topik - dan sekarang Anda hanya membahas topik teknik, pada tingkat yang hampir sama dengan rekan kerja. Jika percakapan berjalan lancar dan orang tersebut menyukainya, maka semuanya baik-baik saja.
Intuisi semacam itu hampir tidak dapat dipelajari dari buku dan teks, ia muncul dengan sendirinya melalui pengalaman. Bersama dia, ungkapan seperti "Saya tidak peduli tentang pengetahuan tertentu sebagai pandangan umum, kemampuan untuk mencari informasi, pemahaman, akankah kita bekerja sama" dan seterusnya.
Tetapi terkadang, agar tidak kehilangan pegangan, Anda masih perlu mengingatkan diri sendiri tentang pengetahuan apa yang harus dimiliki seorang insinyur dan pertanyaan apa yang bisa seobyektif mungkin untuk mengevaluasi orang yang Anda lihat pertama kali dalam hidup Anda.
Pertama, saya dengan cepat memeriksa semua resume
Sementara saya memeriksa tanggapan, saya memperhatikan kata kunci dan tempat kerja. Saya selalu membaca surat lamaran - banyak pelamar yang tersingkir pada tahap ini. Saya memposting posting pekerjaan tentang menemukan insinyur DevOps, dan saya mendapat tanggapan dari pengembang python, pengembang golang, atau kurir saat ini yang "sangat tertarik dan ingin mencoba."
Resume berlalu, yang menunjukkan pengalaman bekerja di lembaga pemerintah, sesuatu dalam semangat "administrator kategori pertama di Bank Sentral Federasi Rusia." Semua cerita bertele-tele tentang "administrasi sistem informasi" ini segera saya potong tanpa ragu-ragu. Deskripsi pekerjaan sebelumnya yang lebih resmi dan birokratis, semakin tinggi kemungkinan pelamar tersebut tidak melihat apa pun dalam hidupnya, kecuali untuk Windows dan pencadangan menggunakan antarmuka grafis.
Dalam pemilihan resume yang cepat, aturannya membantu: semakin banyak teknologi yang saya temui, semakin baik. Jika resume seseorang mengatakan MySQL, Linux, Postgres, Apache, dan sebagainya, kemungkinan besar ada. Orang tersebut setidaknya mendengar tentang teknologi dan, siapa tahu, bahkan mungkin bekerja dengannya sendiri. Tapi jujur ββsaja - Anda bisa menulis apa saja di resume Anda.
Saat wawancara, hal pertama yang saya lakukan adalah memeriksa database
Ketika saya menjadi orang tua yang lemah dan saya akan dipukul mundur dengan bodoh, saya akan mulai menggedor punggung semua orang yang tidak tahu jaring dengan tongkat! Ini harus dimiliki oleh setiap insinyur. Kita hidup di dunia di mana segala sesuatu terjadi dalam jaringan. Bahkan di sektor publik tertutup, ada kontur lokalnya. Dan ada seorang pengembang yang menulis beberapa layanan proxy atau membuat layanan yang bekerja dengan API, dan tidak memahami apa pun tentang API.
Saya tidak memerlukan pengetahuan khusus, saya tidak meminta untuk mengkonfigurasi MPLS untuk saya. Tapi apa itu subnet mask, apa itu alamat IP - di abad ke-21 semua spesialis IT harus tahu. Saya tidak tahu apa yang ada di kepala seseorang ketika dia tidak mengerti apa itu 127.0.0.1. Dia duduk di mesin lokal, dia memiliki layanan yang berjalan di mesin virtual. Layanan ini memiliki titik akhir 127.0.0.1, koneksi ke database. Karena ketidaktahuan, pahlawan kita melakukan hal yang sama. Akibatnya: "Saya tidak dapat terhubung ke pangkalan." Tentu saja, sial, itu tidak terhubung!
Jika seseorang memiliki sertifikat CCNA, oke, meskipun dia tidak lulus, tidak menerimanya secara fisik, tetapi siap - fakta ini sudah cukup bagi saya.
Misalnya, berikut teka-teki CCNA standar untuk memahami cara kerja jaringan
Ada dua sakelar dari jaringan yang berbeda, ada router di antara keduanya. Komputer A ingin mengirim data ke Komputer B.
Apa yang terjadi saat ini?: Β«, , , . , , MAC- , . , , . , Β».
Lalu saya bertanya di semua lapisan model OSI
Adakah yang pernah mendengar tentang Spanning Tree Protocol? Tentang protokol root, tentang lapisan IP? Oke, bagaimana cara kerjanya? Apakah dia mengerti bagaimana perutean terjadi? Nah, secara massal: tabel perutean, protokol perutean dinamis, lapisan transport TCP. Dan lain sebagainya.
Saya ingin mendengar perbedaan antara TCP dan UDP. Seorang spesialis yang baik akan menjawab saya mengapa sistem kritis (misalnya, Sistem Nama Domain) menggunakan protokol tanpa pengiriman pesan yang dijamin (UDP).
Jawabannya sederhana - begini lebih cepat. Saat mengatur sesi TCP, Anda dapat mengirim paket UDP 3 kali di sana dan menerimanya kembali. Dan tidak ada biaya overhead.
Saya mengajukan pertanyaan tentang DNS
Apa jenis rekamannya? Apakah lawan bicara saya tahu apa itu data MX, cara kerja spf, atau cara kerja DKIM.
Ya, pengetahuan ini mungkin tidak berguna dalam pekerjaan. Tetapi penting bagi saya untuk mengetahui apakah seseorang memahami esensi teknologi, apakah dia tertarik untuk membacanya. Apakah dia menambahkan beberapa catatan ke DNS dan google apa itu catatan spf, atau tidak?
Protokol HTTP benar-benar digunakan di mana-mana sekarang, dan saya menanyakannya
Saya mulai dengan menanyakan pertanyaan standar tentang perbedaan antara http versi 1.0, 1.1 dan versi dua. Saya tertarik dengan apa itu header dan mengapa header itu dibutuhkan. Bagaimana server web memahami bahwa ia menerima permintaan untuk host virtual tertentu, dan bukan untuk yang lain. Dan saya selalu menanyakan beberapa pertanyaan tentang Nginx.
Kemudian saya dengan lancar mengalihkan perhatian saya ke protokol TLS
Bagaimana cara kerja SSL \ TLS? Seorang insinyur perlu memahami ini setidaknya pada tingkat dasar - ada otoritas sertifikasi root, dia menandatangani sertifikat, dan sertifikat digunakan di suatu tempat.
Di TLS, saya biasanya tertarik dengan proses membuat koneksi. Mengapa kita membutuhkan kunci privat dan publik dan bagaimana mereka berinteraksi? Jika seseorang meraba-raba, maka saya mengajukan pertanyaan jebakan: apakah mungkin memiliki beberapa sertifikat berbeda pada satu IP-shnik?
Jawab di bawah spoiler, TLS-, HTTP-, - , HTTP-, . Nginx , , . TLS-, , TLS-. . , IP- SSL.
Pindah ke Linux dan BASH
Anda perlu mengetahui semuanya Unix, semua sistem mirip Unix. Anda harus bisa bekerja dengan Shell dan Bash, mengetahui perintah dasar. ls, mkdir, dll.
Nah, jika kandidat dapat membuat skrip sedikit di BASH, itu berarti dia mencoba mengotomatiskan cerita ini.
Di Linux, saya akan menanyakan cara mengganti baris di file dengan baris lain. Atau cara mengurai beberapa access.log di Nginx menggunakan BASH. Bagi seseorang untuk berbicara tentang awk, tentang kucing, tentang semacam, tentang segala sesuatu yang membantu pekerjaan cepat.
Ada file teks di mana-mana, Anda harus mengerjakannya dengan benar. Jika pelamar menawarkan untuk menyalinnya ke Excel dan melakukan sesuatu di sana, maka saya akan merasa malu.
Kemudian Anda perlu mencari tahu bagaimana keadaan dengan virtualisasi.
Virtualisasi konvensional, virtualisasi melalui hypervisor. Jika seorang kandidat mulai berbicara tentang paravirtualisasi, itu berarti dia mengetahui sesuatu.
Pertanyaan utama saya adalah: apa perbedaan antara virtualisasi container dan virtualisasi hypervisor normal? Baik jika seseorang membandingkan mana yang lebih baik, mana yang lebih buruk, mana yang cocok untuk digunakan.
Pindah ke kontainer
Mencari tahu apakah orang yang Anda ajak bicara telah bekerja dengan Docker? Apakah dia mengompilasi gambar, menulis file Docker, menggunakan pembuatan Docker, menerapkannya. Mengapa wadah ini dibutuhkan sama sekali dan bagaimana cara kerjanya? Apakah pemohon kami telah membahas sistem orkestrasi container Swarm atau Kubernetes? Anda dapat mengajukan seluruh blok pertanyaan, tetapi yang utama adalah memahami apakah orang tersebut melakukan pekerjaan dengan tangannya sendiri dengan wadah atau tidak?
Menanyakan tentang penerapan CI / CD
Saya tertarik pada daftar besar hal: bagaimana dia mengatur penerapan otomatis, bagaimana dia mengatur Integrasi Berkelanjutan? Bagaimana aplikasinya dirakit, apakah dia menggunakan sistem analisis kode (PVS-Studio, SonarQube). Bagaimana dia menulis tes, atau bagaimana dia mengintegrasikan tes yang ditulis oleh pengembang.
Apakah ia melakukan semacam pengujian integrasi pada rakitan ini? Apa yang terjadi selanjutnya dengan apa yang dia kumpulkan? Apakah itu entah bagaimana menambah artfects, atau apakah itu dikemas ke dalam kontainer buruh pelabuhan, didorong ke registri? Biarkan dia memberi tahu Anda sistem mana yang dia gunakan untuk mengatur proses CI / CD. Ini bisa berupa GitLab CI, Circle CI, dan beberapa solusi cloud. Mungkin Jenkins, yah, Anda tidak boleh melupakan tentang skrip yang ditulis sendiri di PowerShell.
Ceritakan bagaimana seseorang menyebarkan dan saya akan mengerti segalanya. Itu dapat diterapkan menggunakan Helm in Kubernetes, Ansible, skrip, atau sesuatu yang ditulis sendiri.
Tentang sistem manajemen konfigurasi
Kami berbicara Ansible paling sering. Karena kebanyakan orang mengenalnya. Jadi, mengapa kita membutuhkan role, bagaimana mengenkripsi dan menyimpan data rahasia, bagaimana mengupload password ke repositori Git? Dan hal-hal seperti itu.
Pelajari tentang kemampuan menulis kode
Memahami pengembangan penting untuk memahami bagaimana layanan berinteraksi, mengapa API, protokol otentikasi, otorisasi diperlukan. Sangat menyenangkan jika kandidat menulis sesuatu sendiri. Bahkan skrip dasar dengan Python atau Shell sudah cukup bagi saya. Yang penting bukanlah kode, tetapi tugas apa yang ingin diselesaikan orang tersebut, apa yang ingin dia capai.
Pengkodean diperlukan untuk mendukung infrastruktur, menulis skrip lokal untuk cadangan, pemantauan khusus, untuk menarik metrik dengan tenang. Sering terjadi dalam pekerjaan bahwa tidak ada solusi standar untuk beberapa tugas.
Pertanyaan wawancara terakhir adalah tentang penyimpanan database
SQL, NoSQL - apa perbedaannya, dengan apa Anda bekerja? Lebih sering saya bertemu orang-orang dengan pengalaman PostgreSQL, lebih jarang - MySQL. Saya mengajukan pertanyaan tentang indeks, apakah pemohon dapat menyiapkan replika, apakah ia dapat menyiapkan replikasi logis antar tabel atau hanya data. Dan apa yang akan dia pantau dalam kasus ini? Bagaimana cara mempercepat pangkalan?
Ngomong-ngomong, ini pertanyaan yang bagus. Misalkan alas sekarang duduk dan bertumpu pada disk. Dan tidak ada yang bisa dilakukan dengannya - tidak ada orang lain yang akan membeli server. Bagaimana Anda membuatnya bekerja lebih cepat sekarang?
Hanya...: fsync, , . Linux , , . , , . , . . . , .
Untuk menyimpulkan -
- jaringan
- Tingkat API
- lapisan transportasi TCP \ UDP
- Protokol DNS dan HTTP
- Linux
- container dan virtualisasi hypervisor
- CI / CD
- sistem manajemen konfigurasi
- wadah
- Database
Semua ini memungkinkan Anda untuk membuat gambaran lengkap tentang seseorang.
Hal terpenting dalam daftar saya adalah pengetahuan dasar. Jika Anda tidak tahu dasarnya, inilah waktunya untuk menyelesaikan tugas jaminan sosial Anda.
Jika seseorang tidak dapat menjawab saya apa itu subnet mask, atau tidak mengerti mengapa header diperlukan di HTTP, dalam banyak kasus pemohon seperti itu mendapat minus terbesar di notebook saya. Apakah Anda tidak penasaran untuk mengetahui bagaimana semua hal yang Anda tusuk kursor mouse ini bekerja?
Sangat sulit bekerja dengan orang-orang yang hanya mengulangi apa yang telah mereka pelajari secara mekanis, alih-alih memikirkan cara kerja semuanya. Seorang pemula yang tidak tahu Docker dapat dengan mudah mengetahuinya jika dia memiliki pemahaman tentang apa itu HTTP, TLS, dan jaringan.
Tapi akhirnya, poin terpenting - seluruh daftar ini tidak diperlukan untuk mengikutinya dalam wawancara nyata. Anda harus melalui daftar ini sendiri sebelum mempekerjakan orang.
Dan jika semuanya berhasil, hubungi kandidat untuk wawancara dan tanyakan satu pertanyaan kepadanya - apa kegagalan terbesar yang Anda buat di tempat kerja, bagaimana Anda memperbaikinya, dan kesimpulan apa yang Anda tarik dari kesalahan Anda.
Ketika seseorang ingin menceritakan sesuatu, sesi jaminan sosial seperti itu akan berlalu seperti percakapan persahabatan antara dua insinyur dengan bir.
Secara tradisi, saya mengundang Anda untuk bergabung dengan komunitas kami di dalam gerobak - di sana kami secara teratur mendiskusikan semua topik ini dan banyak lagi topik lainnya yang akan berguna baik saat wawancara maupun di tempat kerja.