Bir geliştiricinin hayatında test görevlerinin rolü hakkında

Hayatınızda kaç tane teknik görüşme yaptınız?

Geçtiğimiz beş yıl boyunca, akla gelebilecek her tür ve özellikte 35 teknik röportaja katıldım - kış için kolektif et alımına yönelik Kazak girişimlerinden Alman ve Amerikan fintech hizmetlerine ve bankalarına; programlama, teslimat ve yönetime odaklanarak; uzakta ve ofiste; zamanla sınırlı ve sınırsız; farklı dillerde stresli ve rahat.

Bu, bir işveren olarak bizzat yürüttüğüm yaklaşık 20 görüşmeyle birleştiğinde, bu, (başlangıçta tamamen açık olmayan) aşağıdaki gözlemi yapmak ve bu gözlemde kendimi kanıtlamak için görüşmelerin kralı olmam için yeterli bir sayıdır: Büyük ölçüde buna ikna oldum. Pek çok röportaj sayesinde bu, marjinal bir alışkanlık gibi görünmeye başladı; 10 yıldır web geliştirme alanında çalışmış olmama rağmen, yığınımı profesyonel düzeyde inceledim ve rekabetçi bir uzman oldum.

Bu makale, yolculuğunun başında olan ve bilgilerinin derinliğini henüz tüketmemiş programcılara yöneliktir. Burada, test görevlerinin ve röportajlarda sorulan teknik soruların muazzam eğitimsel faydaları hakkındaki tezimi genişletmek ve herkesi yeni yazdığım telgraf botuma davet etmek istiyorum. ActualizeBot, planıma göre en azından her gün bitene kadar teknik görüşme yapabilirsiniz. Ve bunların bitmemesi için, ilginç bir teknik görevi, soruyu veya röportaj sırasında yaşadığınız faydalı/eğlenceli bir durumu da paylaşabilirsiniz.

Aşağıda size bot hakkında daha fazla bilgi vereceğim. Yıllardır başarılı bir şekilde freelance projeler yürütüyor olsanız bile, önce bu teknik soruların ve görevlerin yanıtlarını bilmenin ve anlamanın neden bu kadar önemli olduğunu anlayalım.

Temel bilgilerimizin kalitesi neden arzu edilenin çok altında kalıyor?

Henüz röportajların kralı olmadıysanız, teknik röportajlar, genel olarak iş arayışında olduğu gibi vücut için ciddi bir strestir - ister acemi bir uzman, ister değiştirici veya birinde çalışmış bir geliştirici olun. uzun bir süredir (ve bizim zamanımızda “uzun” bir yıl olarak kabul edilebilir).

Pek çok röportajda bu stresi artıran bir insan faktörü var. Görüşmeciniz Alena Vladimirskaya değil, kendisinden yeterli görevleri ve değerlendirmelerini beklemenin zor olduğu sıradan bir programcı veya tüm ciddiyetini ortadan kaldırmak için anı bekleyecek sıkı bir ekip lideri olabilir. gözleri senin üzerinde, şu soruyu soruyor: Senin için çeviklik nedir!?

Bir gün bu soruya gerekli ama anlayacağınız tahmin edilemez cevabı vermeden, inanılmaz derecede mutlu olduğum bir teklif olmadan kaldım.

Bu stresten ve genel olarak gereksiz hareketlerden kaçınmaya çalışarak, yalnızca dilin bazı temel özelliklerine ilişkin bilgisizliğimizin yüksek sesle açığa çıkmasından değil, aynı zamanda bu bilgisizliğin en azından biraz azaltılmasından da uzaklaşıyoruz.

Sorun şu ki, pratikte bu tür sorunları yaşayabileceğimiz çok az yer var.
Çeşitli yerlerde çalışmak zorunda kalan herhangi bir geliştirici, röportajlarda ortaya çıkan temel veya yaratıcı sorunların, bir programcının gerçek hayatta uğraştığı şeylerle nadiren ilgisi olduğunu doğrulayacaktır; gezegende yinelemeler, grafikler ve asenkron asansör kontrol sistemleri yoktur. galaksinin başka bir kolundaki yerçekimi. Maalesef.

Yerel JavaScript'imle ilgili olarak iyi bir örnek var: React.JS ortaya çıkmasaydı, JavaScript programcılarının %98'i, ortaya çıkışından 20 yıl sonra bağlamanın ne olduğu konusunda cehalet içinde mutlu bir şekilde yaşamaya devam edecek ve devam edecekti. Şaşkın olmak, röportajlarda bununla ilgili sorular almak ve yalnızca tüm bu son derece soyut kütüphaneleri, çerçeveleri ve modülleri icat edenler onunla çalışmaya devam edecek. Bugün tepkiler sayesinde bu sayı yüzde 97'ye düştü.

