var bからインタビューまで

大学または短大をほぼ卒業しましたか? 面接に招待されましたが、準備なしでそこに行きますか? あなたは(高等)教育を受けていませんが、プログラマーとして、またはITの分野で働きたいですか? それは主に仕事を見つけることです、私は私の都市(チェリャビンスク)のためだけに話します ここで仕事を探していました。







大学2年生で仕事を探し始めたとき、私たちの街にはいくつの会社があるのか​​とは思いませんでした。 コーダーからディープラーニングまで、それらから。 ゲーム開発者(モバイル、ソーシャルネットワーク、デスクトップ)へのbitrixサポート。



私は約8回のインタビューに参加しました(オンラインではカウントしません)。 それらはすべて異なる方向にありました。 レイアウト、デスクトップゲーム開発、Web開発者(c#+。Net)、Web開発者(bitrix + php)、フロントエンド(js + react)。 彼は自分で何かを拒否しました。 よくわかりません。



ポイントにより近く、コードにより近い



そのようなインタビューで彼らが何を尋ねるか、なぜ彼らがそれをするのか(使用されている技術を説明するために)教えたい。



簡単なものから始めましょう。 レイアウト



ほとんどの場合、誰もがレイアウトの速度を必要としていました。 彼らは私に2つのタスク(2つの異なる会社)を与えました。 1つ目は、サイト上の製品カードのレイアウトです。 1時間で、以前に投げ捨てられた写真のようにレイアウトを作成する必要がありました。 タスクに複雑なことは何もありませんが、条件の1つはPixel Perfect(ピクセル間)です。 いくつかのエラーがありました:レイアウトとの不一致(通知ウィンドウとホバー効果のロジックの不正確な表示)。



画像



2番目のタスクはさらに簡単でした(ピクセルパーフェクトは不要です)。 修正されたTOR(Terms of Reference)があり、サイトで行う必要があります。 要素の表示の編集、携帯電話の下の設定、要素のインデント、色の変更。



なぜそう 現在、コーダーを探している企業は非常に少ないため、スピードが重要です。 作業時間の短縮、注文の増加。これは会社にとってより大きな利益を意味します。 このようなポジションには、多くの場合、プリプロセッサ(sass、pug)およびプロジェクトビルダー(gulp、webpack)が必要です。 TKに関しては、どんな仕事でも受け取ることができますので、それに従う必要があります! TKは誰にとっても異なります。ほとんどの場合、編集のリストを含むテキストドキュメントです。



Webプログラマー(bitrix)



さまざまな企業で3つの試みがありました。 1つでは、彼らが何をしなければならないかを私に説明しました。 企業サイトのサポート(これらのサイトのニーズに合わせた開発)+サーバーの操作(サイトのセットアップと展開)。 単一の質問ではなく、私ができること、知っていることです。



しかし、2回目のインタビューでは、彼らは私が最後の職場で何をしていたのか、ビトリックスで何ができるのか、そして一般的に何を学んだのかだけを尋ねました。



さて、最も興味深いのは最後のインタビューです。 ここには、スキルに関する質問、会社のタスクの説明、およびその場で実行する必要があるタスクがありました。 あなたがあなた自身について話すことができることを願っていますが、私は質問を共有する準備ができています。 すぐに警告します。コードを記述するために必要な言語に条件はありませんでした。JSを選択しました。 バイナリツリーとは何か、それを横断する方法、アルゴリズムの並べ替え、データベースへのアクセス(単純なクエリ)、bitrixのclass.phpの階乗を計算します。



階乗の計算は、プログラミング言語に関係なく非常に簡単です。 これを再帰的に実装します。 バイナリツリーについては、すでにより複雑です...バイナリツリー(バイナリ)=データ構造。 このツリーは、大量のデータを処理するために使用されますが、オンラインストアでの作業を申請するときに、それだけを要求するのは驚くことではありません。 並べ替えは、データの操作にも適用されます。 さて、データベースへのアクセスは、ネットワーク上のほとんどのサイトがデータベースを使用しています。 これは、サイトのニュース、製品、人気のある記事のリストおよびその他の要素の結論です。



最も興味深いのは、デスクトップ開発者を獲得する試みです



画像



すぐに一般的なトピックであるOOPとパターンに言及します。



なんで? さて、OOPを使用しない最新の開発...これは、パターンを使用しない開発と同様に非常に奇妙です。 はい、学習中にコースワークを行うことができ、パターン+ OOPを使用しませんが、クラス、継承、およびポリモーフィズムが何であるかを最低限理解せずに、私はあなたを雇いません。 OOPではプログラムをブロックに分割でき、SOLIDなどのパターンではコードを独立したブロックに分割できるため、将来それらを簡単に補完できます。



その他の問題はすべて、会社の業務内容に応じて特定のものでした。 たとえば、これらがゲーム開発者である場合、エンジンと提供されたドキュメントを使用してテストゲームを作成する必要がありました。 子供向けの2Dゲーム(c#+ XAML)を受け取りました。 ゲームの本質:グラスが2つあり、1つは空です。2つ目は鉛筆です。プレイヤーがRMBをクリックすると、1つの鉛筆が空のグラスに移動し、画面上のポイントカウンターを更新します。 鉛筆を数えるのは簡単でした。



また、Unity開発者へのインタビューの経験もありました。 ゲームに3Dが与えられ、コードが監視され、その中にゴミがなく、パターンが存在するようになりましたが、このプロジェクトはまだgithubにあります。



企業に戻って、これがバックエンド部分(c#+。Net)の開発である場合、.netプラットフォームとその落とし穴に関する質問でした。 これがアプリケーション開発である場合、TDD(テストによる開発)、SOLID、OOPを知る必要があります。



OOPとパターンについてはすでに説明しました。 TDDについて質問する理由 正直なところ、私は知りません...このアプローチの利点を完全には理解していませんが、一部の企業はそれを使用していますが、この方法でコードを書く必要があったのは一度だけです。 SOLID-これらは5つのパターンを組み合わせたものです。このパターンについてのインタビューで質問を受けた後、すぐに調査を開始しました。 正直に言うと、理解することは困難でしたが、結果は非常に永続的なコードであり、既に記述されたアプリケーションを損なうことなく補完できます。 SOLIDに興味がある場合は、このパターンを使用して計算機を作成してみてください。 最初に+と-を実装してから、電卓に他の機能を追加します。 c#(コンソールプログラム)で書いたことを覚えています。



おそらく、これが私の街でのインタビューについて話すことができるすべてです。 はい、SPA開発者(主にreactJSが必要)とWebゲーム開発者(ほとんどすべての場合、同じように反応し、場合によってはネイティブJSのみ)と、Python、1C、JAVA開発者などがいます。 使用されているさまざまな技術と言語に非常に驚いた。 おそらく、これですべてです。 じゃあね



All Articles