C#の経験はC ++にうまく変換できますか?[閉まっている]


13

学校でのプログラミングクラスはC ++でしたが、最後の数年間はC#の仕事をしていました。C ++で1年または2年の経験が必要なポジションがある場合、C#での経験は考慮に値しますか?私はそのような立場にどれほど効果的でしょうか?必要な経験を積むには、エントリーレベルのC ++プログラマーとして始める必要がありますか?


4
最も難しいのは、C ++のイディオムと「正しい」やり方を学ぶことです。C#では、メモリ管理や境界チェックなどが言語とフレームワークに組み込まれています。C ++には、自分を撃つ方法が他にもたくさんあります。
ロバートハーベイ

1
@RobertHarvey:スマートポインターを聞いたことがない場合のみ。またはコンテナ。
-DeadMG

11
@DeadMG:それがどういう意味かわかりません。聞いたことがあるとしても、それを学ぶ必要があります。
ロバートハーベイ

2
効果的なC ++シリーズは、効果的なC#シリーズよりもはるかに頭が痛いです。
ジョブ

@Robert:コンテナとスマートポインターを使用する場合、メモリをなめずに管理する必要はありません。そして、それらを学ぶことはC ++ 101です
。– DeadMG

回答:


13

ここでの問題は、C ++とC#は根本的に、非常に異なる言語であり、多くの問題に対するアプローチが異なることです。それらを「オブジェクト指向言語」としてまとめるのは簡単ですが、単純な事実は、多くのC#イディオムがC ++では非常に悪いコードであると考えられていることです(逆も同様です)。

実際に違いとC ++のイディオムがどのように見えるかを知っているなら、それがうまくいけない理由はない。


5

私は約2年前に同じ船に乗っていました。あなたのc#の経験は、c ++がac#の仕事であるのと同じくらい、おそらくc ++の仕事には価値がないでしょう。つまり、C#が実際にどのように機能するか(実際にはごく少数のC#プログラマーが知っている)を知っていて、C ++をよく学べば、C ++は問題になりません。問題になるのは、c ++には高すぎる特定のデザインパターンに慣れてしまったことです。

たとえば、素敵なADO.NETデータアクセスモデルから、mysqlアクセスにcppconを使用し、System.Collections.Genericからstl、多重継承、ガベージコレクションを使用して、デストラクタなどでメモリをクリーンアップするなど、すべてが傾向があります。厳しい移行になります。C ++は問題ではありません。ライブラリ、デザインパターン、およびそれらの使用方法を学ぶことが課題です。ほとんどの採用担当者はこれを認識していません。基本設計を行うことができ、c ++の実際に一般的に使用される機能を使用できる場合は、インタビューで問題ないはずです。

ただし、仕事の準備は別の話です。それは楽しい挑戦ですが、すべてうまくいくことを願っています。


私が見るC ++の仕事はすべて、C ++で2〜3年の経験が必要ですが、私の仕事はC#です。これは本当にイライラします。C++をやりたいです。あなたはリクルーターについて正しいです、彼らは私を撃shotしました。誰にも試してもらうことができない場合、どうすればこの経験を得ることができますか?誰かが私をドアに入れてくれたらすぐに学ぶことができると確信していますが、どうやってそれを達成できるのかわかりません。
MetaGuru

現在の仕事でC ++プロジェクトに飛びつきました。それはおそらくあなたの最善策です。または、C ++のオープンソースプロジェクトにいつでも参加できます。
ジョナサンヘンソン

@Ryanジョナサンが言ったように、C ++で経験を積む方法はたくさんあります。私の出身地であるあなたは、あなたが経験を持っていることを証明しなければなりません(人気のある声明の代わりに、1年の経験が5回以上あります)。これは両方の方法で機能します。「紙」の経験があまりない人でも、自分自身を証明する機会を得ることができます。試す前に、実際にC ++を知っていることを確認してください!
マックス

3

すべての雇用主のために話すことはできませんが、個人的にはプログラミングはスキルと言語の特質であると考えています。あなたの主なスキルではない別のプログラミングの仕事に雇われることはまだかなり可能です。

