ITスペシャリストが語る芸術

-The Kay Notes-
SE、プログラマー、AI開発者、教育研究家、潜在意識活用研究者、引きこもり支援講師Kayのブログ。

システムエンジニア

当ブログは、第一期ライブドア奨学生ブログです。
◇お知らせ
[2019/12/28]AI&教育問題専用ブログ、メディアの風を公開しました。
[2017/03/01]「通りすがり」「名無し」「読者」「A」等のハンドル名のコメントは原則削除します。

プログラマーの仕事は楽しいか?

プログラマー(システムエンジニアも同じとする)は、必ずしも楽しい仕事ではない。
YouTubeでひろゆきさんがこんなことを言っていた。
「人と話すのが嫌ならプログラマーになって下さい。部屋の中で1人で出来ますから」
そんなことは稀なケースだろう。
ひろゆきさんが、2ちゃんねる掲示板を作った時は確かにそうだったのだろう。
自分の好きなように、人の意見を聞く必要もなく作ったのだと思う。
初期のニコニコ動画もそんなものらしく、1人の優秀なプログラマーが自分の思い通りに作ったらしい。
だが、そんな仕事は滅多にあるものではない。

プログラマーの仕事は、他人との話し合いと共にあるのが普通だ。
話し合いが命と言っても良いかもしれない。
それも、好きな人、同じような考え方の人、こちらを気遣ってくれるような人が相手であることは、まずないと思う。
礼儀知らずな人、傲慢な人、常識のない人、言っては悪いが頭が良くない人がいくらでもいて、そのような人達を相手に、多くの場合、プログラマーは弱い立場で話し合わなければならない。
こんなことをよく言われる。
「え?今の聞いてなかったの?話分からないの?」
「こうするのが当たり前でしょ?」
「なんで出来ないの?言う通りにして下さい」
「前言ったでしょ?なんで言ったようになってないの?」
「計算が合ってないじゃないか?プログラムの間違いだろ」
これらが、どれほど理不尽な言い分であっても、相手の気分を害さないよう気をつけて話さないといけない。
最後の「計算があってない」が、相手の説明間違いであったり、相手の非論理的な思い込みであることも多いが、結局、こちらが「きちんとヒアリングをしなかった」せいにされることが普通だ。
確かに、相手のミスを想定して話をしなければならないことも多く、その意味ではこちらが悪いということになる。

馬鹿な部下が、相手の担当者と思慮のない勝手な打ち合わせをして「分かりましたそうします」と言ったのが、困った問題になることもある。
馬鹿な後輩や部下が、「そんなの簡単でしょ?先輩、分からないんですか?」と言い、彼の頭が悪過ぎて、彼には何が問題なのか分からないこともあった。

まあ、こういったことはほんの一部で、プログラマーの仕事なんて、ほとんど楽しいことはないと言って良いかもしれない。
よほど下っ端であるとか、ほとんど儲からないような仕事であればそうでもないかもしれないが。

プログラマーは1人で誰とも話さずに出来るどころか、プログラマーは人付き合いがうまく、どんな人とも仲良くなれ、相手の横暴さや短慮を器用に受け流して気持ちよく説得できなければならない。
そのために、きちんと分かり易く話し、分かり易い文章を書ける人でなければ務まらない。
まあ、それ以前に、技術力がなければ仕方がないが、それだけでは全く仕事にならないわけだ。

プログラミングは自分の作りたいものを作りたいように作るのは楽しい。
しかし、全く親しくない他人が要求するものを作ることは楽しくないと思って間違いないだろう。
私は、客先の打ち合わせの相手より上位に置いてくれないと仕事を請け負わない。
プログラマーによっては、客先の会社の役員にしてくれないと仕事をしないと言う人もいる。「言うことを聞いてくれないと仕事になるはずがない」と言うわけだが、確かにそうだ。
あるいは、「私は御社の社長と契約した。社長の言うことしか聞かない」と言うプログラマーもいる。
まあ、それだけの実力があるからこそ、それで仕事が順調に進むのである。
逆に言えば、そんなことを言えるプログラマーと契約すべきだろう。

