学校でのプログラミングクラスはC ++でしたが、最後の数年間はC#の仕事をしていました。C ++で1年または2年の経験が必要なポジションがある場合、C#での経験は考慮に値しますか?私はそのような立場にどれほど効果的でしょうか?必要な経験を積むには、エントリーレベルのC ++プログラマーとして始める必要がありますか?
学校でのプログラミングクラスはC ++でしたが、最後の数年間はC#の仕事をしていました。C ++で1年または2年の経験が必要なポジションがある場合、C#での経験は考慮に値しますか?私はそのような立場にどれほど効果的でしょうか?必要な経験を積むには、エントリーレベルのC ++プログラマーとして始める必要がありますか?
回答:
私は約2年前に同じ船に乗っていました。あなたのc#の経験は、c ++がac#の仕事であるのと同じくらい、おそらくc ++の仕事には価値がないでしょう。つまり、C#が実際にどのように機能するか(実際にはごく少数のC#プログラマーが知っている)を知っていて、C ++をよく学べば、C ++は問題になりません。問題になるのは、c ++には高すぎる特定のデザインパターンに慣れてしまったことです。
たとえば、素敵なADO.NETデータアクセスモデルから、mysqlアクセスにcppconを使用し、System.Collections.Genericからstl、多重継承、ガベージコレクションを使用して、デストラクタなどでメモリをクリーンアップするなど、すべてが傾向があります。厳しい移行になります。C ++は問題ではありません。ライブラリ、デザインパターン、およびそれらの使用方法を学ぶことが課題です。ほとんどの採用担当者はこれを認識していません。基本設計を行うことができ、c ++の実際に一般的に使用される機能を使用できる場合は、インタビューで問題ないはずです。
ただし、仕事の準備は別の話です。それは楽しい挑戦ですが、すべてうまくいくことを願っています。
あなたは、私が4年前とまったく同じ状況にあります。
勉強中にC ++をやったのですが、嫌いでした。空き時間に多くのWeb開発を行い、その分野で仕事を得ました。
私が引っ越したとき、私はC ++の仕事に2年間のC ++の経験が必要でした。さて、インタビューの前にC ++の思い出をリフレッシュし、テストの時が来たとき、私はいくつかのことをうまくやることができました。
しかし、インタビューのほとんどは問題解決と創造的な解決策に関するものであり、C ++はほんの小さな要因になりました。
そのため、チャンスは本当に雇用主と彼らのポジションに依存します。
人材紹介会社を経由している場合、プロファイルが一致しないと「おそらく」通知されます。しかし、実際の雇用主であれば、彼らが本当に必要としているものを知っているので、あなたのチャンスはずっと良いです。
それは本当にあなたが適用しているビジネスの性質に依存します。優れたオブジェクト指向ベースのプログラミングとアーキテクチャのスキルを持っている人を探しているなら、C#は次のものと同じくらい良いでしょう。
彼らがソフトウェアの速度/応答性に誇りを持っている場合、これはマイクロ最適化よりも重要であるため、アルゴリズムを知る必要があります-ハッシュテーブル対線形ルックアップなど。C#はここでも関連していますが、必要ですパフォーマンス特性の理解を示すために-たとえば、誰もがngen.exeを知っているわけではありません。
組み込み/モバイルおよび/または非ガベージコレクション環境にいる場合、メモリを効果的に管理する方法を本当に知る必要があります。@DeadMGが指摘したように、スマートポインターはここで重要ですが、メモリ割り当てプロファイルを理解することも重要です。ゲームプログラマーは、多くの場合、オブジェクトの大規模な配列を事前に割り当て、それらをリサイクルして、メモリ要件を事前に把握し、フレームごとに未知数を削減します。これは、iOSでスクロールするTableViewで使用される手法でもあります。
統合作業がある場合は、言語間のデータのマーシャリング(P / Invokeなど)の点でCレベルの専門知識が必要になる可能性がありますが、これらのデータ構造の使用方法に関するバイトレベルの理解も必要です。私の経験ではC#。