とある書物の備忘録

読書家ほどではない青年が本の感想を書くブログ

コンピュータ技術者になるには

83冊目
まったく知らない職業の本読むのってたのしいですよね

コンピュータ技術者になるには (なるにはBOOKS)

コンピュータ技術者になるには (なるにはBOOKS)

タイトルとおり、コンピュータ技術者になる方法が書かれてある本になります。

読んでて気がついたのですが、本で扱っている職業が「コンピュータ技術者」である以上、「読んだら必ずしもコンピュータ技術者になれる」というわけではないようです。
内容として、コンピュータ技術者とは、コンピュータ技術者たちの考え方、コンピュータ技術者が大切にしていること、などそういったことが触れられている本だと捉えてくれたらいいと思います。
もちろん技術者になるための方法(進むべき道)も提示されているので「やりたいけどまったくわからない」という人なんか読んでみたらいいんじゃないでしょうか。

あとコンピュータ業界は日進月歩です。なので、内容が多少古いということもあり得ます。
それでも将来なんとなく考えている人が、適正やら心構えやら、取るべき資格など、そういった手探り状態の人が読めば良いヒントになる本だと思いました。

(今回も気になったところを上げていこうと思います)

-----(ネタバレあり)-----


仕事を覚えるために
OJT(On the job Training)」というの初めて知りました。ちなみに意味はそのまま「仕事しながらトレーニングする」というものです。
このOJT、僕は「理にかなっているなぁ」と感心しました。仕事を「見て覚えろ!」というむちゃくちゃな研修ではなく、それでいて「実際の仕事には活かせなかった」ということがないでしょうから、いい学びになると思います。
コンピュータの本だからコンピュータ技術者のためのOJTですけど、これコンピュータ技術者にかぎらずいろいろな場面で技能を習得するいい方法でもあると思いました。やってみないとわからない、実際に失敗してみないとわからない……この考え方に近いイメージは、「(ゲームなどで)取り敢えずやってみるか」ということでしょう。僕あれけっこうしてて、ああいう友達同士での「取り敢えずやってみるか」を仕事に置き換えたものなんでしょうね。いや、いいと思います。

必要なのはコミュニケーション能力
プログラマーはコミュ症の人たちが集まるものだという偏見があったものですから、こうしたコミュニケーションが大切な職場だというのは驚きながらも「当然か」と納得しました。
プログラミングにしてもセキュリティにしてもどちらにせよ「要望」「目標」があるわけで、それを達成するには人(客や同業者)とのコミュニケーションが必須になるようなんですね。
たしかに相手の気持ちを汲み取るように耳を傾けないとお客様の思うモノができない(できなかった時のデメリットが痛すぎる)し、仲間たちと協力しないと難解な課題の問題解決なんてできそうじゃないですからね。それに人を引っ張る側になったら部下の進捗も確かめないと(あるいは部下のモチベ管理とか)いけないから一層コミュニケーション能力が必要なんだなとか思いました。
しごく当然といえる答えですけど、やはり意思疎通は大切なんですね。

ソフト維持は大変
開発が終わって、いざ世に出して、それからの話である「維持」についてですが、それはそれは大変な仕事なのだということがわかりました。
いわゆる完璧(だと思われて)出された作品が(しょうがないですが)不完全だったということで、その不完全な部分はどこかというのを調べて直すとか、それをひたすらするとかそういったことを維持としてするようです。加えて日進月歩している職種なために、たとえば環境が変われば改めてはじめから見なおさなければならないとか……いや、大変そうです。
僕の視野レベルまで落としてみるとすれば、ブログの記事を適度な文字数で誤字もなく定期的に見直しをする、とかですよね。文字だから多少間違えても何となく伝わるだろと僕は甘んじてますけど、プログラムの世界は一文字間違えたらひとつエラー、問題となるシビアさがあるんですよね。それにこのブログのように総文字で4000文字や5000文字という量ではなく、もっと膨大な文字が……見直すひとつでかなり大変そうです……。

参考文献(ここで登場した書籍)
ここで登場した書籍を(僕が調べやすいように)提示しておきます。
◯真下哲さん(ここで登場した人です)が手元に置いていつも参照している書籍

プログラミング言語C 第2版 ANSI規格準拠

プログラミング言語C 第2版 ANSI規格準拠

プログラミング作法

プログラミング作法

