web-dev-qa-db-ja.com

C ++スキルはCスキルより高いですか?

よく見られるC/C++は、私のCVでの私のスキルを実際に説明しているのではないと感じています。だから私はそれを高度なC++の知識と平凡なCのスキルに分けることを計画しています。

これは読者を混乱させると思いますか? 「CはC++のサブセットなので、この人は私に電話をかけようとしているのは何ですか?」さて、私が伝えようとしていることは、純粋なCプロジェクトが趣味であるのに、実際のC++プロジェクトをいくつか実行したことです。熟練したC++プログラマーが必ずしも資格のあるCの人ではないことに同意しますか、またはこの切り替えは簡単に行えると思いますか?

28
h0b0

あなたは一度にたくさんの質問をしました。分けて答えてみます。私はこのプロファイルタイプに該当する多くの人を雇っています。多くの場合、あなたが尋ねた質問に対する明確な答えが得られないことが多いため、面接を多く受け、人を拒否しなければなりません。

  1. CまたはC++に習熟していれば、他のプログラムの資格を得られますか?
    あなたが実際に上級レベルにいる場合[〜#〜]いいえ[〜#〜]。つまり、コアエンタープライズアプリケーションの一部でC++プログラミングを6年間行っていて、現在はすべてCである組み込みシステムに入れようとしている場合-プログラミング構文やデバッグ方法は問題ではない可能性があります。しかし、問題をよく考える必要がある場合は、確かに非常に厄介です。これは、どちらの側からも他の言語にも当てはまります。 1種類の言語のみを費やしていると、他の形式に変換するのが難しくなります。言語の構文を学べるかどうかではありませんが、C、C++、Java、Perl、Pythonを使用している場合は、実際には違った考え方をします。質問を引き伸ばすために-ほとんどの場合-C++とJava男は交換可能に使用できます。Perl、PHP、Phythonも同様です。Cはまったく異なります。

    あなたが比較的若い人なら-チャンスはあなたが速く追いつくことができるということです。

  2. CではなくC++を知っていると、スキルが上がるということですか
    実際には違います。違います。なぜなら、原則として、Cから完全な製品を作成できるかどうかは、C++で行うよりもはるかに困難なためです。共有メモリシステムのトラブルシューティングをマスターできる人の数は、VC++または同様のフレームワークを使用して適切なGUIプログラムを書くことができる人の数よりもはるかに少ないです。

  3. これは、C(または最低レベルのプログラミング)が最高レベルの達成であることを知っているという意味ですか?
    もう一度!これは矛盾ではありません。今回は、比較するドメインによって異なります。 Linuxカーネル内のシステムプログラミング、またはハードウェアに非常に近いものを見る場合は、Cのプログラミング機能がより適切ですが、銀行ソフトウェアやビジネスルールエンジンを作成している場合は、通常C++が自然な選択です。ポイントは、あなたの本当の強さは言語の構文ではなく、問題のクラスを解決する方法であり、あなたはあなたの人生のいくつかのカテゴリー/ドメインを習得することしか望めないということです。あなたがあなたの履歴書に何かを入れている場合-それは本当に重要なことです。

  4. Cでしか行っていない場合、オブジェクト指向プログラミングがわからないということですか?
    どういたしまして。実際、インタビューでのリトマステストでは、Cのバックグラウンド出身かC++出身かを知るために、「Cでオブジェクト指向プログラミングを実行できますか?」という非常に単純な質問をします。 -男はジャンプして言う-「間違いなくNO!」彼/彼女はC++の仲間です。重要なのは、マルチメディアコード、マルチスレッドシステム、プロトコルレイヤースタックなどの非常に複雑なコードを実際に作成する場合でも、「オブジェクトコードのように考える」ことです。Cコンパイラーは、2つのルーチンのカプセル化がうまくいかなくても罰せません。またはオブジェクト-しかし、システムがあなたを発射し続けるスケーリングするとき-私は時々信じます-オブジェクト指向の時代に生まれた多くの人が、カプセル化が実際にコードに本当にどのように違反するかについて正確にかなり弱いことがよくありますクラスとオブジェクトでいっぱい。 申し訳ありませんが、脱線しました。しかし、要点は、問題の分析と設計のスキルの方が、プログラミングスキルだけの場合よりも重要です。

ドメイン固有の露出とデザインスキルを適切に配置する必要があるという意味ですか?
絶対そうです!

31
Dipan Mehta

本当に重要な人々のために、いいえ、それは彼らを混乱させるべきではありません。

実世界のCおよびC++プログラミングについて何でも知っている人なら誰でも、類似点と歴史にもかかわらず、どちらか一方の本番プログラミングは完全に別の動物であることが多いことを知っています。

27
Dan McGrath

個人的には、CとC++はまったく異なる言語であるため、人々が「C/C++」を書くと、それは非常に不愉快です。逆に、履歴書に「C、C++」または「C++ and C」が表示された場合、それは私に終わりのない印象を与えます。残念ながら、ほとんどすべての人が「C/C++」と書いており、それは通常「私はC++を知っていますが、必要に応じてCを行うことができます」という意味です。

また、私は履歴書にそれほど具体的ではありません。知っているプログラミング言語を、おそらく熟練度の高いものから低いものの順に並べてください。これで、HRバズワードフィルターを通過できます。技術面接で、長所と短所を説明できます。

12
Dima

いいえ、CとC++は似ていますが、類似のルートを共有することはパラダイムと使用法が異なるため、混乱することはありません。したがって、分離する必要があり、専門知識も分離する必要があります。さらに、2つに分けて、より具体的な専門知識(GUI/FLTKまたは他の使い慣れたライブラリなど)について言及できると思います。

7
aggietech

私はあなたの言い回しが好きでした:「純粋なCプロジェクトだけでなく、実際のC++プロジェクトもいくつか趣味で行っています」

だから私はそれをCVの専門用語に入れます:

  • いくつかのC++製品に取り組んだ
  • cを使用するいくつかのサイドプロジェクト

「数個」や「数個」の代わりに数字を入れた方がいいです。正確である必要はありません。「20以上」はこの目的のための数です。

「スキルレベル」の説明は正しいですが、「経験」の説明は正しいですand明確です。

5

CとC++は異なる言語であり、CV内で分離しておく必要があることに同意します。 Cは(ほぼ)C++のサブセットですが、Cを使用するときのプログラミングスタイルは通常非常に異なります。設計が異なる、コードが異なるなどです。 #includesなどの特定のC機能をC++から削除して、後方互換性を完全に放棄します。これらは単に異なる言語です。

したがって、私のアドバイスは、CVで2つの言語を分離しておくことです。

3
Giorgio

簡単に言うと、あなたを評価している人が「CはC++のサブセットである」と考える傾向がある場合、彼らはすでに混乱しています。

3
Mr_Spock