Tentang peran tugas tes dalam kehidupan seorang pengembang

Berapa banyak wawancara teknis yang pernah Anda lakukan dalam hidup Anda?

Selama lima tahun terakhir, saya telah menghadiri 35 wawancara teknis dengan berbagai jenis dan kekhususan - mulai dari startup Kazakh yang melakukan pembelian daging secara kolektif untuk musim dingin hingga layanan fintech dan bank Jerman dan Amerika; dengan fokus pada pemrograman, penyampaian dan manajemen; terpencil dan di kantor; terbatas dan tidak terbatas waktunya; stres dan santai, dalam berbagai bahasa.

Hal ini, ditambah dengan ~20 wawancara yang saya lakukan sendiri sebagai pemberi kerja - jumlah yang cukup bagi saya untuk menjadi raja wawancara untuk melakukan pengamatan berikut (awalnya sama sekali tidak jelas) dan memantapkan diri saya di dalamnya: Saya yakin bahwa sebagian besar berkat begitu banyak wawancara, ini mulai terlihat seperti kebiasaan marjinal, saya mempelajari tumpukan saya di tingkat profesional dan menjadi spesialis kompetitif, meskipun faktanya saya sudah bekerja di pengembangan web selama 10 tahun.

Artikel ini ditujukan kepada para programmer yang masih berada di awal perjalanannya dan belum kehabisan kedalaman ilmunya. Di dalamnya, saya ingin memperluas tesis tentang manfaat pendidikan yang sangat besar dari tugas tes dan pertanyaan teknis yang diajukan dalam wawancara - dan mengundang semua orang ke bot telegram saya yang baru ditulis AktualisasiBot, di mana, menurut rencana saya, Anda dapat mengikuti wawancara teknis setidaknya setiap hari hingga wawancara berakhir. Dan agar tidak berakhir, Anda juga dapat berbagi tugas teknis menarik, pertanyaan, atau situasi berguna/menyenangkan yang dialami selama wawancara.

Saya akan memberi tahu Anda lebih banyak tentang bot di bawah ini, mari kita cari tahu terlebih dahulu mengapa sangat penting untuk mengetahui dan memahami jawaban atas pertanyaan dan tugas teknis ini, bahkan jika Anda telah berhasil menjalankan proyek freelance selama bertahun-tahun.

Mengapa kualitas pengetahuan dasar kita masih jauh dari yang diharapkan?

Wawancara teknis, jika Anda belum menjadi raja wawancara, merupakan tekanan serius bagi tubuh, seperti halnya pencarian pekerjaan secara umum - apakah Anda seorang spesialis pemula, switcher, atau pengembang yang pernah bekerja di salah satu perusahaan tersebut. tempat untuk waktu yang lama (dan di zaman kita β€œpanjang” dapat dianggap satu tahun).

Dalam banyak wawancara, ada faktor manusia yang memperparah stres ini. Pewawancara Anda mungkin bukan Alena Vladimirskaya, tetapi seorang programmer biasa, yang darinya sulit untuk mengharapkan tugas yang memadai dan evaluasinya, atau pemimpin tim yang keras yang akan menunggu saat untuk menurunkan semua keseriusannya dalam matanya menatapmu, menanyakan pertanyaan: Apa gunanya tangkas bagimu!?

Suatu hari, tanpa memberikan jawaban yang diperlukan, tetapi, seperti yang Anda pahami, jawaban yang tidak dapat diprediksi untuk pertanyaan ini, saya dibiarkan tanpa tawaran, yang membuat saya sangat senang.

Dengan mencoba menghindari stres dan gerakan-gerakan yang tidak perlu secara umum, kita menjauhkan diri tidak hanya dari pengungkapan ketidaktahuan kita tentang beberapa fitur dasar bahasa, tetapi juga dari mengurangi ketidaktahuan ini setidaknya sedikit.

Masalahnya adalah dalam praktiknya hanya ada sedikit tempat di mana kita bisa mendapatkan kelas soal ini.
Pengembang mana pun yang harus bekerja di beberapa tempat akan memastikan bahwa masalah mendasar atau kreatif yang diajukan dalam wawancara jarang ada hubungannya dengan apa yang ditangani programmer dalam kehidupan nyata - tidak ada rekursi, grafik, dan sistem kontrol elevator asinkron di planet ini dengan negatif gravitasi di lengan lain galaksi. Sayangnya.

Sehubungan dengan JavaScript asli saya, ada contoh yang bagus - jika React.JS tidak muncul, 98% pemrogram JavaScript akan terus hidup dalam ketidaktahuan tentang apa itu bind - lebih dari 20 tahun setelah kemunculannya - dan akan terus berlanjut menjadi bingung, menerima pertanyaan tentang hal itu saat wawancara, dan hanya mereka yang menemukan semua perpustakaan, kerangka kerja, dan modul yang sangat abstrak ini yang akan terus bekerja dengannya. Saat ini, berkat reaksinya, angka ini telah berkurang hingga 97%.

Jelas sekali, melihat β€œisolasi dari kenyataan” dari tugas-tugas ini, banyak pengembang mengabaikannya atau membuang waktu untuk membenamkan diri di dalamnya - dan terus menjalani rutinitas sehari-hari, yaitu, secara kiasan, berjalan melalui ladang ranjau pengembangan untuk produksi tidak hanya tanpa pendeteksi ranjau, tetapi juga tanpa mengetahui bahwa mereka berada di ladang ranjau.

