Javaの勉強の順番は?文系でSEになった私が「正直、Javaだけじゃなかった」5つの関係を1枚にしてみた
Javaの入門書は、なんとか1冊終わった。なのに現場のコードを開くと、知らない言葉だらけ。Git、Spring、SQL。聞いてないよ、となる。
がんばって1冊やったのに、まだ足りない。心が折れそうになりますよね。
答えから。Javaのあとに出てくるものは、順番に積む「次の教科」ではなく、同じシステムの中で働く「係」です。先に係の表を1枚見てから、係ごとに少しずつやる。私ならこの順にします。
目次
書いているのは、つまずいた側の人間です
私は文系で、ITの知識がないまま大手の会社にSEとして入りました。
最初はJavaでした。ところがJavaだけでは済まなかった。Git。HTMLとCSS。データベース。それにSpring Framework。勉強しなければいけないことが、たくさん出てきたんです。
SEは3年やって、コンサルに転職しています。最後まで、自分一人でコードを書けるようにはなりませんでした。
なので、これは「こうやって身につけた」という話ではないです。どこで迷子になったかを知っている人間が、係の表を作ってみた。そういう記事です。
【結論】Javaのあとの5つは「係」で分けると迷わない
5つの係を、1枚にするとこう
仕事で多いのは、ブラウザで使う業務のシステムです。その中で、それぞれが何をしているかを並べました。
| 名前 | 係 | ひとことで |
|---|---|---|
| Java | 処理を書く言葉 | 計算や判断の中身を書く |
| Spring Framework | Javaの土台 | 画面とデータベースをつなぐ決まりごとを用意してくれる |
| データベース(SQL) | データの置き場 | 保存して、あとで取り出す |
| HTML・CSS | 画面 | HTMLが骨組み、CSSが見た目 |
| Git | 変更の記録 | だれがいつ何を変えたかを残して、チームで合わせる |
ざっくりした分け方です。細かく言えばもっと複雑で、そこは私には説明しきれません。
それでも、この表があるだけで違います。知らない言葉が出てきたとき、「これはどの係の話か」だけは分かるからです。
業務のコードで迷子になるのは、係をまたぐから
入門書のコードは、Javaの係だけで終わります。ファイルも1つで、上から下に読めば済む。
業務のコードは違います。画面でボタンが押されて、Springが受け取って、Javaの処理が動いて、データベースに書く。ボタン1回の動きが、係を3つも4つもまたぎます。
私は、小さくて簡単なものなら分かりました。でも業務のソースコードになると、どうなっているのか分からなくて迷子になった。係をまたぐコードだったから、というのが今の私の見立てです。
エラーも、どの係で出たかが先
エラーが出ても、どこを見ればいいのか分からない。なぜエラーになるのかも分からない。SEのころの私は、ずっとこれでした。
Javaの書き方の間違いなのか。Springの設定なのか。データベースにつながっていないのか。係が分かるだけで、見る場所が5分の1になります。エラーの読み方そのものは「プログラミングの独学で挫折しそうなとき」に書きました。
「全部やらなきゃ」で、しんどくなった
勉強しなければいけないものが、たくさんある。私がしんどかったことの1つは、ここです。
3年やるうちに、エラーやコードを見ると拒絶反応が出るようになりました。それが、SEを辞めると決めたきっかけの1つです。
ただ、公式の説明を読むと、そもそも短い期間で全部分かるようには作られていません。厚生労働省の職業情報サイトjob tagは、SEの育ち方をこう書いています。
新卒入社の場合は、入社後の3~4ヵ月は新人研修を受けて(中略)研修を終えて配属され、2年ほど開発の現場でOJTにより実践力や応用力を身につけていく。
研修のあと、2年ほどかけて現場で覚える。それが普通だと、国のサイトに書いてあるわけです。同じページに「理系のイメージが強いが文系も多い」ともありました。
1年目で全部分からないのは、遅れではないです。
私なら、この順番でやる
ここからは私の考えです。試してうまくいった方法ではありません。つまずいた場所から逆算した順番です。
最初は、Javaを小さく1周だけ
入門書は1冊でいいです。何周もしない。変数、条件分岐、くり返し、クラス。ここまで読めたら次へ行きます。
Javaを作っているOracleが、無料の学習ページ(dev.java)を出しています。英語ですが、作っている本人たちのページです。
2番目は、Gitを「記録する・戻す」だけ
意外かもしれませんが、私ならGitを早めにやります。チームの作業はGitが前提になっていることが多いからです。
全部は要りません。変更を記録する、人の変更を取りこむ、前の状態に戻す。この3つだけ。Gitの公式の本「Pro Git」は日本語で、無料で読めます。
3番目に、データベースとSpringをつなげて見る
SQLでデータを1件取り出す。それをSpring経由で画面に出す。この1本の流れを、動く見本で追います。Springの公式サイトに、短い手順の見本(Guides)が並んでいます。
HTMLとCSSは、その画面を直すときに必要な分だけ。MDNというサイトに、日本語の入門があります。
5つを同じ深さでやろうとしない。先に、流れを1本通します。
この順番が合わない人
- 配属先がもう決まっている人。現場で使うものが優先です。先輩に「最初の1か月で触るのはどれですか」と聞くほうが早い
- Java以外の言語の現場に行く人。係の分け方は似ていますが、道具の名前が変わります
- コードを見ること自体がつらくなっている人。順番の問題ではないかもしれません。私はそこで仕事を変えました。「SEに向いてないと思ったときの3つの分け方」も読んでみてください
今日できる、小さいこと3つ
- 上の表を写して、今の自分が「少し分かる」係に丸をつける
- 現場か求人票に出てくる言葉を5つ書き出して、どの係かを横に書く
- 分からない係を1つだけ選んで、公式の入門を10分読む
Javaの勉強で、よく聞かれること
Javaの次は何を勉強すればいい?
仕事で使うなら、Gitとデータベース(SQL)です。書けるのがJavaだけだと、チームの作業に入りにくいからです。Springは、その2つに少し触ってからのほうが、何をしてくれているのかが見えやすいと私は考えています。
Springは難しい?
簡単ではないです。入門書のコードは上から読めますが、Springが入ると、どこから呼ばれているのかが見えにくくなります。最初から全部を理解しようとせず、動く見本を1つ追うところからで十分です。
文系でもJavaは身につく?
身につけた文系の人はいます。job tagにも、SEは文系も多いと書いてあります。私は3年やって一人では書けませんでした。なので「誰でも大丈夫」とは言いません。合うかどうかは、やってみないと分からないです。
1年目に戻れるなら、私ならこうする
もう一度1年目に戻るなら、最初の週に係の表を自分で書きます。知らない言葉が出るたびに、表のどこかに足していく。
1年目の自分には「考えすぎないで」と言いたいです。細かい1行と全体の流れの両方から見る癖をつければ、3年したら徐々に分かってくる。書けるようにはならなかった私でも、読むほうはそうでした。
今、いちばん分からないのは、5つの係のうちどれですか。
出典: