Articles tagged with: 言語

アクアビット航海記-私の技術とのかかわり方


「アクアビット航海記」では、個人事業主から法人を設立するまでの歩みを振り返っています。
その中では、代表である私がどうやって経営や技術についての知識を身につけてきたかについても語っています。

経営や技術。それらを私は全て独学で身につけました。自己流なので、今までに数えきれないほどの失敗と紆余曲折と挫折を経験して来ました。だからこそ、すべてが血肉となって自分に刻まれています。得難い財産です。

本稿では、その中で学んだ技術の学び方を語りたいと思います。
私自身が試行錯誤の中で培ってきたノウハウなので、これを読んでくだった方の参考になれば幸いです。

ただし先に断っておきますと、私の技術力などそれほど大したものではありません。しょせんは独学ですし。
今までに参画してきた常駐現場では多くの凄腕技術者を見てきました。私が最近棲息しているkintone界隈でも私より技術力の優れた人は無数にいます。
そのため、技術力だけで考えれば、私など手本にする価値はありません。

私が皆さんにお伝えできるのは、最小限の努力で必要な技術を身に付ける嗅覚です。それは備えてきたと思います。本稿ではそれを参考にしてもらえればと思います。

モチベーション

ずばりいうと、私の技術へのモチベーションは、面倒くさがりから来ています。さらに飽きっぽさと。

例えば仕事で何か面倒な作業が必要になったとします。
そう、Excelのブックからブックへの転記のような。

これ、一回や二回ならまだいいのです。でもそれが十回繰り返されてくると、とたんに繰り返しに飽きてしまうのです。そして作業が面倒に思えてしまうのです。これは毎日、同じ場所に通勤する営みについても同じ。

そうなると、この面倒くさい作業をやめるためにどうすればよいか、私の脳内がざわめきだすのです。

多分、新たな仕組みやアルゴリズムを考える労力の方が、繰り返す作業よりも大変なのでしょう。でもそんなことは関係がありません。それ以上同じ作業をしたくない。その思いの方が圧倒的に強いため、私を衝き動かします。アルゴリズムや仕組みを考えることは、繰り返しの作業とは無縁です。飽きないし面倒くささも感じません。本連載第二十五回で書いたように集計作業が面倒でExcelのマクロを作ったのはまさにこの実例です。

選ぶ

今までのキャリアで、私はさまざまな技術や言語に触れてきました。この言語や技術の選び方は、案外大切ではないかと思います。

私はどちらかというと新しいもの好きです。ところが、私のキャリアを振り返ってみると、言語や技術の選択に当たってそこまで冒険をしていません。

例えば、PCはWindowsとMs-Officeを主に使ってきました。サーバーを自分で構築する際も、ファイルサーバーはSamba、LAMP(Linux+Apache+MySQL+PHP)でウェブ環境を構築してきました。CMSはWordPressを主に扱いました。クラウドにしても、βテスターとして関わり始めたころのkintoneは無名でしたが、運営元のサイボウズ社はそのころからすでにグループウエアの雄として業界に地位を確立していました。今やkintoneはわが国でも著名なPaaSに成長しています。

今までに私が携わった技術や言語の中で衰退してしまったものを挙げてみます。ファイルサーバーのSambaやその際にMacをつないだAppleTalk。サービス連携の言語はJSONではなくXMLを学びました。常駐先で触る必要があったLotus NotesやLotus Scriptは衰退の最たるものです。あとはLinuxでサーバーを構築した際、採用したDistributionのRedHat LinuxやMiracle Linuxも今はあまり聞きません。

若い頃に得たVisual Basicの知識やLampの知識が今も生かせることは、私のキャリアにとってとても幸運だったと思います。衰退した言語や技術の習得に使った時間が無駄にならずに済んだので。このことは私のキャリアを考える上でとても重要だと思います。

その際、私がどういう基準で言語や技術を選んだのかは、あまり覚えていません。ただ、その当時からシェアが高いものを選んだように思います。また、安価な環境で使える言語であることも重要でした。例えばスクリプト言語はphpであれば安価なレンタルサーバーでも使えましたが、pythonやgoはサーバーにインストールする必要があったため、学びの対象から外しました。

シェアが高いということは、サポートサイトも多いということ。サポートサイトを必死に読み込めば、たいていのヒントはおのずから公開されていることに気づきます。おそらく私はそれらを踏まえながら、自分の学ぶべき言語を選んでいったように思います。

この時に単に新しいからといって新奇な言語や技術にあまり手を出さなかったことが、私のキャリアをあまり回り道に進ませずに済んだと思います。

調べる

