C言語は全くの素人(C言語って何?レベル)でも独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?もしC言語の勉強を始める前にこれだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強がありましたら是非、教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

#1さんと同意見です。

プログラミング言語初体験でC言語はお薦めしません。

>独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?

取得出来るかもしれません。が、確率が低い、と思います。
参考事例を二つほど。
まず、独学じゃなくて、大学で「強制的に習わされる」としても、非常に学生の宿題の丸投げ率が高い言語です(笑)。これは特筆に値します。結論から言うと、「学校で習わされる」としても「最初に学ばせる」にはキツい言語だ、と言う事ですね。大学側もその事実を把握してんだかしてないんだか(笑)。つまり、「プログラミングを学ぶ」目的には適してない、と言う事です(逆に言うと、「別の言語を習得していて」「C言語を学ぶ」なら可、なんですが)。
最近でも、全く知らない人からいきなりメールが来て、この宿題

課題 ex3:
http://edu.inf.shizuoka.ac.jp/lecture/2006/X121/ …

を教えてくれ、とか書いてました(笑)。その学生が丸っきり勉強してないんだか、それとも静岡大学の情報学部のカリキュラムにそもそも無理があるんだか(笑)。
いずれにせよ、「学校で教える」にせよ手子摺るのがC言語です。独学ならなおさらキツい、と思います。「C言語って何?レベル」だとなおさら、でしょうね。
第二に「入門書の類の出版数が多すぎる」と言う事です。「書籍数が多いのは良い事だ」と思われるかもしれませんが、個人的には逆、だと思っています。言い換えると「入門書として定番書籍が存在しない」と言う事を意味している、と思います。
つまり、事実上、「習わされる言語=自分で"学びたい"と思う言語ではない」んで、外的要因(例えばそれこそ「学校でやらされる」あるいは「就職に有利な言語」として)でC言語を学ぶわけですが、どの入門書も根本的な意味では「決定打ではない」と言う事です。だからこそ雨後の筍のように「C言語入門」がどんどん出版されている、と言う(笑)。しかし、結局「どの本も分かり辛い」のです。だから「C言語入門書」ってのは数が多い。
これは入門書の作者陣が「説明が下手糞」なのか(笑)。まあ、そう言う部分もあるでしょうが、別な見方をすると、「C言語をプログラミング初心者に説明する」と言う事自体が土台「無理がある」と言う事でしょうね。そうとしか思えません。つまり、「定番書籍」と言える定番書籍があるわけがない、と言う事になります。
(出版社観点だと、逆に言うと「商売的にオイしい」分野かもしれません・笑)

>これだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強

つまり、それは「C言語を勉強する前にもっと別の簡単な言語を習得してる」方が良い、と言う事です。それが一番の勉強法です。
恐らく、「動的型付け言語」と言われる種類の言語を使って、まずは「プログラミング」自体に慣れた方が良いでしょう。その後「C言語」をやった方が結果効率的です。
個人的にはSchemeが好きなんですが、今度は「プログラミング入門書」と言える入門書が無いです(笑)。それはそれで困り物(当然!)です。
類するような動的型付け言語として、候補としては

・Python
・Ruby
・JavaScript

なんかがあります。このうち、JavaScriptは構文スタイルはCやJavaに似てるんですが、これも「JavaScript単体で上手くプログラミングを教える」入門書は、知ってる限り存在しないんで除外します。
結局、PythonかRubyをまずは使ってみる、ってのが一番良いでしょうね。色々調べてみると、Rubyの方が日本語で読める情報が多い、です。恐らく「まずはRubyを使って」「プログラミング自体を」学んでからCに移った方が良いでしょう。
Rubyはオンラインの日本語で読める「プログラミング入門」がPythonよりも良くって、特に「なるべくお金を使わずにプログラミングを覚えたい」のならRubyの方がお薦めですね。
まずは次のチュートリアル

プログラミング入門 - Rubyを使って - :
http://www1.tf.chiba-u.jp/~shin/tutorial/

辺りで「プログラミング自体」に慣れてみてください。
    • good
    • 0

>独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?



