PEACH-FUZZ tech

桃に毛が生えたレベルのエンジニアブログ

JavaでWEBアプリを作るために必要なあれこれ

手始めにJavaから学習するエンジニア・プログラマー初心者は一定数いると思うんだよね。ただprogateをはじめとするようなオンライン教材や易しいレベルの入門書とかだと、JavaというのがWEBアプリやシステムを作成するときのどの部分で活用されるのか、いまいち全体像が見えないまま関数の処理やらロジックの組み立てやらをやらされる印象がある。

もちろん(教材のカリキュラムや入門書を作成しているような)先達のプロエンジニアたちは、基礎の基礎としてそこが重要だと思ってるから、そういう構成にしてると思うんだけど、学習を始めたばかりのこっちからすると

「ねぇコード書いたり黒い画面に計算結果を出力したりばっかりしてるんだけど、これ本当に形あるシステムになるんだよね?てかいま仕事として通用するレベルの何パーくらい身についてるかわかんないし、あと何をどれくらいやれば一人前になれんの?」

って気持ちになってくるのではないだろうか。私は完全にそんな気持ちだ。

 

そこで、 Javaで何かしらのサービスとして成立するプログラムを作るにはなにが必要なのか、そもそもシステム全体のうち Javaってどういう位置付けになるのか、調べてまとめてみようと思う。

 

…なんどドンピシャで答えてくれる記事があったので紹介する。これを読めば完璧だ。私の仕事がなくなった。

 

javaを使ってWebアプリを作るまでに結局なにが必要なのか。仕組みと学習に必要なものをザックリ説明 - Qiita

 

ちなみに、システムエンジニアといっても実際の開発現場では細分化されており、それを非エンジニアにも分かりやすく説明してくれている資料があったので、こちらも紹介しておきます。

(採用担当者向け)エンジニア採用をする上での基礎知識 / recruting_engineer_basic - Speaker Deck

ProgateのJavaコース一覧

ProgateのJavaコースを一周したが、実際に自分でコードを書き始めてみると、たびたび「あそこどう書くんだっけ?」と振り返ってスライドを参照したくなることが多いので、目次をまとめておく。

 

prog-8.com

 

Java 学習コース Ⅰ | プログラミングの入門なら基礎から学べるProgate[プロゲート]

Javaの基本

Javaに触れてみよう
Javaの基本・文字列
数値
数値の計算
文字列の連結

変数を使ってみよう

変数の定義
変数を使ってみよう
変数の更新
自己代入
自己代入の省略
変数の役割と注意点
小数を扱おう

型変換

自動型変換
強制型変換

総合課題

課題に挑戦しよう

 

Java 学習コース Ⅱ | プログラミングの入門なら基礎から学べるProgate[プロゲート]

真偽値と条件式

真偽値・比較演算子
比較演算子(2)
論理演算子

条件分岐

if文
else, else if
switch文
switch文(2)

繰り返し処理

while文
for文
break, continue

配列

配列を使ってみよう
配列の要素の上書き
配列と繰り返し
配列用のfor文

課題に挑戦しよう

総合課題

 

Java 学習コース Ⅲ | プログラミングの入門なら基礎から学べるProgate[プロゲート]

メソッド(1)

メソッドを使ってみよう
メソッドの定義
引数を使おう
複数の引数

メソッド(2)

メソッドの戻り値
メソッドのオーバーロード
メソッドを組み合わせよう
真偽値の戻り値

クラスの基本

クラスを使ってみよう
クラスの定義
ライブラリを使ってみよう
入力を受け取ろう(1)
入力を受け取ろう(2)

 

Java 学習コース Ⅳ | プログラミングの入門なら基礎から学べるProgate[プロゲート]

オブジェクト指向とは?

オブジェクト指向とは?
クラスとインスタンス

オブジェクト指向の基本

クラス定義とインスタンスの生成
インスタンスメソッド
インスタンスフィールド
this
コンストラクタ(1)
コンストラクタ(2)

自己紹介プログラムを作ろう

目標物を確認しよう
フィールドとコンストラク
インスタンスメソッド(1)
インスタンスメソッド(2)
クラスフィールド
クラスメソッド
コンストラクタのオーバーロード
コンストラクタを呼び出す
fullNameメソッドを書き換えよう

カプセル化を学ぼう

カプセル化
ゲッター
セッター

総合課題

「仕事」を追加しよう

 

Java 学習コース Ⅴ | プログラミングの入門なら基礎から学べるProgate[プロゲート]

プログラムを確認しよう

プログラムを確認しよう

継承の基本を学ぼう

継承してみよう
スーパークラスのメソッド
サブクラスをカスタマイズしよう
メソッドのオーバーライド
super

高度な継承を学ぼう

コンストラクタとsuper()
protected
抽象メソッドと抽象クラス

VehicleとPersonを紐付けよう

クラス型のフィールド
buyメソッド
多態性

『アジャイルサムライーー達人開発者への道』を読む

 エンジニアに異動して初日に勧められた、アジャイルサムライ。

アジャイルサムライ−達人開発者への道−

アジャイルサムライ−達人開発者への道−

 

 アジャイルとかスクラムとか、よく聞くんだけど実態はわかっていない。そんな状況なので、読み進めてみる。

 

 とはいえ、全然なじみがない業界のHow-To本とかって、まず単語や用語がわからない。英語の小説を原文で読むのと同じで、一語ずつ調べてたりするとそちらに気を取られて全体の流れが全く追えない。そして、読むのが苦痛になって終わってしまう、という経験は正直何度もしてきた。

 どっかで読んだのだが、学習するときに読む本は、自分の知識レベルに合わせた選び方をしないと、難しすぎても易しすぎても身につく読書にならない。知っていることしかなければ得るものがないのは当然だが、分からなすぎることが書いてあることを読んでも、自分の中でイメージができずに消化できない。

 大まかなことは知ったうえでディテールを補強する、あるいは抜けた部分を補完するような内容の本が一番学習効率が良い。

 

というような内容のことを思い出し、第一章で早々に「このまま普通に読み進めてもアカン」と思ってインターネットに助けを求めることにした。

 

 

「アジャイルサムライ 要約」で検索

 

 

 本の概要とかエッセンスを捉えてから読んでいったほうが理解しやすいだろうと思って、まとめ記事を探す。文章でも、先に結論を言ってから徐々に詳細に進めるべしと言われるではないか。

 

 本の目次を転記してるだけとか、部分的な説明だけの記事がある中、下記のものが比較的ちょうどよいボリュームだったのでしっかり読み込んでみる。

 

employment.en-japan.com

アジャイルに関しては、下記の記事も参考になる。つまりダメな例がどういうものかを知ることで、理想の状態を理解することにつながる。

 

simplearchitect.hatenablog.com