
C言語教室聴講生(65535番)プロフィール
改めて、私のコンピュータープログラミング体験を振り返ってみます。
1980年代
1. 初めてのプログラミング (BASIC)
初めて触ったのがSHARP製のMZ-80シリーズで提供されていたBASIC言語です。SHARP独特の文法だったような記憶があります。
当時は電気屋の目立つところにPCが展示されていましたが、動かせるソフトの選択肢がそんなに無かったせいか、普通にコマンドプロンプトが表示された状態で放置されていることが多かったです。暇なパソコン小僧がPCを前に陣取って、雑誌片手に適当にプログラミングしたりしているとお店として返って見栄えが良かったのか、お店の人にむしろ歓迎されていたような記憶があります。
2. FORTRAN(BASICを経由して学びました)
大学の課外授業でFORTRAN講習を受講しました。
パンチカード1枚にソースコード一行分のコードを穿孔し、パンチカードの束を制御用のカード(ソースコードをコンパイル/リンク/実行するJCL)に挟んでカードリーダーに読み込ませ、実行結果は大型プリンタで両端に穴のある用紙に印刷される仕組みでした。
担当教授は経済学部の方で、国民所得と豚肉消費の相関関係を求めたり、統計値を移動平均して経済効果を検証したりとか、課題自体が楽しかったなぁ。
とにかく課題をクラス1番乗りで提出したかったので、教授の授業のあとすぐに自前のPCのBASICでプログラムしてロジックを検証し、FORTRANに翻訳するという、コンピューター言語の生成発展過程とは逆方向の作業をしてました。
1年間、課題提出1番乗りを頑張ったおかげで、翌年から講習の助手を拝命しました。先生の講義中は、先生の研究/授業用プログラムを開発し、プログラミング実習中は受講生のデバッグをサポートするというもの。自分が作ったプログラムのバグを見つけるのは大変なんだけど、他人のバグを見つけるのは不思議と簡単で、修復した時はとても気持ちが良いことを学びました。
ご褒美は、大学電産センターの施設を無料で使い放題だったこと。「先生のお手伝い中です!」ですみましたからね。天国でした。
3. PL/I(汎用性が高い開発環境?!)
「君たちは文化系学部出身なんだから、事務処理系に強く汎用性が高いコンピューター言語を習得するべきだ」という商学部教授の口車に載って1年間勉強しましたが、ごめんなさい、ちっとも記憶に残っていません。
社会人になって、何百本という事務処理用業務アプリを開発・メンテしてきましたが、PL/Iに触れることは、残念ながらその後一度もありませんでした。
4. アセンブリ語(プログラムでお金をもらった!)
私のPCで使われていた日立製6301(モトローラ6800互換)のアセンブリ語を独習しました。テキスト見ながらニーモニックでコーディングし、ニーモニック表を見ながらアセンブリ語に置き換えるという作業(ハンドアセンブル)をして遊んでました。
そんなある日、とあるパソコン雑誌で募集していたアセンブラを含む拡張システムROMの懸賞に当選。改めてこのちょっとクセのあるアセンブラで作ったプリンタドライバと、拡張システムを応用して自作したBASICアプリの紹介等と併せて記事として提出したら、偶然にも雑誌に掲載され、原稿料をいただくことができました。
編集部から「君、大学4年生だよね?就職決まった?良かったらうちに来ない?」とのお誘いを受けて大いに迷いましたが、文才のない自分が編集部でやっていけるはずはないと我に帰り、、、今に至ります。
並行世界に住んでいるだろう「編集部に就職した私」は今頃、どうしているのかなぁ?
5. COBOL(バッチ処理/オンライン処理)
就職して社内用ソフトウェア開発部門に配属されました。
「学生時代に、教授の助手をしてました」といったのが効いたのかもしれません。でも、業務で必要なのはCOBOLだと聞いて愕然。PL/Iじゃなかったのかよ、、、先生の嘘つき(苦笑。
就職したのは、関西系のちょっとクセある会社で、「これから1ヶ月でマニュアル読了して、課題5つを完成させること。出来なかったらクビね。」配属早々にクビ宣言されてしまいました。指導教育担当の先輩はとても良い人だったけど、とても忙しい人でもあったので質疑応答の時間をとってもらうのも憚られ、とにかく自分でやるしかありませんでした。
就職して最初の数ヶ月は、関西弁とCOBOLという2つの言語を習得するので苦労しました。
その頃、バッチ処理からオンライン処理系への移行がはじまりつつある時期でした。中堅の先輩が大阪市内で開催されるメーカー主催のオンライン処理系開発の講習会に参加することになっていたのですが、業務都合で参加できなくなり、「おい新人、お前まだ仕事がなくて暇だろう。もったいないから代わりに受講してこい」と言われて参加することに。
ちょうど講習が終わって帰宅途中、街の様子が異様だなと思ったら、阪神タイガースが21年ぶりのリーグ優勝を果たしたとかで、まさにお祭り騒ぎだったのを覚えてます。
ところがです。事務所に帰った途端にオンライン処理系の開発・メンテナンスの仕事が私に回されるようになり、、、その流れで、米国子会社の基幹システム開発・メンテ・運用要員として、日本製メインフレームと一緒に私自身が輸出されることになったのはこの3年後のお話。
1990年代
6. C言語、C++言語
米国子会社で、明けても暮れてもCOBOLプログラミングとメンテナンス作業に追われる日々。このままでいいのか?来るべきダウンサイジングの時代、クライアントサーバーの時代を生き残るのに、COBOLで大丈夫か?という焦りのもと、たまたま会社が斡旋する通信教育メニューで見つけたのがC言語。教材としてBDS-Cというサブセット版のCコンパイラが安価で付属していたのが魅力的でした。
しかしこれも前述のPL/I同様に、使用目的が明確でないので、学習に身が入らない。単なる文法の解説は、当時の日本の英語教育みたいでつまらない。
結局、受講修了証をもらうために課題はクリアしたものの、身につかず。
「これはきっと、サブセット版を使っていて制約が多いからいけないんだ。トレンドはオブジェクト指向言語だ。そうだ、C++をやろう!」と背伸びしてボーランド社のC++を購入したものの、英語版のマニュアル・参考書でオブジェクト指向の「イロハのイ」から始めるのはやはりハードルが高すぎて早々にリタイア。実はこれがトラウマになって、C言語には未だに苦手意識があります。
7. ロータスノーツ「式」/エクセル「式」、 ロータススクリプト/VB
帰国してアサインされた仕事は、当時流行のクライアントサーバー環境での情報共有・ワークフロー系のアプリケーション開発。ロータスノーツを稼働させるための開発環境です。
ロータスノーツ「式」は、エクセルの式とそっくりだし、ロータススクリプトはVBにロータスノーツの独自環境に準じたクラスが追加されたもの。
この流れで逆にエクセルの式とかVBも習得することができました。
改めて振り返ると、BASICとFORTRANの時みたいに、世の中とは異なる方向へ私のコンピューター言語環境は推移していたようです。
8. キャリア・チェンジ、そして、、
私がSEとしてプログラミングしていたのはY2Kの頃まで。そのあとはユーザーとして、エクセルの処理を自動化するマクロをVBAで作ったりする程度でしたので、この辺りでプログラマとしての進化は止まっていました。
2020年代
さーて、そろそろ再スタートしますか、、
そんな中、以前から気になっていたNoterさんであるkznさんが、C言語教室を開始されたのが目に留まり、単なる文法書ではない興味深い内容に惹かれ、もう一度始めてみようかなと思った次第です。
正直、日本帰任直前でバタバタと忙しいのですが、そういう追い詰められた時に限って、思いっきり分野の違うことをしないと心のバランスが取れない。ちょうど大学4年の冬に、卒論を纏めつつ雑誌の記事を執筆していたときのような感じ。
今しばらく助走しつつ、引退したら思い切って本格的にプログラムング生活を再開しようかな!?
でも、この歳では、もう無理?
ボケ防止にはいいかも、、、。
まぁ、気楽に続けようと思います。
ここまで読んでいただき、有難うございました。
いいなと思ったら応援しよう!