自分が知りたいこと、実装したいことをどう調べると効率的か。

これはとても重要なところです。私が自分でプログラムに関心を持ち始めたのは1999年。まだインターネットが世間に広く使われ始めたばかりのころです。今のように少し検索するだけで技術資料が閲覧できる時代ではありません。つまり、書籍が頼りでした。

書籍は、その分野の全てを語ろうとします。まず、総論から始まり、その後で個別の説明を展開していきます。私はそうした総論の類を読みません。まっすぐ自分が求める機能を探します。書籍の場合は目次や索引が付されていますので、そこから探すと目指す機能を学べます。

その機能の説明を読むと、自分の知らない事が次々に出てきます。メソッドや関数の記述。名前空間や言語体系。細かい文法など。それらを総当たりで調べていきます。その際も、名前空間についての総論は読み飛ばします。直接、該当する名前空間の書き方を探します。そうやって個別の自分の知りたいことだけを拾いながら、その積み重ねで全体を把握していく。それが私のやり方です。
ちなみに私は読書が大好きです。が、本を読む際は全く逆のアプローチをとります。途中の部分を読むなどもってのほか。必ず最初から最後まで通して読みます。ところが不思議なことに技術書を読む際だけはそのやり方だとうまく覚えられないのです。

私が技術の世界に触れ始めたころと違い、今はネット上から情報を得ることができます。ですが、その情報には書籍のような目次・索引がありません。つまり検索エンジンを使うしかないのです。この検索の際にキーワードを入力しますが、そのキーワードにもコツがあります。

技術の言語は国際的に英語が使われています。そのため、日本語だけで検索しても求める検索結果にヒットしないことがほとんどです。まず具体的な文言を英語も含めて検索します。また、エラーメッセージにあたった際はそのメッセージを検索文言に含めます。すると、求める結果が得られると思います。その際、英文が出てきたら大意ぐらいはつかめるぐらいの英文読解力があると楽です。その上でGoogle 翻訳やDeepLのような翻訳サイトを使って日本語で意味をつかみます。

なお、当たり前ですが得た結果をきちんと読解する力は必要です。私は文系学部で学んだ技術者ですが、読解力が私のキャリアを助けてくれたと確信しています。パッと読んで分かったつもりになってしまうと、結局遠回りになります。じっくりと文章を読むように心がけましょう。

実装する

この後の連載で、私がどのように実装の経験を積んでいったかは書いていく予定です。独立するまでにはかなりの回り道と試行錯誤と無数の失敗を繰り返しました。

日中は現場に常駐していた私が、個人の業務で無理せずに実装するにはどうすればよいか。全ては五里霧中の中でした。少しずつ実績を積み上げられ、しかも安価な投資額で実装環境が整えられるような案件を痛い失敗の中で少しずつこなしていったのが私のキャリアです。kintoneに出会うまでは。

私のように個人事業主から法人を設立するまでの歩みは、自分でいうのもなんですが、相当難しいと思います。

私のようにホームページの制作から始め、まずHTMLやCSS、JavaScriptを操るスキルを身に付け、そこからサーバーの選定や調達に進み、さらにphpなどの言語がデフォルトであるWordPressのようなCMSに手を染めていくと、キャリアとしてよいのではないかという気がします。この路線は、今のところまだ衰退の兆しがそれほどなさそうですし。

その際も、自分でサーバーを立ち上げ、LAMPをインストールし、AWSやGCP、Azureといったより高度な環境を選ぶより、まずは小規模な環境から始められる規模の案件をこなすとよいでしょう。要するに安価なレンタルサーバーでも十分要件が満たせるようなものです。

ブレイクスルー

とはいえ、ロジックの構築や予期せぬバグの出現など、実装にあたっては問題が生じます。

それをどのように克服していくかは切実な問題です。それで挫折し、折れた心を抱えながら情報処理業界からも去っていく人もいるでしょう。

そもそも、どれだけ本やウェブサイトを読んでも概念がちっともつかめない場合、どうすればよいのでしょう。正直、私にも概念がつかめずに苦戦したことが何度もありました。本連載第三十二回で書いた、行列のExcelからAccessの三次元を理解したのはまさにその一つ。

そこでも書きましたが、当時チームの部下だった年下のOさんに教えを請いました。そこで教えてもらったことで私は一つ目のブレークスルーを果たしました。この時、妙なプライドや自負があって独学にこだわっていたら、今の私はなかったと思います。

