Mengenai peranan tugas ujian dalam kehidupan pembangun

Berapa banyak temu bual teknikal yang pernah anda alami dalam hidup anda?

Sepanjang lima tahun yang lalu, saya telah menghadiri 35 temu bual teknikal dari semua jenis dan spesifik yang boleh dibayangkan - daripada syarikat permulaan Kazakhstan untuk pembelian daging secara kolektif untuk musim sejuk kepada perkhidmatan dan bank fintech Jerman dan Amerika; dengan berat sebelah dalam pengaturcaraan, penyampaian dan pengurusan; jauh dan di pejabat; terhad dan tidak terhad dalam masa; tekanan dan santai, dalam bahasa yang berbeza.

Ini, ditambah dengan ~20 temu bual yang saya lakukan sendiri sebagai majikan, sudah cukup untuk menjadikan saya raja temu duga untuk membuat pemerhatian berikut (pada mulanya benar-benar tidak jelas) dan menetapkan diri saya di dalamnya: Saya yakin bahawa, secara keseluruhannya bahagian, terima kasih kepada banyak temu bual, mula kelihatan seperti tabiat kecil, saya belajar timbunan saya secara profesional dan menjadi pakar berdaya saing selepas sudah bekerja 10 tahun dalam pembangunan web.

Artikel ini ditujukan kepada pengaturcara yang berada di awal perjalanan mereka dan masih belum kehabisan pengetahuan yang mendalam. Di dalamnya, saya ingin mengembangkan tesis tentang manfaat pendidikan yang sangat besar daripada tugasan ujian dan soalan teknikal yang ditanya dalam temu bual - dan menjemput semua orang ke bot telegram saya yang baru ditulis ActualizeBot, di mana, mengikut rancangan saya, anda boleh mengambil temuduga teknikal sekurang-kurangnya setiap hari, sehingga mereka kehabisan. Dan supaya ia tidak berakhir, anda juga boleh berkongsi tugas teknikal yang menarik, soalan atau situasi berguna / menyeronokkan yang dialami dalam temu duga.

Saya akan memberitahu anda lebih lanjut tentang bot di bawah, mari kita fahami dahulu mengapa sangat penting untuk mengetahui dan memahami jawapan kepada soalan dan tugas teknikal ini, walaupun anda telah berjaya mengusahakan projek bebas selama lebih daripada setahun.

Mengapakah kualiti pengetahuan asas kita meninggalkan banyak yang diingini?