Binary Hacks ―ハッカー秘伝のテクニック100選

Binary Hacks ―ハッカー秘伝のテクニック100選

Debug Hacks -デバッグを極めるテクニック&ツール

Debug Hacks -デバッグを極めるテクニック&ツール

コンピュータの構成と設計 第5版 上

コンピュータの構成と設計 第5版 上

◯社内グループの勉強会で使用した書籍
UNIX Internals: The New Frontiers

UNIX Internals: The New Frontiers

Unix Network Programming, Volume 1: The Sockets Networking API (Addison-Wesley Professional Computing Series)

Unix Network Programming, Volume 1: The Sockets Networking API (Addison-Wesley Professional Computing Series)

  • 作者: W. Richard Fenner, Bill Rudoff, Andrew M. Stevens
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2003/10/22
  • メディア: ハードカバー
  • 購入: 1人 クリック: 46回
  • この商品を含むブログ (5件) を見る
コンピュータの構成と設計 第5版 上

コンピュータの構成と設計 第5版 上

Effective Java プログラミング言語ガイド

Effective Java プログラミング言語ガイド

Rubyまつもとゆきひろさん
この本にはまつもとゆきひろ(本名:松本行弘)さんという日本人で一番有名なプログラマーさんが登場します。
なぜ有名なのかというと、Rubyというオブジェクト指向スクリプト言語を作ったからですね。このRubyは日本で開発されたプログラミング言事は初の国際電気標準会議で国際規格に認証された事例だとか。つまり彼は、世界で認められた日本初プログラミング言語を作り上げた男だということです。
ここらへんの話題で面白かったのは、Rubyを無償で公開(オープンソース)したら勝手に広まっていったというあたりです。
本人は無自覚で(「情報はもともとフリー」だと考えている)公開したRubyをデビット・トーマスとアンドリュー・ハンドが紹介し、講演会でも紹介したらしく、そして知名度が広がり、ゆきひろさんは支援を受けたりイベント開催してくれたり……と、輪が広がって、やがてゆきひろさんはフェロー(企業などにおいて極めて高い能力を持った人材に対して特別待遇する役職の名称)になったりとかしています。
このあたりの正のスパイラルがすごくて、なにげなくプログラミング言語を公開してからの展開が好循環に広がってゆくの、眺めてて気持ちよかったです。
Ruby - Wikipedia
知ってためそうRuby はじめに トップページ

コンピュータ技術者の境遇
後半あたりにコンピュータの技術者の境遇について書かれている場所がありました。

確かに、コンピュータ業界は厳しい職場であることは間違いありません。(中略)しかし当時でさえ、ソフトウェア開発の終盤になると徹夜の連続で、システムエンジニアプログラマは家に帰れない日が続いていたものです。

この後に外資プログラマはもっと大変で「なにせ海外に合わせるから時差がある」とか「海外と遠隔会議するために深夜まで会社に残る必要がある」とかという主張があり、さらに「仕事を持って帰って家でする」事になったり「締め切りが明日の朝4時」なんてこともあるらしいです。
とはいえ、厳しいだけではないようで、いわば「実力社会」だということも記されてりました。

つまり、コンピュータ業界は「給料が高い」から志願するものではなく、みずからの力で「高い給料」を勝ち取ることができる職場です。6K、7Kというのは自虐的な言葉ですからわざと「給料が安い」を当てはめている人いるわけですが、本当は「帰れない」、「休暇が取れない」、「化粧乗りが悪い」けど「給料が高い」と考えるべきでしょう。

いやぁ、大変そうです……いよいよプログラマさんたち尊敬ですよ僕。

コンピュータ技術者になるには
第三章あたり、コンピュータ技術者になるための大切なことがたくさん書かれてあったんですよね。で、どれを書こうか迷った結果、サブタイトルが大切なことを一言にまとめてくれていると気がついたので、大切そうだと思ったサブタイトルを引用していきます(気になったら各自本を手にとってください)。
◯激しい変化に対応できる目配りと情熱が必要
◯進化に対応できる先見性と身軽さ
◯適性はない、ただ勉強をするだけ
◯24時間365日働くという気構え
◯理系でも文系でも英語力は必須
◯どの技術者でも必要なOS、そしてハードの知識
◯就職のポイントは給与よりもみずから学べる環境
◯結局はどの会社ではなく、どのようなキャリアを積めるか
そんな感じです。最後に前半辺りに登場したコンピュータ技術者の言葉で気になったものを引用しておきます。

