C++とC#、手を出して勉強するにはどちらがいいですか。またこのほかに主流になりつつある言語がありましたら教えてください
参考書を探す際に、プログラム言語として、C言語、C++、C#、Java、Objective-c等あることを知りました。
今はCを勉強しているのですが、上からはC++もゆくゆくはできるようにしようと言われ、互換性もあり、Cより複雑なもの組み込めるとのことで納得し、さまざまな分野、OSで使われているという記述をうけ、ハードウェアよりの言語という印象を受けました。
対して調べた中でC#というものがあり、こちらも幅広く使われているという記述をよく見ます。アプリ開発やソフトウェアよりの言語という印象を受けました。
今は組み込み系職ということで、C++を学んでいくものだとは思っていますが、
今後、携帯デバイスが増えていくであろう中で需要のあるアプリ、ソフトウェア開発職にいつかはなりたいと思っています。
これも踏まえて今後どちらを深く理解したらいいかなど、経験など教えてください。
もちろん両方覚えたらいいべっていうのが一番なんですが笑
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答9件
0
ベストアンサー
プロに求められるスキルは
「C++できます C#できます Javaできます」
じゃなくて、
「どんな言語だろうがマニュアルと処理系もらえれば一週間でそこそこのものが書けます」
なのよ。
投稿2017/06/26 04:55
総合スコア16614
0
組み込み系職で、上からC++と言われたらC++じゃないのでしょうか。
C,C++やっているなら、python、go あたりじゃないのかなぁとも思いますが。
一応、C#は、日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
の記事にもあるように、将来的には、安全なポインタが追加され、C#は、C++じゃないとだめと言われていたところを食い込みに行っているので、C#は筋が悪くないと思います。
あと、この記事はこの手の話題としてパーフェクトなので読むといいと思います。
いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由
投稿2017/06/26 02:54
編集2017/06/26 04:59総合スコア1984
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
結論から言えば、やりたいこと優先で言語は選択するものです。今回のC#/C++とは別件ですが、たとえばiOSアプリであればSwift、ブラウザ内で動くものであればJavaScriptやAltJSというように、環境から何を選ぶべきかは決まってきます。
まずは何かを作ることにして、それをやるのに向いた言語をやっていくのがいいでしょう。(オブジェクト指向の言語内でパラダイムが違わない範囲なら)他の言語に乗り換えるにしても、1つマスターしていれば大問題にはなりません。
投稿2017/06/26 02:38
総合スコア145201
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
C/C++は基本として良い言語です。
どんな言語で覚えたらいいかは役割について考えると良いと思います。
C/C++言語の特徴は以下のようなものが挙げられます。
- 高速だが組むのは大変
- 低級言語(昔は高級言語だったんですけどね)
- 静的型付け言語
C#はC/C++と同じ特徴ですので覚えるのは容易です、しかし近い言語であるがゆえに使い所でバッティングする事が多いです。
他にもGoやJavaなどがこのカテゴリに入ります。
ですので、反対の言語も覚えると技術者としての幅が広がると思います。
- 低速だが組むのが簡単
- 高級言語
- 動的型付け言語
要はスクリプト言語ですね、PythonやRubyなどがこれに当てはまります。
意表をついてHaskellなどの関数型もありますが、仕事として使いたいのであればあまりお薦めしません。
投稿2017/06/26 04:42
総合スコア930
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こんにちは。
C++とC#、手を出して勉強するにはどちらがいいですか。またこのほかに主流になりつつある言語がありましたら教えてください
個人的にはC++が良いと思いますが、適正の問題やどこを目指すのか?の問題があるので人によりベストは異なると思います。
C++はおっしゃる通りハードウェア寄りの言語ですので、コンピュータの仕組みを学びやすいです。組込系には非常に向いていますし、そうでない場合も基本的な仕組みを学べるので高速なプロクラムを開発するためのスキルが身につきやすいです。
C#もおっしゃる通りアプリよりの言語ですので、C++より生産性が高くなるよう設計されています。また、より大勢のプログラマを確保するため、より容易に学べるよう設計されています。(C++の参照、右辺値参照、テンプレート・メタ・プログラミングの難易度はかなりのものです。更に多数のベンダがコンパイラを供給しているのでそれらの互換性も頭の痛い部分です。それらに比べると容易という意味です。)
また、アプリよりなので需要も多く食いっぱぐれしにくいと思います。
ただし、簡単なので言語そのものを使いこなすスキルは早めにサチります。その後はマネージャとしてのスキルを磨かないと厳しいかもしれません。
マネージャとしての才能もお持ちであれば、C#の方向の方が将来食いっぱぐれしにくいと思います。もしかするとJavaの方が良いかもしれませんが、C#とJavaは方向性が非常に近い言語ですし、文法はどちらもC++を参考にしてますから、転向は容易と思います。
投稿2017/06/26 04:13
総合スコア23272
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
私自身は趣味でC/C++でやっています。
なので、仕事の方は知りませんが。
上 ( 上司 etc. ) がいわれたのならその言語の方がいいと思います。
今は組み込み系職 ... とおっしゃっているので、組み込み系なら C, C++, アセンブラでしょうか。
他の言語でも可能かもしれませんが、これらが基本。
というか、C/C++すら理解できないなら、組み込みは無理かもしれません。
なぜかって?
ポインタという概念があるから。
アセンブラでもいいですが。
C/C++が理解できれば 他の言語も楽になる。
これは意外と言われいますね。
私もこれに賛成。
書き方そのものは違っていても、知識面でまったく違う。
例えば、Javaで クラスからオブジェクトを生成するときは、
Java
1// Test というクラスがあるとして 2Test test = new Test();
となりますね。
C++ではどうでしょうか。
C++
1// CTest というクラスがあるとして 2CTest* Test = new CTest();
...あら? なんか Java の構文、C++の ポインタマーク ( 厳密には アスタリスク? ) があるかないかだけ?
...ってことで、実際にはポインタに相当するものがある。
しかし、それを表に出すと「JavaってCと変わんねーだろ」ということになりかねないので、
ランタイムかなんかよくわかりませんが、それが内部で行う...みたいな?
という風に、C/C++がわかっていれば、理解しやすくなる。っていうメリット。
ソフトを組む, ゲームを組む という場合は C/C++はお勧めできませんが、基礎としてはかなり大事。
組み込み系ならできて当たり前。
かなと。
投稿2017/06/26 05:38
総合スコア4958
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/26 08:57