- ベストアンサー
C言語を独学でマスターした人。。
こんにちは。 僕は独学でC言語をマスターしようと勉強してますが、独学では限界があって殆ど解ってないです。 それで、僕と同じように自宅で独学でC言語を勉強してる人もしくは、マスターした人はいますか?。 それ以外の人でも構わないので、もし良ければアドバイスお願いします。
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
プログラマというのは特別高度な技術が必要な職業ではないと思います。私は結局はゲームプログラマではなく一般のSEですが、求められるのは高度なプログラム技術ではなく、他の人に読みやすくバグのないコードを書くことです。 fantom77さんがCを学ぶ理由をお尋ねしましたが、目的によってあなたに必要な技術は違ってきます。私も、初心者向けの書籍を買って見よう見まねで本の通りにプログラム書いてはコンパイル、を繰り返す前は、プログラムが外国語に見えました。でも、興味があるなら何よりもまず、簡単なプログラムから初めて、自分で書いたものが動くことを体感して、「動いた!」という喜びを重ねてください。プログラムに限らず、人間、興味のあることには難しくても取り組むでしょう? 繰り返しますが、C言語も、プログラマも、決して特別な存在ではありません。もっと気楽にとらえて、楽しんで取り組むのがコツですよ。
その他の回答 (10)
- caceres
- ベストアンサー率43% (61/140)
No8です。 使い方や書式が判らないときは徹底的に単純(数行)なソースでコンパイルと動作を 確認しなければ進みません。 ここで先に書いたデバッカの登場なんですが。 それよりプログラムなどとは考えず文章を書くように考えては如何でしょう。 仕事ではソースコードを書く前に必ず仕様書と構成図(フローチャートなど)により 精査してからでないとよいものは出来ません。 視点を変えればアセンブラ,C,C++,JAVAなんてみんな同じ言語に見えますけど。 いきなりソースコードに向かっていませんか。 何をしたいのかはC言語ではなく日本語で順序よく文章化しましょう。 それが出来ないのにソースコードは書けません。書き始めてはなりません。(スパゲッティ劇場の始まりです) 箇条書きで題名を決めて処理毎に分けていきます。(何々を表示する。何々を計算する。等) C言語特有のことなど後のことでいいのです。 文章化した処理毎の題名ができたらそれを並べて行けば日本語プログラムの完成です。 その後は処理毎の内容をさらに細分化して「何をする機能」に分けて行きます。 この「何をする機能」とは他の「何をする機能」とは重複しないように考えます。 それが出来てからC言語でどう記述すれば良いかを考えます。 可読性、視認性を考えると 1画面(40~80行?)に収まることを目標にします。 機能、何をしたいかをコメントとして必ず書く。 部分的なソースを読み返した時、直ぐに理解できないなら コメントが足らないのでその場で理解出来るように書いておく。 が重要です。 単機能にまで分解した時にC言語のライブラリにあるものが頻繁に必要になります。 理解したものから利用します。 でも初心者の時は折角自作したのに後でライブラリにあることを知ったというのはよくあることです。
- meruty
- ベストアンサー率81% (9/11)
fantom77さん、始めまして。 私も自宅で独学でした。 知らないことも多いので、マスターしたとは言えませんが、自分がやりたいことをやるために必要なだけのスキルが身につけば自分なりには十分満足だと思います。 fantom77さんはC言語を使えるようになって、何をしたいですか?その動機に十分な熱意があれば、習得できないほどC言語は難しいものではありません。 私の場合、6年ほど前にゲームプログラマになりたくてC言語を独学し始めました。それまではパソコンの「パ」の字も嫌いなド素人でした。コンパイラの入手方法も知らなかったので、メモ帳さえあれば書けるHTML(一種のプログラムと言えるかな。。)でHP作成を覚え、動きをつけるためにJavaScriptを学び、その勢いで専門学校へ入学後2ヶ月でポインタ、構造体、リストなど大雑把なことは身に着けました。3日間夢中でプログラムに没頭したこともあります。 以上私の体験談ですが、Cの習得が、夢中になれる「目的」をかなえるための手段であれば、かならず独学で身につけられますよ。 もちろん、つまずいたときは書籍やインターネットで解決法を探す習慣は必須です。頑張ってください。
- caceres
- ベストアンサー率43% (61/140)
25年前は書籍など殆どなかったですね。 まわりに聞く人もいなかったし完全に独学です。 今は書籍もInternetもあるから随分楽ですよね。 うらやましい限りです。 もっともアセンブラからですのである程度理解すると楽すぎてアセンブラに戻れなくなりました。 構造体や共用体を理解すると美しくエレガントな記述が出来るようになります。 私の場合はBorlandCのターボデバッカが先生でした。 他人のソースやライブラリでもデバッカで追えばよくわかります。 共用体の意味も構造体のポインタなども理解できるようになります。 デバッカでアセンブラ表示とダンプをしながらステップ実行をすると詳細を把握しながら作れると思います。
- yumichongu
- ベストアンサー率31% (10/32)
マスターしたかどうかわかりませんが 趣味でいろんなソフト作っています。 「そのことがすき」っていうことが何より強いとおもいます。
- kakusuke
- ベストアンサー率36% (95/259)
BASIC→VB→Java→C++と学習してきたPG(SE)です。 C言語って、ポインタさえ理解できれば、 構文そのもののレパートリーは非常に少ないので、 他の言語よりも、簡単に覚えられると思いますよ。 ポインタを理解するには、 マシン語で実装したときのイメージがないと、 結構きついと思います。 必ずといってもいいほど、ポインタで躓くと思うので、 そのときには、またここで質問するのもいいでしょうし、 C言語、ポインタなどのキーワードで検索するもよしです。 一番重要なのは、 サンプルもしくは関数をどんどん作って試すことです。 試さずにプログラム言語は習得できないといっても 過言ではありません。
- MrBan
- ベストアンサー率53% (331/615)
> 僕と同じように自宅で独学でC言語を勉強してる人もしくは、マスターした人はいますか?。 いっぱいいます。私も自習でした(中学とかですが。 今でこそ色々な選択肢がありますが、現在一線で活躍する人の多くは、5~10年、15年とかもっと前に勉強してるので、独学の人なんて山ほどいます。Cの習得くらいは独学でも十分可能です。 基本的に、「言語」の一種ですから、ある程度まではろくに理解が進まなくて普通です。 ですが、既に書かれているように、努力を続けると(続けば)、ある日突然わかってきます。 ひたすらいろいろなものを書き、いいものを読むのが基本です。 参考書を熟読し、とにかくいろいろなものを自分で書いてください。 言語なので、自分で使わないと習得が困難になります。 # 「英語がわかる本」をちょっと読むだけで英語がマスターできると思いますか。 文法がわかるのはただの前提で、それから語彙とか、言い回しとか、いろいろ覚えたり理解したりしなければなりません。 そして、英語の理解に英語圏の文化知識が役立つように、 Cの理解にコンピュータの知識は役立ちます。
- Kenichi31980
- ベストアンサー率46% (7/15)
私もCを独学で学びました。 「Programmingは、正直人から習うようなものではない」と思っています。 僕は、C言語の文法そのものを勉強しつつ、アルゴリズムとデータ構造を勉強しました。そうすることで、文法が身に付くだけでなく、C言語の使い方を理解できました。 アルゴリズムとデータ構造の本は、いくつかあるので、ぜひ併せて学習されるとよいと思います。
- jacta
- ベストアンサー率26% (845/3158)
私も独学で学びましたが、C言語を学ぶ前に、BASICや数種類のアセンブリ言語を使っていましたので、かなり楽でした。 特に、アセンブリ言語でマイコンのプログラムをやっていると、コンピュータの仕組みが手に取るように分かりますから、C言語を学ぶ際にも非常に助かりました。 > 独学では限界があって殆ど解ってないです。 まず、何が分かって、何が分からないのかを明確にしましょう。何が分からないかがはっきりすれば、ここでもよいですし、他の掲示板やメーリングリストでもいいですし、周りに居るちょっとは分かる人でもいいので、随時質問すれば先に進めます。
スーツのデザイナでプログラマではありません。 一応、C言語でUNIXの漢字プリンタへの出力ドライバ、製図機へのCADデータの出力アプリケーションを作成した経験があります。 20年前のことです。 K&Rの一冊のみを手引きにした完全な自宅学習でした。 1980年にMZ-80Kというメインメモリ僅か12KBのパソコンを買ったのが独習の始まりです。 まず、当時発売された岩波の「情報科学全24巻」を数冊読みました。 次に、フォートラン演習を一冊完全にMZ-80Kで再現しました。 その後、「C言語を知らずしては人にあらず」という風潮を受けて一念発起したと思います。 結果として、UNIXでのC/Sシステムの構築を実現できたと思っています。 ズブの素人の経験からして独習でも習得は可能と思います。 ***** 内なる習得の量を積み重ねることなく質は出現しないです。 ある日、霧が晴れたようにCのライブラリの開発が進む地平が開けます。 その日を迎えるか否かは、質問者の積み重ねる学習量次第です。
- a-saitoh
- ベストアンサー率30% (524/1722)
大学で、3月に、「4月からCの演習をやるから春休みに勉強しておけ」と言われて、K&Rを読みました。なので、実質独学かなぁ。 C言語がわからないと自称する人は、Cの問題ではなくて、計算機の動きをとか、言語には依存しないプログラミングそのものがわかってないことが多いです。 あなたはどうでしょう? 急がば回れともいいます。ちゃんと計算機アーキテクチャとかあたりから基礎固めしてみましょう。
補足
こんにちは。 たぶん無理でしょうけど、僕はプログラマになりたいです。 僕はコンパイラで実行する以前にプログラムも書けないです。 プログラマにも向き不向きがあるのでしょうか?。 回答者さんの様に独学でマスターした人もいれば、僕みたいに専門学校で勉強してても解らない人もいますよね。 という事は回答者さんは現在はゲームプログラマでしょうか?。