プロが教えるわが家の防犯対策術!

C言語を昔、独学で勉強しました。が、途中でつまずき、勉強を止めてしまいました。
最近になってまたプログラミングがやりたくなってきたので復習しようと思っているのですが、
私は実践的でない知識を覚えるのが苦痛ですし、覚える意義も感じられません。

例えば、練習問題で「国語、社会、理科の3科目の合計と平均」などと言った問題があります。
基本的な問題で、大切「だろう」とは思うのですが、自分でプログラミングする上で使うのかどうか疑問に思ってしまいます。

今、私はブラウザに大変興味があり、できるならば開発に携わりたいと思っています。(仕事としてではなく、趣味でです。)
初心者の私がこんなことを言うのは小学生が将来メジャーリーガーになりたいと言っているようなものですが、私はこの事を真剣に考えています。
また、linux(ubuntu 8.10 amd64)を使っているのですが、32bit版にしかないようなソフトを64bit用にリビルドしたいと思っています。

つまりやりたいことは
・ブラウザ(特にfirefox)の開発
・32bitソフトの64bitへの移植
です。

そこで質問なのですが、
1、これらを行う上で必要な知識は下のサイトの練習問題から探すと具体的にどれなのでしょうか?
全てかもしれませんが、特に大切な問題を教えてください。
http://www.geocities.jp/kenji_y0328/crenshu/inde …

2、私の場合に限らず、C言語でプログラムを組む上で一般的な練習問題にはないが、必要とされる基本的な知識(問題)などありましたらお教えてください。

*ちなみに私は仕事ではなく、完全に趣味でプログラミングをしています。

A 回答 (7件)

>・ブラウザ(特にfirefox)の開発


ブラウザを作りたいなら、ANo.1の回答の
英文を読む
に尽きます。

ブラウザを作成する上で必要な「仕様書の原本」の殆どは、英文で書かれています。HTMLとかXMLとかCSSとか画像フォーマットとかRFCとか。

一応、こういう仕様書は「日本語版」もあったりしますが、細かい部分が訳されてなかったり、端折ってあったりして、結局、最後は「英語の原本には何て書いてあるか?」を調べるハメになります。

そして、そういう仕様書で「最も知りたい部分」は、仕様がはっきり固まってなくて「判りにくい曖昧な英語」で書かれてて日本語訳がどこにも無かったりします。

少なくとも「RFCの色んな文書を原文で読んで、書いてある事がある程度判る」じゃないと、仕様書を読む段階で苦労します。

ぶっちゃけ、ブラウザの開発とは「仕様書通りに機械的に何も考えずにプログラムを組むだけ」ですから、仕様書の原書が読めなきゃ話になりません。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

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

お礼日時:2008/12/21 18:53

プロジェクト一覧・参加者募集


http://www.mozilla.gr.jp/projects/

お問い合わせ
http://www.mozilla.gr.jp/info/contact.html

Mozilla Foundation
http://www.mozilla.org/

プログラム以外でも開発に参加する方法はあります。

あくまでもプログラムにこだわり、主要な部分の開発に
参加を希望するのであれば、英語で技術論議できる程度
の語学力も必須となります。
    • good
    • 0
この回答へのお礼

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

解答どうもありがとうございます。

お礼日時:2008/12/21 18:54

>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画像など、多く
>のウェブ標準をサポートしている。

プログラミング作業は、頭の中で理解している処理をコンピュ
ータに判る様な表現に置き換える作業にすぎません。
現在対応している物、及びこれから対応しようとする物の仕様
及び実装方法等を理解できていなければプログラム作成はでき
ません。
    • good
    • 0
この回答へのお礼

>該当サイトの練習問題は、いわば小学生低学年レベルです。
>全問九九を暗唱できるくらいの感じで解答できなければ、話
>にもなりません。

なるほど。やはり全て基本なのですね。わかりました。

>プラウザを開発するというのであれば、Web標準の知識は必須
>でしょう。

わかりました。学習してみます。

>プログラミング作業は、頭の中で理解している処理をコンピュ
>ータに判る様な表現に置き換える作業にすぎません。
>現在対応している物、及びこれから対応しようとする物の仕様
>及び実装方法等を理解できていなければプログラム作成はでき
>ません。

おっしゃる通りだと思います。理解できていないものなんて作れませんよね。

これまでみなさんが解答してくださった内容をまとめると
・英語力
・プログラムの処理内容に関する知識。
・RFCを理解する
などといったところでしょうか。