◆当記事と関連すると思われる書籍等のご案内◆
(1)世界一流エンジニアの思考法(牛尾剛)
(2)話し方の戦略――「結果を出せる人」が身につけている一生ものの思考と技術(千葉佳織)
(3)1回の会議・打ち合わせで必ず結論を出す技術―戦略コンサルタントが教える「決まる会議」の掟
(4)バカの壁(養老孟司)

花が咲く古城で
AIアート2934
「花が咲く古城で」
Kay

プロフェッショナル

世の中には、珍しい職業がある。
プロスポーツ選手とか、音楽家とか、作家とか、俳優などだ。
それらになるには、子供の時から特別な訓練を受けたり、長い時間、自主的に取り組んで努力しなければならないだろう。
そこまで珍しくないかもしれないが、特殊な職業として、デザイナー、ジャーナリスト、イラストレーター、工芸家、楽器演奏家などがある。
これらになれるのは、若い時や子供の時から趣味として長く取り組んだような人であり、「学校を卒業するからデザイナーにでもなろう」なんていった、デモシカ職業ではないだろう。
デザイナー学校とか、音楽学校、あるいは、俳優養成学校等といった、これらの職業に就くための訓練をする学校もあるが、普通の学校のように、なんとなく通ってどうなるものでもなく、よほどの決意や熱意がない限り入る意味はない。そして、特別な熱意がある場合は、必ずしも学校に行く必要はなく、実際、学校で学んだ訳ではないが、その道で一流になった人もいる。しかし、その場合は、厳しい下積み時代が必要で、行けるものなら学校に行った方が良いかもしれない。

現代の、極めて珍しいが人気のある職業にYouTuberがあるが、今のところ、YouTuber養成学校はないと思う。しかし、いずれ出来るかもしれない。
だが、YouTuberというのは、面白さだけが命のアイデア勝負であるから、よほどのセンスや妥協のない完璧主義のようなものが必要で、ある意味、恐ろしい執念深さがない限り勝ち抜けないし、一流大学の受験どころでない競争であるのだから、闘争心も半端ないものがないといけない。
そんなものがない凡人がYouTubeで瞬間的に受けるために大馬鹿をする者達が問題なのであるが、そんなことをする者達は、ここに挙げたことを考え、自分の力量のなさを自覚して欲しいものである。

プログラマーやシステムエンジニアも、本来は、音楽家やイラストレーターと同じで、自分で自分を育てる自主性や向上心が必要で、専門学校や大学の情報学部に行ったからといってなれるものではない。
ただ、音楽家やスポーツ選手に比べて、比較にならないほど仕事が多いので、野球で言えば2軍のレベルにも程遠くても、草野球なら無敵という程度で食べていける。
そして、野球の一軍レベルに匹敵する実力があれば、やはり、相当な収入が得られる。
とはいえ、プログラマーも本質的にはプロフェッショナルでないと存在意義のない職業であるので、ちょっと勉強した程度でうまくいかないのは当たり前である。
プロ野球の選手になりたい者が、短時間、ゆったりした練習を週に何回かやるだけで、選手になれないと悩むなど滑稽であるが、プログラマーやイラストレーターやYouTuberなどでは、そんなことを言う馬鹿が多いのである。

私もプログラマーになるために、修行時代は毎日1冊本を買って帰り、通勤電車の中では、プログラミング言語の本をノルマを決めて読み、夜は自宅で10時頃から、深夜2~3時までプログラミングを行った。
休日はドライブをしている時も、常にプログラミングのことを考えていた。
しかし、この程度では、まだまだ甘かったのである。

何の特技もないサラリーマンでいるのが嫌なら、プロフェッショナルになるしかない。
そして、プロフェッショナルは、どんな仕事も、プロ野球選手や音楽家や俳優等と変わらない。
必要なことは、時間を大量に注ぎ込むことである。
修行中の身でありながら、テレビを見たり、友達と下らないお喋りをしたり、仲間とワイワイ飲食に行くような者がプロフェッシナルになれるはずがない。
注ぎ込む時間は1万時間で良いのである。
1日3時間なら9年と少し、4時間なら7年弱である。








働き蜂の死体は残らない

