新卒が戦力になるまで通常1年、本書があれば9か月に縮められる
――『即戦力にならないといけない人のためのJava入門(Java 8対応) エンタープライズシステム開発ファーストステップガイド』は、株式会社ビーブレイクシステムズの方々が執筆されています。社内に執筆チームがあるとうかがったのですが、これはどういうものなのでしょうか。
多田:部活やサークルのようなもので、社内の部門として設置されているものではありません。技術を勉強したり発表したりするのが好きな人が自主的に集まっています。執筆の案件がないときも月1回は集まっていますが、本書のような大きめのプロジェクトが立ち上がると、みんなで書こうとなって活動が始まるんです。
竹田:業務に関係なく集まっているだけですね(笑)。
多田:そうなんです。そのため、業務外で執筆時間を確保しないといけないので、なかなか勢いに乗れないときもあり、そこでちょっと進行が止まってしまうこともありましたね。また、書籍の執筆だけでなく、ウェブメディアや雑誌の寄稿も行なっています。
メンバーとしては、メーリングリストに入っている人だけで20人ほどいます。非活性の人も含めてですが(笑)。実質的には10人ほどでしょうか。
![株式会社ビーブレイクシステムズ 執筆チーム 株式会社ビーブレイクシステムズ 執筆チーム](http://cz-cdn.shoeisha.jp/static/images/article/9513/9513_02.jpg)
――著者が複数だと、目的やターゲットをしっかり共有しなければならないと思います。本書の想定読者は「即戦力にならないといけない人」ですが、これは具体的にはどういう方を考えていらっしゃいますか?
竹田:新卒の人がメインターゲットですね。我々のような会社でもそうですが、システムを勉強してから入社する方ばかりではないんです。その状況から研修を受けて現場で仕事を始めるわけですが、その研修をより有意義にしていただくために必要な箇所を、本書でかいつまんで解説しています。
そもそも本書を執筆しようと思ったのは、新人研修を受けている人の話を聞いたのがきっかけの一つです。多くの人が1冊では足りず、複数の本を組み合わせて分からないところを補っているんですね。ですが、本書は1冊でJava入門、SQL入門、チーム開発入門というような本のエッセンスを学ぶことができます。これ1冊で研修をカバーしてもらえるように作りました。
――知識のない新卒の方が戦力になるには、通常はどれくらいの期間が必要なのでしょうか。
上川:1年はかかると思います。
竹田:そうですね。研修を受けて、実地で学んで、1年経ってようやくまともな戦力として数えられるというのが一般的です。
――そうした方の場合、本書があれば戦力になるまでどれくらい期間が縮むのでしょうか。
上川:9か月になりますね!(笑)
渡邉:まったく知識がない人に限らず、大学や趣味でプログラミングをやっていた人でも、やはり業務を経験していないと分からないところがあるんですよ。個人で作っているとテストケースをきちんと作りませんし、はたまたテスト自体をしないこともあります。僕も会社に入ってからテストの方法を知りました。そうした部分を学ぶ期間が縮まってくれればなと思っています。
多田:即戦力を養成する研修担当の方にも読んでいただきたいですね。前から順番に教えていけば、エンジニアとしてやっていくために必要なことの基礎を学べるように作ってありますので。
佐藤:自分はVisual BasicやCOBOLの開発経験はあってもJavaを知らない人にも読んでもらえるように意識していました。
竹田:転属したりほかのプロジェクトに関わるようになったりすると、仕事を始めるまであまり時間がないと思うので、Javaの基礎だけをさっと学ぶのに使えると思いますね。
新卒は現場で出会うレガシーコードも知っておく必要がある
――本書はJavaだけではなく、データベースやテストについても解説されているので、Javaをベースに業務アプリを作るための教科書と言えると思いますが、特に工夫した点など教えていただけますか?
多田:Javaの入門書はたくさんありますが、例えば「Java 8対応」だと最新の情報しか載っていないことが少なくありません。ですが、本書では古いバージョンのソースをかなり意識しています。僕が担当したのは「CHAPTER5 スレッド」で、とても古い組み方から話を始めています。そのあと、いまのやり方ではこうする、というように進歩の段階を見せているんです。業務を行なううえでは、ある程度古いソースを見たり書いたりしなければならないからです。Java 8をベースに解説してしまうとそのことしか分かりませんから、古いソースを見ても理解できません。そういうことがないようにと工夫しました。
竹田:私もJava 6ではこう書く、Java 7ではこう書く、そしていまのJava 8ではこう書く、といったように段階的な変化を意識していました。現場にはレガシーなコードが残っていることもあるので、即戦力になるためには古いコードを読めることが大事ですからね。また、導入部分に「なぜJavaなのか」という項目を入れました。数ある言語の中で、なぜJavaを使うのかを説明したほうが今後の勉強意欲に関わってくると思います。
佐藤:「CHAPTER4 テキストの入出力」を担当しましたが、自分もJava 6、7、8それぞれで使われるコードを書いています。というのも、入出力について検索するといろんなバージョンでの実装方法が出てきて、経験がないとどれが正しいのか判別できないからです。本書を読めば、自分で検索したとき、使うべきコードが分かるようになると思います。
渡邉:私は特に、章立てやおおよその内容について実際の業務に即して理解できるように構成しました。一般的なJavaの本だと、「Javaとは何ぞや」と構えて、使う機能と使わない機能を雑多に解説している印象がありました。新入社員やJavaを触り始めたばかりの人が業務アプリを作るにあたり、そういう本だと自分がやりたいことを実現する方法がどこに載っているのか分かりづらいと思うんですね。本書の章立ては業務アプリを作るうえでよく使う機能を中心に、Java 7以前では使いにくかった機能がJava 8で使いやすくなった、といった便利な機能も紹介しています。新入社員が詰まったとき、本書を読んでいれば「あそこに書いていたな」と調べる取っ掛かりになりやすいのではないでしょうか。
上川:私は「CHAPTER7 チーム開発」を担当しました。ツールの機能は調べれば分かりますが、それを業務でどうやって使うのか、使うと何がいいのかということは、機能について知っているだけではなかなか分かりません。ですから、経験しないでも多少理解できるようにと意識して書きました。
あと、JavaにはJavaの文化があるということが分かってもらえるように書いていますね。例えば、Javaは業務アプリ系のプロジェクトが多いですし、COBOLでは使わないようなオープンソースを使う文化があります。そうした言語間の文化の違いがハードルになってはいけませんから、他言語で開発していた人でも戸惑わずにJavaを学べる工夫をしています。
手を動かしながら一度は通して読み、現場で困ったら戻ってくる
――新卒の方は本書でどのように勉強するのがいいのでしょうか。
竹田:読むだけでは覚えられないでしょうから、実際に書いてコンパイルして、ビルドしてみましょう。そうすると、意外とうまくいかないところがあったり、書き間違えていたり、理解を間違えているところがあったりすることに気がつきます。読みながら、そして作りながら学ぶのが大事だと思います。作るための環境構築の手順にもページを割いていますので、ぜひ作りながら勉強してほしいですね。
上川:研修する側から言いますと、弊社の研修では本書のような内容にプラスして、ツールを使って課題を解いてもらっています。手を動かすことは必要ですね。新卒研修を行なう側の人も、本書を渡すだけでなく手を動かすための題材を用意して、きちんとレビューをするといいのではないでしょうか。
多田:本書は複数の本を買って学ぶことを1冊にまとめているので、詳しく説明しきれていないところもあります。「さらに調べればより詳しく分かります」という補足を入れていますが、自分が興味を持ったところ、理解しにくかったところは自主的にどんどん深掘りしていってほしいと思っています。
佐藤:とりあえず一度通して読んでみることは大事だと思います。最初はモチベーションがあっても、読んで、手を動かしているうちに何をやっているのか分からなくなって嫌になることがありますよね。ですが、本書ではほかのJava入門書に比べれば難しい言葉をそれほど使っていないので、ほかのJava入門書よりは読み通しやすいのではないでしょうか。つまずいても、気にせずどんどん先に進んでいってほしいですね。
渡邉:たしかにプログラミングを勉強しているときは、分からない言葉を調べるとその中にまた分からない言葉が出てきて、それを調べているとまた分からない言葉があって、それが実は最初に分からなかった言葉だった、となることがありますね(笑)。本書ではかなり分かりやすいように配慮してあります。
竹田:もし本書を読み通せず、諦めてそのまま現場に出たとしても、きっと課題に対面すると思います。その課題は仕事としてどうしてもやらなくてはいけないことなので、「そういえばこの本の目次に書いてあったかもしれない」と思い出せるように、目次だけは読んでおいてほしいですね。それから本書に戻ってきても遅くはありません。
多田:あとは周りの先輩に尋ねることが重要です。本書を読んだだけで完璧に仕事ができるようになるわけではありませんから、そこは現場にいる誰かを頼るしかありません。質問する能力は仕事に必要ですよね。
仕事でまだ使っていない技術を知り、自分のスキルにできるかどうか
――最後にうかがいたいのですが、本書を読んで即戦力になった方は、今後どのような勉強をしたり、キャリアプランを考えたりするとよいのでしょうか。
多田:先ほど興味があるところを深掘りしていってほしいと言いましたが、それはさらにステップアップしていってもらうことを想定しています。本書はあくまでこの業界の入り口に過ぎません。本書ではまだ先があると提示しているのですが、読者の皆さんそれぞれに好きな領域があるはずです。もうちょっと知りたい、極めてみたいと思ったなら、本書を卒業して別の本を買うなどして勉強していただきたいですね。
渡邉:本書で解説しているテストやチーム開発の方法以外にもいろいろあることを知ってもらいたいです。会社や現場、クライアントによってそれぞれに適した方法やツールを使えるようになっていってもらえると嬉しいですね。
上川:やはり好奇心と実行力は重要です。本書を誰か二人が読んだとしても、目的意識や関心の違いから、身につくスキルはまったく異なるでしょう。それは本書を読んだあとも同じで、次に何をやっていくかという目標を立てて、いかにモチベーションを保って実行できるかにかかっていますね。それをうまくやるのがステップアップするためのポイントです。
また、与えられた仕事をこなすだけであれば、それほど能力やキャリアに差はつかないと思います。ですが、現場では急に新しい技術を導入することがありますから、そのときに「知っています」と言えるかどうかは大事ですね。しなければいけないこと以外の準備をいかにできるか、というところで差が出てくるわけです。仕事ではまだ使っていない新しい技術についてどのように情報収集し、どうやって自分のスキルにするかを考えられるかどうか。成長するにはそれが必要です。