前書き

様々な理由でプログラミングを学び始める方がいらっしゃるかと思いますが、最初は書籍やオンラインサービスで「〇〇言語の基礎」を学習してみる方が多いのではないでしょうか。
頑張って言語の書き方を覚えて、何か作ってみようとパソコンに向かってみると

「・・・・??」

と手が止まってしまう。という経験ありませんか?
少なくとも私はあるんですが、最近ふとこうなってしまう理由を考えたので、記事にしました。

プログラミング言語の文法を覚えたのにアプリを開発できないのはなぜか?

結論は「知識が足りてないから」です。
私がこれまで学習してきた経験から、アプリを作れるようになるまでの学習段階は下記の5段階だと考えています。

段階1.何もわからない
段階2.言語の文法を理解できる
段階3.機能の構造を理解してコードを書ける
段階4.機能の構造を自分で決められる
段階5.アプリの目的を理解しどういう機能を作るか決められる

この一覧から言うと、文法を一通り覚えたというのは、序盤も序盤の第2段階にいる状態だということになります。では、3,4,5の段階とは何で、どうやって進んでいけばいいんでしょうか。私の考えを書いてみます。

段階3.機能の構造を理解してコードを書ける

  • この段階にいるかどうか判断する方法
    機能の構造を表現したものの代表例がクラス図やシーケンス図です。要するに、クラス図・シーケンス図を見てコードが書けるのならこの段階にいるといえると思います。

  • この段階に至る方法
    既存のクラス図・シーケンス図をもとにプログラムを作ってみましょう。
    最初はエラーが出まくると思いますが、何回かやっているうちに言語仕様の理解が深まっていき、定められた構造に従ってプログラムを組めるようになります。
    1から2に進む際は、書籍やオンライン学習で自学自習できると思いますが、2から3へ進む際は、なかなかちょうどよい教材がなかったり、疑問をググっても答えがみつからないなどお困りの方も多いと思います。
    お困りの方に教材を用意しますので、ぜひご相談ください。

ちょっと長くなったので、4,5は次回ということで。

※クラス図・シーケンス図を書く暇があればコードを書け派の方へ
開発現場であれば同意です。
プログラムがかける人は、脳内で機能の構造を思い浮かべてコードを書けるので、クラス図やシーケンス図をドキュメントとして残すことは、工数を増やすだけで無駄だと思います。
ただ、プログラムを学び始めた人に、いきなりそれをやれというのも無理な話です。ぜひ少しずつ段階をふんでいってほしいと思います。