• ベストアンサー

実践的なC言語の知識

C言語を昔、独学で勉強しました。が、途中でつまずき、勉強を止めてしまいました。 最近になってまたプログラミングがやりたくなってきたので復習しようと思っているのですが、 私は実践的でない知識を覚えるのが苦痛ですし、覚える意義も感じられません。 例えば、練習問題で「国語、社会、理科の3科目の合計と平均」などと言った問題があります。 基本的な問題で、大切「だろう」とは思うのですが、自分でプログラミングする上で使うのかどうか疑問に思ってしまいます。 今、私はブラウザに大変興味があり、できるならば開発に携わりたいと思っています。(仕事としてではなく、趣味でです。) 初心者の私がこんなことを言うのは小学生が将来メジャーリーガーになりたいと言っているようなものですが、私はこの事を真剣に考えています。 また、linux(ubuntu 8.10 amd64)を使っているのですが、32bit版にしかないようなソフトを64bit用にリビルドしたいと思っています。 つまりやりたいことは ・ブラウザ(特にfirefox)の開発 ・32bitソフトの64bitへの移植 です。 そこで質問なのですが、 1、これらを行う上で必要な知識は下のサイトの練習問題から探すと具体的にどれなのでしょうか? 全てかもしれませんが、特に大切な問題を教えてください。 http://www.geocities.jp/kenji_y0328/crenshu/index.html 2、私の場合に限らず、C言語でプログラムを組む上で一般的な練習問題にはないが、必要とされる基本的な知識(問題)などありましたらお教えてください。 *ちなみに私は仕事ではなく、完全に趣味でプログラミングをしています。

  • SK0
  • お礼率91% (270/294)

質問者が選んだベストアンサー

  • ベストアンサー
  • don_go
  • ベストアンサー率31% (336/1059)
回答No.5

>1、これらを行う上で必要な知識は下のサイトの練習問題から >探すと具体的にどれなのでしょうか? 該当サイトの練習問題は、いわば小学生低学年レベルです。 全問九九を暗唱できるくらいの感じで解答できなければ、話 にもなりません。 >一般的な練習問題にはないが、必要とされる基本的な知識 >(問題)などありましたらお教えてください。 プログラムの処理内容に関する知識。 プラウザを開発するというのであれば、Web標準の知識は必須 でしょう。 http://ja.wikipedia.org/wiki/Mozilla_Firefox >Mozilla Firefoxは、HTML、XML、XHTML、SVG 1.1(partial) >[6]、CSS、 ECMAScript (JavaScript)、DOM、MathML、DTD、 >XSLT、XPath、アルファチャンネルを含むPNG画像など、多く >のウェブ標準をサポートしている。 プログラミング作業は、頭の中で理解している処理をコンピュ ータに判る様な表現に置き換える作業にすぎません。 現在対応している物、及びこれから対応しようとする物の仕様 及び実装方法等を理解できていなければプログラム作成はでき ません。

SK0
質問者

お礼

>該当サイトの練習問題は、いわば小学生低学年レベルです。 >全問九九を暗唱できるくらいの感じで解答できなければ、話 >にもなりません。 なるほど。やはり全て基本なのですね。わかりました。 >プラウザを開発するというのであれば、Web標準の知識は必須 >でしょう。 わかりました。学習してみます。 >プログラミング作業は、頭の中で理解している処理をコンピュ >ータに判る様な表現に置き換える作業にすぎません。 >現在対応している物、及びこれから対応しようとする物の仕様 >及び実装方法等を理解できていなければプログラム作成はでき >ません。 おっしゃる通りだと思います。理解できていないものなんて作れませんよね。 これまでみなさんが解答してくださった内容をまとめると ・英語力 ・プログラムの処理内容に関する知識。 ・RFCを理解する などといったところでしょうか。 これらを参考になんとかブラウザ開発に協力できるように努力します。 解答ありがとうございました。

その他の回答 (6)

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.7

>・ブラウザ(特にfirefox)の開発 ブラウザを作りたいなら、ANo.1の回答の 英文を読む に尽きます。 ブラウザを作成する上で必要な「仕様書の原本」の殆どは、英文で書かれています。HTMLとかXMLとかCSSとか画像フォーマットとかRFCとか。 一応、こういう仕様書は「日本語版」もあったりしますが、細かい部分が訳されてなかったり、端折ってあったりして、結局、最後は「英語の原本には何て書いてあるか?」を調べるハメになります。 そして、そういう仕様書で「最も知りたい部分」は、仕様がはっきり固まってなくて「判りにくい曖昧な英語」で書かれてて日本語訳がどこにも無かったりします。 少なくとも「RFCの色んな文書を原文で読んで、書いてある事がある程度判る」じゃないと、仕様書を読む段階で苦労します。 ぶっちゃけ、ブラウザの開発とは「仕様書通りに機械的に何も考えずにプログラムを組むだけ」ですから、仕様書の原書が読めなきゃ話になりません。

