昨日のOSC福岡2013の「勉強会x勉強会」セッションで飛び込みLTしたときのプレゼンに加筆して公開しました。 追記:福岡の人はFacebookの福岡IT関連勉強会に参加しておくと、勉強会情報が得やすいと思います。
昨日のOSC福岡2013の「勉強会x勉強会」セッションで飛び込みLTしたときのプレゼンに加筆して公開しました。 追記:福岡の人はFacebookの福岡IT関連勉強会に参加しておくと、勉強会情報が得やすいと思います。
先日のエントリで手続きを記述するという側面と、式を記述するという2つの側面があるということを書きました。 プログラムの理論とはなにか そして、手続きの性質として代表的な、アルゴリズムについての勉強のしかたについてまとめてみました。 アルゴリズムの勉強のしかた そこで、今回は、式を記述するという側面の勉強のしかたと、あとこの分野は自分でもまだ全然勉強してなかったので、これからどういう本を読もうと思っているかをまとめてみます。 プログラム意味論 プログラムは必ずプログラム言語、少なくとも記号で記述します。*1 そこで、プログラムの勉強という点では、どのように動くかというアルゴリズムの勉強だけではなく、どのように書けるか、書いたものにどのような性質があるのかということも知る必要があります。 例えば、2005年あたりからRubyのような動的型付け言語が流行りだし、Javaなどの静的型付けの言語との
やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置
月刊マガジンを読んでたら、「Capeta」が次回で最終回だと書いてありました。 「Capeta」は、フォーミュラカーレースでF1を目指すマンガで、これ実際にレース走らないとわからないよなーという細かい表現がたくさんあってすごい。(と思わせる描写になっている) おそらく、もう、こういうレースマンガはもう出てこないんじゃないかと思わせられます。それが終わってしまうので、結構さびしい。 レースマンガというのは、スポーツマンガの中でも主人公ブーストが効きにくいカテゴリで、いくら主人公が叫ぼうがわめこうが、車は速くなりません。 そうすると、安易にやろうとすると「頼む、タイヤよもってくれー」みたいに、タイヤがすべらないことをお願いしてみたらタイヤががんばって勝てちゃったみたいな話になります。ただ、レース全体でタイヤを100%使い切るドライバーが速いわけで、レース途中でそうやって無理をしたのであればその
SICPは、よい内容について書かれた本であり、最良の本だった時期もあった。 けれども、今となっては、理解が難しく内容の割には時間がかかる、時間の無駄ともいえる本といってもいいかもしれない。 もちろん、Schemeの可能性、数値計算、プログラミング、コンピュータ教育の歴史、そしてSICP自体のすべてに興味があれば、効率がいい本かもしれない。 けれども、コンピュータ教育の歴史、SICP自体に興味がないのなら、あまり効率のいい本とはいえない。特に、Scheme、数値計算に当面の興味はなく、プログラミングについてだけを学びたいのであれば、時間の無駄でしかないと思えるし、今となっては足りない部分もある。 SICPの欠点として、まず、次の点が挙げられる。 日本語がよみにくい サンプルに数学の知識が必要 プログラムがよみにくい 日本語がよみにくいというのはよく指摘される。ただこれは翻訳だけが悪いのではな
結城さんのJava入門書、「Java言語プログラミングレッスン」がJava7に対応した第3版が出るということで、思い出した話。 まずは出版おめでとうございます、おつかれさまでした。ただ、評価はちょっと厳しめです。 Java言語プログラミングレッスン 第3版(上) Java言語を始めよう 作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2012/11/14メディア: 単行本購入: 1人 クリック: 7回この商品を含むブログ (8件) を見るJava言語プログラミングレッスン 第3版(下) オブジェクト指向を始めよう 今回の「Java言語プログラミングレッスン」もやはり上巻でif、for、配列、下巻でクラス、インタフェースという構成になっていて、1冊にまとめれなかったものかという感がぬぐえない。 あわせて5040円というのは入門書として高価だし、上巻だけでは役にたたない。 まだ発
一緒に働いてる新入の人が、「動きません」とよく言ってきてたんだけど、最近のパソコンは、自分のプログラムの不備で動かなくなるということはまずありえない。 プログラムも立ち上がらないことはあっても、立ち上げたプログラムが動かないことはまずない。 立派にエラーメッセージまで出てるのに、動いてないはずがない。 動いた末に、正常にエラーメッセージを出して止まっただけだ。 ほとんどの場合は、書いたとおりに正常に動いて、正常に例外が発生して、正常にエラーメッセージが表示されて、正常に止まってる。 単に、何も表示せずに黙々と動いていることもある。 CPU負荷が100%になってるのに、プログラムが動いていないということがあろうか、いや、ない。 もちろん、期待したとおりには動いてないんだけど。 ということで、どう動いてるかをちゃんと報告してもらうようにした。 「動きません」禁止。 Javaの場合、「エラー」が
プログラマというのは、道具に慣れることが、実力があがることにならないのですよね。だから、勉強せず業務経験だけだとレベルが低いままということになってしまう。 Javaを10年さわり続けて、Strutsを5年さわり続けても、それだけでは、与えられた画面を手際よく作成できるようになるだけで、たとえばStrutsすらよりよく使えるようになるわけではなかったりする。 Javaにしても、「volatileってなんですか?」という問いに、まあ知らないのはしかたないとしても、解説を見ながらですら答えられない可能性がある。 プログラムの反復生産は、プログラミング能力の向上にあまりつながらない。設定や記述に慣れるだけだ。そして、この「慣れ」というのには「難しいからそもそも実装を回避する」というようなものも含まれる。実力の向上は、作業ができるレベルで止まってしまう。 プログラマとしての実力をあげるための勉強が自
この記事で、アルゴリズムの勉強はアルゴリズムカタログを覚えることじゃないよということを書きました。 プログラムの理論とはなにか アルゴリズムの勉強というのは、スポーツで言えば腕立て伏せや走り込みみたいな基礎体力を養うようなもので、「ソートなんか実際に自分で書くことないだろう」とかいうのは「サッカーは腕つかわないのに腕立ていらないだろう」とか「野球で1kmも走ることなんかないのに長距離の走り込みいらないだろう」とか言うようなものです。 Twitterでアルゴリズムの勉強とはなにかと尋ねられて、「アルゴリズムの基本的なパターンを知って、それらの性質の分析のしかたをしって、いろいろなアルゴリズムでどのように応用されているか知って、自分が組むアルゴリズムの性質を判断できるようになることだと思います。 」と答えたのですが、じゃあ実際どういう本で勉強すればいいか、ぼくの知ってる本からまとめてみました。
こういう問題が流れてきた。 まつひろのガレージライフ: 幼児が数分で解けるのに大人が解けない算数(?)の問題 「幼稚園児が5〜10分で解けるのに、プログラマなどの頭脳労働職の高学歴の方が解くのに1時間もかかる」とあるけど、これ1時間かかるの、プログラマとしてあまりよくないんじゃないのかなーと思った。 ので、プログラマ的に解いてみる。 改めて書き出すとこう。 8809=6 3333=0 7111=0 5555=0 2172=0 8193=3 6666=4 8096=5 1111=0 1012=1 3213=0 7777=0 7662=2 9999=4 9313=1 7756=1 0000=4 6855=3 2222=0 9881=5 3333=0 5531=0 5555=0 2581=??? 問題は英語だし語呂合わせじゃない。幼稚園児にわかるということでそこまで複雑なルールでもない。なんらか
Windows8のコマーシャルプレビューでましたね。さっそく使ってみました。 で、まあ動きはすごくかわいいんだけど、使いにくいというか、使い方わからないと使えないなーという感想です。 Windows7みたいに、とりあえず右クリックしておけばどうにかなる感じではないです。というか、右クリックは基本的に使えない感じ。 パソコンでマウスで使うと結構いやな感じ。サインアウトした画面、上にスワイプしないとパスワード入力がでなかったり。 右下スミの微小エリアにカーソルもっていかないとメニュー出なかったりするので、仮想マシンでウィンドウ表示して使うと最悪です。 ところで、パスワード入力画面、左下に「コンピュータの簡単操作」ってボタンあるんですけど、これをクリックすると、使い方の説明を読み上げるんですね。 この読み上げの説明が、最初は抑揚のない合成音声だなーと思ってたんですけど、なんか妙なイントネーション
東大にUTオープンコースウェアというのがあって、いろいろな講義資料が公開されています。 http://ocw.u-tokyo.ac.jp/ その中には動画授業があるものもあって、そのほぼすべてがおもしろいです。ただ興味がもてるかどうかという違いだけ。 その中で、情報工学概論Aというのがあって、授業内容としてはネットワークの概論になってます。まだ全部見てないけど、ネットワーク全般の話からTCP/IPの話、セキュリティまでの講義が公開されてるみたい。 こういう一貫した話がちゃんと語られてる講義というのはなかなか公開されてない、公開されてたとしてもネットワーク設定程度だったりするので、これは貴重だと思います。 http://ocw.u-tokyo.ac.jp/lecture?id=11314&r=609526321 ネットワークの勉強をしたことがない人は、テレビのかわりにこの講義を流しておくとい
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く