私はキャリアのほとんどを独学で積み上げてきたことに誇りも自負も持っています。ですが、今でもまだまだ分からないことが無数にあります。今の私がそうした事態にぶつかった時、二回り以上も年が離れた部下に教えを請い、頭を下げられると確信できます。しょせんは私のキャリアなど独学であり、正当に大学で情報科学を学んだ方には絶対に勝てないことが分かっていますので。

ブレークスルーを果たすには、自分の中で突き詰めて考えることは必要です。でも、概念を理解するためのちょっとした気づきを自分の中だけで得るのは難しいでしょう。その時、相手が誰であろうとヒントを与えてくれる方には頭を下げ、謙虚でいられるかどうか。それが出来る技術者こそが、年配になっても現役でやれる人だと思います。

加齢による好奇心の枯渇

かつてはプログラマー35才限界説、というものがまことしやかに言われていました。35才を超えるとプログラマーとしては使い物にならない、というやつです。

この説はある部分ではあたっています。ただし、それはアルゴリズムの構築が35才を迎えた途端にできなくなる、という意味ではありません。当たっているのは年齢による体力の問題です。それはどうしようもありません。徹夜でコーディングする作業は40歳を過ぎると難しくなるのではないでしょうか。

むしろ、ロジックの組み立てをきちんと自分の頭で考えた経験を35歳までに積んでいることのほうが大切かと。そうした経験があれば、60歳の半ばであっても第一線で問題なくやれると思います。身近にその生きた例を知っています。私自身、50歳の声が聞こえ始めていますが、まだやれると思っています。

また、今の言語はフレームワークなども充実しています。また、基本的なアルゴリズムについてはライブラリが豊富に用意されています。そのため、それを呼び出すだけでよいのです。加えてkintoneのようなPaaSを使えばデータベースの構築や通知・権限設定も手間をかけずに実装できます。

そうした意味ではプログラマー35才限界説とは、かつて情報処理業界の言語や環境が発展途上だったころの名残だと思っています。ちなみに私は文系学部の出身なので、文系プログラマー限界説にも反対の立場です。女性エンジニアの方も優秀な方が多いので、男性だけが優位というのも間違っています。

ただし、それ以外に限界説が当てはまる人はいます。それは体力の問題ではなく、心の柔軟さの問題です。肉体とともに心は徐々に柔軟さを失っていきます。実年齢が30歳であっても、自分が持っている技術や環境から学ぼうとしないと、35才よりも前に限界を迎えます。上に書いたように、自分より詳しい若手に頭を下げられるかも限界の年齢を決めるでしょうね。

例えば新卒で情報処理業界に入り、会社が用意してくれた既存の業界や言語や環境の中で安定した仕事をこなしていたとします。その状態に甘んじて新たな言語や環境を学ぼうとしなかったとすれば、老いはより早くあなたをむしばむはずです。そして気が付いたときには技術者としての活躍の場がない、という悲劇に遭遇します。

私自身、今からDeep LearningやMachine Learning、ブロックチェーンや3Dプリンターを学ぶには億劫な思いを感じます。概念は大体理解しているつもりですが、それを新たな実装として試してみようとする気概が出てきません。私にも間違いなく老いは忍び寄っています。

それを防ぐには好奇心を持ち続けるしかないと思います。これは私の価値観ですが、仕事だけが毎日ではないと思います。さまざまなプライベートの趣味や出会いや楽しみを持ち、仕事以外に多様な刺激を受けるような環境に身を置く。それが40代50代になって少しずつ効いてきて、あなたの身を助けてくれるはずです。

まとめ

私なりに技術との関り方をまとめてみました。もちろんこれは私の例にすぎません。人によってそれぞれのやり方があるはず。ここに書いた内容を基に、皆さんがそれぞれの立場で取り入れられる点があれば、取り入れていただければと思います。


七日間ブックカバーチャレンジ-かんたんプログラミング Excel VBA 基礎編


【7日間ブックカバーチャレンジ】

Day5 「かんたんプログラミング Excel VBA 基礎編」

Day5として取り上げるのはこちらの本です。

私は、もう20年ほど技術者としてお仕事をしています。
開発センターでシステムの開発やテストに従事していた時期も長いです。銀行の本店でも数年間、常駐していました。
ここ数年は、5年近くkintoneのエバンジェリストとして任命をいただいております。
個人事業の主として9年、法人を設立してからは6期目に入りました。
その間、システム・エンジニアを名乗って仕事を得、妻子を養ってきました。