出来なくはないですが、独学でやる場合、最低5~6冊程度は本を買っておいたほうがいいと思いますが。
ANSI C 言語辞典は、とりあえず持っておいたほうがいい気がします。
簡単なリファレンスになります。

多分、書いてあることの意味がわからないことも多いと思います。
どれかの本には、自分の理解できる書き方がされているじゃないかと。

わかってきだしたら、何冊かは間違いが書いてあるだろうと予想もされますので、その間違いがわかるようになると思います。

昔のコンピュータの動作(8088やMC68000位の時代)がある程度わかる知識があれば、
C言語は、まだ、マニュアル首っ引きでどうにかプログラム出来る言語ですから。
(ほんとは、ANSI 以前の C の方がわかりやすいですけど)
    • good
    • 0

C言語以外のプログラミングの経験はどの程度お持ちですか?

    • good
    • 0

>C言語は全くの素人(C言語って何?レベル)でも独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?


出来る人もいます。
出来ない人もいます。
ただ明確な目的がない人よりは、作りたい明確な目的のプログラムがある人のほうが挫折しないようです。

>もしC言語の勉強を始める前にこれだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強がありましたら是非、教えて下さい。
「これからはじめるプログラミング 基礎の基礎」
http://gihyo.jp/book/2009/978-4-7741-3710-0
あたりから読んで見てください。
    • good
    • 0

> もしC言語の勉強を始める前にこれだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強がありましたら是非、教えて下さい。



とりあえず、国語だけはしっかり勉強しておいてください。
国語力が弱いと、テキストを読んでも理解できるかどうか分かりません。

プログラミングの初心者であれば、アセンブリ言語から入った方がC言語の理解は早いと思います。
    • good
    • 0

>独学で市販のテキスト(初めてのC言語など)などを使って取得出切る物ですか?


予測不能です。

>もしC言語の勉強を始める前にこれだけはしておいた方が楽にC言語の勉強に入って行ける様な勉強
一般常識があればよい。


そして、プログラミング言語初体験で C言語はお勧めしない。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QLISPのマクロと他の言語のマクロの違い

LISPのマクロは強力と言われていますが、他の言語の言うマクロとはどう違うのでしょうか?

Aベストアンサー

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはできません。

一方、Lispのマクロは、Lispそのもので書くことが可能で、
任意のプログラムをマクロとして書くことができます。
マクロの中で条件分岐やループなど、なんでも出来てしまいます。
これにより、コンパイル時にマクロの引数の型や値に応じて
生成するプログラムを変えることで最適化を行ったり、
新たな言語機能(と対応する文法)を追加するようなことが可能です。

例えば、昔のLispにはオブジェクト指向の機能がありませんでしたが、
マクロを使うことで、後からオブジェクト指向の機能を付け加えることができました。
また、Common Lispのオブジェクト指向の機能が独特で嫌いな人は、
マクロを使うことでJava風のオブジェクト指向の機能を追加するようなことも可能です。
極端な話、Lispの上で別の言語が作れてしまうわけです。

コンパイル時に任意のプログラムを実行できるという点では、
C++のテンプレートとも似ているといえますが、
C++のテンプレートはテンプレート専用の文法を用いる必要ある点がLispと異なります。
C++をそれなりに書ける人でも、テンプレートで任意のプログラムを書こうとすると、
かなりの苦労を強いられます。テンプレートの文法がC++の文法と異なるのが苦労する原因の一つです。
一方、Lispのマクロは、Lisp自身で書けるため、
Lispが書ける人なら誰にだって書けてしまうわけです。

以上がLispのマクロが強力と言われる要因(の一部)です。
実際に使われてみると色々と実感できると思いますよ。

ここでいう「マクロ」は一言で言うと「プログラムを生成する機能」ですね。
例えばCのマクロを例に上げますと、
#define MAX(a, b) (a) > (b) ? (a) : (b)
というようなマクロを定義すると、後に
MAX(10, x)
と書いた際に
(10) > (x) ? (10) : (x)
というプログラムがコンパイル時に生成されます。

