nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

タッチタイピングのできないプログラマ

わたしはいわゆるSIerに勤務するシステムエンジニアであり、企業向けのシステムを構築するプロジェクトで日々働いている。この業界の常としてプロジェクトが始まると、どこからともなく技術者が集められてくる。わたしの所属するプロジェクトは中規模とされているが、それでも孫請けひ孫請けが同じプロジェクトルームにごろごろしており、同じシステムを作るため日々格闘しているのだから、不思議なものである。

そういう環境で働いている中で驚いたことがある。タッチタイピングができないプログラマシステムエンジニアがそこそこいることだ。それもひとりやふたりではない。「両手の5本指を使うが、下をみないとキーボードを打てない」程度はかわいいほうで、ひどいものになると使うのは親指と人差し指と中指だけ。それも右手が中心で左手はそえるだけなのだ。これで新人ではなく、この道何十年というベテランなのだから、この業界の闇は深い。

実をいうとわたしもタッチタイピングが完璧にできるわけではない。ほとんどのキーは大丈夫だが、あまり使わない記号になると少し怪しく、そういうときはついつい下を向いて確認してしまう。しかしわたしの場合、その割合は全体の5%かそれ未満。文字を打ち込んでいる間の半分以上を下を見ることに費やしているということはあり得ない。

タッチタイピングが全くできなくても、与えられたタスクをきちんとこなしていれば、全く問題はない。しかしプロジェクトにいるタッチタイピングできない勢はそろいもそろって生産性が低いのだ。終わらせるべきタスクを終わらせるべき時間内に終わらせることができないから、当然残業ということになる。つまり残業代を彼らに支払わねばならず、プロジェクトの予算を圧迫する。なにより生産性の低い人間ほど賃金が多いということになって、個人的には全く納得がいかない。またかれらのたいていは口入屋によって集められてきた孫請けひ孫請けの人間である。いってしまえばかれらは末端の作業員である。要するに「末端が夜遅くまで働いてプロジェクトに貢献しているにもかかわらず、それより上位の元受けがサッサ帰ってしまうのは何事だ!」という雰囲気になってしまい、プロジェクト全体が用もないのにだらだらと居残り残業を続けるという悪循環に陥っている。


タッチタイピングに関して思い出したことがある。タッチタイピングができないのは、なにも「ベテラン」に限ったことではないということだ。要するに新人や若者にもタッチタイピングができないものは数多くいるのだ。思い返してみれば新人研修の際、タッチタイピングができない同期は結構いた記憶がある。一番感心した(?)のは大学時代のころで、偉そうにMBA講義ノートをとっているにもかかわらず、その手元は人差し指だけでキーをたたいているという女子学生を見たことがある。彼女の場合その高価なMBAを買うお金を使って、パソコン教室にでも通ったほうがよっぽどためになったのではなかろうか。


弘法筆を選ばずということわざがある。その道の達人は道具にこだわらずとも素晴らしい作品を作り上げるという意味だが、逆に考えると「へたくそは道具にこだわったほうがよい」ということである。プログラマにとってはタッチタイピングも道具のひとつであり、使いこなせるに越したことはない。タッチタイピングを満足にできないプログラマシステムエンジニアを他山の石にして、自らの能力の研鑽に取り組みたい。

Paul Graham『ハッカーと画家: コンピュータ時代の創造者たち』

ハッカーと画家 コンピュータ時代の創造者たち

ハッカーと画家 コンピュータ時代の創造者たち

 

技術書というより技術エッセイに近いので、このブログに書評を残すべきか悩んだのですが、せっかく読んだので。

本書は技術エッセイであり、その大半はCommon Lisp礼賛&スタートアップ企業礼賛。そして「プログラマにはセンスが必要だ」ということも繰り返し述べられます。欧米のエッセイによくある感じのエッセイ、そのプログラマ版という印象です。そして感想ですが……この一言を述べるのが一番でしょう:『Land of Lisp』を買いました

これでわたしもLisp Hackerの仲間入りだ!!!!

Land of Lisp

Land of Lisp

 

日曜日の夕方は月曜日のせいでいつも憂鬱