自分に向いた仕事は何だろう?
自分に向いた仕事をするとはどういうことかというと、スペシャリストになるということだ。
しかし、日本では、スペシャリストになるべき仕事が見つからない。
なぜかというと、日本という国は、一般庶民を、働き蟻や働き蜂のように、ただの労働者にする国だからだ。
よって、国民の大半が、特に専門とか特技を持たないサラリーマンと呼ばれる労働者なのであり、そのことに疑いを持たない。
それはつまり、国家の奴隷であるということだ。
まあ、そうだからこそ、今のところ、日本経済はそこそこ強く、国民は働き蟻としての生活は保たれているのである。

子供のうちこそ、YouTuberやサッカー選手になると言うが、そんなもので食べていけるのは千人に1人、万人に1人で、大学を卒業する頃には、大半の者の関心は、大きな安定した会社に、どんな仕事でもいいから入社することになる。
高校や中学を出て就職をするとなると、むしろ、一層、現実の厳しさをつきつけられ、立派な働き蟻になることが目標になる。

だが、いまでも、中学生や高校生の間で、システムエンジニアやプログラマーといったIT技術者になりたい者は多いらしい。
とはいえ、彼らに、IT技術者の実態が示されることはない。
その理由は単に、IT技術者なんて言っても、実態はあまりに千差万別で、「これがシステムエンジニアだ」なんていう標準的な形はないからだ。
こういうことすら、ほとんどの人は知らないだろう。
そして、プログラマーやシステエンジニアだって、ほぼ全員、ただのサラリーマンである。しかも、身体と心に悪い労働をするサラリーマンで、目標とすべき点は特にない。

大半の仕事がAIにとって代わると言われているが、それは違う。
AIに手足がある訳ではない・・・つまり、そこらに高性能なロボットがうじゃうじゃいる世界にはまだなっていないのだから、AIがロボットの身体を手に入れ、それが安価に量産出来るようになるまでは、人間の代わりは出来ない。
ただし、それは、人間の仕事は手足を使うことだけに限定されてくるということだ。
パターン通りに考えるという部分は、もう大昔にコンピューターが行うようになっている。
今後は、予測するという部分をAIが代わりにやることになるのだが、誰も気付いていないが、予測するということは、人間に残された最後の人間らしい精神的作業なのである。
そこをAIがやることになったら、一般庶民は、ついに完全に、働き蟻・・・奴隷になる。
まあ、人間の器用な手足は、なかなか有用なのである。

賢い救世主達は、わけあって、救われる方法を、ひそかに暗号化して世の中に出し続けた。
だが、それに気付くのは、食えるYouTuberより少ないし、力を持つまでになる者は、ほとんどいない。
そして、真実に気付かないようにさせる情報の方がはるかに多い。
大衆が喜んで見るものを好むようになれば、完全な奴隷である。
そうなる前に、助けに向かって手を伸ばすことである。








やらずに経験する

システムエンジニアというのは、中学生や高校生にとって、憧れの仕事の1つらしい。
サッカー選手とか、YouTuberといった、非現実的(希望者の1%も食べていけないという意味で)な職業を除けば、男子の中ではトップかもしれない。
では、システムエンジニアは誰でもなれるかというと、ちょっと微妙だ。
ここでは、企業の業務システムを開発するシステムエンジニアに限定するが、実際は、他の分野でも、そうは変わらないと思う。
また、私自身は、システムエンジニアとプログラマーを区別しないのだが、ここでは、「システムエンジニア」は、何を作るかを決めて、それを作ること(確認まで含め)が出来る人としよう。
だが、システムエンジニアの仕事とは・・・なんて話をするつもりはない。
ズバリ、システムエンジニアに絶対になれない者について言おう。

私は、若いプログラマーに、1つの開発案件について話していた。
私は彼に、現状では、業務がコンピューター向きでないので、開発不可能だと言った。
すると彼は、「出来ますよ!」と言う。
こんな者は、絶対にシステムエンジニアになれない。
早い話が馬鹿だからだ。
いや、おそらく、このような人間には、言われた通りにやる作業員以外の仕事は無理だし、作業員でも優秀にはなれない。
経験を積ませれば良いという声もあるかもしれないが、それも無理だ。

自分は、何でも知っている訳でも、何でも出来る訳でもないことを、本当には知らない者には見込みはないのである。(短く言えば、「自分は全能であるという幻想を持っていれば見込みはない」)
これに関しては、
『教養としてのテクノロジー AI、仮想通貨、ブロックチェーン (伊藤穣一著。NHK出版新書) 』
の「第5章「教育」はどう変わるか?」の中で、こう書かれているのと同じ意味だ。
引用すると、

