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

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

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

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

C#

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

Visual C++

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

C++

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

teratail

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

Q&A

11回答

41104閲覧

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

b1ackc0ffee

総合スコア267

C

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

C#

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

Visual C++

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

C++

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

teratail

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

3グッド

10クリップ

投稿2015/09/02 07:33

編集2015/09/07 10:32

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

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

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

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

宜しくお願い致します。


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

aizaku_san, Koji👍を押しています

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

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

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

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

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

guest

回答11

0

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/02 14:48

編集2015/09/02 14:53
raccy

総合スコア21737

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

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

b1ackc0ffee

2015/09/03 04:06 編集

長文回答有難うございます! 詳しくてすごいです。 指摘や参考サイトも助かります。 歴史的に理解することができました! ポインタやメモリ管理などわからなくて難しそうですが、 ①Delphi→C# ②Python/Ruby ③JavaScript ④C→Java →C++ の流れで勉強しようかと思いました。④は難しそうです。 と思ったら、オススメコース書いてくださっていたのですね❤ 関数型言語(F#やHaskellとか)は聞いたことないのですが、調べてみます。 「AppleがSwiftへシフトしたので、今から覚える必要はありません。忘れてください。」 の下り好きです! 宜しくお願い致します。
hello-world

2015/09/03 04:26

raccyさんの提案は素晴らしく全面的に賛成ですが、 > C# (中略)機能を全部覚えようとするといつの間にかC++並の学習コストがかかりますが ここだけは一応否定します。 JavaとC#の難易度はそれほど違いませんし、C++の仕様は本当に複雑なので他の言語と比べ物にならないほどです。
b1ackc0ffee

2015/09/03 05:05

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

退会済みユーザー

2020/07/06 05:47

> Perl6の能力は未知数です。 Perl6ですが、いつのまにかRakuと名前が変わっていましたね。 Perl7の話はありますが、こちらはそのままPerl5と変わらないようです。
ratera

2020/07/06 10:06 編集

勉強になります! って2015年の記事だったw
raccy

2020/07/06 12:17

もうすぐ5年か… Oracle Java有償化、Perl 6の失敗?、ES2015+の躍進と色々ありすぎました。GoやRust、Kotlin等の台頭とかもありますし、5年経つ前に、機会があったら書き直したいと思います。(書き直すとは言っていない)
ratera

2020/07/06 23:32

ありがとうございます!全裸は控えつつ、お待ちしております! ちょうど今C++初めて、その次のサーバーからクライアントまで簡単な物でいいので一期通貫でプロダクトづくりの経験をするという意味でいいものがないか考えておりました。(目的は、色々な人のやっている仕事をぼんやり理解できるようになること)
guest

0

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

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

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

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

投稿2015/09/02 13:18

shiolier

総合スコア1156

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

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

b1ackc0ffee

2015/09/07 10:21

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

0

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

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

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

投稿2015/09/02 07:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

b1ackc0ffee

2015/09/07 09:59 編集

回答有難うございます^^ Javaが人気な理由は何なのでしょうか。 安心しました。C#を覚えて余裕が出てきたらC言語の勉強をします。 組み込み系、制御系、汎用系、業務系など、シンプルでわかりやすい理解がまだ難しいです。 組み込みって映像系(おしゃれなIT企業)でよく聞くような気がします... どころ目指すかの前に何があるかを知らないといけないですね><、
退会済みユーザー

退会済みユーザー

2015/09/07 17:34

Javaが人気な理由は身も蓋もない言い方をすれば、IBMなど大企業からの支持が得られた、と言うのがキッカケです。 大企業が早い時期からJavaを採用した理由は、 - C++を参考にしたオブジェクト指向言語だったので、大規模なプロジェクト向きだった - 早い時期からガベージコレクションが採用されていたので、メモリ破壊などのバグを踏みにくい - 早い時期からインターネットを意識した言語だった といった感じでしょうか。また、ちょうどLinuxなどのオープンソース文化も盛んになり始めたころで、Tomcat等がオープンソースで無償で使える辺りも、開発人口を増やした理由でしょう。 組み込み系ってザックリすぎていい名前ではないですね。炊飯器やポットだけでなく、自動車やロボットの制御にも使われています。(自動車やロボットになると1製品1億行以上のコードでシステムが構築されているそうです。)スマートフォンのアプリの開発言語はObjective-CだったりJavaですが、スマートフォンのOSの開発にはCやC++が使われています。 要するに、C/C++はハードウェアを細かく制御するためによく使われる言語です。映像系でも使われているのは、細かく制御することでパフォーマンスを向上する目的で使っているんでしょうね。 本文の回答よりも長くなりましたw
b1ackc0ffee

2015/09/09 03:54

