開発者の生活におけるテストタスクの役割について

これまでの人生で何回技術面接を受けましたか?

過去 35 年間、私は考えられるあらゆる種類と特殊性の XNUMX 件の技術面談に参加してきました。冬に向けて肉を共同購入するカザフスタンの新興企業から、ドイツと米国のフィンテック サービスや銀行に至るまで、さまざまな面での面接に参加しました。 プログラミング、配信、管理に重点を置きます。 リモートでもオフィスでも。 時間は限られており、無制限です。 ストレスとリラックスをさまざまな言語で。

これに、雇用主として私自身が行った約 20 回の面接と組み合わせると、私が面接の王となり、次のような観察 (最初はまったく自明ではありません) を行い、その中で自分自身を確立するには十分な数でした。あまりにも多くの面接のおかげで、それが限界的な習慣のように見え始めました。私はすでに 10 年間 Web 開発に携わっていたという事実にもかかわらず、専門レベルで自分のスタックを研究し、競争力のあるスペシャリストになりました。

この記事は、旅の始まりの段階にあり、まだ知識を深めていないプログラマを対象としています。 その中で、テスト課題や面接での技術的な質問がもたらす多大な教育上の利点についての論文を拡張して、新しく書いた電報ボットに皆さんを招待したいと考えています。 アクチュアライズボット私の計画によれば、技術面接は終了するまで少なくとも毎日受けることができます。 会話が終わらないように、興味深い技術的なタスク、質問、または面接中に経験した役立つ/楽しい状況を共有することもできます。

ボットについては以下で詳しく説明します。まず、フリーランス プロジェクトを何年も成功させてきたとしても、これらの技術的な質問やタスクに対する答えを知り、理解することがなぜそれほど重要なのかを考えてみましょう。

私たちの基礎知識の質がまだ不十分なままなのはなぜでしょうか?

あなたがまだ面接の王様になっていないのであれば、技術面接は、初心者のスペシャリスト、転職者、またはある業界で働いていた開発者であっても、一般的な仕事探しと同様に、身体にとって深刻なストレスです。長い間(そして私たちの時代では「長い」はXNUMX年と考えることができます)。

多くのインタビューでは、このストレスをさらに悪化させる人的要因があります。 あなたの面接官は、アレナ・ウラジミールスカヤではなく、適切なタスクとその評価を期待するのが難しい、あなたが見たとおりの普通のプログラマー、または自分の厳しさをすべて和らげる瞬間を待つ筋金入りのチームリーダーである可能性があります。彼の目はあなたに向けられ、「あなたにとってアジャイルとは何ですか?」と質問しています。

ある日、この質問に対して必要な、しかしご存知のとおり予測不可能な答えを与えずに、私は内定をもらえずに取り残されました。それは私にとって信じられないほど嬉しかったです。

一般的にこのストレスや不必要な動きを避けようとすることで、言語のいくつかの基本的な特徴についての無知が大々的に暴露されることから距離を置くだけでなく、この無知を少なくとも少し減らすことからも距離を置くことができます。

問題は、実際には、このクラスの問題を入手できる場所がほとんどないことです。
複数の場所で作業しなければならなかった開発者なら誰でも、インタビューで提起された根本的または創造的な問題が、プログラマーが現実に扱うこととほとんど関係がないことを確認するでしょう。再帰、グラフ、非同期エレベーター制御システムなど、ネガティブな問題が発生する地球上には存在しません。銀河の別の腕の重力。 残念ながら。

私のネイティブ JavaScript に関しては、良い例があります。React.JS が登場していなかったら、JavaScript プログラマーの 98% は、バインドが何であるかについて、その登場から 20 年以上経っても、幸せな無知のまま生き続けるでしょう。面談でそれについての質問を受けて当惑し、これらの高度に抽象化されたライブラリ、フレームワーク、モジュールをすべて発明した人だけがそれを使い続けることになるでしょう。 現在では反響のおかげで、この数字は 97% にまで減少しました。

明らかに、これらのタスクが「現実から孤立している」ことを見て、多くの開発者はそれらを無視するか、それらに没頭することで時間を無駄にし、日常業務を続けます。つまり、比喩的に言えば、運用のためだけでなく、開発という地雷原を歩き続けることになります。地雷探知機もなければ、自分たちが地雷原にいるということも知らずに。

