
工学部情報学科1回生の者です。大学の授業で半年間C言語を一通り学んで、初歩的な(簡単な)プログラムならなんとか作れるようになりました。Cをマスターしていくためには、自分でどんどんプログラムを組んで練習する必要があると思うのですが、どういう点を意識しながら(注意しながら)すれば良いかなど、具体的な練習方法のアドバイスがあればお願いします。また、練習用の本で、お勧めのがあれば教えてほしいです。一応、今、手元にあるのは、3冊です。
・「プログラミング言語C」共立出版(かなり有名な本らしく大学で買わされたのですが、授業ではレジュメが配布されていてあまり使いませんでした。せっかく買ったので、何度も読んだのですが、私自身としては少し難解で、なかなか理解できないです。)
・改訂 新C言語入門ビギナー編 ソフトバンク(ビギナー編ということもあり、大変分かりやすかったです。)
・改訂 新C言語入門シニア編 ソフトバンク(ビギナー編を読んだときに、もう少し知りたい項目があるときに参照した程度なので、まだあまり読んでいません。なかなか重宝しそうな本なのですが、やっぱり読んだだけでは実際に使えないと思って質問しました。)
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
Cのマスターへのアドバイス、、ですね?
ほんとの基礎の基礎だけなら、たとえば関数の呼び方とか、ifやらwhileやらの
使い方、、それだけならそこまですることもないでしょうが、それじゃ、
「マスター」したとは言いがたいですよね。。
ある程度のアプリケーションを作れるようになりたいのですよね?
まずは、簡単なものから、、はもちろんで、他の方のコメントも
ありますので、別のこと書きます。
環境が大事です。
ご存知かと思いますが、C言語はもともとはUNIXのために作られた言語です。
OSを記述する目的で作られているので、OS/ハードウェアに近い部分、
に依存するところも多々あります。。。
場合によってはOSをコケさせるようなプログラムでも書けたりします。。
BasicやJavaのような高級な、OSにとって安全な言語と違い、
おとなしく文法さえ知っていれば良い、、というのとはちょっと異質です。
実行時のエラーのある行、、なんて、OSやコンパイラはもちろん教えてくれません。
特に、Cではポインタ操作で悩むことがたくさんでてくるので、
そのときに、そのOSでアプリのメモリの管理がどうなっているのか、
というところが頭に入っていないと解決できない場合もあります。
スタックとかヒープとか、意味わかりますか?
関数コール時に、どのようにして引数が呼び出される関数に渡るのか?とか、
構造体の宣言と、構造体のポインタにmallocするのとどう違うのか?とか、、
freeってなんだ?とか、、
お手持ちのPCにLinuxを入れて、その環境でいろいろと試されることを
お勧めします。安いですしね。雑誌の付録で十分です。
学生さんであれば、WinとVC++でも安価に手に入るかと思いますが、
いきなりVC++は、ちょっとお勧めできないです。。。
(DOSやWinでのプログラミングは、最初はいいですが、「余計なこと」にすぐハマります)
あ、Linux(UNIX)の操作方法はご存知ですか? (^-^;
学生さんということで、ついでですからLinux(UNIX)の使い方は覚えておいた
ほうが得です。。
C言語自体を解説している本は、すでにお持ちのプログラミング言語Cで
十分です。
それとは別にLinux(UNIX)でプログラミングする、、という趣旨の本を
1冊購入されてみてはいかがでしょうか?
Linux(UNIX)そのものをご存知ないなら、それ自体の入門書もいりますね。
まずは、あの本のとおりに、hello worldの表示から、、
そのうちに、ファイルの入出力、プロセスの作成、通信、Xウィンドウ、、
Xウィンドウを使って1つゲームでも作れるようになれば、
その後はまず、何をやってもつまづくことはないでしょう・・・。
そのくらいになっていれば、VC++で(CじゃなくてC++でも)、MFCで
Winのプログラミングをはじめても、ぜんぜん大丈夫。
目的がCの習得ということであっても、Cだけ勉強されるより、
多角的にいろいろと覚えていくほうが、それぞれに理解が補足され、
より深いところまでたどり着けると思います。
いそがば、まわれ、、ですね。
学生さんならなおさらです。。。。
いまからいっぱい本を読みましょう。いろんなこと試しましょう。
いっぱい失敗しましょう。。。
No.4
- 回答日時:
現状、どういう環境でコンパイラを動かしているのか判りませんが、とりあえず基本という事でDOSでやっている事を前提にします。
とりあえずフィルタープログラムなんか作ってみたらいかがでしょう?
コマンドライン解析、ファイルの入出力、文字列操作なんかがメインでしょうか?
まず自分で「こんなやつ」って仕様を決めて、ヘンな仕様でもとりあえずその通りに作るってのを続けると、仕事になってもクセになっていいんじゃないかな。
No.3
- 回答日時:
当面はしっかりした本が1冊あれば十分です。
プログラミングはどちらかというと習うより慣れろの世界だと思います。とにかく自分でオリジナリティのあるコードを書かないことには上達しません。最初のうちはあまりスタイルについては深く考えず自分の思うがままにいろいろなプログラムを書いてみるのがいいと思います。いろいろなところにあるサンプルコードをお手本にしてこれはいいと思うものはどんどん取り入れましょう。サンプルプログラムで不満なところを自分流に改造するのも非常に勉強になります。
ちょっと慣れてきたら構造化プログラミングをキーワードに調べてみることをお勧めします。また、高機能なアプリケーションを作りたいのならオブジェクト指向プログラミングについても調べるといいでしょう。
このあたりの段階からは自分がどんなプログラムを作りたいのかを意識しながら勉強する方向を決めたほうがいいと思います。なんでもかんでもやろうとすると現在の状況では最先端に追いつくのは難しいです。広く浅くも非常に重要なのですが、どこかに自分の得意分野を作っておいたほうがいいです。
No.2
- 回答日時:
前にも同じような質問に同じような回答をしました。
まず、「プログラミング言語C」は第2版ですよね。
第2版ならANSI-C準拠なのでコンソールプログラム(Windows:コマンドプロンプト/MS-DOSプロンプト、Macintosh:MPWシェル、etc)ならほとんどの環境に対応しています。
純粋にC言語(ANSI-C)を勉強するならグラフィックやデバイスなど機種依存部分を排除して勉強した方が良いので「プログラミング言語C 第2版」以外の参考書は不要でしょう。
「新C言語入門…」のシリーズはゴミ箱に捨てましょう。
販売部数が多いことは内容が良いことに直結しません。
スーパービギナーやビギナー向けの本の前半部分でscanfを使うような著者は信用すべきではありません。
「プログラミング言語C 第2版」は時間をかけて読み進めば決して難しい本ではありません。
訳者のせいで“わかりにくい表現が多い”本であることは間違い無いのですが…。
出来れば原書と併読することをオススメします。
カーニハンの説明の上手さを石田氏が台無しにしていることがわかると思います。
参考URLは私の書いた書評です。
お暇なときにどうぞ
参考URL:http://www.geocities.co.jp/SiliconValley-PaloAlt …
No.1
- 回答日時:
「プログラミング言語C」(K&R)は、Cを作った人の本なので、専門的にCをやろうと思ったら、これしかありません。
というかこれで事足ります。ただ、元々 unix用なので、unixの環境が無いとつらいかもしれません。
あとは、処理系依存のライブラリの解説書(VCやBCのオンラインヘルプでもかまいませんが glibc等の解説書でもいいでしょう)で調べながらプログラムを作ることになります。
言語は慣れですが、慣れる前にきちんとした基本的な知識(コンピューターの原理など)を身につけてないと全く役に立ちません。
まずは、コンピューターの原理(情報処理の原理)を詳しく解説してある本を熟読しましょう。大学の図書館にはいろいろそろっているはずです。
コンピューターの原理をきちんと身につければ、どんな言語だろうと、理解するのは速いと思います。
基本を身につけると、あとはおもしろいように理解できてしまいます。本当におもしろくなってこういうことを仕事にしてしまう場合もあるでしょう。
はっきり言って、ほとんどの入門書は役に立たないと思います。
これは、あなたが情報工学系の学生なので、将来ソフトウェアシステム(情報システム)関連の仕事を選ぶであろうという前提で書きました。
良いエンジニアになることをお祈りします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- その他(学校・勉強) スシロー “ペロペロ高校生” は、日本の教育の失敗ですね? 20 2023/02/08 07:08
- 大学受験 娘の大学受験勉強 6 2022/06/30 19:58
- 大学受験 大学受験 辛い 英語 読めない こんにちは。 現在大学受験をしてる者です。 色々あり浪人なんですけど 11 2022/09/06 12:03
- 高校 高校2年生理系です。 名古屋大学の農学部、もしくは金沢大学の薬学類に行きたいと思っています。 が英語 3 2022/12/31 00:37
- 大学・短大 続報 以前大学編入後に生じた問題から、こちらに質問 させていただいたものです。 詳しくご存知ない方に 1 2023/06/24 15:19
- その他(プログラミング・Web制作) 大学のゼミのレポートがムカつきます。 R言語というデータ分析に特化したプログラム言語を用いた授業の課 1 2023/06/29 00:50
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
String^の^自体が何を意味して...
-
VB と VC++ と VC#の違いは?
-
簡単なシューティングゲームの...
-
c言語の仕事について
-
パソコン
-
HTMLってホームページ以外どん...
-
C++でWindowsのGUIアプリを作る...
-
C#のクラスが理解出来ない
-
Cをマスターしていくためへの...
-
VC++とVC#の違いを教えて下さい
-
C、C++、C#の関係について
-
iOSゲームアプリが作りたいと思...
-
python urlopen error について...
-
iCloudフォトライブラリ内の画...
-
VB.NET とドットNET(.NET...
-
VisualBasicプログラミング技術...
-
本格的なGUIを作るのにおすすめ...
-
C++ 標準ライブラリの実際の中...
-
決定木学習について
-
Google ColaboでGUI作成
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
String^の^自体が何を意味して...
-
VB と VC++ と VC#の違いは?
-
なぜHTMLのソースコードが無料...
-
C言語を独学でマスターした人。。
-
VC++とVC#の違いを教えて下さい
-
C言語のお勧め本
-
私は文系の大学生です。 将来ゲ...
-
基幹システムからデータを抽出...
-
COBOLをはじめたいのですが
-
webサイト制作をしたい高校生で...
-
VB.netってどうやって勉強しま...
-
職業訓練コースの選択
-
c言語の本を教えてください。分...
-
プログラマを目指してます
-
HTMLってホームページ以外どん...
-
clock_gettimeでミリ秒の時間差...
-
c言語はどのくらい出来るように...
-
来年度からSEになります。プ...
-
mac用のC言語のコンパイラルf探...
-
c++の勉強について
おすすめ情報