子どもは年齢や、性別や、国籍などの多様な違いを持つコミュニティに所属すると、自分がすべてを知っているわけではないことに気づきます。

とあり、まさに、日本の学校では決して出来ないことである。そして、子供は、自分は万能なのだと思い勝ちであり、それが修正されないと、大人になっても、そう思い続ける。
だから、大なり小なり、彼のような大人は極めて多く、もう救えないのだ。

昔、Aという人間の脳をBという人間の脳に追加移植すれば、BはAの記憶や経験を持つという話がSFであったが、そんなことが本当に出来ない限り、自分でいろいろ経験するしかない。

一方で、こんなこともある。
ある優秀なシステエンジニアが、いろんなお客さんに、経理業務や税関業務や水質管理といった仕事の経験があるかと聞かれるが、そんな時は迷わず「はい、あります」と答えると言う。
お客さんの中には、自分の仕事は複雑なので、その仕事の経験がないとシステム構築は無理と思っている人は確かに多い。
そのシステムエンジニアは、1つか2つの実務は経験しているらしいが、そんなに何でも経験している訳ではもちろんない。
しかし、経験を積めば、自分が知らない業務でも当然、システム化出来るし、実際している。
ところが、特化した業務のシステム化しか出来ないシステムエンジニアもいるのである。
これは、単に、優秀かそうでないかの違いかというと、ちょっと不明なのである。

こんなことがあった。
私が、それほど経験がない時、全く知らない業務のシステムを作ることになったが、私は、本当に分からないので、とっかかりを掴むため、素早くプロトタイプのシステムを作り上げ、ユーザーに使わせた。
すると、少しの修正はあったが、それが、そのまま納品になった。
当時は、「やっぱり俺って優秀」と、ちょっとだけ思ったが(笑)、「何でこれ(プロトタイプのシステム)でいいのだ?」という思いの方が強かったので、幸い、そんな馬鹿な考えは捨てられた。
そして、どうも、ユングの言う、集合無意識の世界に入り込み、他の人の知識や経験を共有したのではないかと、少し思う。
これについては、足立幸子さんの『あるがままに生きる』とか、保江邦夫さんの『神様の覗き穴』を読むと、そんなことも出来そうに思う。
まあ、そんなに簡単ではないだろうが、そんなことが出来れば、自分ではやらずに経験を得られるという凄いことになる。
何でもかでもそれは面白くないので(他人が美女と付き合った経験など共有しても仕方がない)、もっと別のことはしないといけないだろうが、引きこもりの社会参加のきっかけや、自分のパワーアップに活用出来るかもしれない。








システムエンジニアの非すゝめ

私はプログラマーとシステムエンジニアを区別しないのだが、客先ではシステムエンジニアと名乗るしかない。
システムエンジニアは、企画・計画が仕事で、プログラマーは製造作業をするような観念があるかもしれないが、特に今のオブジェクト指向プログラミングの時代には、企画者がプログラミングをした方が確実だし、経験豊かなプログラマーこそが良い企画が出来る場合が多い。
確かに、プログラミングの出来ないシステムエンジニアや、企画を立てるまでの経験のないプログラマーというのはいるが、職業としての呼び名を区別するほどでもないと思う。
しかし、区別をしなくてもいいが、区別したって構わないとも言える。
早い話が、呼び名なんてどうでも良い。

ところで、システムエンジニアというのは、中学生や高校生男子のトップクラスの憧れの職業らしく、YouTuberを超えるという調査もあるほどだ。
しかし、私は、彼らにシステムエンジニアになることを勧めるのは、非常に消極的である。
プログラミングをマスターするのは大いに結構だが、システムエンジニアになれなんて言う気はないのだ。

ここで、システムエンジニアの良い定義を思いついた。
それは、ユーザーが構想したシステムを作る人だ。
ドワンゴのプログラマーのように、自社サービスであるニコニコ動画のシステムを作るのがプログラマーだとしたら、どこかの企業の何かのシステムを、その企業の構想に基き、私が1から開発する場合にはシステムエンジニアと言う訳だ。
もちろん、こんな区別も本当は不要なのだがね。