Apa akibat dari kurangnya pengetahuan dasar suatu bahasa?

Jawaban atas pertanyaan ini tampaknya dangkal, tetapi untuk beberapa alasan sudah menjadi sifat manusia untuk selalu mendorong solusinya ke sudut yang jauh - dan ini memainkan peran yang menyedihkan dalam kehidupan programmer junior dan menengah, memperpanjang jalan mereka menuju ketinggian (dan kedalaman). ) pengetahuan bahasa beberapa tahun.

Kode aplikasi yang menggunakan kerangka kerja dan pustaka yang biasa mereka tulis setiap hari tidak dapat dianggap andal jika mereka menulisnya tanpa pemahaman yang memadai tentang berbagai aspek pelaksanaannya. Sebuah ilustrasi yang baik tentang hal ini dari dunia JavaScript adalah nasib perpustakaan JQuery, yang pernah menjadi mesin kemajuan dan saat ini, sebagai bidang pengetahuan yang tertutup, terpisah dari bahasa lainnya, mengambil tempat alaminya di dunia JavaScript. pasar - skrip semi-profesional yang ditulis dengan tergesa-gesa dan berfungsi sesuai kebutuhan sebagai hadiah untuk tata letak bootstrap cepat yang sama dari pekerja lepas berbiaya rendah.

Masa depan proyek yang dikembangkan dengan pendekatan yang tidak bertanggung jawab, meskipun karena ketidaktahuan, adalah masa depan yang membosankan dan berumur pendek: hilangnya banyak waktu secara tiba-tiba, kegagalan, kerugian finansial dan reputasi, dan sebagai akibatnya, menurunnya antusiasme untuk melanjutkan proyek. kerja sama.

Di sisi lain, bagi seseorang yang telah memilih jalur seorang programmer, tidak ada yang bisa menandingi kesenangan memahami apa yang dia lakukan. Memahami bahwa dia, seperti Baron Munchausen, sedang berjingkrak melewati ladang ranjau dengan menunggang kuda. Tak perlu dikatakan, majikan yang baik dapat dengan jelas melihat orang-orang berjalan sembarangan melalui ladang ranjau dan orang-orang yang terjebak dalam keragu-raguan untuk mengambil langkah dalam situasi di mana mereka dapat berlari dan melompat tanpa memikirkan apa pun?

AktualisasiBot

Setelah melihat manfaat wawancara, dan juga menyadari bahwa melakukan wawancara kosong tidak sepenuhnya etis, saya pikir akan sangat bagus untuk membuat bot di mana pemula atau pengembang yang sedang beralih ke bahasa lain dapat terlibat dalam pelatihan pendidikan tanpa harus menggunakan bahasa lain. wawancara nyata sejauh itu, di mana hal itu terjadi pada saya. Dan mengingat betapa programmer senang mendiskusikan dan membandingkan masalah yang harus mereka selesaikan - terutama jika itu adalah sesuatu yang tidak sepele - saya menyadari bahwa semuanya cocok, membuang semua keraguan dan voila.

Bot saat ini memiliki 3 fungsi sederhana:

  • Berlangganan bahasa/kerangka tertentu untuk menerima tugas baru untuk itu. Anda berlangganan dan saat tugas tiba, Anda menerimanya di buletin harian
  • Menerbitkan tugas atau tugas ujian - Dalam buku saya, mereka mengatakan berbagi itu peduli
  • Generator nama luar biasa yang dapat digunakan untuk memilih tanda tangan optimal untuk teks tugas yang Anda terbitkan, termasuk kamus feminin, bukan tanpa feminis

Saat ini bahasa berikut tersedia untuk dipilih: JavaScript, Java, Python, PHP, MySQL. Pilihannya agak terbatas karena keterbatasan pemahaman saya. Saya berharap dapat menambah daftar ini dengan bantuan komunitas habra.

Bot diluncurkan dalam format rock and roll murni; pembayaran untuk apa pun tidak diharapkan.
Anda dapat mengaksesnya menggunakan tautan ini: AktualisasiBot

Secara singkat tentang teknis pelaksanaannya

Bot ini adalah salah satu dari beberapa proyek kecil di mana saya menghadirkan versi publik pertama dari miniframework open source saya untuk mengembangkan bot dengan struktur yang kompleks, diberi nama Hobot dan tersedia di NPM untuk orang-orang hardcore.

Framework ini dibangun berdasarkan Telegraf.JS dan TypeScript, versi zero-zero-first dilengkapi dengan contoh penggunaan dapat dilihat di github dan segera mencobanya. Segera saya akan mengunggah versi 0.0.2, diperluas dan disisir untuk seseorang dari luar, dan akan mencurahkan artikel terpisah untuk itu (bagasi). Saya akan senang jika hal itu ternyata relevan bagi seseorang seperti bagi saya.

Jadi, berapa banyak wawancara yang harus Anda hadiri?
Saya yakin Anda memiliki sesuatu untuk diceritakan!

Sumber: www.habr.com

Tambah komentar