見出し画像

おっさんが色々なプログラミング言語を覚えた経緯 ~Ossan Rising~

どうも~~!プログラマーひと筋、十余年、おれで~す!

先日、こんな記事を書いたわけですが、

なぜ、こんなに色々な言語を覚えたり、調べたりしていたのか、という部分を今日は書いてみようかと。聞くも涙、語るも涙の人情劇ですが、記事にしてみると、割と薄っぺらいです。それでは行ってみましょう!

おっさんのオトン

いやいや、そこまでさかのぼるのかよ!って思われそうですが、さかのぼってみます。おっさんのオトンは、ド田舎出身です。ド田舎 of ド田舎です。仮想通貨界隈で、イケハヤっていうド田舎に住んでる人居ますが、あれとイイ勝負です。でも、オトンに聞いたら「あそこまでド田舎じゃない!」って言いそうですが、どんぐりの背比べかな、と。

オトンはその昔は勉強はよくできたそうです。「ド田舎 of ド田舎」という小さな世界の中では神童であったということです。それで、地方都市に出て来て、公立の工業高校に通いました。でも、大学に行くほどの金はないので、その後は、大阪に出てきて、何をやってたのかは知らないですが、一時期は自衛隊なんかもやったりして、色々やって、また、先ほどの地方都市に戻ってきます。

その後は基本的に電気屋で働くことになります。いや、電気屋そのものというよりは、電気屋に電気機器を卸す業者ですね。昔は、そういうのがあったんです。今は、ヤマダ電気とか、ケーズデンキとか家電量販店が、メーカーから直接家電を買って売ってると思いますが、昔は家電量販店ってものが無くて、小規模の「町の電気屋」が多かったので、そういう所に取り次ぐ仕事があったわけですね。

おっさんのオカン

おっさんのオカンは、生まれも育ちも例の地方都市で、女子高卒。これまた、大学に行く金とかはないし、昔は女に学歴は要らないって社会でもあったので、高校出ると就職します。就職先は、はっきりとは聞いてないですが、確か、電気屋だと思います。つまり、オトンの会社の取引先ですね。

おっさん生誕

もちろん、ここでおっさん生誕となります。