現在時刻は日曜日の17:30。あとは晩御飯を食べて寝るだけで今日が終わってしまう。ひどく憂鬱である。なぜならば明日は月曜日。仕事に行かねばならないからだ。

わたしは受託開発オンリーのSIerシステムエンジニアをしている。この業界の常として仕事はプロジェクト単位で動くのだが、今わたしが参加している(参加させられている)プロジェクトの内実がひどく、明日もプロジェクト活動があるのかと考えると、気分は落ち込まざるを得ないのである。

プロジェクトをひどいものとしているひとつの原因は顧客のIT理解である。そこそこの規模の会社の情シスと情報子会社が顧客なのだが、ITの専門部署あるいは専門子会社とは思えないほどITに関する知識がない。正確には「ない」のではなく「古い」のである。メインフレームや大型ホストの時代から知識が止まっているようにしか思えない発言を繰り返しており、ミーティングがまったく実りのあるものになっていない。

個人的には情シスには同情的である。情シスの人たちのほとんどは日本的人事異動の結果連れてこられただけだろうし、そもそも日本企業においてIT系の部署は出世コースではない。どうせ勉強したところで数年もすれば人事異動で、そもそもこの傍流の部署から抜け出せるなら万々歳だと考えて、ITの勉強をする気にならないという事情はよく分かる。しかし情報子会社。てめえはだめだ。ITのためだけの会社のくせになぜITの知識がないのか。プログラミングができない、SQLが書けない程度ならまだしも、自分の親会社のシステムのアーキテクチャがどうなっているのかわからないとは、いったいいままでどんな仕事をしてきたのか?

顧客の悪口が多くなってしまったが、なら開発側のSIerはどうか? これもひどいものである。プロジェクトマネージャや営業は顧客の要望を伝書鳩に持って帰ってくるだけ。要件要望が増えても当然予算は増えないし、納期も据え置きである。大体にして要件追加に伴って増やす機能は果たして必要なのか? 「残業をして、品質を落として、作ったものが実はそれほど重要なものではありませんでした」となったらやりきれない。もっとも問題は顧客対策だけではない。アーキテクトと呼ばれる連中もなかなかひどい。ITのスペシャリストのくせにIT知識が10年前で止まっているのだ。日進月歩のIT業界において10年という年月は長すぎる。人間でいえば100年ぐらいに相当するだろうか。想像してほしい。100才のおじいちゃんやおばあちゃんが技術的な取りまとめを行っているのである。その結果出来上がるのは21世紀も半年が過ぎたとは思えないシステムやUIであり、すなわち古臭くて使いづらいシステムである。

こういう話を聞くとたいてい「ひどすぎる上流工程のしりぬぐいを下流工程が技術力の高さを生かしてなんとかする」という流れになりがちだが……しかしそうは問屋がおろさない。下流工程もなかなかのひどさなのである。今の現場はいわゆる多重下請けが横行しており、どこから集められてきたかわからないプログラマがうようよしている。中には参考にしたいと思えるプログラマもいるのだが、大半はだめ。サンプルコードをコメントアウトまでコピペしてくる程度はまだまだ上等なほうで、最下層だとタッチタイピングすらまともにできていない。Eclipseが移った、そこそこ性能の高いラップトップに向かって、両手の人差し指と中指だけでソースコードを打ち込んでいるさまを見ると、怒りすらわかない。怒りを通り越して笑うなんてこともなく、ただただ情けないだけである。タッチタイピングもできなくてもシステムエンジニアであり、しかもそこそこベテランなのだから、この業界の闇は深い。

プログラミングでいうと、オフショアリングとニアショアリングも利用している。この両者が作り上げてくるソースコードの品質だが――もはやいうまでもないだろう。ひとついえることは「安かろう悪かろう」である。よいものを手に入れたいなら適切な対価を支払うべきというのは、資本主義のいろはであり、小学生でも知っている。

そうこう愚痴を垂れ流している合間に18:15である。刻一刻と月曜日は近づきつつある。本当に憂鬱である。

西尾泰和『コーディングを支える技術: 成り立ちから学ぶプログラミング作法』(技術評論社)

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)

 