これらを参考になんとかブラウザ開発に協力できるように努力します。

解答ありがとうございました。

お礼日時:2008/12/21 19:01

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


そういう目で見ると, また違うのではないかな.
    • good
    • 1
この回答へのお礼

解答ありがとうございます。

>この 2つは「本質的に同じ」です
そうですね。おっしゃる通りです。

貴重なご意見ありがとうございます。
参考にさせていただきます。

お礼日時:2008/12/20 01:09

理解不可能な悩みですね・・・。


そもそも「実践的な知識」とか「実践的じゃない知識」ってなんなんでしょう?

そういう深い悩みは私には理解できないので、聞かなかったことにしますが、たとえばブラウザであれば、初期のブラウザは JPEG の表示ができませんでした。確か GIF は表示できていたような気がします。「ブラウザを作りたい」ということは、たとえば、自分にはまったく興味がないフォーマットであっても、ひたすらプログラムを作る必要がある、ということです。こういうのは「実践的」なのか「実践的でない」のか?

ところで Ubuntu って、いまどき 32bit OS ですよね?Linux がそうなのか、Ubuntu だけがそうなのかは知りませんが、いまどき 64bit 対応でない OS で存在意義があるのは Windows ぐらいだと思ってました。正直なところ、「32bitソフトの64bitへの移植」なんて、趣味でもやりたくない、と私は思いますけど。Windows 用以外なら、最初から 64bit 対応で作ると思いますし。

私事になりますが、レジスタの多さに魅力を感じて 64bit 用のコンパイラを作ってみようと思ってちょこちょこ作り始めていたのですが、「せっかくだから C++ で作ってみよう」と考えていたら(C++ は世の中に出てきた最初のころにちゃんとプログラムを書いて勉強していたはずなのですが)、オブジェクト指向を自分が中途半端にしか理解していなかったことに気がついて、再度勉強しているうちに、STL にたどりついて、現在寄り道中です。64bit コンパイラなんて、他の人たちが作ってくれるから、全然急いでないんですけどね。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

私の考える実践的でない知識とは
「目的のプログラムを作る上で不必要な知識だが、一般的に基本知識として考えられている知識」です。

例えば、因数分解なんて中学校で教えるので数学の基本ですよね。
ですが、実際、社会に出たり、仕事をする上で使わなければ、覚える価値がないですよね。(テストをパスするのが目的の時は意味がありますが、)
私が考える実践的でない知識とはそういうことです。

>たとえば、自分にはまったく興味がないフォーマットであっても、ひたすらプログラムを作る必要がある

jpegフォーマットに興味はありませんが、ブラウザを作る上で必要なら勉強します。それは目的を達成する上で必要だからです。

お礼日時:2008/12/19 23:21

仕事でプログラミングをしています。


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文などなどは実践的すぎますので覚えてくださいね。

参考になったかわかりませんが、頑張ってください。
私も、まだまだがんばって学んでいきます。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

>本なんていりませんよ、必要ないことも満載ですから(笑)
読んでいて、そう思うことが多々あります。

>SK0さんが、とりあえず何かをまず作ろうとしてつまずいた所を学んでいけばいいだけです。

そうですね。わからない→検索の繰り返しですよね。

頑張ってみます。解答ありがとうございました。

お礼日時:2008/12/19 23:34

今ざっとそのページの質問を見てみましたが、C言語でやる問題ではないですね。

一番適さない。
きっと Cの後に OBOL が抜けてるのでしょう。
具体的に firefoxの改造をやることに決まってるのですからソースを読んだらどうでしょう。
>必要とされる基本的な知識
英文を読む

では期待しております。
    • good
    • 0
この回答へのお礼

解答どうもありがとうございます。

>今ざっとそのページの質問を見てみましたが、C言語でやる問題ではないですね。

「C言語 練習問題」でググったら一番上に来たのでそのページを参考に質問してみました。この問題を解かなくてよかったです。

>具体的に firefoxの改造をやることに決まってるのですからソースを読んだらどうでしょう。

そうですね。今の段階で読んでもわからないことだらけでしょうが、その都度調べて頑張ってみます。

>英文を読む
耳が痛いです。英語はこれからの時代読めないと話にならないし、読みたいとは思っていたのですが、全然読めません。頑張って勉強します。

お礼日時:2008/12/19 23:12

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