プログラミングブートキャンプの最後に初めてゼロからWebアプリケーションを作ったわけですが、
何もかも初めてのだったので、かなり大変でした。だいぶ痩せました。
(その時の記事はこちら)
そんな初心者プログラマーの僕でもなんとか形にできたのは、巷にあふれるお役立ちツールをうまく使いこなせたからかなと思います。
ということで、初心者プログラマーが初めてものを作る時に役立つツールを4つ紹介します!
データベーステーブル設計は draw.io
そもそも僕はこのデータベーステーブル設計を舐めきっていた感があります。
必要最低限のテーブルだけ作って、作業進めるのと同時に必要なテーブル増やしていこうとか思っていました。
そうやって適当に進めると結構痛い目に会います。
「あれ、このデータどっから取ってくるんだっけ」という現象に何度も遭遇して、作業が何度もストップしました。
ということで、ある程度最初の段階でテーブル設計をしっかりするのが定石のようです。
そのテーブル設計の際に役立つのが、draw.io
こんな感じで簡単にERD(Entity Relationship Diagram)が作れます。
なんかERDといえばかっこよく聞こえますが、要するにデータテーブルがぱっと見でわかるようになる図です。
最初は、ノートに手書きで書いていたんですが、線がぐちゃぐちゃして、なんじゃこりゃという風になりました。
自分で見てなんじゃこりゃとなるので、人に見せても何が起きてるのか、わけわからなくなります。
このツールを使うと、線もぐちゃぐちゃしないし、簡単にアップデートできます。
また、初心者プログラマーの場合、作業を進める中で絶対データ取得のエラーに遭遇します。
その時に、このERDを見せながら、上級者に質問を求めると、上級者もすぐにおかしな部分に気づいてくれるんですね。
こんな感じで、
- 常にテーブル同士の繋がりをアップデートできる
- 質問する時にも、現状のテーブル設計を明確に説明できる
というメリットがあります。
進捗管理は Trello
テーブル設計が終わると、Railsで必要最低限のControllerとViewを作りました。
これで超最低限の機能を持ったアプリが完成します。
よーし、これから色々実装するぞ!という気持ちになるのですが、やらなければいけないことが多すぎてぞっとします。
これまた最初はノートで毎日Todo Listを作って進めていたのですが、
作業を進めると、さらにあれもやりたいこれもやりたいというのが増えていき、ノートがぐちゃぐちゃになりました。
また、結構必須の実装アイテムにも抜けがあって、自分のタスク管理の甘さに萎えました。
そんな自暴自棄な初心者プログラマーにはこれ!
その名もTrello
このツールを使うと、
- まだやってないもの
- 作業中のもの
- やり終わったもの
が一目瞭然となります。
こんな感じ。
このTrello君のいいところは、グループでも使える所です。
グループワークで誰が何を作業しているか、どこまで終わったのかを、常に共有できるので優れものです。
会社レベルとかになるとJiraとかを使うことが多いようですが、個人とか小さなグループではTrello君で十分かと思います。タダですし。
デザイン共有はFull Page Screen Capture
だいぶ作業が進んでくると、デザインも色々やりたくなります。
で、色々試行錯誤してデザインを変えていくわけですが、何が正解かわからなくなります。
ということで、周りの人にこのデザインはどう思う?って聞きまくりました。
そんな時に役に立つのが、Chrome extensionのFull Page Screen Capture
これをダウンロードすればワンクリックでアプリ全体のキャプチャを取って、共有できます。
困った時は、Stack overflow
最後はツールではないですが、みんな大好きstack overflow
(プログラマー向けのYahoo知恵袋みたいなもの)
とりあえず、自分がつまずくポイントは、世界の誰かも躓いているので、ここに来れば同じようなエラーに遭遇した人に出会えます。
そして、優しい優秀な先輩プログラマーが答えを共有してくれています。
なんて素晴らしい世界なのでしょうか。
プログラミング知識が付いてくると、新しい領域の事でも、的確なワードで検索して、うまいことすぐに解決策を見つけることができるようです。
このstack overflowをうまく使いこなすことも、重要なスキルということですね。
まとめ
プログラミングに役立つというか、いろんなことに役立ちそうなツールだなと書いていて気づきました。
また役立ちツールがあれば共有したいと思います。
コメント
これ使いこなすにはけっこう基礎知識いるな。こういう流れにしてここにこういうコード必要だっていう。
僕プロダクト作った時まじでアジャイル開発だったわ。(見直したというより壁にぶつかってただけだが
いや僕も完璧にそうしてたんだけど、あまりに行き詰まってしまったので、ちゃんとやり直すことにした。