トップページ⇒tech
31コメント11KB

最初に読むソース

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
Cの学習を行っている者です。
入門書を一通り読んで言語仕様はだいたい理解したつもりです。
いよいよ実践段階に入ろうかと思い、/usr/srcディレクトリに分け入ってみました。
手始めにcp、ls、catあたりから行くかなと見てみましたが...
ぜんぜん分かりません。難しすぎです。

皆様は初めにどのツールのソースを読んでみたのですか?
0002デフォルトの名無しさんNGNG
>>1
「UNIX プログラミング環境」と「ソフトウェア作法」読みました。
0003デフォルトの名無しさんNGNG
Hello, world
0004デフォルトの名無しさんNGNG
質問とは外れるけど
K&Rの課題やるとかね。かなり実践的だよ。
答えは別売になってるのがけち臭いけど。
0005デフォルトの名無しさんNGNG
>>1
標準ライブラリってどうよ。
string.hにある関数とかどうよ。
0006デフォルトの名無しさんNGNG
>>5
標準ライブラリのソースってやたら汚くなかったっけ?
どの処理系だったか忘れたけど。
0007デフォルトの名無しさんNGNG
10年以上プログラムしてるけど、そういう勉強の仕方はしなかったな。

というか、とりあえず、簡単な何かを作っていってそれを拡張する方向で勉強していった方がよいと思う。

人のソースを読むのはある程度、中級未満、初級以上ぐらいの自信がついてからにした方が良いよ。
ある程度理解してからの方が時間は節約できる。
0008デフォルトの名無しさんNGNG
はじめて打ち込んだプログラムは数当てゲームだったっけ。
0009デフォルトの名無しさんNGNG
はじめて打ち込んだのは時計だったような...
ハンドアセンブルしてマシン語で入力したっけ...:->
0010んー、、、NGNG
はじめてのプログラム・・・
電卓でした。1桁同士の足し算・引き算ができて、
10以上や0以下の答えは出せない奴。