SK0
質問者

お礼

解答ありがとうございます。 英語を読めないと話にならないのですね。 仕様書の原書を読めるように頑張って努力してみます。 どうもありがとうございます。

  • don_go
  • ベストアンサー率31% (336/1059)
回答No.6

プロジェクト一覧・参加者募集 http://www.mozilla.gr.jp/projects/ お問い合わせ http://www.mozilla.gr.jp/info/contact.html Mozilla Foundation http://www.mozilla.org/ プログラム以外でも開発に参加する方法はあります。 あくまでもプログラムにこだわり、主要な部分の開発に 参加を希望するのであれば、英語で技術論議できる程度 の語学力も必須となります。

SK0
質問者

お礼

>英語で技術論議できる程度の語学力も必須となります。 なるほど。英語が出来ないと話になりませんね。 やはり世界で開発されているソフトは基本的に仕様書なども英語なのですね。英語の大切さを痛感しました。 解答どうもありがとうございます。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

確かに「国語, 社会, 理科の 3科目の合計と平均を求める」ことがブラウザを作るときに役に立つとは思えませんが, 「複数のデータの合計を求める」ことは必要ですよね? そして, この 2つは「本質的に同じ」です. そういう目で見ると, また違うのではないかな.

SK0
質問者

お礼

解答ありがとうございます。 >この 2つは「本質的に同じ」です そうですね。おっしゃる通りです。 貴重なご意見ありがとうございます。 参考にさせていただきます。

  • GOOD-Fr
  • ベストアンサー率32% (83/256)
回答No.3

理解不可能な悩みですね・・・。 そもそも「実践的な知識」とか「実践的じゃない知識」ってなんなんでしょう? そういう深い悩みは私には理解できないので、聞かなかったことにしますが、たとえばブラウザであれば、初期のブラウザは JPEG の表示ができませんでした。確か GIF は表示できていたような気がします。「ブラウザを作りたい」ということは、たとえば、自分にはまったく興味がないフォーマットであっても、ひたすらプログラムを作る必要がある、ということです。こういうのは「実践的」なのか「実践的でない」のか? ところで Ubuntu って、いまどき 32bit OS ですよね?Linux がそうなのか、Ubuntu だけがそうなのかは知りませんが、いまどき 64bit 対応でない OS で存在意義があるのは Windows ぐらいだと思ってました。正直なところ、「32bitソフトの64bitへの移植」なんて、趣味でもやりたくない、と私は思いますけど。Windows 用以外なら、最初から 64bit 対応で作ると思いますし。 私事になりますが、レジスタの多さに魅力を感じて 64bit 用のコンパイラを作ってみようと思ってちょこちょこ作り始めていたのですが、「せっかくだから C++ で作ってみよう」と考えていたら(C++ は世の中に出てきた最初のころにちゃんとプログラムを書いて勉強していたはずなのですが)、オブジェクト指向を自分が中途半端にしか理解していなかったことに気がついて、再度勉強しているうちに、STL にたどりついて、現在寄り道中です。64bit コンパイラなんて、他の人たちが作ってくれるから、全然急いでないんですけどね。

SK0
質問者

お礼

解答ありがとうございます。 私の考える実践的でない知識とは 「目的のプログラムを作る上で不必要な知識だが、一般的に基本知識として考えられている知識」です。 例えば、因数分解なんて中学校で教えるので数学の基本ですよね。 ですが、実際、社会に出たり、仕事をする上で使わなければ、覚える価値がないですよね。(テストをパスするのが目的の時は意味がありますが、) 私が考える実践的でない知識とはそういうことです。 >たとえば、自分にはまったく興味がないフォーマットであっても、ひたすらプログラムを作る必要がある jpegフォーマットに興味はありませんが、ブラウザを作る上で必要なら勉強します。それは目的を達成する上で必要だからです。

noname#74694
noname#74694
回答No.2