Cなどのマクロは、マクロ専用の文法があり、
マクロで書けるものにはある程度の制限が付きます。例えば、
「マクロの引数が定数の際に奇数か偶数かで『生成するプログラム』を変える」
などといった複雑なことはで...続きを読む

Qまったくの経験0から独学でC言語を勉強したい。

タイトルの通り、かなり無茶な質問だと思いますが、よろしくお願いします。

私のような経験0でついこの間まで何も知らなかったような者がC言語を勉強するのに最適な書籍やフリーのソフトがあれば教えてください。

Aベストアンサー

> OSはXPです。PCの基本操作やワード、エクセルの基本操作、ビルダーでHP製作くらいならできます。

Borland C++ CompilerやMinGWなどのコマンドラインコンパイラを使って学習することをお勧めします。その際、手を抜いてCPadのような統合開発環境を使うのではなく、エクスプローラとエディタとコマンドプロンプトで操作した方がよいでしょう。

最初はやや敷居が高いかもしれませんが、環境変数を設定したり、ディレクトリ構造を把握したりするのは、プログラミングを習得する上で必須です。
前回も書いたように、これらはC言語以前の問題ですので、スキル不足は最初の段階で克服しておいた方が得策です。

書籍については、書店で手にとって気に入ったものを買ってください。ここでは(一見して分かる)適さない本の見分け方だけ書いておきます。

1. void main という記述がある。
2. やたらとカラフル
3. タイトルにVisual何とかと書いてある。

Qlispとその他関数型言語について

「lispを学べば悟りが開ける」という言葉をよく聞きます。

l他のプログラミング言語哲学とは一線を画すほどの教示をもった言語という印象を持ちます。

僕もlispを少し学んだだけですが「悟り」は開けませんでした。

しかし他の関数型言語(haskellとか)ではそういう話は聞きません。

なぜでしょうか。

やっぱ括弧ですか。

Aベストアンサー

他の言語が、まだまだ歴史が浅く、使っている人、特にカリスマと呼べるような人が少ないからではないでしょうか。
それに「haskellを学べば..」などといまさら言っても、二番煎じになってしまいますし。

Qc言語はどのくらい出来るようになれば良いのでしょうか? 他の言語を勉強する予定ですけど、まずはc言

c言語はどのくらい出来るようになれば良いのでしょうか?

他の言語を勉強する予定ですけど、まずはc言語を勉強しようと思い勉強してるのですが、どこまで出来るようになれば良いのでしょうか

Aベストアンサー

単にC言語の文法を勉強するだけなら難しい事ではありません。
但し、仕事として活用できるレベル、又は他の言語を理解するのに
役に立つレベルになるには、多くの知識と経験が必要になります。

C言語を使って、そこそこ難しいアルゴリズムでも簡単に作れる程度
(最低限)になれば、他の言語でも習得するのは容易ですが、勉強の
目的が他の言語を学ぶ足がかりにするだけなら、C言語を学ぶ効果は
低い物となります。

陸上競技で記録に関係無く100m・200m走るだけなら、誰でも簡単に
出来るが、競技大会において上位入賞できるレベル、又は短距離走
での能力を生かし、他の競技(例えば走り幅跳び)で好記録を出せる
レベルになる事は難しいのと同じ。

QLISPで C言語のフォーマット書式の"%02d"

LISPで C言語のフォーマット書式の"%02d"にあたる記述の仕方がわかりません。どのようにすればよいのでしょうか?

Aベストアンサー

Common Lisp で良いのですよね?

