日本に普通のソフトウェアエンジニアなどいない [プログラミング]
http://www.chikawatanabe.com/blog/2010/03/career.html を読んで・・・
大きく下の5種類にカテゴリ分けすると
1.CS 出てプログラムを書いてる人
2.CS じゃなくて、12年以上プログラム書いてる人
3.CS 出てExcel 仕様書や PowerPoint を書いてる人
4.CS じゃなくて、プログラミング経験 12年未満
5.CS じゃなくて Excel 仕様書や PowerPoint を書いてる人
渡辺さんの言うアメリカで通用するソフトウェアエンジニアって、 1. と 2. の人だけど、そのカテゴリに含まれてて普通の人なんて、ほとんどいないんだよね、日本では。「スーパーな人」である必要はないけど、「スーパーな人」しか条件を満たせないのではないかと。
大きく下の5種類にカテゴリ分けすると
1.CS 出てプログラムを書いてる人
2.CS じゃなくて、12年以上プログラム書いてる人
3.CS 出てExcel 仕様書や PowerPoint を書いてる人
4.CS じゃなくて、プログラミング経験 12年未満
5.CS じゃなくて Excel 仕様書や PowerPoint を書いてる人
渡辺さんの言うアメリカで通用するソフトウェアエンジニアって、 1. と 2. の人だけど、そのカテゴリに含まれてて普通の人なんて、ほとんどいないんだよね、日本では。「スーパーな人」である必要はないけど、「スーパーな人」しか条件を満たせないのではないかと。
文字直し [プログラミング]
僕が勝手に「文字直し」と呼んでいるジャンルの仕事がある。
「文字直し」という言葉は、『健康ソフトハウス物語』という本で出てきたんだと思うんだけど、その本は、いつの間にか捨てていたらしく発見できず、もはや出典ははっきりしない。
(僕の考える)典型的な文字直しは、テンプレートの HTML 部分の文字や CSS や画像パスの修正。ちょっと高度化すると、出してる一覧の並び順を変更する(order by のカラムの変更)など、ロジックに大きく影響を与えないような仕事だ。
最近、若い人たちに囲まれて仕事をしていて、若者達のスキルアップのためにも、モチベーションのためにも、作業は機能毎に分割した単位で分担したいなぁ、と思いつつ時間の関係で基本の作りは僕、あとの手直しと文字直しと簡単な不具合修正を若者という分担にせざるを得ない。
雑用ばっかりで申し訳ないなぁ、と思っていたのだが、実は本人達は嫌な雑用を押し付けられているという感じでもないらしいことに最近気づいた。
自分でも簡単にできそうで、ちょっとした直しで表示が変わったり不具合が直ったりするのが楽しいらしい。僕自身は、来る日も来る日も誰かのお手伝いで文字直し、という仕事をしたことがないのだが、最初はそんな感じでいいのかなぁ。
「文字直し」という言葉は、『健康ソフトハウス物語』という本で出てきたんだと思うんだけど、その本は、いつの間にか捨てていたらしく発見できず、もはや出典ははっきりしない。
(僕の考える)典型的な文字直しは、テンプレートの HTML 部分の文字や CSS や画像パスの修正。ちょっと高度化すると、出してる一覧の並び順を変更する(order by のカラムの変更)など、ロジックに大きく影響を与えないような仕事だ。
最近、若い人たちに囲まれて仕事をしていて、若者達のスキルアップのためにも、モチベーションのためにも、作業は機能毎に分割した単位で分担したいなぁ、と思いつつ時間の関係で基本の作りは僕、あとの手直しと文字直しと簡単な不具合修正を若者という分担にせざるを得ない。
雑用ばっかりで申し訳ないなぁ、と思っていたのだが、実は本人達は嫌な雑用を押し付けられているという感じでもないらしいことに最近気づいた。
自分でも簡単にできそうで、ちょっとした直しで表示が変わったり不具合が直ったりするのが楽しいらしい。僕自身は、来る日も来る日も誰かのお手伝いで文字直し、という仕事をしたことがないのだが、最初はそんな感じでいいのかなぁ。
「高速道路の先の大渋滞」と「シタミチの大渋滞」 [プログラミング]
最近聞いた話
Java で書くより Python で書いた方が速く書けるから有利かと思って、Python で仕事ができる会社探したんですけど、よく考えたらそこではみんな Python で書いてるから、みんな速いんですよねぇ。
しかも、わざわざ Python やろうなんてひとは凄い人が多いから・・・
Java の玉石混淆な世界で上から下までいるところで競争してた方が良かったかも・・・
確かに、Java で凄い人ばっかりの環境もあるだろうけど、そうでもない環境も多いよね。
それは、Java が悪いわけではなく。
それにしても、今のオールドタイプな SIer &技術者派遣系の仕事のなさときたら、
「シタミチ通るより渋滞でもとりあえず高速走っといた方がいいんじゃないの」
というレベル。
Java で書くより Python で書いた方が速く書けるから有利かと思って、Python で仕事ができる会社探したんですけど、よく考えたらそこではみんな Python で書いてるから、みんな速いんですよねぇ。
しかも、わざわざ Python やろうなんてひとは凄い人が多いから・・・
Java の玉石混淆な世界で上から下までいるところで競争してた方が良かったかも・・・
確かに、Java で凄い人ばっかりの環境もあるだろうけど、そうでもない環境も多いよね。
それは、Java が悪いわけではなく。
それにしても、今のオールドタイプな SIer &技術者派遣系の仕事のなさときたら、
「シタミチ通るより渋滞でもとりあえず高速走っといた方がいいんじゃないの」
というレベル。
納期に縛られて小さくまとまってしまう自分 [プログラミング]
新卒で入った会社が、納期に従ってソフトウェアを書く、普通のソフトウェアハウスだったおかげで、納期と聞くと、ドキドキする。よりよいものを!と、ものすごく頑張っちゃって納期前は徹夜朝駆けだたり結果間に合わなかったりっていう人もいたが、僕は可能であれば「間に合うように仕様を削って作る」派だ。それができるなら。
そういうのは、技術者の名折れとか怠惰だと思われるらしく、さらには昨今の消費社会では何でもサービスしてくれることが多いので(マンション管理会社のサービスぶりには驚いている)頼む方は気軽な感じで行ってくるんだけど、それ相応に時間がかかって間に合わなくなるという認識があまりない。
寸前に、「やっぱこの仕様も入れたい」となったときに、アイデアが浮かぶ人のタダ飯になって、プログラミングするひとが頑張ることになりがちだけど、それでは長く続かない。職業として長くやるなら「頑張る」よりも「頑張らなくても大丈夫」なように小さくまとめたい。ぎりぎりに仕様追加が必要なら、バーターで削る仕様も出てくるはずというのは、もっと理解されて欲しい。
期限を守って世に出すというのが、構想膨らんでなかなか世に出せないよりもずっと価値があると思っている。時には頑張ることも必要かもしれないけど、間に合わないなら仕様を削って長時間働かないようにするのがプロってもんだと思っている。そうじゃなくて、とにかく頑張る体質だから、35歳前に燃え尽きて定年になってしまう。(まぁ、思ったようにいかなくて老体にむち打つことのほうが多いけど。)
だから、間に合わないときに仕様を削る(もしくは、妥当な範囲で納期を延ばす)ことを言い出せることを僕は誇りに思っている。
アスキーが紆余曲折の途中で買収されて資産査定されたときに、資産とおもわれていたたくさんの作りかけのソフトウェア(ダビスタ等のゲーム)が、どうしようもない放置状態で無価値だったと言うのを以前見た気がする。きっと、志高くプロジェクトをすすめて行くうちに終わんなかったんだなぁ、と社内の様子が目に浮かぶようだよ。
そういうのは、技術者の名折れとか怠惰だと思われるらしく、さらには昨今の消費社会では何でもサービスしてくれることが多いので(マンション管理会社のサービスぶりには驚いている)頼む方は気軽な感じで行ってくるんだけど、それ相応に時間がかかって間に合わなくなるという認識があまりない。
寸前に、「やっぱこの仕様も入れたい」となったときに、アイデアが浮かぶ人のタダ飯になって、プログラミングするひとが頑張ることになりがちだけど、それでは長く続かない。職業として長くやるなら「頑張る」よりも「頑張らなくても大丈夫」なように小さくまとめたい。ぎりぎりに仕様追加が必要なら、バーターで削る仕様も出てくるはずというのは、もっと理解されて欲しい。
期限を守って世に出すというのが、構想膨らんでなかなか世に出せないよりもずっと価値があると思っている。時には頑張ることも必要かもしれないけど、間に合わないなら仕様を削って長時間働かないようにするのがプロってもんだと思っている。そうじゃなくて、とにかく頑張る体質だから、35歳前に燃え尽きて定年になってしまう。(まぁ、思ったようにいかなくて老体にむち打つことのほうが多いけど。)
だから、間に合わないときに仕様を削る(もしくは、妥当な範囲で納期を延ばす)ことを言い出せることを僕は誇りに思っている。
アスキーが紆余曲折の途中で買収されて資産査定されたときに、資産とおもわれていたたくさんの作りかけのソフトウェア(ダビスタ等のゲーム)が、どうしようもない放置状態で無価値だったと言うのを以前見た気がする。きっと、志高くプロジェクトをすすめて行くうちに終わんなかったんだなぁ、と社内の様子が目に浮かぶようだよ。
テストデータつくーる [プログラミング]
その昔、アドベンチャーツクールというアドベンチャーゲームを作るソフトがありました。
それの、もじりでテストデータを生成するスクリプトのことを「テストデータつくーる」と呼んでます。
だれかが言ってたのかと思ったのですが、どうも僕の造語みたいです。
本来なら、テスト駆動型開発で「まずはテストを書け」というところなんでしょうが、ごめんなさい。でもデータ構造に合わせたデータを作る「テストデータつくーる」だけでも、かなり効率的になることうけあい。みんなが同じ条件でテストできるってのもありますが、プログラムを修正するとテストデータつくーるが動かなくなることも多々あり、それ自体がテストツールの意味も。
新人の課題にもぴったり。
みんなで「テストーデータつくーる」を流行らせましょう!
それの、もじりでテストデータを生成するスクリプトのことを「テストデータつくーる」と呼んでます。
だれかが言ってたのかと思ったのですが、どうも僕の造語みたいです。
本来なら、テスト駆動型開発で「まずはテストを書け」というところなんでしょうが、ごめんなさい。でもデータ構造に合わせたデータを作る「テストデータつくーる」だけでも、かなり効率的になることうけあい。みんなが同じ条件でテストできるってのもありますが、プログラムを修正するとテストデータつくーるが動かなくなることも多々あり、それ自体がテストツールの意味も。
新人の課題にもぴったり。
みんなで「テストーデータつくーる」を流行らせましょう!
プログラミングとコーディングと肩書きの話 [プログラミング]
ぼくの知り合いの話ではなく、↓の後半のプログラミングとコーディングについて
http://blog.pasonatech.co.jp/ootani/303/12687.html
ぼくの中ではプログラミングとコーディングに差がありません。
多分、アリエルの開発部長の方と同じ感覚なんでしょう。
最初に入った会社で、プログラムを書く事をコーディングと呼んでいて、大谷さんの言うコーディング(HTML を jsp に埋めるような感じを想像した)に相当する作業がなかったからなんでは、と思います。
#あぁ、でも課長が「はやくコーダーからプログラマーになってね」と言ってたか
プログラムは細部にまでセンスが求められ変数名の付け方一つにも創造性が求められるので、単純作業のコーディングなんてもしあるんならそれは機械にやらせるべきなんではないかと。
そういえば、その会社ではプログラマー、コーダーではなく SE、プログラマーというヒエラルキーができていて、今時はちょっと別職種みたいな感じになってますが、そのころはプログラマーが出世してSE になる感じでした。SE=偉いプログラマーで、SE とはプログラミングもする人。
(最初にプログラミングしたことない SE に会ったときには、ちょっとしたカルチャーショックを受けたなぁ)
ひょっとしたら、そこの SE がプログラマーでプログラーマーがコーダーなのかもしれません。
そういえば、前の職場(上の会社と違う)で
「nakagami さんに、そんなプログラマーの仕事はさせられない(仕様書のチェックとかして)」
と言われたときには、多分、年寄りに下働きをしてもあるのは申し訳ないと言う意味だといいように理解しましたが、僕の存在自体が否定された気分でした。随分前ですが新卒でメーカー系列のソフトウェア会社に入ったという人(1年目)の名刺を見せてもらったときに「アシスタント SE」と書いてあって笑いました。なんとなく偉そうです。みんな、肩書きには気を使うようです。
そうそう、この前ぼくが作ってもらった名刺には「ソフトウェアデベロッパー」と書いてるので僕は「そふとうぇあでべろっぱー」らしいです。
まぁ、要する SE でもプログラマーだのコーダーだのソフトウェアデベロッパーだの肩書きなんかなんでもいいってことですね。
http://blog.pasonatech.co.jp/ootani/303/12687.html
ぼくの中ではプログラミングとコーディングに差がありません。
多分、アリエルの開発部長の方と同じ感覚なんでしょう。
最初に入った会社で、プログラムを書く事をコーディングと呼んでいて、大谷さんの言うコーディング(HTML を jsp に埋めるような感じを想像した)に相当する作業がなかったからなんでは、と思います。
#あぁ、でも課長が「はやくコーダーからプログラマーになってね」と言ってたか
プログラムは細部にまでセンスが求められ変数名の付け方一つにも創造性が求められるので、単純作業のコーディングなんてもしあるんならそれは機械にやらせるべきなんではないかと。
そういえば、その会社ではプログラマー、コーダーではなく SE、プログラマーというヒエラルキーができていて、今時はちょっと別職種みたいな感じになってますが、そのころはプログラマーが出世してSE になる感じでした。SE=偉いプログラマーで、SE とはプログラミングもする人。
(最初にプログラミングしたことない SE に会ったときには、ちょっとしたカルチャーショックを受けたなぁ)
ひょっとしたら、そこの SE がプログラマーでプログラーマーがコーダーなのかもしれません。
そういえば、前の職場(上の会社と違う)で
「nakagami さんに、そんなプログラマーの仕事はさせられない(仕様書のチェックとかして)」
と言われたときには、多分、年寄りに下働きをしてもあるのは申し訳ないと言う意味だといいように理解しましたが、僕の存在自体が否定された気分でした。随分前ですが新卒でメーカー系列のソフトウェア会社に入ったという人(1年目)の名刺を見せてもらったときに「アシスタント SE」と書いてあって笑いました。なんとなく偉そうです。みんな、肩書きには気を使うようです。
そうそう、この前ぼくが作ってもらった名刺には「ソフトウェアデベロッパー」と書いてるので僕は「そふとうぇあでべろっぱー」らしいです。
まぁ、要する SE でもプログラマーだのコーダーだのソフトウェアデベロッパーだの肩書きなんかなんでもいいってことですね。
あきない [プログラミング]
仕事でプログラムを書いてて、長時間労働は嫌だし疲れるけど、コーディング自体は自分でも感心する程に飽きない。プログラミングに飽きて、人の管理とかに興味を持つようになるという話は聞くので、(人の管理はさておき)いつか燃え尽きてソースコードは見るのも嫌となるのかと思っていたが今のところそんなことないみたい。
そういえば、僕の入社した頃の一年上の先輩(年は下)が(2年目でありながら)「もうコーディングしたらどう動くか想像できちゃって飽きちゃった」みたいなことを言っていたが、未だに僕は思ったように動くかどうかどきどきだ。書いたプログラムが思ったように動いたときには、ほっとする感じで、「当然」という域にはまだ達することができない。
かみさんはかみさんで動物好きで感心する。普通の人の何十倍も動物の死と向き合いつつ、自分でも動物を連れて来て飼って「かわいい」とか言ってる。それもよく飽きないもんだ。
動物が好きで獣医になりたいって人はいるけど、多くの動物の死と向き合って、それでも獣医でいられるのか?・・・と思うと、かみさんは獣医になれて良かったねと思うが、僕はプログラマーで良かった。
そういえば、僕の入社した頃の一年上の先輩(年は下)が(2年目でありながら)「もうコーディングしたらどう動くか想像できちゃって飽きちゃった」みたいなことを言っていたが、未だに僕は思ったように動くかどうかどきどきだ。書いたプログラムが思ったように動いたときには、ほっとする感じで、「当然」という域にはまだ達することができない。
かみさんはかみさんで動物好きで感心する。普通の人の何十倍も動物の死と向き合いつつ、自分でも動物を連れて来て飼って「かわいい」とか言ってる。それもよく飽きないもんだ。
動物が好きで獣医になりたいって人はいるけど、多くの動物の死と向き合って、それでも獣医でいられるのか?・・・と思うと、かみさんは獣医になれて良かったねと思うが、僕はプログラマーで良かった。
ソースはどこへ消えた [プログラミング]
(「チーズはどこへ消えた」とは関係ない話)
昨日の朝、ソースコードが少し戻ってるのを発見。
本当は、一昨日の夜におかしいと気づいていたのだが気づかぬふりで寝てしまった。
気がつくと、ほぼのべ一日分の作業が戻ってしまったようだ。
本当はどこへじゃない。多分、自分がローカルの Git リポジトリを削除したんだと思う。
今日の標語「ちょっと待て、そのリポジトリは push した?」
まぁ、一度書いたものなので同じ状態にするのは2〜3時間で終わったけど、リファクタリングとかと違って、もう一回同じものをコーディングすることの虚しさは賽の河原で石を積むのにかなり近いと思う。もう一回書くとわかっただけでモチベーションがかなり下がる(自業自得だが)
ただ、幸いにして今のところ修復に1日以上かかるような大きな事故にあった事はない。
Bill Joy が複数画面で編集できる vi の開発中のソースをハード障害でロストして開発を止めてしまった話等、ソースコード消失にまつわる逸話には事欠かないので、いつかやらかすんじゃないかとびくびくしてるのだが・・・。何週間分とか何ヶ月分とかの成果を消失してしまったら僕はきっと立ち直れない。
僕は、この日記等でできるだけソースを公開するようにしているが、それは自己顕示欲やボランティアの精神からだけでなく、公開しておくと後で探しやすいという自分の都合も大きい。もし無くしても、誰かが持ってるかもしれないし、人にわかるように説明してると未来の自分にとってもわかりやすい。
事故で消失するだけでなく、「確か昔こんなことやったけどなぁ・・・」と思いつつ自分のバックアップから探せないソースが昔はいっぱいあった。今は、自分でやったこと自体を忘れているような修正↓も、いざとなれば検索でたどりつける。
http://nakagami.blog.so-net.ne.jp/2008-11-28
僕が就職して研修のときに最初に書いた Turbo C のプログラムも、今なら公開してたな。
そのソースは相当ひどかったと思うが、(見てみたいなぁ)残念ながら紛失してしまった。
今の若い人は、公開できるソースはできるだけ公開するといいよ。恥ずかしくても。
昨日の朝、ソースコードが少し戻ってるのを発見。
本当は、一昨日の夜におかしいと気づいていたのだが気づかぬふりで寝てしまった。
気がつくと、ほぼのべ一日分の作業が戻ってしまったようだ。
本当はどこへじゃない。多分、自分がローカルの Git リポジトリを削除したんだと思う。
今日の標語「ちょっと待て、そのリポジトリは push した?」
まぁ、一度書いたものなので同じ状態にするのは2〜3時間で終わったけど、リファクタリングとかと違って、もう一回同じものをコーディングすることの虚しさは賽の河原で石を積むのにかなり近いと思う。もう一回書くとわかっただけでモチベーションがかなり下がる(自業自得だが)
ただ、幸いにして今のところ修復に1日以上かかるような大きな事故にあった事はない。
Bill Joy が複数画面で編集できる vi の開発中のソースをハード障害でロストして開発を止めてしまった話等、ソースコード消失にまつわる逸話には事欠かないので、いつかやらかすんじゃないかとびくびくしてるのだが・・・。何週間分とか何ヶ月分とかの成果を消失してしまったら僕はきっと立ち直れない。
僕は、この日記等でできるだけソースを公開するようにしているが、それは自己顕示欲やボランティアの精神からだけでなく、公開しておくと後で探しやすいという自分の都合も大きい。もし無くしても、誰かが持ってるかもしれないし、人にわかるように説明してると未来の自分にとってもわかりやすい。
事故で消失するだけでなく、「確か昔こんなことやったけどなぁ・・・」と思いつつ自分のバックアップから探せないソースが昔はいっぱいあった。今は、自分でやったこと自体を忘れているような修正↓も、いざとなれば検索でたどりつける。
http://nakagami.blog.so-net.ne.jp/2008-11-28
僕が就職して研修のときに最初に書いた Turbo C のプログラムも、今なら公開してたな。
そのソースは相当ひどかったと思うが、(見てみたいなぁ)残念ながら紛失してしまった。
今の若い人は、公開できるソースはできるだけ公開するといいよ。恥ずかしくても。
結局、ソースコードはキレイが勝ち? [プログラミング]
(「結局、女はキレイが勝ち」という本がアマゾンのレビューで話題のようですが)
僕は、プログラムがきれいに書けてるかということは、あんまり気にしない。
#僕のソースを読んでもらえば、コーディングがダサいことがわかると思う
誤解を恐れずに言えば(読みやすいなら)「動けばいい」派だ。
あとで、自分や他人がみたときにわかるように書きたいとは思っているが、イディオムをつかってスマートに書こうという気があまりしない。例えて言うなら、C言語の if 文の条件式を書くときに、優先順位に迷ったら気にせず括弧を付けまくるタイプ。
一方で世の中には、カッコよくコーディングすることにこだわるあまりプログラミングが進まない人がいる。コピペプログラミングやわかりにくいネーミングは論外だが、あらゆるプログラミングテクニックやイディオムを駆使してカッコよくプログラミングする必要は全然ないと思う。得てして、そういうのは読みにくかったり遅かったりする。
・・・んでもって、そういう人に限って人にソースを見せるのを嫌がったり、恥ずかしがったりする人が多い気がする。
僕は、プログラムがきれいに書けてるかということは、あんまり気にしない。
#僕のソースを読んでもらえば、コーディングがダサいことがわかると思う
誤解を恐れずに言えば(読みやすいなら)「動けばいい」派だ。
あとで、自分や他人がみたときにわかるように書きたいとは思っているが、イディオムをつかってスマートに書こうという気があまりしない。例えて言うなら、C言語の if 文の条件式を書くときに、優先順位に迷ったら気にせず括弧を付けまくるタイプ。
一方で世の中には、カッコよくコーディングすることにこだわるあまりプログラミングが進まない人がいる。コピペプログラミングやわかりにくいネーミングは論外だが、あらゆるプログラミングテクニックやイディオムを駆使してカッコよくプログラミングする必要は全然ないと思う。得てして、そういうのは読みにくかったり遅かったりする。
・・・んでもって、そういう人に限って人にソースを見せるのを嫌がったり、恥ずかしがったりする人が多い気がする。






