Dari var b ke wawancara

Apakah Anda hampir menyelesaikan universitas atau perguruan tinggi? Anda diundang untuk wawancara, tetapi Anda pergi ke sana tanpa persiapan? Anda tidak memiliki pendidikan (lebih tinggi), tetapi ingin bekerja sebagai programmer atau di bidang TI? Sebagian besar tentang mencari pekerjaan, saya hanya akan berbicara untuk kota saya (Chelyabinsk) karena Saya sedang mencari kerja di sini.



Ketika saya mulai mencari pekerjaan, berada di tahun kedua saya di perguruan tinggi, saya tidak curiga berapa banyak perusahaan yang berbeda di kota kami. Dari coders ke Deep learning, dari itu. dukungan bitrix untuk pengembang game (seluler, jejaring sosial, desktop).

Saya berada di sekitar 8 wawancara (tidak termasuk online). Mereka semua berada di arah yang berbeda. Layout, pengembangan game desktop, pengembang web (c # +. Net), pengembang web (bitrix + php), front-end (js + react). Dia menolak sesuatu sendiri, mereka tidak membawanya ke suatu tempat. Saya tidak tahu banyak.

Lebih dekat ke titik, lebih dekat ke kode


Saya ingin memberi tahu apa yang mereka tanyakan pada wawancara semacam itu dan mengapa mereka melakukannya (untuk menjelaskan teknologi yang digunakan).

Mari kita mulai dengan yang sederhana. Tata letak


Dalam kebanyakan kasus, semua orang membutuhkan kecepatan tata letak. Mereka memberi saya dua tugas (dua perusahaan yang berbeda). Yang pertama adalah tata letak kartu produk di situs. Dalam satu jam saya perlu membuat tata letak seperti pada gambar, yang sebelumnya telah saya buang. Tidak ada yang rumit dalam tugas, tetapi salah satu syaratnya adalah Pixel Perfect (pixel to pixel). Saya punya beberapa kesalahan: ketidakcocokan dengan tata letak (tampilan yang salah dari jendela notifikasi dan logika efek hover).

gambar

Tugas kedua bahkan lebih mudah (pixel perfect tidak diperlukan). Ada Kerangka Acuan (Kerangka Acuan) dengan koreksi dan mereka perlu dilakukan di situs. Suntingan pada tampilan elemen, sesuatu untuk ponsel untuk mengkonfigurasi, mengubah indentasi, warna elemen.

Kenapa begitu Saat ini, ada sangat sedikit perusahaan yang mencari coders, jadi kecepatan itu penting. Lebih sedikit waktu untuk bekerja, lebih banyak pesanan, yang berarti lebih banyak keuntungan bagi perusahaan. Posisi seperti itu sering membutuhkan preprosesor (sass, pug) dan pembangun proyek (tegukan, webpack). Sedangkan untuk TK, Anda akan menerimanya di pekerjaan apa pun, dan Anda harus mengikutinya! TK berbeda untuk semua orang, dalam kebanyakan kasus itu adalah dokumen teks dengan daftar suntingan.

Programmer web (bitrix)


Ada 3 upaya di berbagai perusahaan. Dalam satu, mereka hanya menjelaskan kepada saya apa yang harus mereka lakukan. Dukungan untuk situs perusahaan (pengembangan untuk kebutuhan situs ini) + bekerja dengan server (menyiapkan dan menggunakan situs). Tidak ada satu pertanyaan pun yang dapat saya dan apa yang saya ketahui.

Tetapi pada wawancara kedua mereka hanya bertanya apa yang saya lakukan di tempat kerja terakhir, apa yang bisa saya lakukan dalam bitrix dan apa yang saya pelajari secara umum.

Nah dan yang paling menarik, ini adalah wawancara terakhir. Berikut adalah pertanyaan tentang keterampilan, dan deskripsi tugas perusahaan, dan tugas yang perlu dilakukan saat itu juga. Saya harap Anda bisa menceritakan tentang diri Anda, tetapi saya siap untuk berbagi pertanyaan. Saya akan segera memperingatkan Anda, tidak ada syarat dalam bahasa apa Anda perlu menulis kode, saya memilih JS. Hitung faktorial dari apa pohon biner itu dan bagaimana cara melewatinya, menyortir algoritma, mengakses basis data (kueri sederhana), class.php apa yang ada dalam bitrix.

Menghitung faktorial sangat sederhana, apa pun bahasa pemrogramannya. Laksanakan ini melalui rekursi. Tentang pohon biner sudah lebih rumit ... pohon biner (biner) = struktur data. Pohon ini digunakan untuk bekerja dengan data dalam jumlah besar, tidak mengherankan bahwa ketika melamar pekerjaan dengan toko online mereka hanya menanyakan hal itu. Penyortiran juga berlaku untuk bekerja dengan data. Nah, dan akses ke database, sebagian besar situs di jaringan menggunakan database. Ini adalah kesimpulan dari berita situs, produk, daftar artikel populer dan elemen lainnya.

Paling menarik, upaya untuk mendapatkan pengembang desktop


gambar

Saya akan segera menyebutkan topik umum: OOP dan pola.

Mengapa Ya, perkembangan modern tanpa OOP ... ini sangat aneh, seperti perkembangan tanpa pola. Ya, Anda dapat melakukan tugas kuliah sambil belajar dan tidak menggunakan pola + OOP, tetapi tanpa pemahaman minimal tentang kelas, warisan dan polimorfisme apa, saya tidak akan mempekerjakan Anda. OOP memungkinkan Anda untuk membagi program menjadi blok, dan pola, seperti SOLID, memungkinkan Anda untuk membagi kode menjadi blok independen, sehingga di masa depan Anda dapat dengan mudah menambahkannya.

Semua masalah lain bersifat spesifik, tergantung pada apa yang bekerja dengan perusahaan. Misalnya, jika ini adalah pengembang game, diharuskan menulis game uji menggunakan dokumentasi engine + yang mereka sediakan di sana. Saya diberi permainan 2D anak-anak (c # + XAML). Inti dari permainan: ada dua gelas, satu kosong, dan yang kedua ada pensil, ketika seorang pemain mengklik RMB, satu pensil bergerak ke gelas kosong dan memperbarui penghitung titik di layar. Itu sepele untuk menghitung pensil.

Saya juga punya pengalaman mewawancarai pengembang Unity, karena di sini sudah lebih sulit dan game diberi 3D, dan kode dipantau sehingga tidak ada sampah di dalamnya + adanya pola, saya masih memiliki proyek ini di github.

Kembali ke perusahaan, jika ini adalah pengembangan dari bagian back-end (c # +. Net) maka pertanyaannya adalah tentang platform .net dan perangkapnya. Jika ini adalah pengembangan aplikasi, maka Anda perlu tahu TDD (pengembangan melalui pengujian), SOLID, OOP.

Saya sudah menjelaskan tentang OOP dan pola. Mengapa bertanya tentang TDD? Sejujurnya, saya tidak tahu ... Saya tidak sepenuhnya memahami keuntungan dari pendekatan ini, tetapi beberapa perusahaan menggunakannya, tetapi saya harus menulis kode dengan cara ini hanya sekali. SOLID - ini adalah 5 pola yang digabungkan bersama, setelah saya ditanyai dalam sebuah wawancara tentang pola ini, saya langsung mulai mempelajarinya. Saya akan memberitahu Anda dengan jujur, sulit bagi saya untuk memahaminya, tetapi hasilnya adalah kode yang sangat gigih yang dapat ditambahkan tanpa merusak aplikasi yang sudah ditulis. Jika Anda tertarik dengan SOLID, cobalah menulis kalkulator menggunakan pola ini. Terapkan + dan - pertama, lalu tambahkan fitur lain ke kalkulator. Saya ingat menulis di c # (program konsol).

Mungkin ini yang bisa saya ceritakan tentang wawancara di kota saya. Ya, ada dua pengembang SPA (reactJS terutama diperlukan), dan pengembang game web (semua bereaksi sama, dalam banyak kasus, dan terkadang hanya JS asli), dan python, 1C, pengembang JAVA, dan lainnya. Saya sangat terkejut dengan berbagai teknologi dan bahasa yang digunakan. Itu saja untuk saya, mungkin. Sampai ketemu lagi.

Source: https://habr.com/ru/post/id430226/


All Articles