(dolist (num '(5 10 200))
(princ (format nil "~2,'0D~%" num)))

実行結果:
05
10
200


format関数
http://www.yuasa.kuis.kyoto-u.ac.jp/~hiraisi/format-func.html

QC言語C++言語アセンブラ言語の就職先

自分は以前Javaプログラマをやってました。

あまりに、便利なライブラリばかりで、「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」とおもってしまい、すきになれませんでした。正直、苦痛でした。

今、上記言語を勉強しているのですが、コンピュータの根本からプログラムをしている実感が沸き、とても面白いです。

でも、これらの言語を習得したところでどんなところに就職できるのかさっぱりわかりませんし、需要があるのかもしりません。いわゆる組み込み系統は就職できるんでしょうが、私としてはアルゴリズムでUNIXのプログラムをシコシコ書いているような作業がすきなのです。いってみれば、私はクラシックな人間だとおもいます。

そんな僕ですが、就職先はあるのでしょうか?よろしくお願いします。

Aベストアンサー

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求されます。

 ソフトウェア業界は、1人で閉じた製品を開発することは、まずないです。製品=プロジェクトだとすると、最低3名~100人以上が同時進行となります。そうなると、割り当てられたノルマを効率良く行うかが評価のポイントになります。つまり、「ソフトウェアの振る舞いを書いているだけ」ということにもなります。

 コンピュータ言語は、あくまでもツール(道具)です。
 kamkamkam3-san が、今後どういった分野の仕事を希望している(興味がある)かが重要だと思います。
 その答えとして、「C言語C++言語アセンブラ言語」を勉強することで実感できると思います。ですので、ぜひ、勉強を続けてください。

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求さ...続きを読む

Qlispの入門書

lispの入門書を探しています。

lispの書き方をただ説明するだけでなく、他の言語と違ってどういう利点が
あるのかを説明したものがいいです。

なにかおすすめの本があったら教えてください。

Aベストアンサー

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数型プログラミングを実践していきます。
日本語で勉強したいならこちらです。

・リスト遊び
日本語だとこの辺も入門書です。あまり詳しく知りませんが、Emacs Lispの本です。
筆者はEmacs上でemailを読めるMewというソフトウェアの開発者でもあるそうです。

Lispの良さについてはネット上の文章を読む方がよろしいかと。適当に、LispとかPaul GrahamとかShiroとかのキーワードを探してみてください。
「ハッカーと画家」を読むのも良いですね。


Lispコミュニティにコミットするのがいちばんですが。

・The Little Schemer
Lispの最高の入門書です。一問一答を追っていくことで、リスト操作やLispプログラムを作っていく感覚について皮膚で理解できるようになります。
英語ですが、難しい文章はないのでそれほど問題ないはず。
環境の整えかたなどの記述はいっさいありません。 "Lisp" を実践して学ぶ本です。

・プログラミングGauche
Lispの方言の一つにSchemeという言語があります。その一つの処理系であるGaucheの本です。さいきん出たばっかり。
Gauche のさまざまな組み込み関数を利用することで関数...続きを読む

Q独学でCやC++を勉強するのに役に立った書籍やサイトは?

はじめまして、こちらで質問していいのかよくわからないのですが、お願いします。

今はBeckyのプラグイン(例えば、リマインダの設定で複数のメールを一度で特定の日時に設定するというもの)をつくったり、その他にも便利ソフトをつくりたいと思っています。そのためにはCやC++の知識が必要になるので勉強したいと考えています。現在はエクセルのVBAなら、自分のしたいことはだいたいできるというレベルです(VBAは独学でやりました。周囲には聞ける人はいませんでしたし、今もいません)。CやC++はまったく勉強したことはありません。周囲に聞ける人はいないので独学になると思いますが、独学で勉強された方で役に立ったという書籍やサイトなどあれば、紹介していただければ幸いです。

Aベストアンサー

僕も、まだC言語を勉強中です。
ですから参考になるかわかりませんが、私は以下の参考書を使用しています。
・やさしいC 第2版(C++版もあり)
http://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84C-%E7%AC%AC2%E7%89%88-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4797324775/ref=pd_sim_b_1_img/249-4411272-2817150
これは、本当に入門書に入門するための入門書です(笑)
最初の章は基本のIFやFOR文などの説明だけです。
ですので、IFやfor文が解っていれば「8章(7章からでもOK)」から読んでください。
この本が、やっとC言語の「関数・引数」について説明が始まります。
僕が読んでだ事がある本の中では一番解りやすいです。

その次に、
・独習C(C++版もあり)
http://www.amazon.co.jp/%E7%8B%AC%E7%BF%92C-%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%88-%E3%82%B7%E3%83%AB%E3%83%88/dp/4798102962/ref=sr_1_2/250-4575426-4145863?ie=UTF8&s=books&qid=1178338391&sr=1-2
これは問題集ですね。僕は、一番初めにこれを買ったのですが
さっぱりでした(笑)。
その後、「やさしいC」で勉強したところ、「独習C」がこなせるようになりました^^

僕がお勧めできるのは、ここまでです(笑)

僕も、まだC言語を勉強中です。
ですから参考になるかわかりませんが、私は以下の参考書を使用しています。
・やさしいC 第2版(C++版もあり)
http://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84C-%E7%AC%AC2%E7%89%88-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4797324775/ref=pd_sim_b_1_img/249-4411272-2817150
これは、本当に入門書に入門するための入門書です(笑)
最初の章は基本のIFやFOR文などの説明だけです。
ですので、IFやfor文が解っていれば「8章(7章からでもOK)」から読ん...続きを読む

Q初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?

初めて関数型言語を学ぶとしたら、どの言語がお奨めですか?
JavaScriptをやっていて、関数型言語に興味を持ちました。

いままで、勉強した言語はC < Java < Python < JavaScriptです。(右側の方が比重・興味が大きい)
現在、Web系志望の学生なので、その辺を踏まえてアドバイスいただけると助かります。

今のところ興味を持ってるのは、Common Lisp/Haskellあたりです。

よろしくお願いします。

Aベストアンサー

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-06721-1
にAllegro Serveと言うライブラリを利用したWebプログラミングの例があり。HTML生成の例もあり。
原著のサイトでは、
http://www.gigamonkeys.com/book/practical-web-programming-with-allegroserve.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html
http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-compiler.html
辺り。

プログラミング言語Lisp: http://ascii.asciimw.jp/books/books/detail/4-7561-3926-4.shtml
CL-HTTPと言うライブラリを用いたWebサーバーの説明が載っています。
ただし、本自体はMacintosh用の商用実装、Mac Common Lisp

Mac Common Lisp:
http://www.digitool.com/

を用いたものなんで、注意する必要があります。Macを持ってないならあまりお薦めしません。また、若干古い本ですね。

Haskellの方は良く分かりませんが、Common LispならそれなりにWeb関係の簡単なアプリの書き方も紹介されている、と言う事です。

参考までに。

C言語が「関数型」?なのか、と言われると多分違うと思うんですけどね。普通は命令型/手続き型に分類されるんじゃないか、と思います。

ちなみに、JavaScriptはSchemeに影響を受けてる言語です。それで言うと、SchemeかCommon Lispがいいんじゃないのかな、とは思いますがね。ただ、あんまり関数型、って感じで書かれている本は少ないと思います。

Web系志望と言う事なんで、Common Lispですと、

ANSI Common Lisp: http://www.pej-hed.jp/washo/288.html
にHTML生成のトピックあり。

実践Comon Lisp: http://s...続きを読む

QC言語を独学でマスターした人。。

こんにちは。
僕は独学でC言語をマスターしようと勉強してますが、独学では限界があって殆ど解ってないです。
それで、僕と同じように自宅で独学でC言語を勉強してる人もしくは、マスターした人はいますか?。
それ以外の人でも構わないので、もし良ければアドバイスお願いします。

Aベストアンサー

プログラマというのは特別高度な技術が必要な職業ではないと思います。私は結局はゲームプログラマではなく一般のSEですが、求められるのは高度なプログラム技術ではなく、他の人に読みやすくバグのないコードを書くことです。
fantom77さんがCを学ぶ理由をお尋ねしましたが、目的によってあなたに必要な技術は違ってきます。私も、初心者向けの書籍を買って見よう見まねで本の通りにプログラム書いてはコンパイル、を繰り返す前は、プログラムが外国語に見えました。でも、興味があるなら何よりもまず、簡単なプログラムから初めて、自分で書いたものが動くことを体感して、「動いた!」という喜びを重ねてください。プログラムに限らず、人間、興味のあることには難しくても取り組むでしょう?
繰り返しますが、C言語も、プログラマも、決して特別な存在ではありません。もっと気楽にとらえて、楽しんで取り組むのがコツですよ。


人気Q&Aランキング

おすすめ情報