質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

9回答

328閲覧

これから勉強していく言語

yowashi

総合スコア19

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

3クリップ

投稿2017/06/26 02:33

C++とC#、手を出して勉強するにはどちらがいいですか。またこのほかに主流になりつつある言語がありましたら教えてください

参考書を探す際に、プログラム言語として、C言語、C++、C#、Java、Objective-c等あることを知りました。
今はCを勉強しているのですが、上からはC++もゆくゆくはできるようにしようと言われ、互換性もあり、Cより複雑なもの組み込めるとのことで納得し、さまざまな分野、OSで使われているという記述をうけ、ハードウェアよりの言語という印象を受けました。

対して調べた中でC#というものがあり、こちらも幅広く使われているという記述をよく見ます。アプリ開発やソフトウェアよりの言語という印象を受けました。

今は組み込み系職ということで、C++を学んでいくものだとは思っていますが、
今後、携帯デバイスが増えていくであろう中で需要のあるアプリ、ソフトウェア開発職にいつかはなりたいと思っています。

これも踏まえて今後どちらを深く理解したらいいかなど、経験など教えてください。
もちろん両方覚えたらいいべっていうのが一番なんですが笑

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答9

0

ベストアンサー

プロに求められるスキルは
「C++できます C#できます Javaできます」
じゃなくて、
「どんな言語だろうがマニュアルと処理系もらえれば一週間でそこそこのものが書けます」
なのよ。

投稿2017/06/26 04:55

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yowashi

2017/06/26 08:57

なるほど、確かにそうですよね。最初にアルゴリズムやフローチャートをしっかりと学ぶのも組み立てる上で必要なロジカルシンクを培う目的があるといわれました。 言語以前にその土台をすらりと組めるスキルが大事なんですね。その中で一つわかっていれば日本語を英訳していく処理感覚で他言語にも応用が利くということですね。
guest

0

組み込み系職で、上からC++と言われたらC++じゃないのでしょうか。

C,C++やっているなら、python、go あたりじゃないのかなぁとも思いますが。

一応、C#は、日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
の記事にもあるように、将来的には、安全なポインタが追加され、C#は、C++じゃないとだめと言われていたところを食い込みに行っているので、C#は筋が悪くないと思います。

あと、この記事はこの手の話題としてパーフェクトなので読むといいと思います。
いま学ぶべき第二のプログラミング言語はコレだ! 未来のために挑戦したい9つの言語とその理由

投稿2017/06/26 02:54

編集2017/06/26 04:59
kiichi54321

総合スコア1984

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

結論から言えば、やりたいこと優先で言語は選択するものです。今回のC#/C++とは別件ですが、たとえばiOSアプリであればSwift、ブラウザ内で動くものであればJavaScriptやAltJSというように、環境から何を選ぶべきかは決まってきます。

まずは何かを作ることにして、それをやるのに向いた言語をやっていくのがいいでしょう。(オブジェクト指向の言語内でパラダイムが違わない範囲なら)他の言語に乗り換えるにしても、1つマスターしていれば大問題にはなりません。

投稿2017/06/26 02:38

maisumakun

総合スコア145201

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yowashi

2017/06/26 02:44

そうなんですね、まだひとつの言語も理解できてないのに飛びすぎた考えでした。仕事で残業も普通にこれから出る中で限定された考えしか生まれないような不安があったのかもしれません。 とりあえず、仕事で使うというC++をひたすら勉強使用と思います。
guest

0

C/C++は基本として良い言語です。
どんな言語で覚えたらいいかは役割について考えると良いと思います。

C/C++言語の特徴は以下のようなものが挙げられます。

  • 高速だが組むのは大変
  • 低級言語(昔は高級言語だったんですけどね)
  • 静的型付け言語

C#はC/C++と同じ特徴ですので覚えるのは容易です、しかし近い言語であるがゆえに使い所でバッティングする事が多いです。
他にもGoやJavaなどがこのカテゴリに入ります。

ですので、反対の言語も覚えると技術者としての幅が広がると思います。

  • 低速だが組むのが簡単
  • 高級言語
  • 動的型付け言語

要はスクリプト言語ですね、PythonやRubyなどがこれに当てはまります。
意表をついてHaskellなどの関数型もありますが、仕事として使いたいのであればあまりお薦めしません。

投稿2017/06/26 04:42

pashango2

総合スコア930

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「やりたいこと」が「アプリ、ソフトウェア開発職にいつかはなりたい」なので、C#お勧めします。C#の仕事のほうがC++より断然多いことが一番大きな理由です。

一部の頭のいいプログラマーを除いて、必要だからC++、次のプロジェクトでJAVA、その次はC#とあれこれやっていくのは、普通の脳みその持ち主で、家族も友達も大切な人にはお勧めしません。

あくまで個人的意見です。

投稿2017/06/27 05:51

tf2014

総合スコア75

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

言語はあくまでやりたいことを記述するための道具なので、考え方をしっかりとしておけば応用が効きます。(論理的に物事を考える力を磨くことが大事)

ただ、まずはどれからとなると、何か指定された言語になるでしょうから、その言語を何よりも理解する必要はあります。(言語の指定がなければ自分が得意な言語になるでしょうけど)

あまり経験のない言語を指定されたとしても、まずは自分の得意な言語で考えてみて、それを指定された言語に落とし込んでいけばいいと思います。

投稿2017/06/26 08:15

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

こんにちは。

C++とC#、手を出して勉強するにはどちらがいいですか。またこのほかに主流になりつつある言語がありましたら教えてください

個人的にはC++が良いと思いますが、適正の問題やどこを目指すのか?の問題があるので人によりベストは異なると思います。

C++はおっしゃる通りハードウェア寄りの言語ですので、コンピュータの仕組みを学びやすいです。組込系には非常に向いていますし、そうでない場合も基本的な仕組みを学べるので高速なプロクラムを開発するためのスキルが身につきやすいです。

C#もおっしゃる通りアプリよりの言語ですので、C++より生産性が高くなるよう設計されています。また、より大勢のプログラマを確保するため、より容易に学べるよう設計されています。(C++の参照、右辺値参照、テンプレート・メタ・プログラミングの難易度はかなりのものです。更に多数のベンダがコンパイラを供給しているのでそれらの互換性も頭の痛い部分です。それらに比べると容易という意味です。)
また、アプリよりなので需要も多く食いっぱぐれしにくいと思います。
ただし、簡単なので言語そのものを使いこなすスキルは早めにサチります。その後はマネージャとしてのスキルを磨かないと厳しいかもしれません。

マネージャとしての才能もお持ちであれば、C#の方向の方が将来食いっぱぐれしにくいと思います。もしかするとJavaの方が良いかもしれませんが、C#とJavaは方向性が非常に近い言語ですし、文法はどちらもC++を参考にしてますから、転向は容易と思います。

投稿2017/06/26 04:13

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

C C++を学んで学習すれば、他の言語に関してはその亜流として捉える事が可能です。

C++ にはポインタという概念が色濃く出てきます。

他の言語はそこをオブラートに包んでいましが、便利な概念なので、必ず登場します。
その時、Cを学んで学習した事柄が生きてきます。

メモリを物理的なイメージで考えられることも重要です。

C++は近年、扱う方が減っているので、その技術者の価値は上がってきていると思います。
ただし、ベテランに限るという話でもあるのですが…

投稿2017/06/26 02:58

107User

総合スコア78

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問