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

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

ただいまの
回答率

90.49%

  • C#

    7391questions

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

  • C

    3805questions

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

  • C++

    3577questions

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

  • teratail

    415questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

  • Visual C++

    115questions

    Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

C系の言語ならどれを勉強すべきでしょうか?

受付中

回答 10

投稿 編集

  • 評価
  • クリップ 6
  • VIEW 12K+

b1ackc0ffee

score 197

お世話になります。
プログラミングの勉強を始めて、数か月です。
PHPはさらっと一通り勉強して、
次はC系の何かを勉強したいと思っています。

現在、社会的な需要は何が一番ありますでしょうか。

とりあえずC#でストアアプリを作りながら、VisualStudioを使用し勉強していますが、
C系を学び始めるなら、C#、C++、Cなどなど何から始めるのが良いでしょうか。
アンチの方も、ご意見いただけると助かります。

また、他に望ましいorおすすめの言語があれば、
簡単な理由と何の言語かを教えていただけると助かります。

宜しくお願い致します。

------------------------------
追記
C押しが多いみたいです
実際にCやっててよかった(^^♪★
って思った経験などあればご教示いただけると嬉しいです。


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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 10

+11

CがつくからC系というのはちょっと誤解があります。
プログラミング言語の関係図について、下記のサイトが参考になるかと思います。
http://www.levenez.com/lang/
http://exploringdata.github.io/vis/programming-languages-influence-network/

以下、私見が混じっていますが、C系といわれる各言語の特徴です。

C
BCPL→B→Cの流れを組んだ初めて実用的な高級言語です。高級言語といいますが、アセンブリより高級なだけで、メモリなどは自分で管理する必要があります。この頃にはオブジェクト指向やガベージコレクションなどの最近の言語にあるようなものはありません。逆に言うと、アセンブリに近いレベルで実用的なプログラミングができる言語と言えます。言語仕様が単純であり、機能も少ないため、言語自体の学習コストは低いです。ただ、いざ実装する段階でポインタやメモリ管理等をきちんと理解していないと、動くコードは書けません

C++
Cにオブジェクト指向とか、テンプレートとか、スマートポインタとか、型推論とかとりあえず何でも突っ込んだ言語です。ポインタや配列、メモリの管理方法などはCを基礎にして発展していますので、Cが使えない人は、C++を使いこなすことはできません。Cの知識が前提であり、追加の機能も豊富ですので、学習コストは高いです。私は未だに全ての機能を使いこなす自信はありません。なお、C++でのオブジェクト指向におけるクラスは構造体の拡張でできあがっています。

Java
C++からオブジェクト指向の部分だけ抜き出したような言語です。ガベージコレクションを採用し、Cのように直接メモリ管理する必要はありません。オブジェクト指向に特化しているため、オブジェクト指向としてプログラミングする場合は使いやすくなっています。Cの知識はいりませんが、C++を知っている人からすると、機能が少なくて不満になります。オブジェクト指向さえわかれば学習コストは低いです。C++系オブジェクト指向の入門としてお勧めです

C#
DelphiをC++風にして、MSが考える最強のJavaを実現した言語です。C++の後継のような顔をしてますが、先祖はDelphiです。ですので、かつて一世を風靡したDelphiのように使いやすいのが売りになっています。Javaよりも最新の流行を取り入れており、LINQやデリゲートなど機能が豊富です。アンセーフコードではメモリ管理までできます。機能を全部覚えようとするといつの間にかC++並の学習コストがかかりますが、基礎部分だけであれば、Java並です。私はアンセーフの部分はあえて学習していません。

D
自称Cの後継です(Cの由来はBCPLであり、Bの次がCだったから、Cの次はPじゃないかって反論があります)。目指しているところはC++と被っています。被りすぎていて、Dで採用された機能が、いつの間にかC++でも採用されて、どんどんいらない子になっている気がします(私の偏見です)。実はあまりよく知らないんですけど、C++やってたら、そのうちDもできるような気がします。

Objective-C
CにSmalltalk風のオブジェクト指向を付け加えた言語です。Cを知らなくても追加構文の部分だけできるらしいですが、Cができることが前提です。C++も使えるObjective-C++というのもあります。AppleがSwiftへシフトしたので、今から覚える必要はありません。忘れてください

Perl
文の終わりに;{}でブロックを考えると、たぶんC系です。Cをシェルスクリプトみたいにしたら、たぶんPerlになるんだと思います。でも、Perlをやるぐらいなら、PythonかRubyを学んでください。Perl6の能力は未知数です。

JavaScript
C系だと思います。Cに、Selfのプロトタイプベースオブジェクト指向と、Schemeの関数型を足したらJavaScriptになるんだと思います。名前の由来であるJavaは全く関係ありません。これからの時代、Web関係では必須でしょうが、実際書くとなるとなんらかのAltJSになると思います。

オススメコースは
1. Cの基礎を学ぶ(ポインタとmallocの使い方が理解できるようになればOK)。
2. Javaでオブジェクト指向を学ぶ。
3. C++をがっつりする。
4. 関数型言語(F#やHaskellとか)を何か一つ学ぶ。
5. そして、C#をするとなぜかするする理解できる!
がいいんでないでしょうか。
なお、Web系ではJavaScriptは必須なので、別途勉強しておくように!

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/03 12:50 編集

    長文回答有難うございます!
    詳しくてすごいです。
    指摘や参考サイトも助かります。
    歴史的に理解することができました!
    ポインタやメモリ管理などわからなくて難しそうですが、

    ①Delphi→C#
    ②Python/Ruby
    ③JavaScript
    ④C→Java →C++
    の流れで勉強しようかと思いました。④は難しそうです。
    と思ったら、オススメコース書いてくださっていたのですね❤
    関数型言語(F#やHaskellとか)は聞いたことないのですが、調べてみます。

    「AppleがSwiftへシフトしたので、今から覚える必要はありません。忘れてください。」 の下り好きです!

    宜しくお願い致します。

    キャンセル

  • 2015/09/03 13:26

    raccyさんの提案は素晴らしく全面的に賛成ですが、

    > C# (中略)機能を全部覚えようとするといつの間にかC++並の学習コストがかかりますが

    ここだけは一応否定します。
    JavaとC#の難易度はそれほど違いませんし、C++の仕様は本当に複雑なので他の言語と比べ物にならないほどです。

    キャンセル

  • 2015/09/03 14:05

    hello-worldさん

    補足有難うございます★
    C++って化物なんですね・・*。
    私Java苦手なのですが、今はVisualStudio2015を使ってxaml触りながらC#を学んでいると、Javaほど苦手意識を感じていません。これからが難しいのでしょうか?

    有難うございました!

    キャンセル

+8

C#というと、今はIDEなども提供されていて、Windows以外でも使えますが、やはりWindows専用というイメージが根強く、実際にWindows以外で使ってる人は多くはないと思います。

「現在においても未来においても、私はWindowsユーザーだ」という場合はC#でいいと思います。
ですが、今Windowsユーザーではない、あるいはこの先Windowsユーザーでなくなるは予定があるなら、CやC++の方が使う機会があるのでは、と思います。
上記で書いた様に、Windows以外でもC#は使えるので、C#を勉強したからといって無駄になるというわけではありません。

どちらにしろ、他の方が仰ってるように、Cは比較的古い言語で、多くのシステムや後発言語に多大な影響を与えてきた、基本的な言語の一つです。難解ですが、それでも勉強する価値は十二分にあると思います。

私は票を投じるとしたらCです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/07 19:21

    回答有難うございます^^
    使用PCは、MacとWindowsとiosです。
    開発用としては、何を使うかわからないのですが、希望はiosアプリと、WEBです。
    ゲームには関心がなく、業務用システムや、ECサイトが作れるようになりたいです。

    Cは何で使われているのでしょうか?

    宜しくお願い致します。

    キャンセル

+7

社会的な需要で言ったらC言語は組み込み系で使われているので強いです。

プログラミング言語でよく使われているランキングをだしているTIOBE Indexによると、C言語は2位です。

が、C言語はメモリ管理など色々知らないといけない事があり大変です。C#を続けられて学んでからでも遅くないですよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/07 18:56 編集

    回答有難うございます^^
    Javaが人気な理由は何なのでしょうか。

    安心しました。C#を覚えて余裕が出てきたらC言語の勉強をします。

    組み込み系、制御系、汎用系、業務系など、シンプルでわかりやすい理解がまだ難しいです。
    組み込みって映像系(おしゃれなIT企業)でよく聞くような気がします...
    どころ目指すかの前に何があるかを知らないといけないですね><、

    キャンセル

  • 2015/09/08 02:34

    Javaが人気な理由は身も蓋もない言い方をすれば、IBMなど大企業からの支持が得られた、と言うのがキッカケです。

    大企業が早い時期からJavaを採用した理由は、

    - C++を参考にしたオブジェクト指向言語だったので、大規模なプロジェクト向きだった
    - 早い時期からガベージコレクションが採用されていたので、メモリ破壊などのバグを踏みにくい
    - 早い時期からインターネットを意識した言語だった

    といった感じでしょうか。また、ちょうどLinuxなどのオープンソース文化も盛んになり始めたころで、Tomcat等がオープンソースで無償で使える辺りも、開発人口を増やした理由でしょう。

    組み込み系ってザックリすぎていい名前ではないですね。炊飯器やポットだけでなく、自動車やロボットの制御にも使われています。(自動車やロボットになると1製品1億行以上のコードでシステムが構築されているそうです。)スマートフォンのアプリの開発言語はObjective-CだったりJavaですが、スマートフォンのOSの開発にはCやC++が使われています。
    要するに、C/C++はハードウェアを細かく制御するためによく使われる言語です。映像系でも使われているのは、細かく制御することでパフォーマンスを向上する目的で使っているんでしょうね。

    本文の回答よりも長くなりましたw

    キャンセル

  • 2015/09/09 12:54

    長文回答有難うございます^^
    そうなんですねw
    IBMってそんなに偉大なのでしょうか・・・?名前はすごくよく聞くけど、あまり身近に感じない企業です。

    オブジェクト指向じゃない言語を勉強したことがないので、オブジェクト指向の良さがまだ全然理解できていません(恥
    Linux...?Tomcat...?うーーんまだまだ覚えることがたくさんあります。

    パフォーマンスや、セキュリティなどあらゆる方向から考えないといけないんですね。

    たくさんアドバイス有難うございます。
    皆様の意見を自分なりに、整理し成長したいと思います。

    宜しくお願い致します。

    キャンセル

+5

昔と比べて選択肢が多くていいなあと思う反面、何から手を付けていいか、という新しい悩みがあるんですね。

Cから勉強するのが本筋だという意見は私も賛成なのですが、時間は有限なので、実際に使う場面を考えて選択するのも手だと思います。またC系の言語はそれだけでは作ることができるアプリケーションが限られているので、ライブラリを覚える時間も必要になってくると思います。

今どきのWindowsのアプリケーションを作るのであればC#と.NETを覚えればたいていのことはできるので、いまさらCとSDKで作る場面は少ないでしょう(C++とMFC使って、とかはちょこちょこあったりしますが)

ただ、どんどん道を究めて行って、デバイスドライバを書くだとか、ライブラリを書くとかになってくると、いやでもC++やCを使う場面が出てくると思います。その時になって勉強しても遅くはないのではないかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/07 19:14

    回答有難うございます^^
    はい、悩みまくりです。

    なるほど。時間がいくらあっても足りないので、Cは気になりますが、まずはC#ですかね?
    私は今、.NETを使っているのでしょうか?
    フレームワークについても、色んな書き方をされていてまだきちんと理解できていません。

    頑張ります!

    キャンセル

+4

たしかに、あれやこれや沢山選択肢があると悩みますよね。
気持ちわかります。

私は組み込みの現場での経験が多かったので、C言語案件からスタートでしたが、WindowsならC#の案件が多いですよ。

Javaですと、技術的にすでに枯れ切っている安心の「SAStruts」なども選択肢に上がっています。
※枯れ切っているとは今後修正変更の可能性が無い、完成されているプロジェクトのことです。
 枯れ切っている技術で実績があるなら安心して使うことが出来ます。

C#やJava、Perlやrubyについては、皆さんが詳しく書き込んでくださっているので、私は少し違ったアプローチで面白いと思う言語を紹介しようと思います。

私がおすすめするのは

「Common Lisp」

です。
現存するプログラミング言語の中でも最古の部類に含まれるプログラミング言語なのですが、
・オブジェクト指向
・ガベージコレクション
・関数プログラミング
・無名関数
・ジェネリック
・マクロ(これに関しては他のどんなプログラミング言語のマクロよりも強力)
・自己改造(マクロにより独自のCommonLisp言語を構築可能)
...etc

などなど、現在のプログラミング言語が「新機能」とうたっている機能を何十年も前に実現し実装しているのです。
※当時の非力なマシンでは使えるレベルではなかったそうですが

世界に名だたるプログラマーのあいだでまことしやかに囁かれる噂があるそうです

「Lispを会得すると何かを悟れるらしい」
「プログラミング言語最強はLispらしい」
「仕事で使わなくてもLispは勉強しといたほうがいいらしい」

などなど、よくある(*´∀`)アハハン♪と笑みが溢れる話が話題に上がるような言語です。
Google検索で「ポール・グレアム」と検索すると興味のある記事が出てくるかもしれません。

私は出版業者の回し者ではありませんが、「Land of Lisp」はとてもよいCommonLispの教科書です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/07 19:30

    長文回答有難うございます^^
    共感いただいて嬉しいです。
    C言語案件ってどんな感じでしょうか?

    SAStruts初めて聞きました。
    ご教示有難うございます。
    以前eclipsを使って少しだけ学びましたが、それとはまた別物ですか?

    Common Lispも初めて聞きましたが、
    早くそっちの世界へ引越せるようになりたいです。


    宜しくお願い致します。

    キャンセル

  • 2015/09/09 10:30

    私も Common Lisp お勧めします。
    C言語を使っている人が Lisp を勉強すると、世界が変わると思います。
    現在使われている言語の大部分はC言語とLispがご先祖様にいるので、Cの考え方とLispの考え方が理解できれば、初見でも大体のことはわかるようになります。

    キャンセル

  • 2015/09/09 12:24

    >SAStruts初めて聞きました。
    >ご教示有難うございます。
    >以前eclipsを使って少しだけ学びましたが、それとはまた別物ですか?

    http://www.seasar.org/
    こちらが本家にないます。
    日本人が設計したWebJavaアプリケーションのフレームワークです。

    主様が経験したEclipseでJava開発というと、ものすごく範囲が広い表現になりますのでなんともいえませんが、何らかのフレームワークか別のJavaアプリかと思います。

    特にこだわらずに楽しむ感じでいろんな言語を触ってみると面白いと思います。

    キャンセル

  • 2015/09/09 12:26 編集

    五月雨ですみません。
    こちらの質問もありましたね。

    >C言語案件ってどんな感じでしょうか?

    私の周囲の話として書き込みます。
    現状、パソコンOS向けのソフトウェア開発でC言語を利用したものはかなり少ないです。

    しかし、マイクロコンピュータを利用した組み込みの世界では、C言語一択です。
    最近は、Arduino等のお手軽マイコンが増えてきましたので、C言語案件でプロトタイプ作成プロジェクトの受注もあるようすです。
    ※Arduinoは正確にはArduino言語と呼ばれるC言語の亜流を使いますが、C言語のシンタックスがそのまま使えます。

    キャンセル

  • 2015/09/09 12:28 編集

    C言語を勉強するとき、なんでも良いので自分が制御したいマイコンキット等で勉強されると見識がぐっと深まると思います。

    パソコン上でC言語アプリを作るのとは違って、よりローレベルなハードウェアであるROM、RAM、I/Oといった底辺のレイヤー上で動作させる経験を積めます。

    ソフトウェアがどのように動いているのかを見れるという点で、マイコンでのC言語学習メリットは沢山あると思っています。

    キャンセル

  • 2015/09/09 12:38

    mieさん

    コメント有難うございます。
    そんな夢みたいな言語があるのですね。
    世界が変わるとか、ドキドキします+。

    キャンセル

  • 2015/09/09 12:43

    kamuycikapさん

    長文、リンク、ご親切に有難うございます。
    リンク確認しました!
    たくさんありますね><何からどうしてらいいかわかりませんが、
    慣れてきたらまた質問させてください★


    台風すごいですね、お気をつけてください。

    マイコンキット...?
    マイクロコンピュータ...?
    など、さまざまな専門用語が出てきて大変勉強になります。

    今後とも宜しくお願い致します。

    キャンセル

+4

プログラミング言語(学ぶ対象)の観点からは既に様々な観点からご回答頂いているので、ちょっと別の観点(学ぶ側、つまりプログラマー自身)の観点から少し。

要するに色々なアプローチの仕方があり、結局は b1ackc0ffeeさんご自身が何をしたいか、どの様な方向に進みたいかがより具体的になって行くと、選択肢は自ずと徐々に絞られて来るものだと思います。
ですから
とりあえずC#でストアアプリを作りながら…
という事であれば、当面はC#に取り組んでみるというのは、決して無計画なのではなくて、むしろ現実的なアプローチであると思います。

なぜそう言えるかと言えば…

IT関連の知識や技術は余りにも幅広くかつ奥深いので、しかも常に変化(進化?)しているので、一人で全てを極めることは一生掛かっても不可能です。

そこで重要になって来るのが課題解決能力です。どんなに優れたプログラマーやSEだって、いいえむしろ優秀な技術者ほど、日々困難な課題に直面し、都度悩み、調べ、考え、そして乗り越えてまた一回り成長して行きます。直面するかもしれないあらゆる課題に事前に備える事は無理なので、何とか解決する能力が重要な訳です。

その為に役立つのが字型の学習法であると一般に良く言われています。つまり、仮に浅くても良いので出来るだけ幅広い知識を貪欲に取り入れる事と、一つで良いので武器となる得意分野を持つ事を目指す学習方法です。(最近ではπ字型でないと太刀打ちできないという人もいますが…)

そのように考えれば、次はコレでその次はアレ、というように決めつける必要性は必ずしもなく、ちょうど螺旋階段を登るように、C系(系とグループ化するからには類似点が少なからずあるはず)を大まかに眺めながらとりあえず一つに取り組み、必要に応じて行きつ戻りつしながら得意分野を見つけて掘り下げて行けば良いのです。

そして興味深い事に、得意分野というのは自分の好みで主体的に選ぶというよりも、必要に迫られて使っているうちに大きな課題に直面し、大きな壁を苦労して乗り越えたとう経験を通して、知識やスキルや自信を獲得する事によって結果的に得意分野になるという場合が多いようです。

以上、幾らかでもご参考になれば何よりです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/08 14:57

    >IT関連の知識や技術は余りにも幅広くかつ奥深いので、しかも常に変化(進化?)しているので、一人で全てを極めることは一生掛かっても不可能です。

    そうですよね。学べば学ぶほど知識が浅い事を思い知ります。


    >大まかに眺めながらとりあえず一つに取り組み、必要に応じて行きつ戻りつしながら得意分野を見つけて掘り下げて行けば良いのです。

    なるほど、
    螺旋階段の例でわかりやすかったです^^
    有難うございます。

    キャンセル

  • 2015/09/08 14:57

    開発用としては、何を使うかわからないのですが、希望はiosアプリと、WEBです。
    ゲームには関心がなく、業務用システムや、ECサイトが作れるようになりたいです。

    キャンセル

  • 2015/09/08 22:05

    「業務用システムや、ECサイト」を目指すなら、当面はC#に打ち込んでみられてはいかがでしょうか?
    C++は、もちろん知っているに越したことはないですが、急ぐ必要はないと思います。一方Cは、最近の便利な言語が隠蔽してしまったコンピューターシステムの生に近い姿を実感することができ、また小回りが利くことから、C++よりも優先して学習した方が良いと思います。スタックやヒープを含めメモリー管理の方法や、ポインタなど重要な概念を学べますし、アルゴリズムの学習にも向いています。
    少しずれますが、Web系をやるなら html/CSS/JavaScript は常識なのですけれども、とりわけ「JavaScript」については少し突っ込んで学習されることをお勧めいたします。
    どんな言語を使用していても、JavaScriptはちょこちょこと顔を出します。また「Cordova」というプラグインを使用すると、JavaScriptの技術を用いてマルチプラットフォームのスマホアプリ(iOS/Android他)を開発できます。ちょっとしたツールを作成したり、ブラウザやテキストエディタのカスタマイズなどにも役立ちます。サーバーサイドでもクライアント側でも利用できます。また、JavaScriptはオブジェクト指向の中でもプロトタイプベースという特殊な言語です。学ぶべき理由は枚挙に暇がありません!
    実は自分もビギナーなのですが…ぜひ頑張ってください!!

    キャンセル

  • 2015/09/09 12:50

    なるほど、わかりやすい説明有難うございます+。
    「JavaScript」はやはり勉強すべきですか、、、
    知らないのですが、html/CSSで限界を感じて調べるとJSしかできなさそうないようなことを書いていて、必要に迫られています。
    Cordovaって言語なのでしょうか?芸能人の元プログラマが、よくCordovaやってたってプロフィールとかに書いてらっしゃるのですが、、、商用系の言語っていうイメージでした。別途調べてみます。

    ビギナーに思えないくらい勉強になりました。有難うございます。

    キャンセル

  • 2015/09/09 15:58

    Cordovaはフレームワークですね。
    pi-chanさんの書かれているとおり、CordovaでもJavaScriptは使います。
    ・・・私も勉強し始めたところなので、詳しくはないです。

    キャンセル

  • 2015/09/09 16:11

    daichanさん
    Cordovaは言語ではなく、フレームワークなんですね><
    有難うございます!

    キャンセル

+1

最近の傾向でいうとゲーム系のメジャーなエンジンとしてUnityとUnreal Engineと言うのがあります。
UnityはC#で組むのが一般的でUnreal EngineはC++です。
この辺りの需要はすぐに無くなるということは無いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

C++/CLI という選択岐もあります。
よく「なんで C# で書かないの?」と質問されて
困ることはあります・・・。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

私が高校生の時、1番最初に習った言語はC言語でした。
どこの情報系の工業高校でもたぶん最初に習うのはC言語だと思います。(大学でもC言語の勉強からします。)
理由は、一連の流れがそのままプログラムになっているので理解しやすいからだと思います。
それとC言語の後にC++やJavaを勉強していますが、Cと同じ部分が多くやりやすかったです。

私の理由は単に「学校教育がそうだから」というだけで楽観的な考え方かもしれませんが、参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1


C++/C#は、オブジェクト指向言語ですが、Cは手続き型なので、全然別ものです。

C++はあまり使われませんが、Cは組み込みの世界で、C#はWindowsで開発するなら最も使われている言語です。
Cは歴史が古いので、極端な話Cさえ使えれば、たいていのプラットフォームで動かすことができます。ただし後発言語に比べて機能が少ないので、プログラマーにとっては大変な手間がかかります。

それでもCは基本ともいえる言語なので、時間が許せば挑戦した方が良い言語です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/09/02 20:23

    Cを勉強に1票d^^
    後発の言語と比べれば難解な部分の多い言語ですが、覚えておいて無駄はない言語だと思います。

    キャンセル

  • 2015/09/07 19:02

    ご両名、回答有難うございます^^
    反対にCを知らなくて、長年プログラマとして活躍されている方って、どの程度いらっしゃるのでしょうか?
    それとも、スタンダードなので、知っててあたりまえみたいなイメージでしょうか?

    キャンセル

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

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • C#

    7391questions

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

  • C

    3805questions

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

  • C++

    3577questions

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

  • teratail

    415questions

    teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

  • Visual C++

    115questions

    Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

閲覧数の多いC#の質問