「(前略)昔の技術者は自分一人で、たとえば回路設計だけをしていればよいということもありましたが、今の技術者
にはコミュニケーション能力が必要です。一人では何もできなくなってしまいます。(後略)

「自分が言いたいことを相手に正確に伝えるということ、そして相手の話を聞くという2つのコミュニケーション能力が必要ですね。それが現在のチーム設計では欠かせません。一方通行ではいけません。それと、とことん突き詰めるという意気込みですね。どうしてこうなっているのかを自分なりに突き詰めてゆくことです。そこからいろいろな経験を身につけることができます」

日本電気 プロジェクトマネージャー 岡本義光さん

「でも数学ができないからといってコンピュータ技術者になれないというわけではありません。要するに、論理的に考えられるかどうかがポイントになると思います」

「やはり物事の本質を見ようとする姿勢ですね。パソコンでインターネットをやるだけではなく、パソコンを自作してみるとか。そうするとパソコンがどのような部品で構築され、それぞれがどのような役割をしているということも分かってきます。ゲームでも、単にゲームを楽しむだけではなく、ソースコードが見れるような簡単なゲームのソースコードを自分でアレンジしてみるなど、その裏で動いているものに好奇心や探究心を持つようにするといいと思います」

日本オラクル サステイング・エンジニア 真下哲さん

「自分は一流のプログラマーになりたいと、それこそ真剣に思う人がやはりすぐれたプログラマーになるのですよ。すぐれた技術者になる道は誰かに教えられるものではなく、自分で発見するものだと思うのです」

「やはり、成功する人は楽しんでいる人だと思うのですね。プログラミングが楽しいと思うことが動機づけにつながって新しいことを学ぼうとするわけです。仕事だから仕方ないと思っているのであれば、大きな成果は期待できません。その意味で、プログラミングを楽しんでもらいたいと思っています」

「この前リーナス(Linuxの開発者であるリーナス・トーバルズ)と成功について話をしていたのですが、『それは副産物みたいなもの。ゴールではなく、あくまで結果』という結論に達しました。その考えはいろいろに共通することだと思っています。陶芸家はお金持ちになりたいと思ってやるのではなく、たとえばすばらしい茶碗を作りたいと思ってやっているわけです。その茶碗に、結果的に何百万という値がつくことになることはあっても、最初から金儲けをしようと思っているわけではないと思います。ソフトウェア技術者も、それに近いのではないでしょうか。高い給与をめざして仕事をするより、実際は陶芸家とか小説家のように、何もないところにひとつの世界をつくりたいという、むしろ芸術家とか職人に近い職種だと思うのです」

オブジェクト指向スクリプト言語Ruby」を開発 まつもとゆきひろさん

参考文献(参考になる図書一覧より)

理工系のコンピュータ基礎学

理工系のコンピュータ基礎学

コンピュータアーキテクチャの基礎

コンピュータアーキテクチャの基礎

やさしいコンピュータ科学 (Ascii books)

やさしいコンピュータ科学 (Ascii books)

コンピュータの構成と設計 第3版 <別冊>歴史展望

コンピュータの構成と設計 第3版 <別冊>歴史展望

CPUの創りかた

CPUの創りかた

Rubyソースコード完全解説

Rubyソースコード完全解説

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラミング作法

プログラミング作法

カッコウはコンピュータに卵を産む〈上〉

カッコウはコンピュータに卵を産む〈上〉

カッコウはコンピュータに卵を産む〈下〉

カッコウはコンピュータに卵を産む〈下〉

【まとめ】
プログラマーの人たちはすごい人達だということがわかりました。日進月歩してゆく情報を飲み込めないと「生き残れない」のだから、そりゃすごい。彼らの手でITが支えられてるのだなぁ……とか思いましたよ。
ところで引用して気がついたのですが、まつもとゆきひろさんの言っていることだけ、言葉が一つ上の段階にあるような感じがしました。
なんでしょうねこの感覚。ほか二人のインタビューにはない一人だけ異端な(神々しいというべき)雰囲気がまつもとさんの言葉から醸しだされているような気がしたんですよね……。(うーん、よくわからない)
まぁ言えるのは、プログラマーも十人十色ってことですね!(まとめ)