JavaRush /Java Blog /Random-JA /コーヒーブレイク#49。すべての開発者が参照すべきコード例。面接の準備方法

コーヒーブレイク#49。すべての開発者が参照すべきコード例。面接の準備方法

Random-JA グループに公開済み

すべての開発者が参照すべきコード例

出典: Medium 時々、暇なときに GitHub リポジトリを徘徊します。新しいプログラム、ツール、ユーティリティを学習し始めるときは、それらが実際に動作しているのを見るようにしています。これを行うために、私は彼らのコードを調べます。これは、すべてがどのように機能するか、どのようなモジュールや外部依存関係があるかを理解するのに役立ちます。テクノロジーに没入すると、信じられないほどの感覚が得られ、新しい知識を得ることができます。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 1私の記事では、リポジトリをさまよっているときに見つけた最も印象的なコード例を共有したいと思います。

アポロ11号の制御プログラム

アポロ 11 号は人類を月に連れて行った宇宙船です。搭載制御コンピュータ (AGC) は、わずか 4 キロバイトの物理メモリで飛行動作を制御しました。アセンブリ言語で書かれた AGC ソフトウェアは、特別な読み取り専用メモリ (ロープ メモリ) に保存されていました。数年前、このソース コードをスキャンした紙のコピーがインターネット上に投稿されました。次に、誰かがいくつかのモジュールをテキスト ファイルに書き込み、GitHub リポジトリにアップロードしました。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 2アポロ 11 号のエンジニアリング チームは、この驚くべき結果を達成するために懸命に働きました。1960 年代のプログラミングは現在よりはるかに難しかったにもかかわらず、彼らはアセンブリ言語で多くのコード行を書きました。当時、プログラミング言語の抽象度は低かったです。さらに、ハードウェアの電力が低いため、開発者は高度に最適化されたコードを作成する必要がありました。

Quake III アリーナ

Quake III Arena は、id Software によって作成された一人称シューティング ゲームです。このゲームは 3D ゲーム業界が始まったばかりの 1990 年代に登場しました。開発にはゲーム エンジン ID Tech 3 が使用されており、アポロ 11 号月計画の場合と同様に、ハードウェア リソースの制限により、グラフィックスをレンダリングするコードが大幅に最適化されました。多くのゲーム プログラミングの計算にはベクトル正規化の概念が必要であり、これには逆平方根の計算が必要です。開発者はコンピューター グラフィックスに最も効率的なアルゴリズムを選択する必要があるため、Quake III Arena はビットレベルの計算を使用して逆平方根を迅速に計算する賢明なアプローチを採用しました。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 3一部のコード、そして実際、1990 年代にゲームの作成に使用されたすべてのコードの最適化レベルは、ただただ驚くべきものです。現在、多くの機能がゲーム エンジン レベルで実行されるため、ビデオ ゲーム開発者は通常、このレベルでの計算を行いません。

GNU コンパイラ コレクション

C プログラミング言語は、ハードウェアに非常に近いものであると同時に、人間が理解できる適切なレベルの抽象化を提供するため、現代プログラミングの父と呼ぶことができます。GNU C コンパイラはブートストラップ型コンパイラです。つまり、コンパイラの巻き戻しの概念を使用して C で記述されています。GitHub の GNU Compiler Collection コードで、これまで見た中で最も長い C ソース ファイルを見つけました (もっと長いファイルがあるかもしれませんが、これが私が見つけたものです)。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 4

クロム

Google Chrome、Microsoft Edge、Opera などの一般的なブラウザは、オープンソースの Chromium プロジェクトに基づいています。このプロジェクトには、Blink エンジン (Webkit チームからの WebCore ライブラリのフォーク) と、Chromium プロジェクト チームによって開発された V8 JavaScript エンジンという 2 つの主な依存関係があります。もちろん、Chromium のコードは非常に広範囲にわたり、 gRPCSkiaなどのサードパーティ モジュールが多数含まれています。しかし、Chromium 開発者はこれらすべてのコンポーネントを完璧に構造化することに成功しました。コードベースは、内部関数ロジックをユーザー インターフェイス ロジックから巧みに分離します。これにより、プロジェクト全体に対する適切なサポートが保証されます。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 5さらに、プロジェクト コードには、Chromium Android および iOS アプリケーションのソース コードが含まれています。スケーラビリティの高いクロスプラットフォーム アプリケーションを構築するのは困難な場合があります。ただし、Chromium は、Linux、Windows、Mac 全体で実に印象的なコード分離を実現しています。

ギク

現在、どのチームも Git を使用してコードのバージョンを管理しています。このバージョン管理システムは、Linus Torvalds (GNU/Linux OS カーネルの作成者) によって開発されました。Git コードベースには Gitk ソース コードが含まれています。Gitk は、コミットを通じて視覚的なナビゲーションを提供する GUI アプリケーションです。2 つのコミットがどのように異なるかを確認するには、次のコマンドを使用できます。
$ git diff <commit hash> <commit hash>
しかし、Gitk は視覚的なツールであるため、Gitk を使用すると違いをより早く確認できます。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 6すべての Gitk ソース コードは1 つに収まります。コードは、Tcl 拡張機能である Tk UI ツールキットを使用して Tcl スクリプト言語で記述されます。GUI アプリケーション全体を 1 つのファイルに圧縮するのは困難な作業です。