Açıkçası, bu görevlerin "gerçeklikten izolasyonunu" gören birçok geliştirici, bunları görmezden geliyor veya kendilerini bunlara kaptırarak zaman harcıyor - ve günlük rutinlerini sürdürmeye devam ediyor, yani mecazi anlamda konuşmak gerekirse, yalnızca üretim için değil, geliştirme mayın tarlasında da yürüyorlar. mayın dedektörü olmadan ama aynı zamanda mayın tarlasında olduklarını bilmeden.

Bir dile ilişkin temel bilgi eksikliğinin sonuçları nelerdir?

Bu sorunun cevabı sıradan görünüyor, ancak bazı nedenlerden dolayı çözümünü her zaman en uzak köşeye itmek insan doğasıdır - ve bu, genç ve orta düzey programcıların hayatlarında üzücü bir rol oynar ve onların yükseklere (ve derinliklere) giden yollarını uzatır. ) birkaç yıllık dil bilgisi.

Her gün yazmaya alıştıkları çerçeveleri ve kütüphaneleri kullanan uygulama kodu, uygulamanın çeşitli yönlerini yeterince anlamadan yazıyorlarsa güvenilir kabul edilemez. Bunun JavaScript dünyasından iyi bir örneği, bir zamanlar ilerlemenin motoru olan ve bugün dilin geri kalanından ayrılmış, kendi içine kapalı bir bilgi alanı olarak doğal yerini alan JQuery kütüphanesinin kaderidir. piyasa - ucuz serbest çalışanların önyükleme üzerindeki aynı hızlı düzenine bir hediye olarak aceleyle yazılan ve gerektiği gibi çalışan yarı profesyonel senaryolar.

Böylesine sorumsuz bir yaklaşımla, bilgisizlikten de olsa geliştirilen projelerin geleceği yavan ve kısa ömürlüdür: birdenbire önemli zaman kayıpları, başarısızlıklar, maddi ve itibar kayıpları ve bunun sonucunda devam etme hevesinin azalması. işbirliği.

Öte yandan, programcının yolunu seçmiş bir kişi için, ne yaptığını anlamanın verdiği zevkle karşılaştırılabilecek çok az şey vardır. Onun da Baron Munchausen gibi at sırtında bir mayın tarlasında zıplayarak ilerlediğini anlıyor. Söylemeye gerek yok, iyi bir işveren, mayın tarlasında pervasızca yürüyen insanları ve hiçbir şey düşünmeden koşup zıplayabilecekleri bir durumda adım atma konusunda kararsızlık içinde donmuş insanları açıkça görebilir mi?

ActualizeBot

Röportajların faydalarını gördükten ve aynı zamanda boş röportajlara gitmenin tamamen etik olmadığının farkına vararak, yeni başlayan veya başka bir dile geçiş yapan bir geliştiricinin, bu ölçüde gerçek röportajlar başıma geldi. Ve programcıların çözmeleri gereken sorunları tartışmayı ve karşılaştırmayı ne kadar sevdiklerini hatırlayarak - özellikle de önemsiz olmayan bir şeyse - her şeyin uyduğunu fark ettim, tüm şüpheleri reddettim ve işte.

Botun şu anda 3 basit işlevi var:

  • Yeni görevler almak için belirli bir dile/çerçeveye abone olmak. Abone olursunuz ve görevler geldikçe bunları günlük bültende alırsınız
  • Bir görev veya test görevi yayınlama - Kitabımda paylaşmanın önemsediğini söylüyorlar
  • Feministler olmadan kadınsı sözlükler de dahil olmak üzere yayınladığınız görevin metni için en uygun imzayı seçebileceğiniz mükemmel bir isim oluşturucu

Şu anda aşağıdaki diller arasından seçim yapılabilir: JavaScript, Java, Python, PHP, MySQL. Anlayışımın sınırları nedeniyle seçim biraz sınırlıdır. Habra topluluğunun yardımıyla bu listeye ekleme yapmayı umuyorum.

Bot tamamen rock and roll formatında başlatıldı; herhangi bir şey için ödeme yapılması beklenmiyor.
Bu bağlantıyı kullanarak ona gidebilirsiniz: ActualizeBot

Kısaca teknik uygulama hakkında

Bu bot, karmaşık yapıya sahip, sevgiyle Hobot olarak adlandırılan ve hardcore insanlar için NPM'de mevcut olan botlar geliştirmek için açık kaynaklı mini çerçevemin ilk halka açık versiyonunu getirdiğim birkaç küçük projeden biri.

Çerçeve, Telegraf.JS ve TypeScript temel alınarak oluşturulmuştur; bir kullanım örneğiyle donatılmış sıfır-sıfır-ilk sürümü şu adreste görüntülenebilir: github ve hemen deneyin. Yakında dışarıdan bir kişi için genişletilmiş ve taranmış 0.0.2 sürümünü yükleyeceğim ve ona ayrı bir makale (gövde) ayıracağım. Benim için olduğu kadar birisi için de alakalı olursa sevinirim.

Peki kaç röportaja katılmak zorunda kaldınız?
Eminim anlatacak bir şeyin vardır!

Kaynak: habr.com

Yorum ekle