「Javaが使えます」という人の基準
そういえば、「Javaがつかえます」、という基準はどこにあるだろうか。
そんな考えをまとめてみた。
おいらの場合特定のプロダクトを使いこなせるというよりは、標準APIの基礎が広く薄くわかっているというレベルかなぁ。
たとえば暗記していてクラス名やメソッド名などすらすらでてくる、というのは望ましいけど、そうではなく、JavadocやIDEの補完、ネット上の情報見てそれなりにやれるというレベルを期待したいところ。どうせ、開発始めれば細かい使い方はわかるようになるし。
かなーりあまい基準で「そんなへっぽこレベルでできるといわれても困る」とおこられそうだけど。
言語の文法は基本抑えているというのが前提として以下のものが当てはまる人。
- Java2Dがわかる
- Graphics/2Dをある程度触れる
- BufferedImageとVolatileImageの違いを理解している
- 日付処理がわかる
- Dateの理解
- Calendarの理解
- ファイルの読み書きができる
- Fileクラスの理解
- ストリームの理解
- リーダーの理解
- ソケット通信ができる
- ソケットでつなぐことができる
- サーバーソケットでまち受けできる
- プリンタへ印刷がわかる
- Javaで印刷といっても3種類くらい方法があって、一番面倒な印刷サービスまでいかなくとも一番簡単な方法でいいので印刷ができる
- AWT/Swingがわかる
- JDBCがわかる
- JavaSoundがわかる
- PCMの生データをbyte[]でもらってストリーム再生できるか
- ゲームが作れる
- 上記を踏まえてスペースインベーダをさらに単純にしたSTGくらいは作れる
「Javaでやれること」にたいしてのある程度の見積もりができるレベルというか。細かいところはおいおいやっていけばいいとして、各項目は1,2日勉強するだけで覚えれるレベルなんで、言語の基礎を覚えている人なら2ヶ月くらいでここに上がるのは大丈夫なはず。つまり、言語そのものを理解している人を雇ったとして、新人研修で余裕で全部覚えれますね。
言語自体知らない人を雇ってる場合はしらない。そこが一番時間かかるし、そのための専門教育なんだろうし。
これくらいの基礎があればたぶん、フレームワークやライブラリを覚えろといわれても大丈夫だと思う。