タグ

ブックマーク / pg-kura.hatenablog.com (6)

  • 一流のプログラマは例外なく我慢強い - 偏見プログラマの語り!

    プログラマはかくあるべき、という意見は様々ありますが、そのうちの多くは「プログラミングという作業をいかに効率的に遂行するか」という指標に沿っている気がします。例えば「知識の幅が広い」とか「設計を考えるのが速い」とか「自動化を徹底する意思が強い」とか「問題発見能力が長けている」とか「高いコミュニケーション能力でチームの意思決定を促進できる」とか、そういった類のものです。一般にプログラマの仕事はプログラムを作ることですので、それを速く安全に進めるプログラマほど優秀である、ということに異論は無いかと思います。世の中には Excel 漬けのプログラマだっているそうですが、基的にプログラマと名がついている職はプログラムを作るという作業がそこにあるからこそ発生しているとみなすのが妥当でしょう。 そうした "プログラマはかくあるべき" という外面的な観点から、"俺らプログラマはこういうことがしたい"

    一流のプログラマは例外なく我慢強い - 偏見プログラマの語り!
    terazzo
    terazzo 2012/08/10
    自分は粘着質ではあると思うけどストレス耐性は低いので、折れない人を見ると凄いと思う。
  • C 言語にポインタがある理由は省メモリ化・高速化・開発作業の省力化です - 偏見プログラマの語り!

    前回の記事『プログラム初心者にC言語のポインタを不意ながら教える羽目になったなら、こう教えると良いよ』でポインタの教え方を書きました。ソレに対して「そもそもどうしてポインタっていう仕組みがあるの?」という質問をもらったので、つらつらと書こうと思います。稿は「ポインタがある理由の教え方」ではなく「ポインタがある理由」です。分かっている人には相当に退屈な文章ですのでそういう人は読まずにお帰りください。 で、えーと、結論だけ先に言うと省メモリ化のため、次に速度アップのため、そして生産性アップのためです。 1. メモリは有限である。 マシンに搭載されているメモリには限りがあります。メモリ空間は広大ですが、無限ではないのです。 好き放題にどんどんメモリを使ってデータを格納するわけにはいかないというわけです。しかしプログラムは計算のためにメモリ空間を占有します。仮に↓こんな感じに、わずかな有限メモ

    terazzo
    terazzo 2012/06/17
  • Web プログラミングってこんな感じじゃなかろうか - 偏見プログラマの語り!

    この歳になって初めて Web プログラミングの現場を見て、刺激的な毎日を送らせていただいています。さて、仕事をしていて一番強く感じるのは前職での開発(スタンドアロンパッケージソフト開発をしていた会社の文化)との違いです。で、Web 開発とは何たるかを表現したくて悶々としていたのですが、ある程度整理ができてきたので文章にしてみようと思います。僕はアカデミックな話よりも現場の話をしたいので、いくつもレイヤをまたいだ文章になります。そのため稿では具体的な技術の詳説とかアジャイル的な用語が飛び交う説明とかはありません。そういうのを期待している人は読まないでください。 ・Web に限らず、お仕事プログラミング全般で共通のこと プログラムを知らない人がイメージする開発というものは、粘度をこねたりくっつけたりするような作業じゃないでしょうか。つまりそれは、知識さえあれば難しいものではなく、モチベーショ

    Web プログラミングってこんな感じじゃなかろうか - 偏見プログラマの語り!
    terazzo
    terazzo 2012/05/01
    どんな状況でも「型が無い」ってことはないと思うんだよね。「型は変わる」という事実に対するフォローがどこまでできるかであって。/文字列というのは単なるエンコーディングであって型ではないよ。
  • Scala の Parser を試したらハマったのでまとめておく。 - 偏見プログラマの語り!

    以前、Scala の Parser を試したんですがハマってしまったので、ハマり記念ということで記事にしておこうと思います。 ちなみに、Scala のパーサコンビネータについて知りたい人は僕のこの記事よりも @kmizu さんのスライドを読んだ方が良いように思います。 ■ Scala のパーサ概要 まず import しておきたいのは scala.util.parsing.combinator.Parsers です。 主な手順は次の通り。 1.Parsers オブジェクトを作る。 2.Parsers.Parser[ Result ] のオブジェクトを作る。ここで Result はパース結果の型。 3.2.で作ったオブジェクトにパース対象のシーケンスオブジェクトを渡す。 4.3.の結果得られるものがパース結果。 ■ 簡単なトコからいきましょ まず Char のシーケンスを読んで MyData

    Scala の Parser を試したらハマったのでまとめておく。 - 偏見プログラマの語り!
    terazzo
    terazzo 2011/10/21
    Char 以外良いかも
  • if 構文を葬りたいでござる。 - 偏見プログラマの語り!

    仕事でコード書いていて思うんですけども、「if 構文はもう新しいプログラミング言語には要らん」と思うんですよ。 (この記事では「if って言ったって言語によって文法が云々...」っていうツッコミをスルーするために Scala を例にして説明しますが、Scala の深い知識は不要です。) if というのは非常にシンプルな構文です。 def func( v: Int ) { if( v > 0 ) { println( v ); } } ■ if はプログラムを 2 つに分ける。 if 構文は、条件式の真偽に応じてフローを分けます。 def func( v: Int ) = { if( v == 0 ) { println( "zero" ); } else if( v > 0 ) { println( "plus" ); } else { println( "minus" ); } } フロ

    if 構文を葬りたいでござる。 - 偏見プログラマの語り!
    terazzo
    terazzo 2011/10/11
  • クラスとは何か。 - 偏見プログラマの語り!

    プログラムを書く人にとって、クラスとは何なのでしょうか。 シンプルな例を出して考えると理解が速いですよね。 class A { public: string name_; int price_; }; 名前と値段のフィールドがありますね。 はい。クラスとはデータ集合の定義のことです。 ですがこれだけでは使いようがありませんね。 では次の例を見てください。 int main() { int i; double d; A a; } int, double, … と同じように A を使っていますね。 クラスとは型なのです。*1 おっと、忘れていました。 実はクラスには関数を定義する機能があるのです。 class A { public: string name_; int price_; string to_string(); // 名前と値段を用いて文字列を生成する。 }; はい。クラスとはデー

    クラスとは何か。 - 偏見プログラマの語り!
    terazzo
    terazzo 2011/02/27
  • 1