FORTRANから始まって41年 [プログラマー現役続行]
1978年4月、大学一年生で初めてのプログラミングをFORTRANで学びました。それから、今月末で丸41年が過ぎたことになります。今と違って当時は、プログラミングは大学の計算機センターに行かなとできませんでした。当時の九州工業大学の計算機センターは、幸いパンチカードではなく、TSS(Time Sharing System)の端末を使ってプログラミングできました。でも、自分の学科(情報工学科)のさまざまなコースの演習は違っていました。
コンパイラの授業では、パンチカードを使ってPL/Iでプログラミングしました。パンチ室が3階で、計算機室が4階だったので、自分が書いたコンパイラのコードである7百枚ぐらいのパンチカード(つまり、700行のソースコード)を持って3階と4階を行ったり来たりして、デバッグして完成させました。
CPUの内部を学習する授業では、APLで動作が記述されている英語の教科書でした、その授業の最終課題は当時の情報処理技術者試験のアセンブリ言語をAPLで書けるようにする一種のDSLの作成でした。APLには130個以上の演算子があり、計算機センターのAPL端末で苦労しながら演算子を探して課題を仕上げました。
「コア」メモリの計算機を使った実験演習もありました。アセンブリ言語でプログラミングするのですが、プログラムは手書きで紙に書きます。そして、それを手作業で変換して(人間アセンブラー)16進数の機械語にして、手書きで紙に書きます。その紙に書かれた16進数の機械語をコアメモリの計算機のパネルスイッチを使って、2進数で1命令ずつ手作業で入力するものでした。
大学4年から大学院修士課程の2年生までは、HOLENETと呼んでいたローカルネットワークシステムをハードウェアの作成から通信プロトコルの作成までを行い、8ビットCPUである、Z-80のアセンブリ言語でプログラミングしていました。
41年の間、さまざまなソフトウェア開発に従事し、一人のソフトウェアエンジニアという立場だけではなく、開発のマネージャや開発部門の部門長などを経験してきました。そして、今は、一人のソフトウェアエンジニアとしてソフトウェア開発に従事して、Go言語で毎日開発しています。昨年6月にメルペイ社へ入社以来、開発に従事してきたあるマイクロサービスも本番運用され始めます。私にとっては、人生で初めてのウェブサービスです。
この41年間を振り返ってみると、特定の技術知識とは別に、以下のことが重要だと思います。
コンパイラの授業では、パンチカードを使ってPL/Iでプログラミングしました。パンチ室が3階で、計算機室が4階だったので、自分が書いたコンパイラのコードである7百枚ぐらいのパンチカード(つまり、700行のソースコード)を持って3階と4階を行ったり来たりして、デバッグして完成させました。
CPUの内部を学習する授業では、APLで動作が記述されている英語の教科書でした、その授業の最終課題は当時の情報処理技術者試験のアセンブリ言語をAPLで書けるようにする一種のDSLの作成でした。APLには130個以上の演算子があり、計算機センターのAPL端末で苦労しながら演算子を探して課題を仕上げました。
「コア」メモリの計算機を使った実験演習もありました。アセンブリ言語でプログラミングするのですが、プログラムは手書きで紙に書きます。そして、それを手作業で変換して(人間アセンブラー)16進数の機械語にして、手書きで紙に書きます。その紙に書かれた16進数の機械語をコアメモリの計算機のパネルスイッチを使って、2進数で1命令ずつ手作業で入力するものでした。
大学4年から大学院修士課程の2年生までは、HOLENETと呼んでいたローカルネットワークシステムをハードウェアの作成から通信プロトコルの作成までを行い、8ビットCPUである、Z-80のアセンブリ言語でプログラミングしていました。
41年の間、さまざまなソフトウェア開発に従事し、一人のソフトウェアエンジニアという立場だけではなく、開発のマネージャや開発部門の部門長などを経験してきました。そして、今は、一人のソフトウェアエンジニアとしてソフトウェア開発に従事して、Go言語で毎日開発しています。昨年6月にメルペイ社へ入社以来、開発に従事してきたあるマイクロサービスも本番運用され始めます。私にとっては、人生で初めてのウェブサービスです。
この41年間を振り返ってみると、特定の技術知識とは別に、以下のことが重要だと思います。
- 新たなプログラミング言語への取り組み
- コンピュータ・サイエンスの基礎
- 継続的な学習習慣
- きちんとしたAPI仕様の作成能力
- よみやすいコードを書く能力
- テスト駆動開発の実践
- テスト設計能力
- 若手人材を育成していく能力
- 教育を行う能力
- 文書作成能力
- 英語能力
- ウェブ関連の技術
- DB/SQL関連の技術
2019-03-15 11:38
コメント(0)
コメント 0