C言語を学ぶべきか… いきなりC++か

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

 元ネタ: http://dixq.net/forum/viewtopic.php?f=3&t=17849

 C++が"概ね"Cのスーパーセットであるということから、大半の人はC言語から学んでC++に移って来たのでしょう。僕もその1人なのですが。とはいうものの、C言語とC++のコード文化はかなり異なるところがあります。C++はC言語をおおよそ内包しているとはいえ、C言語流に書かない方が望ましい場面も多々あります。

 さて、プログラミング初心者がC言語 or C++の学習を始めたいとすれば、まずはどちらから始めるのがいいのでしょうね。
オフトピック
そもそもどちらもお勧めしないというのも1つの考え方かもしれません。
私もそうです。JavaとRubyが一番初めに学ぶ言語としてはいいんじゃないかなと思っていたりします。

YuO
記事: 947
登録日時: 14年前

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by YuO » 9年前

元スレッドにも書いたのですが,CやらないでC++から始めた人や書籍がほぼないのがネックですね。
Accelerated C++がそういう本だったと聞いたことがありますが,あれも2000年代初頭頃の本ですし。
個人的には最初にstd::string,std::vectorで構わないと思います。

ただ,逐次命令方式の方が理解されるという現実もあるので,難しいところだなぁ,と。
オフトピック
最近の,ポインター関連とかconst引数問題とか,結構C引きずった話なので……。

アバター
夢幻ノ月夜
記事: 143
登録日時: 10年前

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by 夢幻ノ月夜 » 9年前

C言語から始めた人がベターCを経てC++に乗り換えるパターンが多いみたいですね
今俺はベターCからC++に乗り換える段階です

derok
記事: 51
登録日時: 12年前

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by derok » 9年前

tk-xleader さんが書きました: プログラミング初心者がC言語 or C++の学習を始めたいとすれば、まずはどちらから始めるのがいいのでしょうね。
C言語を学びたいならC言語からC++を学びたいならC++からですね。
プログラム初心者が何を学ぶべきか、ならC言語だと思います。
良くも悪くもシンプルな文法なので。
また、ポインタに関しては難しく考えすぎているだけだと思っていますので。

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by MoNoQLoREATOR » 9年前

私もC→betterC→C++の道を辿ったプログラマの一人です。
「プログラミング初心者」が指している対象が「始めたばかり」なのか「全くの未経験者」なのかによっても話は大きく変わってくる気がします。

「全くの未経験者」の場合、コンパイラを通さない言語は避けた方がよいだろうなとぼんやり思っています。
全くの未経験者は文法上のミスに自力で気づくことが非常に難しいからです。
これを考慮すると、コンパイル言語でありかつ文法がシンプルなC言語は選択肢として上位に位置して良いものと思います。
PythonやRubyも非常に少ない知識だけでプログラムを書くことも可能な言語ではありますが、コンパイラを通さないので文法上のミスにいつまで経っても気づけない危険性があります。
また、C言語にはVisualStudioという強力な味方がついており、一行ずつ実行してメモリの状態を目で見ることができ学習する上で非常に有用です。

ただC言語というのは、一度それに洗脳されてしまうと、なかなかその洗脳から抜け出すことができない非常に闇が深い言語だと私は勝手に考えております(ここ笑うとこです)。

ある程度プログラミングの経験がある人が対象の場合は、正直もう何でもいいんじゃないでしょうか。
最近の言語であれば、あまり細かいことを考えずほいほいオブジェクト作ってほいほいメソッド呼ぶだけでいろんなことができてしまいます。
C言語は、それらの処理がコンピュータ上で具体的にどのように処理されているのか勉強したいというマニアックな欲求を満たすために勉強するというくらいが丁度いいんじゃないかと思います。

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

RE: C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

>YuOさん

 C++の参考書やウェブページはその大半がC言語の知識があることを前提としていますね。プログラミングの初歩から体系的に学ぶということになるとC++は適さないと考える人が多いのでしょうか。
 ただ、書籍となるとページ数の制約というものもありますから、言語仕様が非常に膨大なC++について変数とか基本的な制御文といった部分を詳細に記述すると本自体が分厚くなってしまい入門者が避けたがるものになってしまうということもあるのかなとも。

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

>夢幻ノ月夜さん

 多くの人がそうなってますね。特にDXライブラリのユーザーはそうなるのではないかと思います。DXライブラリ自体がBetter Cでの利用を念頭に置いた設計なので。

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

>derokさん

 ポインタを難しいと思わせている原因は間違いなくポインタ演算でしょう。しかしC++ではイテレーターの操作がポインタ演算に平仄を合わせてあるので、多くのCプログラマーが親しみを持っているのでしょう…

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

>MoNoQLoREATORさん

 ここで想定しているのは、「プログラミング自体全く経験がないか、あるいは初めてまもない人」のことです。シンプルな文法を持つコンパイル言語ということになりますとまさにC言語はうってつけですが、C言語がプログラミング初心者向きの言語かと問われると難しいところですね。ただ、私は必ずしもコンパイル言語ではなくてもいいのではないかと思います。Rubyであれば-cwオプションで簡単に文法チェックできますし。

 C言語が洗脳的な言語というのはどうでしょうね。私からすれば主要な言語は大体が洗脳的ですが(笑)。

 プログラミング自体の初心者がプログラミングの学習を進めるにあたっては、環境構築の壁と情報取得の壁があると思うのです。C言語自体が初心者向きではないというのは、落とし穴が多すぎるという点にあると思うのですが、C言語がプログラミングの入門に当たって選ばれている理由というのは、初心者向けの情報が豊富にあるからだと思うんですよね。最近ではWindowsでも高機能のIDEを簡単にインストールできてしまいます。

 プログラミングの経験がある程度ある人なら環境構築とかも自力で出来てしまうことも多いでしょうし情報収集の方法もある程度分かっているものだといえますね。そうなってしまえば自分の好みとか適材適所で言語を選んで全く問題ないでしょう。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 14年前

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by Dixq (管理人) » 9年前

私はJavaかC# ⇒ C++を進める派です。
私がなかなかベターC⇒C++に移行できなかったのは変にC++がCと互換性があるからだったと思ってます。
いつまでたってもベターCでした。

アバター
tk-xleader
記事: 158
登録日時: 14年前
連絡を取る:

Re: C言語を学ぶべきか… いきなりC++か

投稿記事 by tk-xleader » 9年前

>キューさん

 C→C++に移行したときに、本格的なオブジェクト指向を取り入れようとしても、よく分からなくてベターCとして便利な部分だけC++の機能を使うという人はわりといそうですね。そしてそれでもわりと便利なのでモダンなC++スタイルに移行しないでそのままというのはよくある話なのかもしれません。

 JavaかC#から始めるというのはよさそうですね。ただ、これらだけで大抵のことはできるので、C++を学ぶ必要がなくなってしまうかもしれませんが(笑)