で、なんでシステムエンジニアになることをお勧めしないかと言うと、私がこの仕事を大嫌いな理由がそれになる。
これは、本来、システムエンジニアとして言ってはならないことであるが、若い人の後学のためにあえて言えば、「ユーザーは非論理的である」という、ミスター・スポックが言いそうなことが事実による。
システム開発にあたり、お客さんであるユーザーと深く話し合うのだが、大半のユーザーはひどく非論理的なのである。
いや、ユーザーが非論理的と言うより、ほとんどの人間が非論理的なのだ。たとえ大学の理系学部を出ていてもね。
まあ、システムエンジニアが何でも理論的と言うのではなく、こと、コンピューターシステムを考える上では、システムエンジニアはひどく論理的なのである。
それは、一流のスポーツ選手は、普段は全く論理的でない人でも、こと自分の競技に関しては恐ろしく論理的であるようなものだ。
だが、スポーツ選手であれば、特に一流なら、自分の思い通りに出来るが、システムエンジニアはそうはいかない。

ユーザーは、
「ここはこうなるようにして欲しい。そして、ここはこうで、ここはこうだ。うん、これは素晴らしいシステムになるぞ!」
と自画自賛せんばかりに言うが、そんなシステム、使い物にならないどころか、稼動すらしない。
いや、本当に稼動して使われたりなんかしたら、ゾっとする。
非論理的過ぎてトラブルは続出するだろうが、そのトラブルの責任は私が取らないといけない。
だが、ユーザーは、自分の考えが非論理的であることを決して認めない。
私は、出来るだけ丁寧に、そして、下手に出て、
「ほら、こんな場合に拙いことになるでしょ?だから、こうすべきなんです」
と言っても、ユーザーは、まあ極端に言えば、
「こっちが客だ。言う通りにしたまえ」
「私を馬鹿にしているのか?それとも、お前は楽をしたがっているだけじゃないかね?」
と言い、モメると、システムのことは分からないシステムエンジニアの上司や、その上の偉い人は、
「お客さんの言う通りにしたまえ。あちらの役員からもそう言われているのだ」
と、「超非論理的な論」を出してくる。

これがシステムエンジニアの仕事だ。
精神を破綻させたくないなら、やめておくことだ。
まあ、YouTuberになることは、もっとお勧めしないが・・・(笑)。

では、ドワンゴのプログラマーになるのはどうかというと、それは良いことだ。ただし、数年でやめる計画ならね。
ドワンゴに入ったら、ニコニコ動画のようなシステムには詳しくなるかもしれないが、世の中にシステムの種類はゴマンとある。
カドカワN高校のプログラミング授業の宣伝に、
「ニコニコ動画が作れるようになる」
とか言うのがあった。
もちろん、中学生向きのPRとしては悪いことはないが、これは、言い換えれば
「ニコニコ動画しか作れない」
ということだ。
それは、ドワンゴの多くのプログラマーに対しても凡そで当てはまるかもしれない。
1つのものごとに精通すれば全てが分かるという面も確かにあり、空手の達人は柔道の極意の一部も分かるかもしれないが、実際に柔道の試合で勝てる訳ではない。
それと同様、ニコニコ動画のシステムの達人になっても、他のシステムを高度に作れる訳ではない。
つまり、いろんな経験をしてこそ一流になれるのであるが、プログラマーも全くそうなのである。









↓応援していただける方はいずれか(できれば両方)クリックで投票をお願い致します。
人気blogランキングへ にほんブログ村 哲学・思想ブログ 人生・成功哲学へ
プロフィール
名前:Kay(ケイ)
・SE、プログラマー
・初音ミクさんのファン
◆AI&教育blog:メディアの風
◆著書『楽しいAI体験から始める機械学習』(技術評論社)


当ブログは第1期ライブドア奨学生ブログです。
Kay Twitter Home

執筆のご依頼

最新コメント


月別アーカイブ
記事検索
ブログバナー&Mail


メールはこちらへ

PV since 2010/09/08
  • 今日:
  • 昨日:
  • 累計:

人気ランキング参加中
にほんブログ村 哲学・思想ブログ 人生・成功哲学へ
にほんブログ村 メンタルヘルスブログ ひきこもりへ
タグクラウド
QRコード
QRコード