そんな私ですが、システムは誰からも教わっていません。
全て独学です。
高校は普通科でしたから、パソコンはありません。大学は商学部で、パソコンルームはあった気がしますが、私は無関心でした。一度だけ5インチのフロッピーディスクに一太郎で作った文章を保存する課外授業をうけたぐらい。
大学の一回生の頃に、ダブルスクールに通っていましたが、そこで学んだ事で今に活かせているのはブラインドタッチ。Basicの初歩も学んだ記憶はありますがほとんど覚えていません。
大学を出た後、一年近く芦屋市役所でアルバイトをしていた頃、出入りしていた大手IT企業のSEの方から盗み取ったマクロからここまでやってきました。

そして私は新卒で採用された経験も、真っ当な転職活動の経験もありません。ですから、企業で研修を受けた経験もほとんどないのです。

システム・エンジニアとして働く常住現場で、悠長にプログラミングを教えてくれる人などいません。誰もが忙しくコーディングや設計に追われている中、そんな間抜けな質問をしたら退場させられてしまいます。

そんな私がどうやってプログラムを学んだのか。
本書のような入門書からです。

私の場合、キャリアの初期に開発現場ではなく、オペレーションセンターで働き、某企業でシステムの全権を任してもらえるという幸運もありました。

試行錯誤しながらExcelの複雑なワークブックやシートやセルを操り、毎朝のタイトなスケジュールを縫って資料を作る。
Excelのマクロを駆使しなければ、とてもやり遂げられなかったでしょう。

本書は基礎編ですが、応用編とコントロール編も含めて何度も当時読み返したものです。私にとってプログラミングを学ぶ上でこのシリーズには大変お世話になりました。

特に、行列の二次元だけでしかExcelを理解していなかった私を、本書は三次元、四次元といった高次のレベルに引き上げてくれました。スカパーのカスタマーセンターで当時の部下だった元SEの女性にもヒントもらったのが懐かしい。
あれこそまさにブレークスルーの瞬間でした。

かつて、システムを扱うにはプログラミングやデータベース、ネットワークの知識が必須でした。
ですが、昨今のシステムにはそうした知識が不要になりつつあります。クラウドシステムやノンコードプログラミングの普及によって。
そして、ビジネスの現場で働く人にこそ、プログラミングの初歩的な理解が必要になる。そんな時代はすでに始まっています。

Excelマクロは、処理を自動的にマクロとして記述する仕組みがあります。それと本書を組み合わせると、システムの初歩の概念を学んでいただけるのではないでしょうか。
本書はプログラミングに不得手なビジネス現場のオペレーターの皆様にこそ読んでほしいと思います。

それでは皆さんまた明日!
※毎日バトンを渡すこともあるようですが、私は適当に渡すつもりです。事前に了解を取ったうえで。
なお、私は今までこうしたチャレンジには距離を置いていました。ですが、このチャレンジは参加する意義があると感じたので、参加させていただいております。
もしご興味がある方はDMをもらえればバトンをお渡しします。

「かんたんプログラミング Excel VBA 基礎編」
単行本 ソフトカバー:351ページ
大村あつし(著)、技術評論社(2004/3出版)
ISBN978-4-7741-1966-3

Day1 「FACTFULLNESS」
Day2 「成吉思汗の秘密」
Day3 「占星術殺人事件」
Day4 「ワーク・シフト」
Day5 「かんたんプログラミング Excel VBA 基礎編」
Day6 「?」
Day7 「?」

★ ★ ★ ★ ★ ★ ★
7日間ブックカバーチャレンジ
【目的とルール】
●読書文化の普及に貢献するためのチャレンジで、参加方法は好きな本を1日1冊、7日間投稿する
●本についての説明はナシで表紙画像だけアップ
●都度1人のFB友達を招待し、このチャレンジへの参加をお願いする
#7日間ブックカバーチャレンジ ##かんたんプログラミング


片想い


本書はとても時代を先取りした小説だと思う。というのも、性同一性障害を真正面から取り上げているからだ。本書の巻末の記載によると、週刊文春に1999/8/26号から2000/11/23号まで連載されたそうだ。いまでこそLGBTは社会的にも認知され始めているし、社会的に性同一に悩む方への理解も少しずつだが進んできた。とはいえ、現時点ではまだ悩みがあまねく世間に共有できたとはいえない。こう書く私も周りに性同一性障害で悩む知り合いがおらず、その実情を理解できていない一人だ。それなのに本書は20世紀の時点で果敢にこの問題に切り込んでいる。しかも単なる題材としてではなく、動機、謎、展開のすべてを登場人物の性同一性の悩みにからめているのだ。

著者がすごいのは、一作ごとに趣向を凝らした作品を発表することだ。これだけ多作なわりにパターン化とは無縁。そして作風も多彩だ。本書の文体は著者の他の作品と比べてあまり違和感がない。だが、取り上げる内容は上に書いた通りラジカルだ。そのあたりがすごいと思う。