長文回答有難うございます^^ そうなんですねw IBMってそんなに偉大なのでしょうか・・・?名前はすごくよく聞くけど、あまり身近に感じない企業です。 オブジェクト指向じゃない言語を勉強したことがないので、オブジェクト指向の良さがまだ全然理解できていません(恥 Linux...?Tomcat...?うーーんまだまだ覚えることがたくさんあります。 パフォーマンスや、セキュリティなどあらゆる方向から考えないといけないんですね。 たくさんアドバイス有難うございます。 皆様の意見を自分なりに、整理し成長したいと思います。 宜しくお願い致します。
guest

0

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

要するに色々なアプローチの仕方があり、結局は b1ackc0ffeeさんご自身が何をしたいか、どの様な方向に進みたいかがより具体的になって行くと、選択肢は自ずと徐々に絞られて来るものだと思います。
ですから

とりあえずC#でストアアプリを作りながら…

という事であれば、当面はC#に取り組んでみるというのは、決して無計画なのではなくて、むしろ現実的なアプローチであると思います。

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

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

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

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

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

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

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

投稿2015/09/03 13:34

pi-chan

総合スコア5936

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

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

b1ackc0ffee

2015/09/08 05:57

>IT関連の知識や技術は余りにも幅広くかつ奥深いので、しかも常に変化(進化?)しているので、一人で全てを極めることは一生掛かっても不可能です。 そうですよね。学べば学ぶほど知識が浅い事を思い知ります。 >大まかに眺めながらとりあえず一つに取り組み、必要に応じて行きつ戻りつしながら得意分野を見つけて掘り下げて行けば良いのです。 なるほど、 螺旋階段の例でわかりやすかったです^^ 有難うございます。
b1ackc0ffee

2015/09/08 05:57

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

2015/09/08 13:05

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

2015/09/09 03:50

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

2015/09/09 06:58

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

2015/09/09 07:11

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

0

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

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

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

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

投稿2015/09/02 12:23

編集2015/09/02 12:24
KoichiSugiyama

総合スコア3041

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

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

b1ackc0ffee

2015/09/07 10:14

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

0

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

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

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

投稿2015/09/02 11:06

shanxia

総合スコア1040

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

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

cateye

2015/09/02 11:23

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

2015/09/07 10:02

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

2020/07/06 02:10

低評価が 4 つも付くような回答には見えませんが、何か理由がありますか?
guest

0

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

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

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

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

私がおすすめするのは

「Common Lisp」

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

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

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

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

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

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

投稿2015/09/03 04:44

編集2015/09/03 04:46
kamuycikap

総合スコア135

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

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

b1ackc0ffee

2015/09/07 10:30

長文回答有難うございます^^ 共感いただいて嬉しいです。 C言語案件ってどんな感じでしょうか? SAStruts初めて聞きました。 ご教示有難うございます。 以前eclipsを使って少しだけ学びましたが、それとはまた別物ですか? Common Lispも初めて聞きましたが、 早くそっちの世界へ引越せるようになりたいです。 宜しくお願い致します。
mie

2015/09/09 01:30

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

2015/09/09 03:24

>SAStruts初めて聞きました。 >ご教示有難うございます。 >以前eclipsを使って少しだけ学びましたが、それとはまた別物ですか? http://www.seasar.org/ こちらが本家にないます。 日本人が設計したWebJavaアプリケーションのフレームワークです。 主様が経験したEclipseでJava開発というと、ものすごく範囲が広い表現になりますのでなんともいえませんが、何らかのフレームワークか別のJavaアプリかと思います。 特にこだわらずに楽しむ感じでいろんな言語を触ってみると面白いと思います。
kamuycikap

2015/09/09 03:32 編集

五月雨ですみません。 こちらの質問もありましたね。 >C言語案件ってどんな感じでしょうか? 私の周囲の話として書き込みます。 現状、パソコンOS向けのソフトウェア開発でC言語を利用したものはかなり少ないです。 しかし、マイクロコンピュータを利用した組み込みの世界では、C言語一択です。 最近は、Arduino等のお手軽マイコンが増えてきましたので、C言語案件でプロトタイプ作成プロジェクトの受注もあるようすです。 ※Arduinoは正確にはArduino言語と呼ばれるC言語の亜流を使いますが、C言語のシンタックスがそのまま使えます。
kamuycikap

2015/09/09 03:35 編集

C言語を勉強するとき、なんでも良いので自分が制御したいマイコンキット等で勉強されると見識がぐっと深まると思います。 パソコン上でC言語アプリを作るのとは違って、よりローレベルなハードウェアであるROM、RAM、I/Oといった底辺のレイヤー上で動作させる経験を積めます。 ソフトウェアがどのように動いているのかを見れるという点で、マイコンでのC言語学習メリットは沢山あると思っています。
b1ackc0ffee

2015/09/09 03:38

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

2015/09/09 03:43

kamuycikapさん 長文、リンク、ご親切に有難うございます。 リンク確認しました! たくさんありますね><何からどうしてらいいかわかりませんが、 慣れてきたらまた質問させてください★ 台風すごいですね、お気をつけてください。 マイコンキット...? マイクロコンピュータ...? など、さまざまな専門用語が出てきて大変勉強になります。 今後とも宜しくお願い致します。
guest

0

C言語,C#の経験者です。結論から申し上げますと、「プログラミングで何を作りたいか」によります。
この二つでなら、応用が利く・組み込み制御や他言語にも手を出したいならC言語、とっつきやすいのはC#だと個人的には思います。

C#がとっつきやすいと述べた一番の理由はメモリの管理が不要なことです。C#では不要になったメモリは勝手に開放する機能がありますが、C言語にはそれが無いため明示的にメモリを開放する必要があります。私がエンジニアとして仕事をしてきた中で一番多く、重大な不具合の原因はメモリの開放漏れでした。また、オブジェクト指向の概念も身につく為、他のオブジェクト指向の言語(Rubyなど)を学習する際に「オブジェクト指向って何ぞや」と困ることもなくなります。

一方C言語はJavaなど多くの他の言語のベースになっている言語なので、C言語が出来ると他言語の読み書きがしやすくなります。また、組み込み制御はPCで使用するプログラムと違ってメモリ容量との闘いになるため、メモリ管理(必要以上のメモリ量を確保しない、必ず開放する、など)の習慣を身につける必要があります。

この二つしか経験が無いためあまり参考にはならないかもしれませんが、個人的な見解としてとらえて下さい。

投稿2020/07/06 01:46

pochi_char

総合スコア8

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

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

0

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

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

投稿2015/09/07 06:55

編集2015/09/08 08:56
ako999

総合スコア100

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

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

0

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

投稿2015/09/05 17:40

umeaji

総合スコア101

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

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

0

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

投稿2015/09/03 14:16

sho_cs

総合スコア3541

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問