No.10ベストアンサー
- 回答日時:
プログラマというのは特別高度な技術が必要な職業ではないと思います。
私は結局はゲームプログラマではなく一般のSEですが、求められるのは高度なプログラム技術ではなく、他の人に読みやすくバグのないコードを書くことです。fantom77さんがCを学ぶ理由をお尋ねしましたが、目的によってあなたに必要な技術は違ってきます。私も、初心者向けの書籍を買って見よう見まねで本の通りにプログラム書いてはコンパイル、を繰り返す前は、プログラムが外国語に見えました。でも、興味があるなら何よりもまず、簡単なプログラムから初めて、自分で書いたものが動くことを体感して、「動いた!」という喜びを重ねてください。プログラムに限らず、人間、興味のあることには難しくても取り組むでしょう?
繰り返しますが、C言語も、プログラマも、決して特別な存在ではありません。もっと気楽にとらえて、楽しんで取り組むのがコツですよ。
No.11
- 回答日時:
No8です。
使い方や書式が判らないときは徹底的に単純(数行)なソースでコンパイルと動作を
確認しなければ進みません。 ここで先に書いたデバッカの登場なんですが。
それよりプログラムなどとは考えず文章を書くように考えては如何でしょう。
仕事ではソースコードを書く前に必ず仕様書と構成図(フローチャートなど)により
精査してからでないとよいものは出来ません。
視点を変えればアセンブラ,C,C++,JAVAなんてみんな同じ言語に見えますけど。
いきなりソースコードに向かっていませんか。
何をしたいのかはC言語ではなく日本語で順序よく文章化しましょう。
それが出来ないのにソースコードは書けません。書き始めてはなりません。(スパゲッティ劇場の始まりです)
箇条書きで題名を決めて処理毎に分けていきます。(何々を表示する。何々を計算する。等)
C言語特有のことなど後のことでいいのです。
文章化した処理毎の題名ができたらそれを並べて行けば日本語プログラムの完成です。
その後は処理毎の内容をさらに細分化して「何をする機能」に分けて行きます。
この「何をする機能」とは他の「何をする機能」とは重複しないように考えます。
それが出来てからC言語でどう記述すれば良いかを考えます。
可読性、視認性を考えると
1画面(40~80行?)に収まることを目標にします。
機能、何をしたいかをコメントとして必ず書く。
部分的なソースを読み返した時、直ぐに理解できないなら
コメントが足らないのでその場で理解出来るように書いておく。
が重要です。
単機能にまで分解した時にC言語のライブラリにあるものが頻繁に必要になります。
理解したものから利用します。
でも初心者の時は折角自作したのに後でライブラリにあることを知ったというのはよくあることです。
No.9
- 回答日時:
fantom77さん、始めまして。
私も自宅で独学でした。
知らないことも多いので、マスターしたとは言えませんが、自分がやりたいことをやるために必要なだけのスキルが身につけば自分なりには十分満足だと思います。
fantom77さんはC言語を使えるようになって、何をしたいですか?その動機に十分な熱意があれば、習得できないほどC言語は難しいものではありません。
私の場合、6年ほど前にゲームプログラマになりたくてC言語を独学し始めました。それまではパソコンの「パ」の字も嫌いなド素人でした。コンパイラの入手方法も知らなかったので、メモ帳さえあれば書けるHTML(一種のプログラムと言えるかな。。)でHP作成を覚え、動きをつけるためにJavaScriptを学び、その勢いで専門学校へ入学後2ヶ月でポインタ、構造体、リストなど大雑把なことは身に着けました。3日間夢中でプログラムに没頭したこともあります。
以上私の体験談ですが、Cの習得が、夢中になれる「目的」をかなえるための手段であれば、かならず独学で身につけられますよ。
もちろん、つまずいたときは書籍やインターネットで解決法を探す習慣は必須です。頑張ってください。
この回答への補足
こんにちは。
たぶん無理でしょうけど、僕はプログラマになりたいです。
僕はコンパイラで実行する以前にプログラムも書けないです。
プログラマにも向き不向きがあるのでしょうか?。
回答者さんの様に独学でマスターした人もいれば、僕みたいに専門学校で勉強してても解らない人もいますよね。
という事は回答者さんは現在はゲームプログラマでしょうか?。
No.8
- 回答日時:
25年前は書籍など殆どなかったですね。
まわりに聞く人もいなかったし完全に独学です。
今は書籍もInternetもあるから随分楽ですよね。
うらやましい限りです。
もっともアセンブラからですのである程度理解すると楽すぎてアセンブラに戻れなくなりました。
構造体や共用体を理解すると美しくエレガントな記述が出来るようになります。
私の場合はBorlandCのターボデバッカが先生でした。
他人のソースやライブラリでもデバッカで追えばよくわかります。
共用体の意味も構造体のポインタなども理解できるようになります。
デバッカでアセンブラ表示とダンプをしながらステップ実行をすると詳細を把握しながら作れると思います。
No.6
- 回答日時:
BASIC→VB→Java→C++と学習してきたPG(SE)です。
C言語って、ポインタさえ理解できれば、
構文そのもののレパートリーは非常に少ないので、
他の言語よりも、簡単に覚えられると思いますよ。
ポインタを理解するには、
マシン語で実装したときのイメージがないと、
結構きついと思います。
必ずといってもいいほど、ポインタで躓くと思うので、
そのときには、またここで質問するのもいいでしょうし、
C言語、ポインタなどのキーワードで検索するもよしです。
一番重要なのは、
サンプルもしくは関数をどんどん作って試すことです。
試さずにプログラム言語は習得できないといっても
過言ではありません。
No.5
- 回答日時:
> 僕と同じように自宅で独学でC言語を勉強してる人もしくは、マスターした人はいますか?。
いっぱいいます。私も自習でした(中学とかですが。
今でこそ色々な選択肢がありますが、現在一線で活躍する人の多くは、5~10年、15年とかもっと前に勉強してるので、独学の人なんて山ほどいます。Cの習得くらいは独学でも十分可能です。
基本的に、「言語」の一種ですから、ある程度まではろくに理解が進まなくて普通です。
ですが、既に書かれているように、努力を続けると(続けば)、ある日突然わかってきます。
ひたすらいろいろなものを書き、いいものを読むのが基本です。
参考書を熟読し、とにかくいろいろなものを自分で書いてください。
言語なので、自分で使わないと習得が困難になります。
# 「英語がわかる本」をちょっと読むだけで英語がマスターできると思いますか。
文法がわかるのはただの前提で、それから語彙とか、言い回しとか、いろいろ覚えたり理解したりしなければなりません。
そして、英語の理解に英語圏の文化知識が役立つように、
Cの理解にコンピュータの知識は役立ちます。
No.4
- 回答日時:
私もCを独学で学びました。
「Programmingは、正直人から習うようなものではない」と思っています。
僕は、C言語の文法そのものを勉強しつつ、アルゴリズムとデータ構造を勉強しました。そうすることで、文法が身に付くだけでなく、C言語の使い方を理解できました。
アルゴリズムとデータ構造の本は、いくつかあるので、ぜひ併せて学習されるとよいと思います。
No.3
- 回答日時:
私も独学で学びましたが、C言語を学ぶ前に、BASICや数種類のアセンブリ言語を使っていましたので、かなり楽でした。
特に、アセンブリ言語でマイコンのプログラムをやっていると、コンピュータの仕組みが手に取るように分かりますから、C言語を学ぶ際にも非常に助かりました。
> 独学では限界があって殆ど解ってないです。
まず、何が分かって、何が分からないのかを明確にしましょう。何が分からないかがはっきりすれば、ここでもよいですし、他の掲示板やメーリングリストでもいいですし、周りに居るちょっとは分かる人でもいいので、随時質問すれば先に進めます。
No.2
- 回答日時:
スーツのデザイナでプログラマではありません。
一応、C言語でUNIXの漢字プリンタへの出力ドライバ、製図機へのCADデータの出力アプリケーションを作成した経験があります。
20年前のことです。
K&Rの一冊のみを手引きにした完全な自宅学習でした。
1980年にMZ-80Kというメインメモリ僅か12KBのパソコンを買ったのが独習の始まりです。
まず、当時発売された岩波の「情報科学全24巻」を数冊読みました。
次に、フォートラン演習を一冊完全にMZ-80Kで再現しました。
その後、「C言語を知らずしては人にあらず」という風潮を受けて一念発起したと思います。
結果として、UNIXでのC/Sシステムの構築を実現できたと思っています。
ズブの素人の経験からして独習でも習得は可能と思います。
*****
内なる習得の量を積み重ねることなく質は出現しないです。
ある日、霧が晴れたようにCのライブラリの開発が進む地平が開けます。
その日を迎えるか否かは、質問者の積み重ねる学習量次第です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
なぜHTMLのソースコードが無料...
-
現役のプログラマさんやSEさ...
-
組み込みについて
-
C++の勉強方法
-
3つの言語をマスターしたい
-
C++を学ぶためにCの知識は必須...
-
Windows Media Playerを開くと...
-
python urlopen error について...
-
Google ColaboでGUI作成
-
VB.NET とドットNET(.NET...
-
eclipseで関数printfを解決でき...
-
boostのアンインストールについて
-
C言語について
-
検索アルゴリズム
-
色混ぜのアルゴリズム
-
in_addrのs_addr?
-
iCloudフォトライブラリ内の画...
-
IPアドレス、サブネットマスク...
-
ライブラリ作成時のグローバル...
-
プログラミングについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコン
-
String^の^自体が何を意味して...
-
なぜHTMLのソースコードが無料...
-
VB と VC++ と VC#の違いは?
-
VC++とVC#の違いを教えて下さい
-
C++を読めるようになりたい
-
HTMLってホームページ以外どん...
-
C言語を独学でマスターした人。。
-
Java言語、C言語のメリット・デ...
-
初心者ですが お尋ねします。C...
-
私は文系の大学生です。 将来ゲ...
-
オブジェクト指向、理解しやすい?
-
中学生が最初に勉強するおすす...
-
C#でできてC++でできないことは...
-
VB6から新しいvbに切り替えたい。
-
c言語はどのくらい出来るように...
-
簡単なシューティングゲームの...
-
iOSゲームアプリが作りたいと思...
-
C++を学ぶためにCの知識は必須...
-
初心者におすすめのC言語開発環...
おすすめ情報