本書は帝都大アメフト部の年一度の恒例飲み会から始まる。主人公の西脇哲朗の姿もその場にある。アメフト部でかつてクォーターバックとして活躍した彼も、今はスポーツライターとして地歩を固めている。学生時代の思い出話に花を咲かせた後、帰路に就こうとした哲朗に、飲み会に参加していなかった元マネージャーの日浦美月が近づく。美月から告白された内容は哲朗を驚かせる。美月が今は男性として生きていること。大学時代も女性である自分に違和感を感じていたこと。そして人を殺し、警察から逃げていること。それを聞いた哲朗はまず美月を家に連れて帰る。そして、同じアメフト部のマネージャーだった妻理沙子に事情を説明する。理沙子も美月を救い、かくまいたいと願ったので複雑な思いを抱えながら美月を家でかくまう。

ここまででも相当な展開なのだが、冒頭から44ページしか使っていない。本書はさらに377ページまで続くというのに。これだけの展開を仕掛けておきながら、この後300ページ以上もどう物語を展開させていくのだろうか。そんな心配は本書に限っては無用だ。本書には語るべきことがたくさんあるのだから。

読者は美月がこれからどうなってゆくのかという興味だけでなく、性同一性障害の実情を知る上でも興味を持って読み進められるはずだ。本書には何人かの性同一性障害に悩む人物が登場する。その中の一人、末永睦美は高校生の陸上選手だ。彼女は女子でありながら、あまりにも高校生の女子として突出した記録を出してしまうため、試合も辞退しなくてはならない。性同一性障害とはトイレ、浴場、性欲の苦しみだけではないのだ。世の中には当たり前のように男女で区切られている物事が多い。

私は差別意識を持っていないつもりだ。でも、普通の生活が男女別になっていることが当たり前の生活に慣れきっている。なので、男女別の区別を当たり前では済まされない性同一性障害の方の苦しみに、心の底から思いが至っていない。つまり善意の差別意識というべきものを持っている。ジェンダーの違いや不平等については、ようやく認識があらたまりはじめたように見える昨今。だが、セックスの違いに苦しむ方への理解は、まだまったくなされていないのが実情ではないだろうか。

その違いに苦しむ方々の思いこそが本作の核になり、展開を推し進めている。だが一方で、性同一性障害の苦しみから生まれた謎に普遍性はあるのだろうか、という疑問も生じる。だがそうではない。本作で提示される事件の背後に潜む動機や、謎解きの過程には無理やりな感じがない。普通の性意識の持ち主であっても受け入れられるように工夫されている。おそらく著者は障害を持たず、普通の性意識に生きている方と思う。だからこそ、懸命に理解しようとした苦闘の跡が見え、著者の意識と努力を評価したい。

ちょうど本稿を書く数日前に、元防衛省に勤めた経歴を持つ方が女装して女風呂に50分入浴して御用となった事件があった。報道された限りでは被疑者の動機は助平根性ではないとのこと。女になりたかったとの供述も言及されていた。それが本当かどうかはさておき、実は世の中にはそういう苦しみや性癖に苦しんだり耐え忍んでいる方が案外多いのではないかと思う。べつにこの容疑者を擁護する気はない。だが、実は今の世の中とは、男女をスパッと二分できるとの前提がまかり通ったうえでの社会設計になっていやしないか、という問題意識の題材の一つにこの事件はなりうる。

いくら情報技術が幅を利かせている今とはいえ、全てがオン・オフのビットで片付けられると考えるのは良くない。そもそも、量子コンピューターが実用化されれば0と1の間には無数の値が持てるようになり、二分化は意味を成さなくなる。私たちもその認識を改めねばなるまい。人間には男と女のどちらかしかいないとの認識は、もはや実態を表わすには不適当なのだという事実を。

「美月は俺にとっては女なんだよ。あの頃も、今も」
このセリフは物語終盤366ページである人物が発する。その人物の中では、美月とは男と女の間のどれでもある。男と女を0と1に置き換えたとして、0から1の無数の値を示しているのが美月だ。それなのに、言葉では女の一言で表すしかない。男と女の中間を表す言葉がまったくない事実。これすらも性同一性障害に苦しむ方には忌むケースだろうし、そうした障害のない私たちにはまったく気づかない視点だ。これは言語表現の限界の一つを示している。そしてそもそも言語表現がどこまで配慮し、拡張すべきかというかという例の一つに過ぎない。

本書がより読まれ、私を含めた人々の間に性同一性障害への理解が進むことを願う。

‘2017/12/09-2017/12/11