web-dev-qa-db-ja.com

C ++の技術評価から何を期待できますか?

ジュニア開発者として、主にC++を使用するジョブの技術テスト/評価を依頼されました。これは私の最初のテスト/評価であり、2時間です。

私のC++は、私が最近PHPでプロジェクトを行っているので、少し錆びています。

これは英国の会社ですが、候補者の技術テストはどこでもほぼ同じだと思います。

これらのテストの1つで何を期待できますか?

10
bearbread

これが純粋なC++テスト(つまりnot Windows/MFC/Managed C++テスト)の場合、Scott MeyerのEffective C++そして、あなたは非常にうまくやるべきです。テンプレートとSTLについては説明していませんが、興味がある場合は、おそらく2時間のテストは行われません。もう数年になりますが、私はC++開発者に頻繁にインタビューしていました。 Effective C++のアイデアはC++プログラミングの基本ですが、候補者の約10%しかそれを知りませんでした。

5
kevin cline

それはC++なので、何でも期待できます。つまり、本当に何でもいいのです。

通常、これにはトリックの質問と、ある種の多態性の質問が含まれます。

しかし、単純なものになる可能性もあります。

「デストラクタを仮想化する理由」、「揮発性」、「非現実的な問題のためのクラスの設計」、「リンクリストの実装」、「文字列の反転」などの質問に答える準備をします。

5
Coder

まあそれはそれらがあなたがグーグルを使用できるようにするかどうかに依存します。 :P

私の周りのツールを使用できる限り、私は通常、技術テストでかなりうまくいきます。彼らが私にコードブラインドをコードしてほしいと思ったとき、私が困ったときにそれをします。だから私があなたに与えることができる最高のアドバイスは自宅でコードブラインドです...私たちが覚えていなければ簡単にチェックできるので、私たちが当たり前だと思っている些細なことを忘れないでください。

また、通常、彼らが必要とする具体的なスキルをチェックするので、何に取り組むかわかっている場合は、それに集中してください。

(これは私の一般的な経験ですが、私は英国出身ではありません)

4
AJC

Practice code kata単純なアルゴリズム(リングバッファー、ハノイタワー、バイナリ検索など)を選択し、最初からコーディングします。次に、次回、次回、そして次回、そしてそれを繰り返します。各反復でそれらをどのように改善できるかを見てください。

あなたは:

  1. コードを書く
  2. 多肢選択
  3. 直接面接

コードを書くとき

彼らはあなたが知っている(そして使う)ことを期待します:

  • RAII
  • 3つのルール
  • スマートポインターを理解する

彼らはおそらくあなたをテストします:

  • 継承
  • 仮想機能
  • ストリームとのシリアライゼーション
  • 算術演算子をオーバーロードします(実際にはあまり使用されませんが、テストを書くのは簡単です)。

あなたが運が悪いと彼らは考えるかもしれません

  • 多重継承と仮想基本クラスは知っておくべきものです。
    • それだけではなく、何人かの人々が狂ったように夢中になります。

複数選択の場合

  • すべてのOO用語を理解する
  • OOを実装するC++の方法を理解する

対面インタビュー

  • 上記のすべて。
  • 再帰の知識
  • 再帰をループに変換する方法
  • ビッグの推定方法O()複雑さ
  • 標準のソートアルゴリズム(単なるバブルではありません)。
0
Martin York

これまで投稿されたものは素晴らしいですが、何かとストーリーを追加します! C++で知っていることをソフトウェア会社のドメインの問題に適用する練習をします。 C++のすべてを理解していればすばらしいことですが、問題に適用できなければ、会社にとって役に立たないことになります。これはジュニア開発者の立場なので、C++に関するすべてを知っているとは思わないでしょう。

私は先週、私の最初の開発者の仕事のために私の最初の技術テストを受けました。私はFizzBu​​zzのようなもの、またはより具体的な骨の折れるもの(これはJavaの場合です)を期待していましたが、彼らが私にファイルを提供し、それを新しい形式に解析することを見つけました、それは仕事の一部でした。その上、彼らは私にグーグルと彼ら自身の図書館を使わせた。結論としては、C++を知る必要がありますが、テストがどのようなものか知りたい場合は、申請しているポジションのドメインを調べて、そのドメイン内の何かに向けてC++を実装することに取り組みます。

0
Jetti

何でも期待できるのは本当です。

テストはC++であると彼らは言ったが、おそらくそれは彼らがテストで使用するC++のCサブセットである可能性がある(標準ライブラリ文字列の代わりにchar配列を使用する)。これを知るのは難しいでしょう。

それが本当にC++の場合、基本を確認することをお勧めします。

  • クラス、変数、配列
  • 参照、ポインタ(およびデフォルトで使用しない理由)
  • constキーワードの使用法
  • 指向オブジェクトの概念(継承、ポリモーフィズム...)
  • テンプレート

次に:

  • 標準ライブラリの使用法(std :: string、std :: vector、コンテナー、...)
0
Nikko