素人からエンジニアになった後の3年を振り返る(その1~研修時代編)
まえがき
上司:「今後の新人研修の参考にしてみたいから、今までどんなことしてきたのかちょっとまとめて~」
大学では農学を学び、IT業界についてはほぼ素人という意味では
文系SEとかプログラマーと言っても良かった自分が、
エンジニアとして今まで何を学んで今に至ったのかを少し詳細に振り返ってみる。
テーマは、(主にプログラミング方面で)どの時期に何を学んで、何を考えたのかについて。
ネットを賑わせる新人エンジニアの活動歴はどうにも華々しすぎて、胸がいたいので、
普通の人はきっとこんな感じだよ、ということで公開してみる。
経歴
入社前のスペック
1社目(独立系SIer時代)
いわゆる下請け会社ではあったが、一次案件もそこそこあったり、自社パッケージ売ってたり。
技術へのこだわりを掲げる会社だった。先輩社員たちにはレベルの高い人も多かったが、
外部イベントに積極参加したり、情報を発信しているような人はほぼいなかったように思う。
新人研修
新人研修は手厚くやるのをウリにしている会社だった。(自分もそこをアテこんで入社した)
基本的には毎日ひらすらプログラミングをしていた。
これとは別に、3週間に1日程度の間隔で「スポット講義」と呼ばれる講習を受けた。
内容はテストやツールの使い方、オブジェクト指向、ネットワーク、データベース、など
研修前半(~2013/05)
- 作者: B.W.カーニハン,D.M.リッチー,石田晴久
- 出版社/メーカー: 共立出版
- 発売日: 1989/06/15
- メディア: 単行本
- 購入: 28人 クリック: 721回
- この商品を含むブログ (200件) を見る
windowsでVirutalBox使ってCentの上でいきなりプログラミングスタート。
同期達もLinux&CUIに詳しい人は少なく、随分苦戦した。
社内オリジナル問題集の進め方(主に5月)
所感
C言語とデータ構造の基礎を学べたことはとても良かった。
特にK&Rではスタックとハッシュテーブルを実装する章があるが、そこは非常にためになった。(特にハッシュテーブル)
こういったものは現在の高級言語では予め用意されているので、利用するだけになってしまうが、
最小限の道具だけでアルゴリズムとデータ構造を学ぶのは、その後の知識の「ノビ」を左右する大事な土台になると思う。
ポインタを学ぶこととメモリ管理を学ぶことは、現在の高級言語でも確実に生きるはず。
K&Rがなぜ今でもバイブルとして取り上げられるのかを肌で感じた。
(ただし、K&Rは日本語版の訳が怪しいとか微妙な問題はいくつか抱えているし古臭いという批判もわかる。)
この時点ではLinuxの知識もviの知識もほとんど増えていなかった。
viはとりあえず編集は出来る、というだけで各種ショートカットは少ししかわからず。
コマンドもファイル移動やsvnのコマンド程度。
今となっては、せっかくやるならもう少し手厚く学べてもよかったのかも、と思う。
研修後半(~2013/09)
- 言語:JavaSE6
- 環境:Windows + Eclipse
- ビルド:Maven2
- テスト:Junit4
- コード管理:SVN
- チケット管理:REDMINE
- 教科書:明解Java 入門編 + 社内オリジナル問題集
ただし、教科書は最初の1周間読むだけで後はリファレンスとして使う。
ここで、クラスと継承やインターフェイスなどのCにはない要素だけかいつまんで学び、
あとはもっぱら社内オリジナル問題集を説いていた。
進め方はCの時とほぼ同じ。テスト書く→レビュー→コード書く→レビュー
- 副読本
EFFECTIVE JAVA 第2版 (The Java Series)
- 作者: Joshua Bloch,柴田芳樹
- 出版社/メーカー: 丸善出版
- 発売日: 2014/03/11
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (10件) を見る
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (401件) を見る
実践Javaコーディング作法 プロが知るべき、112の規約と21の心得
- 作者: 森崎雅稔
- 出版社/メーカー: 日経BP社
- 発売日: 2014/12/19
- メディア: 単行本
- この商品を含むブログ (1件) を見る
「いきなりは難しいかもしれないけど、ある程度研修進んだ段階で読むといいよ~」と渡された本。
特にEffective Javaは研修終わってしばらくしてから読んで抜群に効いた。
これを読んでないJavaプログラマはモグリと呼んでいいとさえ思う。
研修内容
所感
オブジェクト指向入門期。
まだまだコードはこなれてなかったように思う。
わからないこと、多少問題に関係がなくても興味があったことはとにかくググりまくっていたのが良かった。
特に9月は自分で課題を設定して、好きに機能を作れたのでとても充実していた記憶があった。
Webアプリケーション(+MVCアーキテクチャ)は初体験だったが一気に知識が増えた。
また、それを許される程度の時間の余裕があったのも嬉しかった。
Java6は派手な機能もなく今となってはレガシーだがその分シンプルにオブジェクト指向言語を学ぶことが出来た部分もあったように思う。
自習学習
8月か9月にリーダブルコードを読んで世界が広がった。
レビューでは自分のコードのおかしいところを指摘されたが、その場その場の話題だけで終わってしまっていた。
それを体系的にまとめて提示してくれた本がこれ。
あらゆるIT会社の新人研修で配られるべきだとすら個人的には思っている。
特に、変数・メソッドの命名、メソッドの引数に何を渡すのがいいのか、そういったロジック周辺のことを考え始めるキッカケになった。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (133件) を見る
この後、現場に配属されることになる。
~つづく。~