言語の基本的な知識が欠如しているとどのような結果が生じますか?

この質問に対する答えは平凡に見えますが、何らかの理由で、その解決策を常に隅っこに押し込んでしまうのが人間の本性です。これが、中級プログラマーの人生において悲しい役割を果たし、高み (そして深さ) への道を長くしてしまいます。 ) 数年で言語知識が向上します。

毎日書き慣れているフレームワークやライブラリを使用したアプリケーション コードは、実装のさまざまな側面を十分に理解せずに作成した場合、信頼できるとは言えません。 JavaScript の世界からこれをよく表しているのが、JQuery ライブラリの運命です。JQuery ライブラリは、かつては進歩の原動力でしたが、今日では言語の他の部分から切り離された自己閉鎖的な知識分野として、自然な位置を占めています。市場 - 安価なフリーランサーからのブートストラップ上の同じ高速レイアウトへの贈り物として、急いで書かれ、必要に応じて動作するセミプロフェッショナルのスクリプト。

このような無責任なアプローチで開発されたプロジェクトの将来は、たとえ無知からのものであっても、平凡で短命です。突然の大幅な時間の損失、失敗、経済的および評判の損失、そしてその結果、継続への熱意の低下です。協力。

一方、プログラマーとしての道を選んだ人にとって、自分が何をしているのかを理解する喜びは何物にも代えられません。 彼がミュンヒハウゼン男爵のように、馬に乗って地雷原を飛び越えていることを理解しています。 言うまでもなく、まともな雇用主は、地雷原を無謀に歩く人々や、何も考えずに走ったり跳んだりできる状況で一歩を踏み出すのに優柔不断で固まっている人々をはっきりと見ることができますか?

アクチュアライズボット

面接の利点を理解し、白紙の面接に行くことが完全に倫理的ではないことにも気づいたので、初心者や別の言語に移植中の開発者が、言語に頼ることなく教育トレーニングに参加できるボットを作成できたら素晴らしいと思いました。その程度の実際のインタビューで、それが私に起こりました。 そして、プログラマーが、解決しなければならない問題について、特にそれが重要な問題である場合に、議論したり比較したりするのが大好きであることを思い出して、すべてが一致し、すべての疑いを否定し、出来上がりであることに気づきました。

ボットには現在 3 つの単純な機能があります。

  • 新しいタスクを受信するために、特定の言語/フレームワークをサブスクリプションします。 購読すると、タスクが到着すると、毎日のニュースレターで受信します。
  • タスクまたはテストタスクを公開する - 私の本の中で、共有することは思いやりであると述べています。
  • フェミニストなしではなく、女性向けの辞書を含む、公開するタスクのテキストに最適な署名を選択できる優れた名前ジェネレーター

現在、JavaScript、Java、Python、PHP、MySQL の言語から選択できます。 私の理解の限界により、選択はある程度限られています。 habra コミュニティの協力を得て、このリストに追加したいと考えています。

ボットは純粋にロックンロール形式で起動され、何かに対する支払いは期待されていません。
このリンクを使用してアクセスできます。 アクチュアライズボット

技術的な実装について簡単に説明します

このボットは、複雑な構造を持つボットを開発するためのオープンソース ミニフレームワークの最初の公開バージョンを提供するいくつかの小規模プロジェクトの XNUMX つです。愛情を込めて Hobot と名付けられ、ハードコアの人々向けに NPM で利用できます。

このフレームワークは Telegraf.JS と TypeScript に基づいて構築されており、使用例を備えたそのゼロゼロファースト バージョンは、次の URL で参照できます。 ギタベ そしてすぐに試してみてください。 すぐにバージョン 0.0.2 をアップロードし、外部からの人向けに拡張および精査し、それ (トランク) については別の記事を書く予定です。 それが私にとっても同じように、誰かにとっても意味のあるものであれば、とてもうれしいです。

それで、何回面接に参加する必要がありましたか?
きっと何か伝えたいことがあるはずです!

出所: habr.com

コメントを追加します