私が彼らを雇っている言語で全く経験のない人を雇うことは非常にありそうもないと言ったので。週末に数回学習して、履歴書を強化するためのペットプロジェクトをいくつか行います。小さなものでさえ、あなたが学び、熱心であることを証明します。


3

あなたは、私が4年前とまったく同じ状況にあります。

勉強中にC ++をやったのですが、嫌いでした。空き時間に多くのWeb開発を行い、その分野で仕事を得ました。

私が引っ越したとき、私はC ++の仕事に2年間のC ++の経験が必要でした。さて、インタビューの前にC ++の思い出をリフレッシュし、テストの時が来たとき、私はいくつかのことをうまくやることができました。

しかし、インタビューのほとんどは問題解決と創造的な解決策に関するものであり、C ++はほんの小さな要因になりました。

そのため、チャンスは本当に雇用主と彼らのポジションに依存します。

人材紹介会社を経由している場合、プロファイルが一致しないと「おそらく」通知されます。しかし、実際の雇用主であれば、彼らが本当に必要としているものを知っているので、あなたのチャンスはずっと良いです。


1
仮想デストラクターが何であるかを確認して、電話画面を通過するようにしてください。
ケビン

2
他の人が言ったように、C ++のメモリ管理のいくつかの基本を覚えていることを確認してください。それは根本的な違いです。それ以外の場合、ライブラリとフレームワークに関するほとんどの(大)企業は独自のライブラリとラッパーを持っているため、実装を知っていることを期待していません。これとは対照的に、C#では、ほとんどの高レベルライブラリが.netフレームワークにバックアップされており、要件はその位置に関連する一連のライブラリを知ることです。
コヨーテ

それで、あなたは仕事を得ましたか?私はC ++をやりたいと思っていますが、文書化された経験の欠如はドアを閉めることです、それ以外の方法でそれを構築する方法はわかりません。
MetaGuru

うん...そこで3年間働いた。それは素晴らしい経験でした...しかし、私は最初の数ヶ月間、C ++の特殊性に追いつく必要がありました。
コヨーテ

1

場合によります。ポインタなどに関する基本的なインタビューの質問に答えることができれば、大丈夫です。

また、C ++テンプレートと.NETジェネリックの違いをリストできると便利です。

それ以外は、あなたが一緒に進むにつれて、残りに追いつくのはかなり簡単です。


1

はい。C ++の経験ほど重要ではないかもしれませんが、良いことです。

優秀な雇用主は、あなたがどのくらいの期間、特定の言語を持っているかよりも、あなたどのように考えるかに興味を持ちそうです。

エントリーレベルのC ++ポジションは問題ありません。すぐに学習でき、素晴らしい仕事をすることができます。良い会社はあなたに成長する機会をたくさん与えます。そうでない場合は、別の場所に移動して、C#とC ++の両方の経験を積むことができます。


0

それは本当にあなたが適用しているビジネスの性質に依存します。優れたオブジェクト指向ベースのプログラミングとアーキテクチャのスキルを持っている人を探しているなら、C#は次のものと同じくらい良いでしょう。

彼らがソフトウェアの速度/応答性に誇りを持っている場合、これはマイクロ最適化よりも重要であるため、アルゴリズムを知る必要があります-ハッシュテーブル対線形ルックアップなど。C#はここでも関連していますが、必要ですパフォーマンス特性の理解を示すために-たとえば、誰もがngen.exeを知っているわけではありません。

組み込み/モバイルおよび/または非ガベージコレクション環境にいる場合、メモリを効果的に管理する方法を本当に知る必要があります。@DeadMGが指摘したように、スマートポインターはここで重要ですが、メモリ割り当てプロファイルを理解することも重要です。ゲームプログラマーは、多くの場合、オブジェクトの大規模な配列を事前に割り当て、それらをリサイクルして、メモリ要件を事前に把握し、フレームごとに未知数を削減します。これは、iOSでスクロールするTableViewで使用される手法でもあります。

統合作業がある場合は、言語間のデータのマーシャリング(P / Invokeなど)の点でCレベルの専門知識が必要になる可能性がありますが、これらのデータ構造の使用方法に関するバイトレベルの理解も必要です。私の経験ではC#。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.