仕事でプログラミングをしています。 C/C++に至っては、15年程の経験があります。 ご指定のサイトは拝見させて頂きました。 が、これといって重要な問題はないのではないでしょうか? #あくまでも私見です。 15年やってきましたが、常にインターネットで検索して調査の日々です。 特にWindowsの画面操作系は非常に技法が多く、1度作成したプログラムが教科書になるという感じです。 私はWindowsのMFCをやってきましたので、Linuxについてはあまりわかりませんが、趣味でも向上心と場数で知識は蓄えられていくとおもいます。 SDKになってしまいますが、 http://www.kumei.ne.jp/c_lang/ なんかは、Windowsのプログラムを学ぶにはいいと思います。 Linuxであれば、C++編を最初に見ていくことになるのでしょうかね? Cでポインタが判んないんだよね~なんてのが昔は流行でしたが(ほんとかよ!)ポインタなんてものは、Cをやる上で呼吸するってぐらい重要なのでポインタがわからないならポインタの勉強は十分やったほうがいいです。 私の場合は仕事でしたので誰も教えてくれません、作りながら学びました。 ポインタを例にしましたが、それ以外の知識も必要となったら学ぶ。 逆に必要のないことは学んでたらきりがありません。 必要になったときに必要な情報を調べる。 本なんていりませんよ、必要ないことも満載ですから(笑) 私的にはインターネットがの最大の武器です。 仕事柄周りはプログラマが多いですが、センスのない人もいます。 しかし、真剣に考えていると見受けられるので、これは乗り越えられるでしょう。 万人向けの実践的なC言語の知識はないでしょう。 SK0さんが、とりあえず何かをまず作ろうとしてつまずいた所を学んでいけばいいだけです。 >私は実践的でない知識を覚えるのが苦痛ですし、覚える意義も感じられません。 基本はこのスタンスでいいとおもいます。15年やってても知らない事は知りませんし。 ※if,for,switch,while文などなどは実践的すぎますので覚えてくださいね。 参考になったかわかりませんが、頑張ってください。 私も、まだまだがんばって学んでいきます。

SK0
質問者

お礼

解答ありがとうございます。 >本なんていりませんよ、必要ないことも満載ですから(笑) 読んでいて、そう思うことが多々あります。 >SK0さんが、とりあえず何かをまず作ろうとしてつまずいた所を学んでいけばいいだけです。 そうですね。わからない→検索の繰り返しですよね。 頑張ってみます。解答ありがとうございました。

  • eroermine
  • ベストアンサー率18% (83/444)
回答No.1

今ざっとそのページの質問を見てみましたが、C言語でやる問題ではないですね。一番適さない。 きっと Cの後に OBOL が抜けてるのでしょう。 具体的に firefoxの改造をやることに決まってるのですからソースを読んだらどうでしょう。 >必要とされる基本的な知識 英文を読む では期待しております。

SK0
質問者

お礼

解答どうもありがとうございます。 >今ざっとそのページの質問を見てみましたが、C言語でやる問題ではないですね。 「C言語 練習問題」でググったら一番上に来たのでそのページを参考に質問してみました。この問題を解かなくてよかったです。 >具体的に firefoxの改造をやることに決まってるのですからソースを読んだらどうでしょう。 そうですね。今の段階で読んでもわからないことだらけでしょうが、その都度調べて頑張ってみます。 >英文を読む 耳が痛いです。英語はこれからの時代読めないと話にならないし、読みたいとは思っていたのですが、全然読めません。頑張って勉強します。

