1. ITエンジニアが身につけるべきスキル
私は、実践的なスキルには、図 1 に示すように 3 つの側面があると考えています。
写真 1
これらは非常に重要です:
●コーディング:制限時間内に高品質なコードを書ける必要があります。
●経験: 関連する経験があるということは、業界に対するあなたの情熱と最初から始める能力を示しています。
●理論: 理論的知識は IT エンジニアの基礎です。優れた理論的知識があれば、新たな問題を迅速に解決できます。
就職面接の準備プロセスは、さまざまな能力を向上させる素晴らしい機会です。
1. 理論的な知識を向上させる
(1) C言語を学ぶ
C言語はプログラミングの基礎です。したがって、C 言語を学習することで、高レベルの概念を理解するための強固な基礎を築くことができます。C 言語の基本知識を習得するには数週間しかかかりません。 C には抽象的なカプセル化があまりないため、C 言語は比較的単純です。他の人たちと同じように、私は「C プログラミング言語」という本を読んで C 言語を学びました (Tan Haoqiang の本を読むことができます)。
C のポインターとメモリ管理を実際に理解できるようになると、C は興味深い言語になります。プロセッサ レベル (基盤となるハードウェア) から言語を理解するのに役立ちますが、他のほとんどの高級言語にはこの機能がありません。これらの概念を同時に理解することは、高水準言語の作業を理解するのにも役立ちます。
(2) データ構造とアルゴリズムを理解する
Web サイトやアプリケーションの開発で複雑なアルゴリズムやデータ構造を記述することはほとんどありませんが、データ構造やアルゴリズムは複雑なシステムを記述する際の思考に影響を与えます。独自のデータ構造を記述する必要がない場合でも、プログラミングでデータ構造を使用する可能性があるため、基本的なオプションを理解することが重要です。
この本「アルゴリズム入門」をお勧めします。この本は非常に長いので、すべてを読む時間がない場合は、ソート、ハッシュ テーブル、バイナリ ツリー、文字列マッチングの部分も学習する必要があります。
データ構造とアルゴリズムを十分に理解すると、これらの概念は、行うことすべてを質問に要約しているだけであることがわかります。
2. プログラミング言語を比較する
最初は、定期的に多くのプログラミング言語に触れることになります。新しい言語や概念をすぐに学ぶ必要がある場合もあります。
学習をスピードアップするために、さまざまな言語を学ぶことは、それらの概念と、それらがどのように似ていて、どのように異なるのかを理解するのに役立ちます。
最善の策は、次のそれぞれのスタイルで言語を学ぶことです:
●最下層:C言語。
●オブジェクト指向:JAVA、C++など。
●動的言語、高級言語:Python、Rubyなど
●関数型言語:Lisp、Erlang、Haskellなど(以前関数型言語に翻訳しました、zzljluさんの修正ありがとうございます)
3. 少なくとも 1 つの言語と 1 つのフレームワークに習熟すること
これは次のように説明できます:
●ある分野の専門家になれるということは、他の分野でも同等にできるということです。
●これらの言語/フレームワークの詳細を理解すると、さまざまなテクノロジーの長所と短所に基づいて意思決定を行うことができます。
●プロジェクトを徹底的に掘り下げ、言語の本質に迫る情熱をお持ちです。
専門家になるには時間と経験が必要です。ここにいくつかの提案があります:
●プログラミング言語を理解するのに役立つさまざまなプロジェクトに挑戦してください。
●他の人のテクノロジーブログを読んでください。 Hacker News は優れたテクノロジー ブログです。
●オープンソース コミュニティに貢献します。たとえば、コードは GitHub で見つけることができます。
4. 実際のコーディングスキルを向上させる
ここでは、面接中にエンジニアのコーディング能力をテストするために主に 3 つの方法を使用します:
●オープンソース コミュニティ (GitHub など) に貢献したコード
●その場でコードを書く
●2時間連続コード書きに挑戦
エンジニアのコーディング能力の質とスピードは重要であり、これは実務経験によってのみ得られます。
さらに、適切な言語とフレームワークを使用することもプロジェクトに役立ちます。たとえば、Python や Ruby などのスクリプト言語を使用すると、多くの場合、Java や C++ などの静的言語を使用するよりも高速になります。候補者には動的スクリプト言語の経験があまりない可能性があることがわかっているため、面接では動的スクリプト言語に焦点を当てません。
いくつかの難しいプログラミング テストを受けてスキルを磨きましょう。プログラミング速度をテストできるオンライン リソースが大量にあるので、コードを書く速度をさらに向上させることができます。 Google Code Jam 良い質問がいくつかあります。
5. 関連する技術的な経験を向上させる
関連する職歴があることが重要です:
●プログラミングに対する熱意が伝わってきます
●あなたの開発経験は社内の他の人を導くことができます
●あなたはすぐに仕事で成功します。
●より現代的なテクノロジーを探求し、より包括的な視点を持つ能力を持っています
これらの経験は、以前の会社や他のプロジェクトから学ぶことができます。
6. 結論 もちろん、テクノロジーはコインの片面にすぎません。パート 2 では、技術的以外の側面について説明します。
最終的にはあなた次第です。かわいい起業家グループへの参加を歓迎します: 438012030
|