ほとんどの人と同じように、私はCの後にC++を学びました。C++は仕事を取得する言語の1つだったので学びました。私はまだ勉強中です(修士号を取得しています)。私のいとこの一人は、約12年間開発者として働いています。
彼は私にJavaを学ぶことを勧めます。そうすれば、私は良い仕事に就くことができます。彼は、電気通信のような少数のセクターだけがC++を使用し、ほとんどすべてのエンタープライズソフトウェアがJavaで開発されていると言います。私は働いています。私の大学の学生技術者として。仕事はC++でのWindowsプログラミングを含みます。私はコアJavaを学びました。私はそれらのどれも知りません Struts 、 Hibernate またはそこにあるものは何でも。
安全を期すために、両方をマスターする予定です。しかし、Javaは海だと思いますが、C++よりもJavaでプログラミングする方が簡単です(これは私の意見です。C++愛好家は私を殺しません)。
そこにいるオタクや専門家は私に何をアドバイスしますか。私はそれらの両方を学ぶべきだと思いますか。ソフトウェア業界のどのセクターがC++を使用していますか?
私が学部生として得た最高のアドバイスは、言語の教授からでした。彼は私にこう言いました(ここで言い換えます):「言語を覚えないでください。言語と結婚しないでください。それらは単なるツールです。それらはすべて同じ基本を行います。特定の言語を学ぶ代わりに、優れたソフトウェア開発の基礎を学びましょう。そうすれば、どの言語でも使用して成功することができます。」
彼が私にそう言う前に、私は新しい言語を学ぶことを恐れました。あとがき、私は彼のアドバイスを心に留めました、そしてそれはすべての違いをもたらしました。言語はツールボックスの単なるツールです。ある言語で優れたソフトウェアをプログラムして作成できる場合は、別の言語でそれを行うことができます。
C++は、パフォーマンスを重視するタスクに引き続き広く使用されています。たとえば、私はビデオの圧縮と解凍で多くの作業を行っています-それはすべてC++です。パフォーマンスが必要なこともあれば、使用する必要のあるすべてのサードパーティライブラリがC++であるため、同じ言語を使用している場合はそれらとの統合が容易であるためです。
C++を使用するプロジェクトの簡単なリスト:
C++は死ぬほどではありません。
私の経験:
ブルームバーグ、ロイター、および低遅延の市場データフィードを必要とするすべての銀行/取引クライアントはC++を使用しています。 (フィデリティ、JPモルガン、BNP、シティバンクなど)
防衛産業はC++を使用しています。 (他の言語の中でも-Javaも人気があります)
これらの業界もJavaや他の言語を使用していますが、C++に勝るものはありません。また、(もしあれば)なくなるまでに長い時間がかかる巨大な既存のC++コードベースがあることにも注意してください。
両方を知り、使用することは難しくありません。特定の言語についてはあまり心配しないでください。それはソフトウェア開発の真の核心ではありません。
Googleと名乗るサイトの中には、C++を広く使用していると考えているサイトもあります。神に感謝します。彼らはそこにあるいくつかのウェブサイトをインデックスに登録するためにパフォーマンスを必要としません。
このInterwebがうまくいくと、彼らは本当に困るでしょう。 (-:
真面目な話ですが、現在のチャネルのCとPerlへの変更(復帰?)を除けば、前の4つのプロジェクトはすべてC++でした。
すべて本当に興味深い。
ビデオゲームはまだC++を使用しています。頭に浮かぶ1つの例は、iphoneおよびxboxゲームの開発に使用できるTorqueエンジンです。
C++は死に近いところはどこにもありません。他の人が示唆しているように、自分自身を言語と結婚させないでください。仕事の見通しの観点からC++を学んでいる場合は、プログラミングパラダイムの代表を取り上げることをお勧めします。
パラダイムに順応することは、通常、言語自体を理解することよりも困難です。他の人が他の提案のためにチャイムを鳴らすことを願っています。
多くの防衛産業の請負業者は、特にハードウェアを扱う場合、C++を使用します
高度な医療機器(MRIなど)の多くのメーカーはC++を使用しています。
できれば両方を学ぶと言います。 C++/C#のようなサンドボックス言語になってしまった場合でも、C++の基盤があると便利です。あまりにも多くの人が基本を理解していません。
さまざまな都市が特定の言語で仕事の大部分を持っていることに注意してください。あなたが行き着くと思う都市のクレイグリストの求人掲示板に行き、彼らが何を求めているかを見てください。たとえば、ピッツバーグはC#の町ですが、ニューヨークはよりバランスが取れています。
私のアドバイスは、C#を学ぶことです。最近では、求人情報のほぼ50%がJavaで、残りのほぼ50%がC#でしたが、C++のリストはごくわずかでした。
とは言うものの、C++を使用している人々は、C++を使用している理由を知っており、おそらくそれの良いユースケースを持っています...つまり、最高レベルで言語を使用する方法を実際に学ぶことになるでしょう.../C#は、プログラミングについてそれほど速く教えてくれないでしょう。
C++の仕事を引き受けることにした場合は、ショップがSTLを効果的に使用し、Boostを使用していることを確認してください。 Boost/STLの使用を検討していませんが、実際に使用しています。
C++は、ハイエンドCAD/CAMシステムなどのエンジニアリングアプリケーションで今でも広く使用されています。
ネイティブコードの死はかなり誇張されていると思います。 Microsoftでさえ、Visual Studio2008で.NETに関するすべてのC++を作成することをやめました。それは、ネイティブC++開発ツールを再び積極的に改善し、管理された世界との相互運用をより簡単にしているようです。
キーワード:銀行(金融機関)、ゲーム
ああ、そして(不)有名な [〜#〜] root [〜#〜] フレームワークを使用している素粒子物理学者や他の科学者も。
そして、C++ベースのアプリケーションの このリスト をチェックしてください。
Bjarne Stroustrupには、C++で記述された 会社/アプリケーション のリストがあります。
私はあなたのいとこに同意する傾向があります。 Javaは間違いなくより多くのエンタープライズアプリケーション(銀行や保険会社が必要とするものを考えてください)で使用されますが、C++はより「ニッチな」市場で使用されます。JavaはC++よりも習得と習得が簡単です。それを認めるのは恥ずべきことでも不快なことでもありません。
私が仕事をしている場所では、C++で組み込みソフトウェアを作成しますが、Javaで作成されたGUIアプリから通信します。ソフトウェア業界には、両方の(そしてもっと多くの)言語のための十分な余地が確かにあります。
あなたの大学にはJavaベースのコースがありませんでしたか?それは奇妙です!!
C++とJavaだけでなく、いくつかの言語とパラダイムに触れる必要があります
ほとんどのパッケージソフトウェアはまだC++で書かれています。つまり、ゲーム、オフィスアプリケーション、グラフィックスとビデオのエディター、およびオペレーティングシステムです。実際、オンラインではない毎日使用しているソフトウェアについて考えると、C++(またはCまたはObjective-C)で記述されている可能性があります。 Java、Python、Ruby、Perlなどで書かれていません。パッケージソフトウェアはあまり普及していませんが、それでも多く使用されており、すぐになくなることはありません。
オペレーティングシステムは、組み込みであろうとデスクトップ用であろうと、ほとんどC言語でのみ記述されています。 JavaまたはC#でそれらを書く試みがなされましたが、どれもうまくいきませんでした。すべてのドライバーもいくつかのCバリアントで書かれています。これが変更されることはありません。もうすぐ時間。
私のアドバイスは、あなたがもっと楽しむ言語をマスターすることです。私はC++とJavaをよく知っており、両方を専門的に使用しています。しかし、C++は退屈で気が遠くなるので、別のC++の仕事を受け入れることは決してありません。むしろもっと面白い言語を習得することに時間を費やしています。 。
Javaは、抽象化された詳細を気にし始めるまでは素晴らしいものです。ほとんどの人はそれをする必要はありません。
私は長い間、主に製造業や通信会社の内部および外部デスクトップアプリケーション向けにC++で執筆しており、フルタイムでJavaを使用して16年のうち約1年しか働いていませんでした。
Javaは、最初に登場した90年代半ばに予測していたようにデスクトップを引き継ぐようには見えませんでした。現在、C++は.netおよびAJAX/Webアプリケーションとの競争が激しくなっているようです。
バックエンドシステムでの使用については実際には言えませんが、C++で見たよりも多く見たので、話しているプログラミングの種類によって異なります(たとえば、ユーザー向けと内部システム)。 。
さて、私はいくつかの言語以上を学ぶことをお勧めします。私は通信業界で働いており、はい、C++を使用していますが、私たちが取り組んでいるプロジェクトの多くはJavaにもあります。
私はあなたが学ぶことをお勧めします:
1)C++/C 2)Java 3)ErlangまたはHaskel 4)Ruby
これは、ある言語には存在するが別の言語には存在しない概念を理解するのに役立ちます。市場性にも役立ちます。
tiobeプログラミングインデックス を見てください。そうすれば、増加している言語の感触をつかむことができます。
C++はISVによって頻繁に使用されます。 Microsoft、Adobe、Oracle、Sun、Symantecを考えてみてください...
私は組み込みデバイスで作業する仕事でCとC++を定期的に使用しています。ここでも、超低レベルのものについては話していません。私は中級レベルとUIの仕事をしています。 Qt、Gtk +、Windows MobileSDKなどを考えてみてください。
ビデオゲームについて言及している投稿を最終的に見るには、一番下までスクロールする必要がありました。 CとC++はその業界で巨大です。
「何を学べばいいのか」という限り。それはかなりオープンエンドです、あなたはできるだけ多くを学びたいです。そうです、あなたはそれらの両方を学ぶべきです。数人の人が言っているように、C#も良いものです。 Python、Ruby、またはPHPおよびいくつかのWebフレームワーク(Rails、Symfony、Django、ASP.Net)も学ぶ必要があります。最近のWebアプリはかなり大きくなっています。
バブルがC++のみで構成されている場合、市場性はあまり高くありません。
編集: おっと、ゲームは私が最初にここで見たよりもずっと多く言及されたと思います。私の悪い。
C++は、組み込みシステムで頻繁に使用されます。 UI開発で使用されています。例えば。有名なQTフレームワークはC++で書かれています。
最終的にそれはあなたが何をしたいかに依存します。組み込みシステムで作業したい場合は、C/C++をよく学んでください。
ゲーム業界はC++永遠に続くように見えます。
私のキャリアの中で、私は次の目的でC++を開発しました。
また、防衛産業のC++開発者向けの広告もたくさん見ました。 C++開発者向けの作業は、これまでほどではありませんが、それでも多くの作業があります。
Javaを習得しても問題はないと思いますが、身に付けておくのは良いスキルです。