大学3年生です。学科は情報系とはあまり関係がありません。
機械系/制御系の学科に近いので、今のところ趣味でプログラミングをしています。
ただ大学の授業でC言語を学びはましたが、実用的なプログラムを書くことができません。
「苦しんで覚えるC言語」http://homepage3.nifty.com/mmgames/c_guide/
や、書籍でいうと
「明解C言語 入門編」や「新C言語入門」あたりに書いてあることは理解しています。
C以外の言語は知りません。(一応4月から、学校でjavaをやることになってます)
今のところ目標として、
・linux等のオープンソースをいじりたい(理解したい/開発したい)
・ソフトを開発できるようになりたい(例えば、エディタなど)
というのがあります。
よくわからないので、目標が漠然としていますが…
linuxに関しても、ターミナル上での簡単なコマンドしか知りません(cdやls,mkdir等)
Cプログラムの文法を理解した後に、やるべきことは何でしょうか?
必要であれば、書籍等を購入することも考えています。
何かご指南頂けるとうれしいです。
オープンソースなどを理解するには
Re:オープンソースなどを理解するには
> Cプログラムの文法を理解した後に、やるべきことは何でしょうか?
当たり前のことですが、書くことと読むことです。
オープンソースを理解するには、それらのコミュニティに参加するのが一番です。
ただし、そこで何を得られるかではなく、何を与えられるかを考えるようにしてください。
知識も技術も呼吸と同じで、自分から吐いた分だけ吸い込めるようになっています。
当たり前のことですが、書くことと読むことです。
オープンソースを理解するには、それらのコミュニティに参加するのが一番です。
ただし、そこで何を得られるかではなく、何を与えられるかを考えるようにしてください。
知識も技術も呼吸と同じで、自分から吐いた分だけ吸い込めるようになっています。
Re:オープンソースなどを理解するには
>・ソフトを開発できるようになりたい(例えば、エディタなど)
簡単なエディタから始められたらどうでしょうか?
いきなりemacs並といったら挫折しますので、ラインエディタ辺りから始められると良いと思います。
http://ja.wikipedia.org/wiki/%E3%83%A9% ... 3%E3%82%BF
最初は、わけわからないと思いますが闇雲に始めて見ましょう。
>Cプログラムの文法を理解した後に、やるべきことは何でしょうか?
まず、プログラムをひたすら作ることだと思います。
それとオープンソースのコードを眺めるところでしょうか。
lsのコードとか見てみましたか?
FREE BSD版のls
http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/
これでも十分複雑ですよね。
1.まず、自分でコンパイルしてみる
2.gdbでトレースしてみる
3.ソースコードを改造してみる。
4.色んな所をコメントアウトしてみる。→どんな働きをしているか知る。
簡単なエディタから始められたらどうでしょうか?
いきなりemacs並といったら挫折しますので、ラインエディタ辺りから始められると良いと思います。
http://ja.wikipedia.org/wiki/%E3%83%A9% ... 3%E3%82%BF
最初は、わけわからないと思いますが闇雲に始めて見ましょう。
>Cプログラムの文法を理解した後に、やるべきことは何でしょうか?
まず、プログラムをひたすら作ることだと思います。
それとオープンソースのコードを眺めるところでしょうか。
lsのコードとか見てみましたか?
FREE BSD版のls
http://www.freebsd.org/cgi/cvsweb.cgi/src/bin/ls/
これでも十分複雑ですよね。
1.まず、自分でコンパイルしてみる
2.gdbでトレースしてみる
3.ソースコードを改造してみる。
4.色んな所をコメントアウトしてみる。→どんな働きをしているか知る。
Re:オープンソースなどを理解するには
回答ありがとうございます。
lsがC言語で書かれてるとは思っていませんでした。
見てみましたが、まだ私には結構複雑です!
とりあえずこれが読めるように勉強してみます。
lsがC言語で書かれてるとは思っていませんでした。
見てみましたが、まだ私には結構複雑です!
とりあえずこれが読めるように勉強してみます。
Re:オープンソースなどを理解するには
>lsがC言語で書かれてるとは思っていませんでした。
lsどころか、UnixやLinuxのコードの大半がC言語で書かれています。
もちろんcdやmkdirもですが、OSの根幹部分も大半はC言語(一部アセンブラ)です。
C言語のコンパイラ(gcc)もC言語で書かれていてソースコードが公開されているので理解出来るかどうかは別として読むこともできます。FreeBSDのソースコードは全て公開されてますし、Linuxも大半がオープンソースです。
オープンソースに参加するってことは、そういうコードを読んで提案出来る人になるって事ですね。がんばってください。
>とりあえずこれが読めるように勉強してみます。
読むだけじゃなくて、並行で簡易なエディタ作りも始められると良いと思います。
lsどころか、UnixやLinuxのコードの大半がC言語で書かれています。
もちろんcdやmkdirもですが、OSの根幹部分も大半はC言語(一部アセンブラ)です。
C言語のコンパイラ(gcc)もC言語で書かれていてソースコードが公開されているので理解出来るかどうかは別として読むこともできます。FreeBSDのソースコードは全て公開されてますし、Linuxも大半がオープンソースです。
オープンソースに参加するってことは、そういうコードを読んで提案出来る人になるって事ですね。がんばってください。
>とりあえずこれが読めるように勉強してみます。
読むだけじゃなくて、並行で簡易なエディタ作りも始められると良いと思います。