プログラミング言語 = 人造言語」。つまりプログラミング言語は全知全能の神によりデザインされたわけではありません。したがって完ぺきではなく、設計者のミスが入り込んだり、デザイン当初は実現不可能だったことが漏れていたり、さまざまな欠陥を持つ可能性があります。もっとも人造言語であるということはデメリットばかりではありません。たかだか人間の作ったものですから、簡単に修正することができますし、新しい言語を作る際にはほかの言語の欠点を補いながら開発を進めることが容易にできてしまいます。

プログラミング言語あるいはプログラミングという営みは、プログラマやデザイナたちの進化の集大成であり、本書はその「進化」の中で自明なものとして扱われるようになったトピックにことさらスポットライトを当てています。関数やエラー処理あるいはオブジェクト指向など、現代的なプログラミング環境では当たり前のことがなぜ当たり前になったのか? それをもう一度検討しなおしたのが本書であり、読み終えた後は基礎から鍛えなおされたような気分になりました。

繰り返しておくと、本書は何か新しい技術やツールを取得できる類の本ではありません。プログラミングの歴史を振り返り、プログラマとしての基盤をより一層強化したい開発者にとってはうってつけの1冊でした。

山本陽平『Webを支える技術: HTTP, URL, HTML, そしてREST』

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

 

「文化的な最低限の生活」を送るうえでは欠かせない情報インフラとなったインターネット。本書ではその「古くて新しい」インターネットを構成する技術が解説されています。

本書のよいところは大きくふたつ挙げられます。まずは「網羅性」。実のところインターネットはさまざまな「規格」の集合体です。いいかえれば種々の「決まり事」がまずあって、技術者がその「決まり事」を律儀に実装することにより、広大なインターネットは成立しています、本書はその「規格」あるいは「決まり事」を網羅的に扱っており、一読し終えた後もリファレンスとして利用できる強みがあります。

本書のもうひとつの長所は「歴史性」にあると考えます。インターネットやそれを支える「規格」は統一的な国家権力ではなく、いわば「草の根」で定められてきたものがほとんどであり、そのうえ必ずしも「規格」が先行しているとは限りません。いわゆるデファクトスタンダード――つまりまず「実装」が先にあり、それが広まったために、後々になって「規格」へと清書されるということが多々あります。したがってインターネットを支える技術を知るためには、その「企画」「決まり事」がどのように定められたのかという歴史を知ることが必要不可欠となります。本書はその部分についても懇切丁寧に解説が加えられており、その点で単なるリファレンス本とは一線を画しています。


不満をあげておくとすれば「内容がやや古い」ということでしょうか。とくにHTTP/2関連の記述はほとんどありません。ある程度デファクトスタンダードとして固まりつつあるので、このあたりについても解説があればよかったと感じます。もっとも本書は2010年出版の本なので、ないものねだりかもしれませんが。ただ重版を重ねているので、どこかのタイミングで加筆修正などがあってもよかったのではないかと思ったりもします。

hhkbを買った

nekotheshadow.hatenablog.com

少し前に高級キーボードを探しているということをブログに書いたのですが、このたびついに買ってしまいました。買ったのは「Happy Hack Keyboard Professional JP」の白色。業界用語(?)でいうところの"HHKB"の日本語版になります。お値段はおよそ2万円。池袋にあるビックカメラのパソコン館まで遠出をして買ってきました。

PFU Happy Hacking Keyboard Professional JP Type-S 白(日本語配列)

PFU Happy Hacking Keyboard Professional JP Type-S 白(日本語配列)

HHKBを買うまではあちこちの家電量販店にいって、さまざまなキーボードを試して回っていたのですが、打鍵感の点でHHKBが一番の好みでした。軽いのはもちろんのこと、浅すぎないキーストロークが非常にすばらしい。メカニカルやメンブレンとも違う、独特の打鍵音も気に入っています。2万円という価格は正直安いものではありませんが、それを上回るパフォーマンス・クオリティで個人的には大満足です。

ところで以前の記事では「冬のボーナスが出たら買おうかしら」という結論でしたが、結局ボーナス以前に買ってしまいました。理由は簡単。「残業代という臨時ボーナスが入ったから」。わたしが勤務している会社(SIer)では「残業代という制度は存在するが、どれだけ残業しても残業代はつかない」という不思議な状況だったのですが……今月からなぜか残業代がつくように。労働組合あたりから横やりが入ったのか、それとも電通の過労死事件に影響されたのか。真の原因はわかりませんが、まあもらえるならありがたくもらっておかないと損です。正直なところ「どんびき」するぐらいの額の残業代が入ったので、ついついHHKBを買ってしまったのでした。