Temu bual teknikal, jika anda belum menjadi raja temu duga, adalah tekanan yang serius untuk badan, serta mencari pekerjaan secara umum - sama ada anda seorang pakar baru, penukar, atau masa yang lama (dan untuk " lama” pada masa kita setahun akan turun) pemaju yang telah bekerja di satu tempat.

Dalam banyak temu bual, tekanan ini mempunyai faktor manusia yang memburukkan. Penemuduga anda mungkin bukan Alena Vladimirskaya, tetapi seorang pengaturcara biasa-seseorang, yang sukar untuk mengharapkan tugas yang mencukupi dan penilaian mereka, atau seorang ketua pasukan tegar yang akan menunggu masa untuk menjatuhkan anda semua keterukannya di matanya , bertanya soalan: Apa untuk anda Agile!?

Sekali, tanpa memberikan yang diperlukan, tetapi, seperti yang anda fahami, jawapan yang tidak dapat diramalkan untuk soalan ini, saya ditinggalkan tanpa tawaran, yang saya sangat gembira.

Cuba untuk mengelakkan tekanan ini dan pergerakan yang tidak perlu secara amnya, kita menjauhkan diri kita bukan sahaja dari pendedahan yang kuat tentang kejahilan kita tentang beberapa ciri asas bahasa, tetapi juga dari fakta bahawa kejahilan ini sekurang-kurangnya berkurangan sedikit.

Masalahnya ialah dalam amalan kita hampir tidak boleh mendapatkan kelas tugasan sedemikian.
Mana-mana pembangun yang terpaksa bekerja di beberapa tempat akan membuktikan bahawa tugas asas atau kreatif yang dikemukakan dalam temu duga jarang berkaitan dengan perkara yang ditangani oleh pengaturcara dalam kehidupan sebenar - tiada lagi pengulangan, graf dan sistem kawalan lif tak segerak di planet dengan negatif graviti di lengan galaksi yang lain. Malangnya.

Berkaitan dengan JavaScript asli saya, terdapat contoh yang baik - jika React.JS tidak muncul, 98% pengaturcara JavaScript akan berjaya terus hidup dalam kejahilan yang menggembirakan tentang apa itu mengikat - 20+ tahun selepas pengenalannya - dan akan terus menjadi bingung, mendapat soalan mengenainya dalam temu bual, dan hanya mereka yang mencipta semua perpustakaan, rangka kerja dan modul yang sangat abstrak ini akan terus bekerja dengannya. Hari ini, terima kasih kepada React, jumlah itu telah dikurangkan kepada 97%.

Jelas sekali, melihat "pengasingan daripada realiti" tugas-tugas ini, banyak pembangun mengabaikannya atau meluangkan masa untuk menyelaminya - dan terus melakukan rutin harian mereka, iaitu, secara kiasan, melalui medan ranjau pembangunan untuk pengeluaran, bukan hanya tanpa pengesan lombong, tetapi juga tanpa mengetahui bahawa mereka berada di medan ranjau.

Apa yang penuh dengan kekurangan pengetahuan asas bahasa

Jawapan kepada soalan ini nampaknya tidak jelas, tetapi atas sebab tertentu adalah sifat manusia untuk sentiasa menolak penyelesaiannya ke sudut jauh - dan ini memainkan peranan yang menyedihkan dalam kehidupan pengaturcara junior dan pertengahan, memanjangkan laluan mereka ke ketinggian (dan kedalaman) pengetahuan bahasa selama beberapa tahun.

Kod aplikasi menggunakan rangka kerja dan perpustakaan yang mereka biasa tulis setiap hari tidak boleh dianggap boleh dipercayai jika mereka menulisnya tanpa pemahaman yang mencukupi tentang pelbagai aspek pelaksanaannya. Ilustrasi yang baik tentang ini dari dunia JavaScript ialah nasib perpustakaan jQuery, yang pernah menjadi enjin kemajuan dan hari ini, sebagai bidang pengetahuan serba lengkap, terputus daripada bahasa lain, mengambil tempat semula jadi di pasaran - skrip separa profesional yang ditulis dengan tergesa-gesa dan berfungsi sebagai hadiah kepada susun atur pantas yang sama pada bootstrap daripada pekerja bebas yang murah.

Masa depan projek yang dibangunkan dengan pendekatan sedemikian, walaupun kerana kejahilan, tetapi tidak bertanggungjawab, adalah prosaik dan jangka pendek: kehilangan masa yang ketara secara tiba-tiba, kegagalan, kerugian kewangan dan reputasi dan, akibatnya, penurunan semangat untuk kerjasama berterusan.

Sebaliknya, bagi seseorang yang telah memilih jalan seorang pengaturcara, ada sedikit yang dibandingkan dengan keseronokan memahami apa yang dia lakukan. Memahami bahawa dia, seperti Baron Munchausen, berlari melalui ladang ranjau dengan menunggang kuda. Tidak perlu dikatakan, majikan yang baik dapat melihat dengan jelas orang berjalan melulu melalui ladang periuk api dan orang yang beku dalam keragu-raguan untuk mengambil langkah dalam keadaan di mana anda boleh berlari dan melompat tanpa memikirkan apa-apa?

ActualizeBot

Melihat faedah temu duga, dan juga menyedari bahawa pergi ke temu duga terbiar tidak sepenuhnya beretika, saya fikir adalah bagus untuk mencipta bot di mana pembangun yang memulakan atau menukar bahasa lain boleh melakukan program pendidikan tanpa menggunakan temu duga sebenar dalam kelantangan yang berlaku kepada saya. Dan mengingati bagaimana pengaturcara suka berbincang dan mengukur tugas yang perlu mereka selesaikan - terutamanya jika ia adalah sesuatu yang tidak remeh - saya menyedari bahawa segala-galanya berkumpul, mengetepikan semua keraguan dan voila.

Bot pada masa ini mempunyai 3 fungsi mudah:

  • Melanggan bahasa / rangka kerja tertentu untuk menerima tugasan baharu untuknya. Anda melanggan dan semasa anda menerima tugasan, anda menerimanya dalam senarai mel harian
  • Penerbitan tugasan atau tugasan ujian β€” Dalam buku saya mereka mengatakan perkongsian adalah penyayang
  • Penjana nama yang hebat yang membolehkan anda memilih kapsyen terbaik untuk teks tugasan yang anda terbitkan, termasuk kamus feminin yang bukan tanpa unsur feminitif

Pada masa ini, bahasa berikut ditawarkan untuk dipilih: JavaScript, Java, Python, PHP, MySQL. Pilihannya agak terhad kerana keterbatasan pemahaman saya. Saya berharap dapat melengkapkan senarai ini dengan bantuan komuniti habra.

Bot dilancarkan dalam format rock and roll semata-mata, bayaran untuk apa-apa pun tidak dijangka.
Anda boleh pergi ke sana dengan mengikuti pautan ini: ActualizeBot

Secara ringkas mengenai pelaksanaan teknikal

Bot ini ialah salah satu daripada beberapa projek yang lebih kecil di mana saya membawa versi awam pertama rangka kerja mini sumber terbuka saya untuk membangunkan bot kompleks, yang dinamakan Hobot, tersedia di NPM untuk tegar.

Rangka kerja ini dibina berdasarkan Telegraf.JS dan TypeScript, versi sifar-sifar-pertamanya, dilengkapi dengan contoh penggunaan, boleh dilihat di github dan cuba segera. Tidak lama lagi saya akan memunggah versi lanjutan 0.0.2, yang disikat untuk seseorang dari luar, dan saya akan menumpukan artikel berasingan kepadanya (batang). Saya akan gembira jika bagi seseorang ia ternyata relevan dengan saya.

Jadi, berapa banyak temuduga yang anda perlu hadiri?
Saya pasti anda mempunyai sesuatu untuk dikatakan!

Sumber: www.habr.com

Tambah komen