Subscribed unsubscribe Subscribe Subscribe

@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

= 言語を学ぶために(how to Learn a programming Language.)

[2012-11-30 14:04:17]

これはLL/ML Advent Calendarの第二レーン三日目の記事です.
昨日は@athos0220さんの セルオートマトンプログラミングことはじめ(An Introduction to CeLLular Automaton Programming) と, @dico_lecue さんのfunctional programming in Lisp - 月の塵 でした.
@athos0220 さんはkyoto.lispでお会いした(はず)のに早くも顔を忘れそうなのでまたお会いしたいです.
今日の第一レーンは@keita44_f4 さんの 2012-12-03 - ししちにじゅうはち 4x7=28 です.

何の話をするかというと,私の癖でいろんな言語に手を出してしまうのですが,毎回はまったり調べるのがめんどくさいなと思うのでだれかいい感じにまとめたサイトを作ってください.という要望です.
Mahcine Learningとか,Learning Lispとか考えましたが,間に合わなさそうなのでこうなりました.

最近ようやく自分の中で,言語をある程度使えるようになるまでに必要なこと,毎回調べたりはまったりすることがパターン化されてきましたので下に大雑把にまとめてみました.
自分の中ではこの辺を学べたら(まとまってたら)あとはだいたいスムースに使えてる気がしてます.
言語固有のことを学ぶ意思ゼロに見えますね.

言語を学ぶ時に知りたいこと

コメントと自分のやってる対処法を一部書いています.
解決できてないことの方が多いので,みなさんのこうやってる.みたいなアドバイスとか各言語でここがおすすめのウェブページとか教えろください.

言語処理系とかのインストール方法

大体最新の物を入れようとするけど,rvmとかめんどかった気がする.

データ構造とそれの操作関数,基本的な関数とか

だいたい プログラミング言語の比較 > 基本的な処理 とか,その親の プログラミング言語の比較 あたりからたどればよさそう.

  • 基本の型(数値,文字列,ファイル,...)
  • 複合型(リスト,配列,ハッシュ,...)
  • 制御構文(条件分岐,ループ,...)
  • 数学ライブラリ
外部ライブラリ

こいつがいつもはまる.めんどい.

  • インストール方法

gemとかpipとかquicklisp,cpanm,...どれがいいんだよっていうのがね.できるだけググる時に最近の記事に限定して参照するようにはしてるけど,新しいのが出ても追えてない.

  • 読み込み方

requireとか

  • 探し方

Gentoo Portageでeixが便利で覚えやすかったので,~/.aliasにエイリアス書いてる.

alias pix='port search'
alias cix='shly ql:system-apropos'
alias aix='apt-cache search'
alias qix='shly ql:system-apropos'

全然言語関係じゃなかった...pixとかpipの検索にすりゃいいんだろうけど,pythonよりportの方が使う頻度多いですね.
基本ググるけど,いつもドキュメントとかサンプルコード探すのに苦労してる.言語ごとにメインのサイトとかはあるんだろうけど,初学者にはその流儀がわからない.

  • アップデート方法

これも毎回ググる.そんで重い腰を上げてこんなスクリプト書いた.

そのうちもうちょっとましに書き直したい.

自作ライブラリ,クラスの作り方とか

オブジェクト指向できるならやりたい.得意ちゃうしそこまで大きくないプログラムのことが多いけど.

  • パス関係

クラスを作ったはいいが,いつも読み込み方,どこに置けば読み込めるのか,パスの指定方法はどうするのかではまる.
実行時のカレントディレクトリが変わったら読み込めなくなるとかまじめんどくさい.

    • どこに置けばいいか
    • 起動時のカレントディレクトリからの相対パス
    • 読み込み元のファイルからの相対パス
テストコードの書き方

書き捨てのコードでもテスト書いて安心したいが,そもそもテストとかまだ書けない.勉強不足.

おわりに

なんかとりとめも無い列挙ですがこんな感じです.

こういうのを調べやすいウェブサイトとか作りたいなと思ってる時期もあったのですが,いつもの悪い癖で考えたら満足して手を動かせてないです.

P.S.
こんなのでよかったんでしょうか...