id:sinsoku さんが今までソフトウェア開発について勉強してきたことのふりかえりというエントリで学習してきたことをふりかえっていて、僕も転職を機会にまとめてみようかと思います。ただし、僕はエンジニアという大まかな括りで書いてみます。
とりあえず、期間はアルバイト時代からケイビーエムジェイ入社までの期間です。
アルバイト一社目
Linkedinには社名を書いていますが、社名は伏せておきます。よくわからないけど。
主な業務内容はVisual Basic 6でのGIS開発でした。当時はまだGoogle Mapsとか無かった時代で、G-XMLの動向についてが注目されていたような時代です。
アルバイトだったので研修などはありません。いきなり数万行(数十万行かな?)のVisual Basicのソースコードを渡されて改修するというものでした。
最初の一ヶ月程度はVisual Basic自体に慣れることと、本を頼りに文法などを学習するのがメインでした。最初にソースコードを渡されていたので、それ自体もよい勉強になりました。例えば、ModuleだらけでClassにしていないのは明らかにおかしいコードが散見されることとかです。
一ヶ月経過するころにはある程度コードが書けるようになるので効率が上がっていきます。しかしながら、それは同時に開発者が一名から二名に増えることを指すため、CVSでのコンクリフトが発生し始めるようになります。酷いときにはサーバにログインしてゴニョゴニョと直すという変な能力を身につけることとなります。
開発者として特に学んだのはXMLについてでした。
一つ目はG-XMLをSVGで出力させたらすげーよくねとかいう話になって単純にSVGについて勉強したり、MozillaでSVGが動くバイナリをビルドして試したりとかしていました。こちらは全く実用的になりませんでした。
二つ目はなぜかVisual BasicにXULがあったら面白くない?と妄想してXULの仕様(これはもともとある程度把握していた)と、実装を行なうためにVisual Basicで普通に使えたMicrosoftのライブラリについて勉強して実装をしていました。そういや、今度Microsoftのイベントに壇上するまゆきさんにVisual Basicについて日記経由で教えてもらったのもこの話が元ネタでしたね。
ちなみに、Visual BasicでXULを動かすやつは実装後にあまりに使えないのがわかって、退職時にこのコード消していいよと伝えていたのですが、後にこれが悲劇を生み出します。これは後述。
あと、当時Rubyに挫折した(その前にPerlもPHPも挫折済み。Tcl/Tkとschemeがメインでした)のですが、「RubyがわからなければPythonだ」という安直な考えでPythonを勉強していました。この知識が元となり、国土地理院のデータを変換するコンバータなどを開発して、Visual BasicでラッパーのGUIを作りPy2exeで作ったexeを叩くというのをやっていました。
なお、僕の最後の仕事は便所掃除でした。何故最終日に当番回ってくるんだ...
当時読んでた本はここらへんです。
- 作者: Mark Lutz,夏目大
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/26
- メディア: 大型本
- 購入: 11人 クリック: 389回
- この商品を含むブログ (116件) を見る
eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング (OOP foundations)
- 作者: 日本XPユーザグループ,長瀬嘉秀
- 出版社/メーカー: 翔泳社
- 発売日: 2001/11
- メディア: 単行本
- クリック: 19回
- この商品を含むブログ (14件) を見る
アルバイト二社目:株式会社アーツテック
アルバイト二社目では多岐に渡る開発を行いました。
最初の仕事はApacheのログ解析でした。ここではPythonで解析を行い、その結果をGNU Plotで出力して見せるというのを作りました。
一週間後、何故か前のアルバイト先のアルバイト仲間が転職してきます。そしたら、その当時の上司と前職の上司が何やらIRCで悪巧みを始めました。「二人がいるんだったらうちの仕事回せるよね」何故か前の会社の案件が舞い込んでくることに。
そして、案件スタートして驚愕の事実がわかります。先ほど、退職時にこのコード消していいよと言ったXULを真似たやつが改変された状態で復活していました。聞いてみたら、僕が退職後に入ったエンジニアがこのコードを見て使えると思ったらしく復活させたらしいのです。ここで、害悪となるコードは責任を持って消さないといけないというのを学びました。
案の定、その案件はその害悪コードもありデスマーチ化します。ここで初めてデスマーチを学びました。バイトだぞ?
そして、バイトが忙しいため就職活動ができない状態に陥ります。その話を査定の時にちらっとしたら、次の日に内定が出ていました。やはりこれも後悔するので、就活時期のデスマはもってのほかというのを学びました。いいですか、学生アルバイトをしている皆さん、就活中のデスマは危険ですよ!
ちなみに、もじら組組長になったのはこの時期です。それはおいとくとして。
次にしばらくはサーバメンテナンスなどの仕事がメインとなり、アルバイトも週数日だったので大きな仕事は振られない状態でした。
で、夏休み前に上司から言われます。「Javaできる?」フラグですね。どう見てもフラグですね。
僕は「Java Appletなら」と言ったら「問題ない」という返事が来て渡されたのがJava WorldのStruts特集をコピーしたものでした。「これ読めばわかるから」なんだそれは。
また、アプリケーションサーバとしてJRunを、プレゼンテーション層としてColdFusionを使うというのが決まっていました。
そのため、JRun+ColdFusion+Strutsという構成でアプリケーションが構築できるようにするために各ミドルウェアの勉強をして、一週間ぐらいかけて環境を構築します。そしたら、作ったあとにIBM Developer Worksにて同じような組み合わせの環境構築方法が公開されました。ショックでした。
そして、そのプロジェクトはどんどん魔窟になっていきます。またもやデスマーチです。僕はエンジニアとして、椅子を並べて寝るよりも床で寝る方が負担が少ないことを学び、対象外ブラウザだろうが構わずJavaScript Debuggerを使って動的にオブジェクトを解析する方法を学び、スレッドプログラミングでデータベースの負荷を減らせる術を学び、SQLServerとSybaseのストアドプロシージャについて学び、1クラスが1万行を超えると脳みそがパンクすることを学び、銭湯の営業時間は早めに調べておかないとまずいことを知り、小人さんが実在することを知ることになります。
当時読んでた本はここらへんです。
Jakartaプロジェクト徹底攻略―WEB+DB PRESS Special Issue (Javaエキスパート・シリーズ)
- 作者: 技術評論社編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2002/09
- メディア: 単行本
- 購入: 2人 クリック: 122回
- この商品を含むブログ (8件) を見る
WebDAVシステム構築ガイド ――Apache/IIS/Subversion/Jakarta Slide
- 作者: 宮本久仁男,山田泰資,渡邊剛
- 出版社/メーカー: 技術評論社
- 発売日: 2003/12/20
- メディア: 単行本(ソフトカバー)
- クリック: 104回
- この商品を含むブログ (41件) を見る
アンドキュメンテッドMicrosoftネットワーク―誰も知らなかった「ネットワークコンピュータ」の秘密 (達人の道)
- 作者: 高橋基信
- 出版社/メーカー: 翔泳社
- 発売日: 2002/06
- メディア: 単行本
- 購入: 3人 クリック: 12回
- この商品を含むブログ (25件) を見る
- 作者: Samuele Pedroni,Noel Rappin,Jim Hugunin
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2002/03
- メディア: ペーパーバック
- 購入: 3人 クリック: 9回
- この商品を含むブログ (5件) を見る
- 作者: Christopher A. Jones
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2001/12/15
- メディア: ペーパーバック
- クリック: 2回
- この商品を含むブログを見る
- 作者: イーサンセラミ,Ethan Cerami,長瀬嘉秀,テクノロジックアート
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/07
- メディア: 単行本
- クリック: 9回
- この商品を含むブログ (5件) を見る
社会人一社目:株式会社アーツテック
社会人初日、スーツで出社したところ社員みんなに笑われ、社長挨拶が「今年の新人は松澤君だけなので新人研修はありません」という事務連絡で、社会人初日に一人で客先に行ったらお客さんから「なんでスーツ姿なんですか?」と言われた。アルバイトから新卒入社は世知辛いというのを学びました。
最初はサーバ関係の仕事がメインでした。その時、こんなエピソードがありました。俺「このサーバのパスワードわかりづらいですね」上司「劇場版宇宙戦艦ナデシコ見てればすぐ覚えるだろ!」アニメ見てないだけで不理事に怒られることを学びました。というか劇場版とか難易度高い。
初年度の夏に差し掛かるぐらいから開発案件が入って来ました。担当はJava+Tomcat+Struts+OracleによるWeb開発及びJava+Swing+Oracleによるクライアント開発及びサーバ保守でした。長いデスマでした。
ここではOracleの管理方法を学び、first_nameというデータベースフィールドに性を入れる設計をしたエンジニアは死ぬべきだというのを学び、3UのUPSを一人で持ち上げてはいけないことを学び、UPS付属のソフトが使えないので普通にLinuxディストリビューションから入手できるソフトを駆使してネットワーク越しに安全にシャットダウンさせる方法を学び、ドットプリンタの微調整がいかに難しいかを学び、USBトークンを使ったなんちゃって認証(PPTPで接続するのに使った)を作る手段があることを学びました。最後は学んだというよりもVBAを駆使して結構えげつないことをする方法を発見するというものでしたが...
また、上記の案件で心が折れていたので、他の先輩が気晴らしも兼ねて他の案件にも入るように計らってくれました。
その案件では、お客さんと交渉する手段やお客さんが困っているものを引き出す方法を学び、インターネットVPN(IPSec)の構築方法を学び、お客さんのセキュリティの講師を担当し、Active Directoryの設計を学び、出張先で飲み過ぎるとやばいことを学び、UPSが初期不良で燃えることがあるのを学びました。まぁ、他にもいろいろ勉強させていただきました。あと、結局コードは書かずに終わりましたけどDelphiについても学びました。
担当するサーバ、ネットワーク機器も多く、Windows 2000 Server, Windows Server 2003, Debian GNU/Linux, Miracle Linux, FreeBSD 2.x, どこのメーカか忘れたL3スイッチ, YAMAHA RTX1000, 古めのCiscoのルータなどをいじっていました。それぞれはあまり大したことができていませんが、多くの環境が触れるというのは結構よかったと思います。
あと、途中に C Magazine での特集のお話をもらい、Firefoxのソースコードについて解説する記事を担当することになります。とりあえず C++ の初心者本を会社から借りて読んでから、手探りでソースを読み、ビルドをひたすら繰り返して記事を書きました。この時にはGNU Globalがソースリーディングで役に立ち、言語によってソースリーディングをするときに使えるツールを探すとよいのを学びました。
当時読んでた本はここらへんです。
- 作者: トム・デマルコ,伊豆原弓
- 出版社/メーカー: 日経BP社
- 発売日: 2001/11/26
- メディア: 単行本
- 購入: 14人 クリック: 113回
- この商品を含むブログ (108件) を見る
- 作者: トム・デマルコ,ティモシー・リスター,松原友夫,山浦恒央
- 出版社/メーカー: 日経BP社
- 発売日: 2001/11/26
- メディア: 単行本
- 購入: 26人 クリック: 326回
- この商品を含むブログ (191件) を見る
- 作者: トムデマルコ,Tom DeMarco,伊豆原弓
- 出版社/メーカー: 日経BP社
- 発売日: 1999/03
- メディア: 単行本
- 購入: 13人 クリック: 108回
- この商品を含むブログ (157件) を見る
- 作者: Thomas A. Limoncelli,株式会社クイープ
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2006/10/19
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 313回
- この商品を含むブログ (152件) を見る
ネットワークアドベンチャーへ、出かけよう (はじめて学ぶ人のための標準ネットワーク講座 (基礎編))
- 作者: 宮本久仁男,櫻井敬子
- 出版社/メーカー: 翔泳社
- 発売日: 2004/07/17
- メディア: 単行本
- クリック: 5回
- この商品を含むブログ (13件) を見る
- 作者: Brett McLaughlin,須賀祐治,寺田美穂子
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2002/05
- メディア: 単行本
- 購入: 1人 クリック: 4回
- この商品を含むブログ (13件) を見る
- 作者: ピーターハガー,Peter Haggar,ドキュメントシステム
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2000/08
- メディア: 単行本
- 購入: 4人 クリック: 33回
- この商品を含むブログ (20件) を見る
Effective Java 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2008/11/27
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 848回
- この商品を含むブログ (257件) を見る
- 作者: Robert Simmons Jr.,福龍興業,佐藤直生,木下哲也,石井史子
- 出版社/メーカー: オライリージャパン
- 発売日: 2004/10
- メディア: 単行本
- 購入: 10人 クリック: 150回
- この商品を含むブログ (83件) を見る
Delphiオブジェクト指向プログラミング (ソフトウェアテクノロジー)
- 作者: 塚越一雄
- 出版社/メーカー: 技術評論社
- 発売日: 1997/04
- メディア: 単行本
- クリック: 2回
- この商品を含むブログ (10件) を見る
- 作者: 栗田正樹
- 出版社/メーカー: ソーテック社
- 発売日: 2002/09
- メディア: 単行本
- クリック: 18回
- この商品を含むブログ (3件) を見る
UML モデリングのエッセンス 第3版 (Object Oriented SELECTION)
- 作者: マーチン・ファウラー,羽生田栄一
- 出版社/メーカー: 翔泳社
- 発売日: 2005/06/16
- メディア: 単行本
- 購入: 8人 クリック: 248回
- この商品を含むブログ (91件) を見る
続きは...
株式会社ケイビーエムジェイ入社後についてはまた別途エントリを書きます。