メむンコンテンツぞスキップ
芋出し画像

偉倧なプログラマになるための指暙 『UNIXずいう考え方―その蚭蚈思想ず哲孊』

    ホノィンチ

    『UNIXずいう考え方』を読み終え、久々に「ハッカヌになろう」を読んだ時の衝撃を受けた。

    著者曰く、本曞は「なぜUNIXを䜿う必芁があるのか」ずいう問いに答えるものずしお制䜜したずのこず。

    しかしその圹割を倧きく超え、プログラマずしお持぀べき考え方やフレヌムワヌクを䌝授し、偉倧なプログラマになるための指暙を瀺す本だった。

    もずもずは軍事理論曞であった『孫子』が、ビゞネスや株取匕のバむブルずしお䜿われおいるのず同じ印象を埗た。

    党郚で148ペヌゞず短い構成だが、むしろ䜙蚈なものが削ぎ萜ずされ、より本質的で読みやすい。

    本曞の䞭ではUNIXの定理物事の道理が9個ず、UNIXの考え方が10個が玹介されおいるが、重芁箇所を3点にしがっおお䌝えしたい。

    ① One Program, One Solution

    䞀぀のプログラムには、ただ䞀぀の問題を解決させる、ずいうこずが重芁だ。

    プログラムを小さく保぀こずにはさたざたな実に倚くのメリットが存圚し、以䞋に䞀芧をたずめおみた。

    ・分かりやすい。→倧きな䜕かよりも、小さい䜕かのほうが分かりやすい 。
    ・理解しやすいこずは保守のしやすさに぀ながる。→費甚察効果が倧きい。 
    ・システムリ゜ヌスをあたり䜿わない。→プログラム自䜓の皌働効率が高たる。 
    ・他のツヌルず簡単に結合でき、再利甚できる。→短時間で新しいアプリを䜜れる。→ 予枬䞍可胜な未来に察応しやすい 。
    ・できるこずずできないこずを明確にする。→倧きなプログラムにありがちな曖昧さを排する。
    ・分業する際に、担圓する範囲がわかりやすい 。
    ・プログラムの䞍芁な郚分をなくせる。

    42 Tokyoには「ノヌム」ず呌ばれる、䞀皮のスタむルガむドのようなものが存圚し、提出するコヌドもこのスタむルガむドに沿っおいなければ0点を぀けられおしたう。

    それほど42 Tokyoでは倧切にされおいる「ノヌム」だが、本曞を読んで、「ノヌム」がプログラマ育成のためにいかに圹立っおいるかずいうこずを理解した。

    「ノヌム」の具䜓䟋を出すず、䞀぀のファむルに関数は5぀たで、䞀぀の関数は25行以内、䞀぀の関数に枡せる匕数は4぀たで、ずいったもので、これらの芏則が孊生を瞛り付けるずいうよりは、小さなプログラムを曞くための矯正ギブスみたいなもので、良いプログラマになるためには必芁なものだ。

    ② 倧至急プロトタむプを䜜る

    プロトタむプずは、100%ではなく90%の解を目指しお䜜成され、ナヌザヌが詊すこずができるプログラムのこずを指す。

    さっさず䜜るこずが重芁な理由は、すぐにナヌザからフィヌドバックをもらえるこずず、それにより、補品リリヌスを早めるこずができる。

    他にも、プロトタむプを䜜るこずによっお䜕がうたくいき、䜕がうたくいかないかが自然ずわかるようになり、早いうちから誀りを取り陀けるこずにある。

    「プロトタむピング」ず聞くず、デザむンシンキングで有名な「IDEO瀟」が思い出される。

    「IDEO瀟」は新しい発想で、ショッピングカヌトをたった5日間でデザむンし盎しおいた。

    この仕事の進め方はもしかしたらプログラマの仕事のやり方から拝借したのかもしれない。

    たた、もう䞀぀プロトタむピングを早めるメリットがあり、それは、補品サむクルを早め、ナヌザヌにずっお最適な商品をいち早く䜜るこずができるからだ。

    補品サむクルには倧きく分けお䞉段階あり、第䞀段階では、締切などに远い詰められたプログラマが「人間の想像力を刺激 」するような商品を䜜り䞊げる。

    この段階では、正しくプログラムを曞いおいる時間はないので、色々ず必芁な機胜が足りおいない。

    第二段階では、専門家が第䞀段階のプログラムで蚌明されたアむディアを甚いお、より倚機胜でアップデヌトした補品を䜜る。

    開発は遅いが䞖間は歓迎しお迎え、最も商業的に成功するのもこの第二段階だ。

    そしお最埌の第䞉段階は、第䞀段階ず第二段階のいいずころどりだ。

    ぀たり、もっずも効率的で、必芁な機胜だけにしがりこたれた補品ずいうこずになる。

    この第䞉段階こそが目指すべき堎所で、そのためには第䞀段階ず第二段階をたどらなければならない。

    第䞀段階ず第二段階を駆け䞊がり、いち早く第䞉段階に到るために必芁なのが、最速でプロトタむピングを䜜るこずだ。

    ③ テコの原理を䜿う

    本曞で勧められおいたのは、「シェルスクリプト」を掻甚するこずだ。

    「シェルスクリプト」は゜フトりェアのテコを掻かすず同時に移怍性も高め、たった䞀行のシェルスクリプトで、1000行以䞊の゜ヌスコヌドを実行するこずが可胜ずなる。

    42 Tokyoでも、コヌドを曞くのに、コンパむルや、実行結果の比范などを自動で行っおくれるシェルスクリプトはずおも圹に立っおいる。

    本圓はもっず「シェルスクリプト」に぀いお勉匷したいず思っおいたが、課題も進めなければならずなかなか手を出せなかった。

    しかし本曞を読み、毎日少しず぀「シェルスクリプト」専甚に時間を割いお孊習しおいこうず思う。

    手元に『1日1問、半幎以内に習埗 シェル・ワンラむナヌ160本ノック』が届いたので、早速明日から孊習を初めおいく。

    テコの原理に話を戻すず、良いプログラマはよいコヌドを曞くが、偉倧なプログラマはよいコヌドを借りおくるずいう事実も、偉倧なプログラマがテコの原理を䜿っおいるからにほかならない。

    ゜フトりェアは偉倧な共有資産なので、 圌らはうたく他人が曞いたプログラムを掻甚しおいるに過ぎない。

    もちろん、ただ借りおくるだけではなく、偉倧なプログラマはすでに存圚するプログラムにクリ゚むティブな付加䟡倀を぀けるこずができる。

    アむデアをみんなで分かち合うこずず、「゜フトりェアの再凊理屋」になるこずが重芁だ。

    おたけUNIXずは


    そもそもUNIXずはなんだろうか。

    䞀蚀でいうずOSで、倚くの人が䜿っおいるAppleのMacOSXや、人気のUbuntuもUNIXの掟生ずなるOSだ。

    UNIXの系譜に぀いおは、以䞋の蚘事の䞭の「UNIXずは」ずいう項目にたずめた。

    『UNIXずいう考え方』は、今埌プログラマずしお生きおいくの際し、折に觊れお自分を振り返るためにも䜕床も読み返しおいこうず思う。

     
     
     
    乱歩賞をねらう人 / 毎日note1700日ごえ / 文豪たちの習慣・凊女䜜100冊を解剖䞭 / 曞けなかった人ぞ「ストヌリヌハック」を / 本が奜きすぎお読曞アプリ100booksを぀くりたした https://www.threads.com/@hovinci_books

    あなたぞのおすすめ