2015年9月2日水曜日

Webとプログラミングと仕事と私

私は留学前はいわゆるSEとしてWebアプリケーションの開発に携わっていたのですが、私にとってのWebやプログラミング、またWebアプリケーション開発の仕事の履歴など振り返ってみたいと思います。

以前の投稿でも書いたとおり、私は2年の留年を含む8年間Computer Scienceの学生をまがいなりにもしていた(というか大学に 籍を置いていた)わけですが、大半はサーフィンをしていました。学部の単位は、卒業要件を満たすために、留年の2年目にしてようやく本格的に開始する体たらくでした。

ただ、大学院の2年はさすがに研究っぽいことをしました。分野は画像処理でプログラミング言語はCです。とにかく研究室の滞在時間を短くするためにいかに短い時間で教授への報告を誤魔化すかばかり考えていた気がします。さいてーですね。常に教授にキれられていました。(ただ、、、という文頭から大学院では真面目に何かやったのかと思わせてからのやっぱりやっていなかったという結果です。)

一方、趣味でWebサイトを作ったり掲示板(なつかしい、、、)を運営しており、Webの知識や、しょーもないことのためには時間を惜しまない性格から、Napstar、WinMXやWinnyを使いこなすべくP2Pプロトコルにやたら詳しくなったり、フリーソフトを組み合わせて自動でDLできるようなツールを作ったりしていました。プログラミングは(プログラミングと呼べるかは別として)HTMLやJava Scriptなどを書いていました。

縁あって、というか本当たまたま大手SIerに就職し(というか拾ってもらい)とにかく最初の4年くらいはひたすら働いていました。

入社後研修でJavaとSQLの集中講義を受けて1ヶ月でWebアプリを作るというなかなか実践的な研修を受け、現場に配属された後は、Javaで画面やバッチアプリケーションのプログラミングをしながら、SQLのクエリを書くというところから始まりました。

基本的にWebアプリケーションのアプリケーション部分は、フレームワークで可能な限りラッピングして、各アプリケーション開発(というかもはや製造の工場ライン)に考えさせずに単純作業にさせるか(それで大量生産するか)というところが肝だったので、アプリ担当として短期間に何十画面もコーディングしていると、ある程度のバリエーションをカバーした時点で飽きてきます。

根っからの飽き性なので飽きてくるとつまんなくなって会社に来なくなる、会社をさぼってサーフィンに行き始めたりするのです。上司も元プログラマだったのでそれを知ってか知らずか、とにかく飽きたら新しいこと飽きたら新しいことを与えられていました。

1年目で各アプリケーションのコーディングに飽きると、2年目は、Webアプリケーションの標準部品を作ったりStrutsをベースとしたWebアプリケーションフレームワークのカスタマイズをしたり、標準化のドキュメンテーションをしたり、各アプリケーションの共通サービスやロジックの開発などをコーディングします。

3 年目にはそれにも飽き、ApacheやTomcatといったミドルウェア設計に手を出し始めます。DBはPL/SQLを書いたり、Oracleのデータベースの物理・論理の構築やERモデリング、性能検証やチューニングなどもして、設計から開発、運用、保守という「アプリケーションを作って動かす」ということを俯瞰する中で飽きたら次、飽きたら次とこなしていきました。

アプリケーション開発の案件は一から新規で作るというのもあれば既存のソースを解析して、リバースエンジニアリングするという案件もあり、この頃にはC#, PHPなども解析のために読むようになっています。OSはLinuxを扱っていたのでshellを読み書きするし、SQLは、データベースを作るところから性能検証、メモリチューニングまでの幅広いクエリを書くようになります。PL/SQLを書いたり、Indexを貼ったり、パフォーマンス改善のためアプリ開発者にSQLのお作法を指導する指南書を作ったり、私自身は職人タイプではないので(残念ながら)決して精通はしないのですが、構造を知り、職人集団とともに難問を解いていくような仕事をしていました。

一方、チームマネジメントといったところはあまり興味がなく(今もないですが)、やりたいやつがやれば?とずっと思って仕事をしていました。最初の方は、パートナーさんのモチベーションを上げる!みたいな思いもありましたが、直になくなります。

基本的にタスク管理とかスケジュール管理とかくだらねーなー、チームメンバーのモチベーションコントロールとかもそんなの自分でコントロールしろよ、やりたくなきゃやめろよ、と思っていたので基本的にマネジメントはできそうなやつに無茶振りして、あぶれたら自分がサポートするというスタイルでした。(スタイルというか適当というやつです。)

それもあってか、4年目は、上海に滞在して、日本の開発環境を上海に再現し、ハングリーな中国人エンジニアに製造させるという工場長のようなことをします。中国人はハングリーでしたから、「Do it.」「Yes, Sir」で済む、最高でした。なんのことはない、上海の開発も回り始めるとあとは、軍曹のような中国人プロマネに任せて、チャリンコで上海の街を探検したり、スイミングクラブを探して泳いだり、日本人女性を手玉にとる中国人ホストとつるんでみたり、海南島という中国の南にあるサーフスポットへのトリップを計画してみたり、要するに遊び始めます。

そして上海2年目の頃に留学することを決めました。プロジェクトマネジメントは、新しいことを学ぶというよりもいろんなプロジェクトを経験することで勘所を掴むというタイプの技能だと思っていますが、その職人の匠的な技能習熟には興味が持てず、「もうあかん、やることの白地がなくなってきた」という危機感と以前にも投稿した英語習得、MBAという新しい学びの分野を開拓することに興味と関心が向くのです。

上海から帰ってきて、企画し始めるとますますビジネスの基本要素を学ぶ事のモチベーションが高まり、MBAへの思いが固まります。なんかよくわからんけどおもしろそうだ、と。

次回は、留学から帰国後に趣味で触り始めた、PythonやScala, や昨年Appleが発表したSwiftやiOSアプリ開発などについて書いてみたいと思います。

0 件のコメント:

コメントを投稿