開発者は面接の準備をどのようにすればよいでしょうか?

出典: Hackernoon 初めてのインタビューを覚えています。私は学位を取得したばかりで、マドリッドの金融会社でのインターンシップに応募していました。面接がどう進むのかわからず、ソフトウェア開発の現在のトレンドも知らなかったので、とても緊張しました。イースターの後だったので、私はまだ 21 歳で、ビーチで友達と時間を過ごしたほうが楽しかったでしょう。しかし、楽しむ代わりに、面接の準備をしなければなりませんでした。コーヒーブレイク#49。 すべての開発者が参照すべきコード例。 面接の準備方法 - 7すべての面接の前の最初のステップは、お互いを知ることです。名前、住所、専門分野などを聞かれます。この後、個人面接を受けます。面接は対面またはビデオリンク経由で行うことができます。いずれにせよ、この面接では、応募しているポジションに対するあなたの経験、知識、スキルがテストされます。次に、問題や問題を解決する能力を実証するコードを書くように求められる可能性があります。さらに、プロジェクト マネージャーまたは会社のディレクターとの面接が予想される場合があります。これは応募しているポジションによって異なります。面接プロセスには長い時間がかかる場合があります。したがって、忍耐強く、冷静さを保つ必要があります。この点について、いくつかのヒントとコツを用意しました。

ポジションを研究して、それが自分にぴったりであることを確認してください。

私たちが仕事を探しているとき、そのポジションに関する情報をすべて調べずにただ面接に行くことがあります。自分の責任のリストと仕事のスケジュールを事前に明確にしておくほうがよいでしょう。企業や職種が希望条件と一致するかどうかも確認してください

自分のキャリアの傾向を常に最新の状態に保つようにしてください。

大きな間違いは、仕事でトレンドや新しいテクノロジーを追わないことです。あなたはおそらく開発者またはプロジェクト マネージャーであり、現在の役割で独自の作業方法を持っており、すべてのプロジェクトで同じテクノロジーを使用しています。ただし、毎日少しの時間をかけて新しいテクノロジーを学ぶようにしてください。これは私たちのキャリアにおいて非常に重要です。新しいフレームワークや新しい方法論などを常に最新の状態に保つ必要があります。これは面接で大きな違いを生みます。

対面面接またはビデオ通話中: 見栄えを良くし、リラックスするように努めてください。

見た目はアプリのデザインと同じくらい重要です。完璧なバックエンドを持っているかもしれませんが、アプリのフロントエンドが貧弱であれば、製品を販売するのは困難になります。外見についても同様です。面接では、フォーマルではないにしても、少なくともまともな外見をすべきです。これは、企業ルールに従う意欲を示すものです。ここで「私は天才なのに、どうして自分の外見を気にしなければならないの?」と思う人もいると思います。 そうですね、もしあなたが天才で容姿が良ければ、間違いなく印象を残すでしょう!

ゆっくりしてください

面接の前に、準備をし、トピックを研究し、アルゴリズムと問題解決を練習し、スピーチを準備する必要があります。これらのプロセスの中には、時間がかかり、時間がかかるものもあります。したがって、ここで有利になるようにしてください。

練習する

あなたの経験にもよりますが、私がここでお勧めするのは、面接でコードを書かなければならない場合は、正しく書いてくださいということです。これを行うには、コードをクリーンアップしてレビューする方法を学ぶ必要があります。これは、その機能の一部を再編成または改善するのに役立ちます。

対面インタビューまたはコードで自分の経験を実証する

経験を示すようにしてください。面接は、なぜ企業があなたを採用するのかを面接官に説明するのに最適な場所です。面接の前に、基本的なプログラミングの概念、方法論、ベスト プラクティスについてよく理解してください。

面接の前日は十分な睡眠をとりましょう。

十分な睡眠をとるようにしてください。そうすることで、次の日も集中力を保つことができます。面接の質問に対する答えがわからない場合は、嘘をつかないでください。正直に言うと、将来の多くの複雑な事態を避けることができます。そしてこれは、改善する必要がある自分の弱点を見つけるのに役立ちます。

自分の答えを信頼してください

自分自身を疑わないでください。一度もない。

面接中は、全員に安全と自信を伝えなければなりません。

このスキルを持っていない場合は、おそらくそれに取り組む必要があります。自信とは、「答えはわかりませんが、後で調べて答えることができます」と答えることです。この回答選択肢は安心感と自信を示しています。

インタビューを分析する

それぞれのインタビューは異なりますが、どのインタビューもいくつかの類似した特徴を共有しています。したがって、面接後は、自分にとって何がうまくいったのか、何がうまくいかなかったのかを振り返る必要があります。面接は、自分自身を外側から見て、長所と短所を見つめる良い機会です。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION