情報学と情報理論 |
---|
| 2 n (レベル0) | n 2 (レベル1) | n(レベル2) | log(n)(レベル3) | コメント(著者から) |
データ構造 | 配列とリンクリストの違いがわからない | 本質を説明し、配列、リンクリスト、連想配列を使用できる | ハッシュテーブルの実装方法、衝突の処理方法、優先度キューとそれらの実装方法を知ることができます。 | 次のような複雑なデータ構造を知っています:二項およびフィボナッチヒープ、Bツリー、AVLツリー、赤黒ツリー、プレフィックスツリー、拡張ツリー、パス付きリスト。 | |
アルゴリズム | 配列に算術平均が見つかりません。 (著者のメモ:信じがたいですが、私はそのような候補者にインタビューしました) | 基本的な並べ替えを知っている | 彼は次のような概念を知っています:ツリー、オブジェクトグラフ、この表のレベルの違いを理解できる | グラフアルゴリズム、動的プログラミングの十分な知識。 | 最高レベルに達した人と一緒に働きたいです。 (翻訳者注:私も欲しい!) |
プログラミング装置 | コンパイラ、リンカ、インタプリタが何であるかを知りません。 | コンパイラ、リンカー、インタープリターの基本的な理解。 概念を知っている:アセンブラーコード、仮想メモリ、スワップ。 彼は鉄の仕組みを知っています。 | カーネルモードとユーザーモードの違いを理解し、マルチスレッド、同期の種類、およびそれらの実装方法を理解します。 アセンブリコードを読み取り、ネットワークの仕組みを理解し、ソケットとネットワークプロトコルを理解できる/ | CPU、メモリ、キャッシュ、割り込み、マシンコード、ガベージコレクション、コンパイラ、リンカ、JITコンパイラ、ヒープ、スタック、メモリアドレッシングの操作を理解する | |
ソフトウェア工学 |
---|
| 2 n (レベル0) | n 2 (レベル1) | n(レベル2) | log(n)(レベル3) | コメント(著者から) |
バージョン管理システム | バックアップのあるフォルダー。 | 初心者CVS / SVNユーザー | 経験豊富なCVS / SVNユーザーは、ブランチとマージの方法を知っており、パッチを使用します.. | Bzr / Mercurial / Darcs / Gitを試しました | |
組立 | IDEを介してビルドする方法を知っている | コマンドラインからプロジェクトを構築できます | メインアセンブリのスクリプトを構成できます | ドキュメントの構築と作成、ビルドのメモ用のスクリプトを設定できます。 | |
自動テスト | テストはテスターの仕事だと考えている | 優れた単体テストを書きました。 | 彼はTDD(テストによる開発)手法でコードを書きました。 | 機能/ UI /パフォーマンスのテストを理解し、構成できます。 | |
プログラミング |
---|
| 2 n (レベル0) | n 2 (レベル1) | n(レベル2) | log(n)(レベル3) | コメント(著者から) |
コード | 分岐のないコード。Ctrl+ C / Ctrl + Vのみを使用してコードを繰り返します。 | プログラムをいくつかの機能に分割できます | 数回使用される関数/オブジェクトを書くことができます。 | さまざまなタイプの構造とアルゴリズムを正しく使用します。 | |
コミュニケーション | 考え/アイデアを表現できません。 | 対談者は考えを理解する | 対談者と通信できる | 対話者と効果的にコミュニケーションできる | この機能はしばしば過小評価されますが、非常に重要です。 |
1つのファイル内のコードの編成 | コードは構造化されていません | メソッドは論理的にグループ化されます | コードは複数の領域に分割されており、よくコメントされています | ファイルのヘッダーにはライセンスがあり、ファイルはきれいに見え、コードはよくコメントされています。 | |
| 2 n (レベル0) | n 2 (レベル1) | n(レベル2) | log(n)(レベル3) | コメント(著者から) |
ファイル内のコードの構成 | コード編成なし | リンクされたファイルは同じフォルダーにあります | 各ファイルには独自の目的があります。たとえば、1つのクラスの定義、1つの関数の実装などです。 | フォルダーとファイルの名前を見ると、コードの構成を理解できます。 | |
ファイル編成 | 1つのフォルダーにすべて | ファイルは論理的にフォルダーに分割されます | バイナリ、ライブラリ、ドキュメント、ビルド-すべてがそのフォルダで配布されます | フォルダーとファイルの名前を見ると、コードの構成を理解できます。 | これと前の行の違いは、組織の規模です。 |
コードの読みやすさ | 単音節名 | ファイル、クラス、変数などの適切な名前 | 長い機能はありません。コメントは珍しいコードの説明、バグ修正、 | 音声のようなコードフロー、深いネストなし | |
誤用防止 | この意味がわからない | すべての引数をチェックします | 戻り値をチェックし、失敗する可能性のあるコード内の例外を探します。 | 誤用から保護するための独自のライブラリを持ち、エラーをシミュレートするための単体テストを作成しました | |
| 2 n (レベル0) | n 2 (レベル1) | n(レベル2) | log(n)(レベル3) | コメント(著者から) |
IDE | IDEを使用してテキストを編集します。 | 彼はIDEインターフェースを熟知し、IDEを効率的に使用し、そのメニューを知っています。 | 頻繁な操作のショートカットを知っている | マクロを書きました | |
API | ドキュメントをよく見る | 頻繁に使用されるAPIを念頭に置いてください | APIの広範な詳細な知識 | 彼はライブラリを作成して、一般的なタスクを簡素化し、APIのギャップを埋めました | ご注意 翻訳者:私は著者に同意しません。私の意見では、API全体を知ることは意味がありません。 |
フレームワーク | フレームワークについて聞いたことがない | 人気のあるフレームワークについて聞いたが、使用しなかった | 複数のフレームワークを使用しました。 | フレームワークの作成者 | |