関連するQ&A

  • C言語かBasic言語

    プログラミングにチャレンジしようとしている者です。 初心者のため、C言語かBasic言語どちらを勉強していけばいいのかわかりません。 また、最終的には自分でアプリケーションを作ってみたい、と思っています。(ブラウザなど) そこで、「これなら初心者でもチャレンジできる!」という言語を教えていただきたいのです。 できればわかりやすい本などもありましたら教えてください。(入門書など) よろしくお願いします。

  • C言語についてどうしてもわからない疑問

    プログラミング初心者です。 C言語を勉強中に疑問に思ったことが2つあります。 まず1つ目。 C言語以外のプログラミング言語、例えばjavaとかC#とかjsとかpythonとかrubyとかPHPとか、には開発者にとって便利なライブラリとかフレームワーク(僕にはこの2つの明確な違いがわかりません。が、どちらも「開発者が定義しなくてもよい関数やオブジェクトの集合」という認識があります)がありますよね。 そのおかげで色んな人達がプログラミングし易くなりました。 ネット(はてぶのホットエントリとか)でも「馬鹿な俺がプログラミングを勉強して〇〇を作った」といった記事をよく目にします。 でも「C言語を使って」というのは聞いたことがありません。 そもそも、C言語はそいういったライブラリやフレームワークが少ないように感じます。 検索してもrailsとかjqueryのようなフレームワーク(ライブラリ?)は見つかりません。 これが無かったらプログラムなんて作れないのでは? しかし、世間にはC言語で作られたプログラムが多いのもまた事実。 C言語ではいったいどのように開発が行われているのか教えてください。 2つ目 unixとかlinuxといったOSはC言語で書かれている聞いたことがあります。 しかし、プログラムの開発は「コードを書く→コンパイル(→デバッグ)→実行」という流れですよね。 ではOSを開発するときに、そのコードをどうやってコンパイルするのでしょうか? コンパイラはOSの上に立っているとするなら、OSがない状態でコンパイラはどこに立てばいいのか。 そこがわかりません。 誰かこの2つの疑問に答えてください。 お願いします。

  • C言語、オススメの本

    僕は今、プログラミング言語としてC言語を勉強したいと思っています。 プログラミングの経験はありませんが、 ネットや他の書籍である程度知識はあります。 中学生で、趣味の範囲内としてやってみたいと思っているのですが、 自分の将来に活かしたいとも考えています。多少は踏み込んで勉強を したいです。 そこで本題なのですが、C言語を勉強するための本…色々ありますよね? そんな数あるC言語の本のなかでオススメを教えて下さい! 我がままですが…読みながら体系的に学べるような、そんな本がいいです そんな本はなくても構いませんが、回答者さんが勉強する時に使った 本とかそういうのも教えて下さい。 よろしくお願いします!

  • C言語。

    こんにちは。今プログラミングの勉強をしようと持っている中学3年なんですが、難しくて困っています。 PCの基礎知識も微妙なんですがどのようなサイトまたは本がいいでしょうか? 猫でもわかるC言語プログラミングという本は持ってます。 勉強法など中学生でもわかるようなものがありましたらありがたいです。 よろしくお願いします。

  • アンドロイドアプリ どのプログラミング言語の知識が

    アンドロイドアプリを開発する場合 どのプログラミング言語の知識が必要になりますか? javaですか?

  • C言語の知識をVBに活かすには?

    C言語の基礎を勉強しました。 さぁ、これで、プログラミング言語の基礎はできたから他の言語でも意外とすんなり取り組めるはず・・・・(希望) と思ったのですが、ExcelでのVBすらうまくできません。 データベースから引っ張ってきて、対象のデータをSQLのように別表にするプログラムを書く、というようなことをしたいのですが、これもできず。 別言語を習得するときにコツっところがあれば教えてほしいです。 また、C言語でプログラムをかけることを求職時のウリにしたいのですが、アピールとなるようなプログラムの問題を出してほしい、もしくはそんなHPがあれば教えてほしいです。 よろしくお願い致します。

  • あるC言語の問題の不明点についてご教授願います

    プログラミングの技能向上のために、C言語の練習問題に取り組んでいる者です。 本日、以下の問題に挑戦しました。 http://www.geocities.jp/kenji_y0328/crenshu/renshu/r061.html その問題の解答は以下になります。 http://www.geocities.jp/kenji_y0328/crenshu/renshu/r061.gif ここからが本題なのですが、その解答を見ると、do~while文中などに、 「scanf("%c%*c", &kakunin);」 というような表現が出てきます。このscanfについてですが、「%c%*c」というのはどういう意味なのでしょうか(「%c」とだけ入力するのでは駄目なのでしょうか)? お手数ですが、よろしければ上記の疑問についてご教授をお願い致します。

  • C言語の練習

    C言語を最近練習しはじめたプログラミング言語の初心者です。 参考書の練習問題がHello Worldと出力するとか、数値の簡単な平均を求めるなどで、正直やっててあまり面白いと思えません。通過儀礼と思って練習するしかないんでしょうか。

  • C言語でWin32API

    C言語を使ってWin32APIを呼び出すような、Windowsプログラミングを始めたいんですが、何かよい本やサイトはご存知ないでしょうか。 Visual C++6.0はあるんで、それを使えばいいと思うんです。 C言語はわかるんですが、Windowsプログラミングに関する知識はほとんどないので、ごく基本的なことから知りたいんです。 WinMain関数というのを書くようなんですが、その書き方すら知りません。  スケルトン(出来れば、それよりもっと基本的なこと)から書いてあるようなものです。

  • C言語について知りたい!!

    C言語を勉強しようと思ったのですが、 C言語って数学ができないとヤッパリ上達しないのでしないのでしょうか??それとも、別に数学はできなくてもC言語の知識をつける事は可能なのでしょうか?? C言語を勉強する上で必要になってくる数学って一体何でしょうか?? 関数とかでしょうか?? 必要になってくる数学の知識について教えてください! よろしくお願いしますm(_ _)m

専門家に質問してみよう