char型しか知らないで、とりあえず、作ってみました。(^^;
とりあえず、興味に任せて組むのはいかがかと。
0011デフォルトの名無しさんNGNG
>10
「char型」をなんて発音してるのか知りたいなあ
0012!10NGNG
チャラ
0013!10,!12NGNG
チャー
0014デフォルトの名無しさんNGNG
カハラー
0015デフォルトの名無しさんNGNG
シーハー
0016デフォルトの名無しさんNGNG
>>13
ウチのコンパイラだと !10 == !12 なんだが、気のせい?
0017デフォルトの名無しさんNGNG
最初に飲むソース。

オリバーじゃないかな?
0018デフォルトの名無しさんNGNG
>>16
0 == 0
0019名無しさん@XEmacsNGNG
下がり切ってますね。
時計とか電卓から入れ、というのが常道だというのは存じています。
しかし、使いもしないソフト書くのは退屈で苦痛じゃありませんか?
どうせなら毎日使うツールを改良するのが面白いと思うんですが。
甘いですかね。
今短めのヘッダファイルから読んでます。けど本当に難しい。
0020デフォルトの名無しさんNGNG
初心者がいきなり大目標をぶちあげるとほぼ確実に挫折するんで、
時計とかカレンダーとかそういう使い道ありそうなものを作ると良いかも。

あと時計や電卓ごときを作るのを苦痛に感じていたら、
職業プログラマなんかになれませんよ;_;
0021名無しおやぢNGNG
>>19

マジレスです。

> どうせなら毎日使うツールを改良するのが面白いと思うんですが。

それなら、文字列操作とか、ファイル操作なんか、どうでしょう?
(「車輪の再発明」にならないよう注意!)
まぁ、私自身がC言語初心者なんで、説得力ないけど・・・。
0022デフォルトの名無しさんNGNG
同じく初心者ですが
>しかし、使いもしないソフト書くのは退屈で苦痛じゃありませんか?
こう思ってるなら、自分でやりたいこと(楽しいこと)をみつけて
やらなと上達はしないと思います。

自分の場合は、オリジナルの画像フォーマットをデコード、
エンコードするものを作ってCに慣れようとしてます。
まあ、圧縮率は既存のよくできたアルゴリズムにはかなわないんですが、
自分で圧縮方法を考えて、0から作るというところに意味があると思ってます。
0023デフォルトの名無しさんNGNG
ttp://www.ioccc.org/years.html#2000
冗談は置いといて、自分はUnixでXとかSocket何でも良いけど、動きがはっきりしてるのがいいと思う。
ソートや2分木はデバッグがうまくなってからが吉。
0024:デフォルトの名無しさんNGNG
>>21
プログラムの勉強なら車輪の再発明になってもかまわん気がするが・・・
0025デフォルトの名無しさんNGNG
>>24

同意。
よく、文字列操作関数とか拡張ライブラリの関数で、
その関数の代替関数を作ろうみたいなのが本に乗ってたりするよね。

まあ究極の所だと、そのコンパイラのソースを見よ。
なんだろうけどね。でもそんなんわけわからんし。

まずは自分で組んでみて、それから何処が違うのか比較してみる
方がいい気がするなあ。

>>1さんなら、最初から cat なんて思わないで、dosのtypeみたいな
単純な子猫を作ってみるとかね。
これだったら下手にソースみるより、自分で考えた方が組めると思う。
00261NGNG
>>21
それなら、文字列操作とか、ファイル操作なんか、どうでしょう?

そういうことならもうやっていますよ。もともとプログラミングを始めたのは
文書処理がきっかけでしてね。
ただ、フィルタばっかり作って、そこからさっぱり先へ進めないんですよ。
なにせ今はフリーソフトが山のようにありますから、ソフトを書く動機自体が薄れて
きています。
だから本当はそれ以上進むつもりはなかったんですが、フリーソフトでないものを
見つけましてね。家計簿です。UNIXで使えるフリーのまともな日本語の通る家計簿
はどうやらないようですね。
MS-Moneyの呪縛から逃れる事ができさえすれば、完全にWindozeとおさらばでき
るんですよ。
そこで開発を試みているのですが、どうにも手がでない。まずは修行だということで
とりあえず基本ツールのソースから読んでるわけです。
0027デフォルトの名無しさんNGNG
>>26
 問題の切り分けが甘いんじゃない?
じぶんがどうして手を出せないのかもうちょっと分析してみたら?
たとえばGUI関係がさっぱりというのなら、
まず単純な窓とボタンのみ表示するのを書いてみる。
そうやって肉付けしていけば自ずと出来るようになるよ。
練習なんだから設計がサブくてもソースがスパゲッティでもかまわないよ。
最初から綺麗に書ける人など天才以外居ない。
0028デフォルトの名無しさんNGNG
シェアウェアとかはないの?
わざわざ時間かけてプログラム書くなんて狂人としかおもえん。
仕事以外でプログラムをしては行けません。
太陽の光を浴びに行きなさい
00291NGNG
>>28

ないですね。そもそもUNIX関連でシェアウェアなんぞ見たことないですよ。
GNUcashというのはあるんですが、日本語が通らないようです。
UNIXハッカーは家計簿をつけるなどという所帯じみた真似はしないんでしょうね。

プログラムの学習という動機の方が強いです。世間のフリーソフトなんてほとんど
そうじゃないですか?
ただ、それにともなってどんなコードを書いたらいいのか、何を読んだらいいのか
迷っていただけですよ。
0030デフォルトの名無しさんNGNG
取り敢えずスプレッドシートならgnumericってのがあるみたいだな。

まあ家計簿位だったら、基本的にカーソル持ってってなんか入力すればイベントが起きて、
色々計算して内容が変わって再表示すればいいだけじゃないの?

あとはその表のロード・セーブとか

要はゲームなんかと一緒じゃないの?

とりあえず自分が使ってみてこれは使えると思った処理の該当部分を
そのソースから見極めることからやってみたら?
0031Щ師さんNGNG
sage
■ このスレッドは過去ログ倉庫に格納されています