どうも、てくぽこです。
今日は、プログラミング独学初心者な自分が
個人的に一番苦労している「目的の整理」について書きます。
ただし、文章量の関係で、詳細な技術解説については今後の記事に回します。
まずは導入として、事の経緯から。
要点はこちらからジャンプできますので、長文が嫌いな方は飛んでください。
(思いの外、長くなっちゃったなぁ…)
#プログラミング独学初心者がつまずきやすい"あるある"
ずばり、プログラミング(もといコーディング)は楽しいけれど、
「あれ、おれ結局プログラミング学んで何したいんだっけ…???」
ってなりませんか?
プログラミングがどんどん出来るようになってきて、
いつのまにかサービスも自分ですんなり作れるようになって、
あるいはある程度スキルには自信がついてきたから
フリーランスなり会社勤めなりで仕事にしていけるようになりました!
…っていう方は、だいぶ増えてきた時代環境にはなりましたが
挫折する方も依然多いような印象です。
私、ボッチ独学者なので業界動向とかよう知らんけど。
結局は「目的意識」と「行動計画」の整理
前述の「何したいんだっけ…?」をそのまま放置していると、
プログラミング勉強の優先度が無意識に低下してしまい、
気がつくとモチベーションが下がってしまいます。私は下がってました。
目的を明確にして行動計画を立てる、って
特に私は苦手意識が強いのですが、
目に見える形にアウトプットしたら
多少は自分の気持ちも整理しやすいのかな、と。
なにかそんなツールはないか、とすぐツールに走ってしまう私は、他力本願でしょうか…?
UMLとは
そして本題。
UML(Unified Modeling Language)とは、簡単に言えばソフトウェアを作るにあたって作成する仕様書や設計ドキュメントを記述する、記述言語。
ソフトウェアを実装していく上で、「何のために」「何を」「どうやって」プログラムに落としていくかを明確化するための言語。
言語と言っても、具体的な定義は文法、というよりも図の書き方の決め事のようなものです。
パワポの作図フォーマットを規格化しましょう、みたいな。
とてもわかり易かった参考記事はこちらです。
####- 初心者にとってのUML -
でもこれって、ソフトウェア開発以外にも使えそうな気がしません?
自分のプログラミング学習の要件定義としても使えるし、
(誰がどんなことをするアプリを作りたいのか)
いざそれを整理したあと、
具体的にどこから着手していいのか、
イメージできるところまで行動内容を細分化出来る。
(この機能はこんな操作手順で実装する、
そのためにはどんなクラスが必要で、
どんな手順で値を受け渡していけばよいか)etc...
ここまで整理できれば、
「じゃあ自分はこの部分の実装のこんなコード(HTML,CSS,javascript,...)から勉強すればいいんだ」と
着手点も明確化しやすくなるんじゃないかと思います。
プログラミングの勉強ってそれ自体もボリュームがあるので、
独学初心者はこういった肝心な部分が抜けがちになりますよね。
私は抜け落ちました。
##PlantUMLとは##
今日一番伝えたいこと。(最初に書け)
設計図の書き方の決まりであるUMLをテキスト化して、
プログラムみたいに書いてしまおう、というのがPlantUMLです。
(公式サイトはこちら)
###メリット
- 設計書もプログラミング風に作れる
- 手書きの図よりもあとから編集しやすい
- 簡単な図から複雑で大きな図まで同じ書き方ができる
プログラミング初心者としては、習うより慣れろ、
とにかくプログラムらしきものをどんどん書いて
コーディングに自分の頭と体を慣れさせるのが手っ取り早い気がしました。
UMLまでプログラミング風にできれば計画から実践までずっとプログラミングなので、
目的が整理されて、プログラミングに慣れて、作るモノの仕様も整理されて、と一石三鳥です。
なにより手書きの図よりもあとから編集しやすいですし、
テキストファイルですので図のボリュームが変わっても記述は統一できます。
最初は簡単なソフトウェアをつくる計画を立てて、
あとから勉強しながら必要になったものを計画に追加して…。
要はあとからスケールアウトし易いのです。
***「残しやすい形」かつ「スケールアウトし易い」***仕様書って、
独学初心者にはうってつけだと思うのです。
まずは触ってみる
PlantTextという無料のWebサービスがあります。
PlantText UML Editor - https://www.planttext.com/
上記の参考サイトをもとに、まずはユースケース図から作成してみると
「誰のためのどんなサービスが作りたいのか」を整理しやすいかと思います。
文法はこちらの記事を参考に。
のちのち、UMLとPlantUMLについては少しずつ解説記事(もとい備忘録)を
書いていきたいと思いますので、ここでは紹介だけにとどめます。
(2019/09/25追記:PlantUML環境構築の解説記事をはじめました。)
##最後に
今日は、プログラミング独学初心者にとってのPlantUMLの導入をしました。
わかってます、いきなりメチャクチャハードル高いですよね。
最初は使えなくても、慣れてくると便利さを実感しました。私は。
なるべく今後もPlantUMLを使っていこう、という自分への念押しの意味も含めて
今回記事にしました。
ちなみに、前回の投稿で気にしていたピリオド・カンマ記法は、
普段の使い方と合わなくて面倒なのでとりあえずやめてみます。
「気持ち悪い…」と思ったらひと声かけてください。
ではでは。