おっさんが、Macに、出会った。。(下條アトム風

小学校高学年の時に、教室にMacがあったんですよね。先生が使ってるやつと、もう1台、ついでに生徒もちょっと使っていいよ、っていうのがありました。先生はMacでExcelとか使ってましたね。まだ、Windows95とかが出る前で、Microsoftはその当時からExcelをMac向けにも売ってたんですね。

で、そのついでに使ってもいいよっていうやつで、最初は絵を描いたり、HyperCardっていう、ちょっとした動的コンテンツを作れるソフトで色々工作とかしてました。HyperCardっていうのは、Flashの前身の前身みたいなポジションのやつかな。画面上にボタンとかを配置して、それをクリックした時のイベントハンドラのスケルトンを生成してくれるあたりは、その後のVBっぽい感じなのかもしれません。ただ、イベントハンドラやスケルトンというワードも知りません。「アレ」とか「コレ」とかって呼んでる状態です。

最初はみんなで競い合っていじってたんですが、次第にみんな飽きてきて、バスケとかに流れていきます。最終的にいじってるのは自分だけになってました。

ちなみに、この時期はスティーブ・ジョブズがAppleから追放されてる時期で、Apple冬の時代です。この段階でApple株買ってれば、今頃、左うちわの生活だったろうなぁ。。その後の「iMac」の時代でもまだまだ全然間に合ってました。。実際には買ってないですが、塾の友達の中にはお父さんに教えてもらって株買ってみた!とか言ってる人も居ましたから、ありえなくもない展開です。

オラの家にMacが来た!

学校のMacを独占できているにも関わらず、おっさんは、さらに、Macを自宅にも買ってもらいました。でも、オトンはあんまり賛成じゃないようでした。「子どもにそんな高いもん要らん!」という感じです。ただ、オカンは、「子どものうちからパソコンとか使えたら、凄そうだな」と思ったんだろうと思います。それで、オカンの独断で買ってもらった感じです。

ちなみに、買ったMacは20万円でした。今、20万円だと、かなりいいパソコンが買えそうですね。今だと自分には10~12万のパソコンで十分かなと思いますけど、当時のMacでは、20万ってのが一番安い部類だったんです。それもジョブズがデザインを指揮したわけでもない、今思えば、やや微妙なのが20万です。それでも、家にMacがあれば、使い放題ですから、良いです。

で、家にMacが来てみると、前から1つやりたいことがあって、Macの本体に幅15cmくらいの切れ込みがあるんですよね。今の若い人は知らないらしいですが、そうです!フロッピーディスクです。1.3MBくらいのデータを入れられる磁気ディスクのことです。それをその切れ込みに入れれば、データを持ち運べるってことです。セキュリティがどうのって時代でもないので、それを使って、家で作ったものを学校のMacで見せたりとかもできて、便利でした。

ちなみに、当時のおっさんのあだ名は「オヤジ」で、「おっさん」は友達のあだ名でした。ややこしいですが。。

中学時代

家にあるもんですから、ずっといじりまくってます。中学に入ると、友達2人と、割り勘でMacの雑誌を買ったりするようにもなります。『月刊Mac Power』とかがその代表格です。それに載ってる、HyperCardのプログラムを意味も分からないまま、写経して、動かして、おお!ってなったりとか、そのプログラムの一部を削ったり、変えたりして、どう動きが変わるのか、とかを見ながら、プログラミングの文法書とかなしに、徐々にプログラムもぼんやり分かるようになってきます。

いや、プログラミングの本も友達が買ってあって見せてもらったんですが、プログラミングの骨格の部分から積み上げていくスタイルではなくて、今思えば、一通り分かってる人が、リファレンスとして読むような、要するにライブラリの説明をした本だったので、それを見たからって、あんまり分かるようにはなりませんでした。

地方のパソコン作品展にも出展して、最優秀賞みたいなのももらいます。

高校時代

とは言え、パソコンは趣味であって、仕事としてやるものではない、という認識だったので、高校以降はそんなにいじらなくなります。

インターネットの時代になってるわけですが、Macを買ったのが早すぎて、インターネット時代を考慮したマシンじゃなくて、ブラウザを動かすためだけに仮想メモリをバリバリ使わないといけなくて、めちゃくちゃ遅いって状況で、でも、また20万出してもらうわけにもいかないので、離れて行ったってのもあります。

大学時代

パソコンと並行して、英語の勉強も実は結構やってたので、国際関係の勉強をすべく大学に進学してました(外国語学部ではないです)。それで、英語はもちろん、フランス語の授業なんかも取ってたわけなんですが、このあとドイツ語とか含めて色々何でも覚えたいな、って思っていて、図書館で、バイリンガルとかトリリンガルの人とかのエッセイ的な本を探していたら、『40ヵ国語習得法』っていう、明らかにインパクトのある書籍に遭遇します。

で、それを読んだわけなんですが、著者はニューヨークで眼科医をやってる日本人で、NHKのラジオ講座とかでドイツ語やフランス語を勉強して、日本国内の米軍基地で働いたりとかして、アメリカでの永住権を獲得して、ニューヨークで開業してるって話でした。外国語の勉強も趣味でずっとやってたら、40ヵ国語になってたそうです。

それを読んで、自分はどう思ったのか?というと、正直、面白くなかったですね。「なんだ、もう他の人がやり尽くしたことなのか。世界が狭くなってて面白くないな~。知らなきゃ良かった。」という感じです。

あと、大学の英語の授業では、一番、外国語をたくさん覚えた人は190ヵ国語ぐらい覚えたらしい、という話も聞きました。どうやって覚えたのかというと、聖書を使って覚えたそうです。聖書は言葉は古かったりしますが、完璧な訳が用意されてるでしょうからね。なるほどね~、と思いました。

他にもフランス語の授業で遭遇した人と絡んでいたら、人生めちゃくちゃになりました。痛すぎるので、詳細は略です。また、いつか書く気になったら書きます。

さらには、哲学書とかも読むようになってて、ニーチェとか、ニーチェの解説書とか色々読んでたんですが、めちゃくちゃになってる所に、さらにめちゃくちゃになった、というか、広島の爆心地のように、いったん何もない状態になりました。留年も1回してます。

就職活動

国際関係というか、普通の文系学生の就職活動をしてました。銀行とか、メーカーのバックオフィスとかの仕事です。でも、留年が効いてか、同じ大学の他の学生が行くような、大手の企業には全然ダメでしたね。唯一、日立系の大手SIerが興味を示してくれまして、面接に2回呼んでくれましたが、自分は経理の仕事を探してると、改めて説明したのが効いたのか、3回目は無かったですね。当時、SEはブラックで有名でしたから。。2ちゃんねるのブラック業界ランキングとかでも上位でしたし、AIとか特に有望なものが先に見えていたわけでもないですしね。ITから遠ざかってる自分が今さら考えても、IT系の勉強をちゃんとやってる人たちの後塵を拝するだけで、SEとか言いつつ、どうせプロジェクト管理だのなんだの言って、技術と関係ないことをやらされるだけで、何もかも遅いと考えてました。それだったら、経理とかのほうが、まだスキルが蓄積できて、ある意味、技術系と言えていいかな、と思ってました。

技術系っていいなって思ったのは、哲学とかを考え始めたことが影響しています。哲学を考えているのは、世間では変人です。そんな人は世間一般では受け入れられません。しかし、人間関係のウェートが大きい文系チックな仕事をしていると、それじゃ、やっていけないので、ジレンマに苦しむことになります。しかし、技術を蓄積して、それを使って何かする仕事というのは、具体的にできることがあれば、その人に頼まざるをえないので、多少変な人でもOKだと思うのです。

また、民法の講義では、先生から「自分は法律はこうあるべき!とかいう価値の話には興味はなくて、法律で何ができるかに興味があって、技術屋という立ち位置でやってます。」という話も聞きました。あぁ、なるほど、文系の中でも技術屋っていう考え方はありえるんだな、って、それで気付いたのもあります。

就職浪人

結局、現役の時はどこにも決まらず、というか、6月くらいから暑くなってきてやめてました。こんなクソ暑いのにスーツ着てうろうろするとか基地外過ぎる!っていう感じです。しゃあない、公務員試験でも受けようか、となって、勉強してるようなしてないような感じで、半年くらい経って、就浪時代に受けるわけですが、筆記は結構通るんですが、面接がダメでした。明らかに人生に希望を失ってる、グロッキーな状態ですから、まぁ、そうなるでしょう。16件筆記受けて9件受かって、9件のうち6件に面接で落ちた所で、金がなくなり(自宅外生なんで金がかかってます)、それ以上続けてるわけにいかなくなったので、2chだったかな、誰かから、転職サイトが使える、と聞いたので、転職サイトに登録したら、スカウトって機能があって、これなんだろ?と思ってONにしてたら、小規模なSIerから声がかかったので、金にも困ってたので、やってみるかってことで始めた感じですね。あ、ちなみに、スカウト機能は使わないほうがいいです。大体は、自分が行けるよりも、全然下のランクの会社から声がかかります。よほど金に困ってなければ、やめたほうがいいです。

Java時代

研修で教えてもらったのはJavaでした。同期は2人だけです。そもそも、10月入社なんで、普通の新卒入社じゃないです。中途扱いです。他の2人はCOBOLでした。今思えば、天国と地獄でしたね。助かりました。

とは言え、覚えたJavaでさっそくシステム開発やらせてくれるのかと思いきや、そうではなく、運用の仕事に飛ばされます。それも、いかにもアタマの悪そうな先輩がExcelでドキュメントをがんばって人力でいじってるような、運用と言うにも、微妙な感じの、何やってるのかよく分からん仕事です。他の先輩も居ましたけど、ほとんど絡む場面がありませんでした。しかも、そのアホなほうの先輩が月に2~3週間かけてやってる仕事を、VBAを書いて自動で1分くらいで済ませるようにしたら、「ナニ、ラクしようとしてんだよッ!」とか言ってくる始末です。「こいつバカか?プログラマーやめろ!」って普通に思いました。そんなこんなで、こんな所に居たら、とてもじゃないけど、アタマが腐ると思い、1年も経たないくらいで辞めました。

Ruby時代?

辞めてどこに行くっていうあてもあったんですが(大学の先輩がやってた会社でRuby on Railsの仕事)、よくよく聞いてみると、そこも、事業の継続性とかがうさんくさい感じで(実際、1年後につぶれてしまいます)、それを入社直前に嗅ぎ取ったので、そこに行くのは辞めました。Rubyも一通り勉強はしてあったんですけどね。。結局、別のSIerに転職して、C++でCADを作る仕事を始めます。

C++時代(時々C#)

CADを作る仕事では、ガッツリ、プログラムが書けたのは良かったんですが、C++っていうチョイスが微妙でしたね。今はウェブの時代なわけじゃないですか。C++をいくらやっても、普通の仕事はC++とは関係ありません。でも、自分がわざわざ選んだ結果でもあります。

どういうことかというと、基本情報技術者試験の受験科目で、Java以外にも、C言語も選べるじゃないですか。より確実に合格しようと思って、前職の時に、C言語についても何冊も教科書読んで独学してあったんです。それで、なまじC言語も分かるもんだから、これも役立てたいと思ってしまい、言語の歴史的には、C言語とJavaの間にC++もあるわけで、JavaはC++からかなりの影響を受けてるわけで、C++が分かれば、その間の歴史を埋めることができて興味深いかも、これもいいかも、と思ってしまった感じです。

確かに、その間の歴史を埋めることはできました。それに、C++ができれば、他の言語にも全然余裕で適応可能、というのはあるんですが、実際、そうであっても、雇う側は、必ずしもそうは思いません。「C++?組み込み系の人?うちのスキルセット(PHPやJava)とは違うなぁ」となるわけです。

というわけで、C++は1~2年くらいで良かったのに、なかなか抜けられないことになります。実は、C++より先に、最初はC#の仕事をさせられそうになっていたのですが、当時のC#は、まだまだ新参な感じで「何ソレ?MS専用?知らんなぁ」という感じで、まずはC++やらせてよ、と自ら泥沼にハマりこんだ感じです。時々、C++とC#のつなぎ目の部分で、両方分かる人があんまり居なかったので(C#も独学してました)、C#もいじってましたが、ガッツリC#をやる場面はなかったですね。

Selenium時代(Java)

その後、AndroidでJavaの仕事ができるって聞いて、別の会社に変えたら、それはほとんど嘘で、Android NDKって言って、要するにC++の仕事で、「いや、C++はもういいよ」ってなことで、他に何かないの?ってなった時に出てきたのが、Seleniumです。要するにブラウザを自動で制御して、結合テストを自動化したりとか、そういうやつです。ウェブシステム本体の開発ではないんですが、やっと、Javaの開発に戻ることができました。まぁ、このSeleniumってやつも、結構、魔窟なんですが、器用に使ってたほうだと思います。

Perl時代

時代というほどでもないですが、雑用のために他のメンバーが書いてて、それの続きの仕事をするのに、ちょっと書いてます。

Javascript時代

フロントエンドのリプレースの仕事があって、それでJavascriptガッツリな時期がありました。受託なんですが、見積もりに大失敗したらしく、連日、22時までの仕事です。残業代もほぼ出ません。経験にはなったと思いますが。。あ、Knockout.jsです。Vue.jsの手前のやつ。

Selenium時代、再開

いや、もう飽きたんですが。。とは言え、キリのいい所まではやりました。

PHP時代

飽きたので、PHPの仕事に脱出しました。でも、既にガッツリ作り込まれてるシステムのメンテだったので、それほど楽しくはなかったです。基本はZendのシステムですが、一部、Java(Seasar2)も使ってます。

運用時代(一部Ruby)

同じ会社の別の部署で運用の仕事ですね。ここでは、運用にRubyとかも一部使ってました。

Python時代

帳票システムで、Pythonとか使ってる時期もありましたね。

Vue.js+SpringBoot時代

Vue.jsはもちろんJavascriptで、SpringBootはJavaですね。今思えば、SpringBootはKotlinで書きたかったですが、Vue.jsを導入するだけでも、エネルギーがかかってて。。やたらとせかす人が居たんですよね。なんとしても、jQueryは回避したい、と思っていたら、そっちにエネルギーを取られたので、Kotlinまではできませんでしたね。個人的にはKotlinも勉強してありましたが。。いや、途中からKotlinに移行できるように、全部Kotlinにコンバートして、コンバートできない所は手修正したりして、移行できる万全の準備(Git Branch)はできてました。あとはマージするだけでした。でも、全然関係のないトラブルの余波で、やってる暇がないってことで、潰されました。

AI時代(Python)

いよいよ、AI、データ分析の時代です。運良く欠員ができて、やることができました。1年くらいですが、様々なAIのプロトタイプを作れました。価格推定、画像判定、文章生成、レコメンドなどです。これを活用すれば何でもできそうではあるんですが。。

Rust時代

これは趣味で勉強してただけですが、一応、勉強はしましたってことで。

P.S. やはり趣味の範囲ですが、その後、結構書いてます。

TypeScript時代

AIの仕事は、社内政治の余波で、部署全体が干されてしまい、できなくなりました。それで、また、Seleniumやってよ!みたいな話になってて、また、Javaでやるんだったら、何も変わらないから、それだったら、会社辞めたいぐらいだけど、そもそもが、会社がどうこうって言うか、ビットコイン自動売買をやるべきだし(ってここ数年ずっと思ってた)、会社にあんまりエネルギー使ってる場合じゃないってことで、一応、引き受けて、でも、少しは得るものがあるようにってことで、TypeScriptでやってる感じです。

おわりに

いかがだったでしょうか?まぁ、何が言いたいかと言うと、自然言語を40ヵ国語っていうのはやってないですが、代わりに人工言語をいくつも覚えてみた人生、ってことですね。ここまでは。。まぁ、まだ半分以上人生は残ってるので、この先どうなるかは分かりません。もしかしたら、数年後はセブ島あたりで年中バカンスでもしてるかも。。そうだといいなぁ。。あ、ちなみに、大学では、英語とフランス語以外に、ドイツ語、ラテン語、古典ギリシャ語も少しずつですが、履修してありますよ。余談ですけどね。では、また♪

※おっさんの人生のリメイク版もあります。こちらも併せてどうぞ。



この記事が気に入ったらサポートをしてみませんか?