IT技術者のくせにHHKBのUS配列を買わなかったのは「びびってしまった」というのが正直なところ。さすがに矢印キーがないのはちょっと……。あとは日本語の文章を書く上ではやはり日本語配列のほうが楽なような気がします。それに会社のPCは日本語配列なので、US配列に慣れてしまった場合、仕事に支障をきたす可能性が高く、今回は日本語配列のHHKBを買うという結論になりました。HHKB原理主義者の人には心より謝罪を申し上げます。

ビックカメラのレジに並びながら、自分の好きなキーボードで仕事ができる環境に転職するという考えが浮かんだのは内緒(´・ω・`)

理想のキーボードを探す旅に出ています。

最近はメインPCのDynabookにサンワダイレクトの安物キーボードをつないで使っているのですが、最近このキーボードに不満があります。安物(2000円ぐらい)ということもあって、長時間使用していると指先が痛くなってくるのです。これでもDynabook付属のキーボードを使うよりまし*1と安物キーボードでタイピングしてきたのですが、不満は日に日に積もる一方。

そういうわけで最近は「理想のキーボード」を探すべく、家電量販店のキーボードコーナーをうろうろする生活を送っています。ちなみにわたしがキーボードに求める要件は以下の通りです。

  • どちらかといえばコンパクトなタイプが好み。
    • 手が小さいのであまり大きいとつらい。
    • 少なくともテンキーはいらない
  • メカニカルキーボード希望だが、メンブレンでもOK。
    • 単に「メカニカルキーボード」という響きにあこがれているだけ(´・ω・`)
  • 押した感覚/押し返される感覚が強いほうが好み。
    • Mac系の「浅い」キーボードはだめ。
  • 音はうるさくてもうるさくなくても可
    • どうせ家で使うだけなので……。
    • 自分の使いたいキーボードが使えるような会社じゃないよ(業務系SE)
  • 全角/半角をしょっちゅう切り替えるタイピングスタイルなので、切り替えキーは必須。
  • JISキーボードが希望。
    • プログラミングはともかく、日本語タイピングの面ではJISキーボードのほうが優れている気がする。
  • Enterキーは大きくないとやだ。
  • 十字キーは必須。
  • ctrlキーが左下にあって、その横にFnキーがあるタイプがいい。
    • 左からFn→Ctrlになっているタイプは避けたい。
  • 予算は3万円ぐらいまで。
  • 有線/無線/Bluetoothは気にしない。

書き出してみると要求事項が意外と多いことに驚きます(´・ω・`)

さて家電量販店でいろいろ触ってみた結果、今のところの候補は次の3つぐらいですかね。

  1. HHKBの十字キー付きタイプ
    • 小型で軽いのはGood。タイプした感覚&音がかなり好み。
    • 半角/全角の切り替えキーがないのは残念。あとaの横にCtrlがあるのも慣れなさそう。
  2. Majestouchのテンキーレスタイプ
    • ちょっと重たいが、小型。打った時の音もかなり好き。
    • 打鍵感はHHKBのほうが好み。あと見た目が気に食わない
  3. Microsoftの薄型キーボード
    • メンブレンの中では一番好み。安いのもNice。
    • ただやっぱりメンブレンなのが気になる。またMacに移行した場合、MacBookMicrosoftのキーボードをつなぐというかなり間抜けな絵になりそう。

とりあえず冬のボーナスが出るまではいろいろ悩みたいと思います。急いで買うほどのものではないですし、サンワサプライもこれはこれでいいものですし(優柔不断)


  • それにしても最近の家電量販店はPC&PCサプライの扱いが小さい気がします。最近はやはりスマホタブレットにおされているのかしら。
  • とりあえず自分の好きなPCやキーボードで仕事をさせてくれる会社に転職するのが先のような気がしてきた(´・ω・`)

*1:3年前に買った時はなかなかよかったのですが、長時間利用する間にかなりへたってしまい、サンワサプライのキーボード以上に手が疲れます