プログラミング学習にはいろいろな方法があります。
実際のプログラマーが学習をした方法で、よりプログラミング技術が身につく学習方法についてお話しします。
その方法とは
「作るものを決めて、それに対して必要な要素を組み立てて実行する」
です。
書籍やWEB、スクールの1つの方法としてもあるかもしれません。
そちらについて方法、具体的な内容を交えてお話しします。
学習手順
「作るものを決めて、それに対して必要な要素を組み立てて実行する」
と記載しましたが、もう少しかみ砕いて説明します。
よく書籍などでは、1「定数とは」、2「変数とは」みたいな形で1つ1つ覚えていくという形かと思います。
教科書的な学習方法になります。
ただ今回の方法については、実践に近い方法になっています。
プログラマーが実際に現場で働く場合、何を作るかというものが定められており、それをプログラミングして作っていく作業がメインとなります。
それを学習スタイルとして進めることで、力を身に付ける方法です。
大枠は以下の手順になります。
1.作るものを決める
最初から大きなものはだめです。
まずは、自分の手の届く範囲で設定(2割増しぐらいが理想)することが大切ですね。
ここの設定は慣れるまでは少し難しいかもしれません。
2.必要な技術や情報を整理する
作り物に対して、完成させるまで何が必要なのか。
それは頭でイメージして、文字に起こすなりしましょう。
設計書まで固くなくてもOKですが、大枠の道筋について自分で組み立ててみましょう。
3.実際に作る、プログラミングする
作るために必要な情報などがそろっているため、実際にそれを作る作業になります。
ソフトウェアを事前にセットアップする必要があるのか。
すぐにプログラミングに入っていけるのか。
作るものにより異なるかと思いますが、進めていきましょう。
4.作ったものを動かす
作ったものを動かしてみましょう。
最初に決めたイメージ通りにその機能が動いているか。
また、自分だけではなく、他の人に見せるのも効果的です。
自分が想像しなかった操作をしてくれるはずです。
もしその中でうまく動かない箇所があった場合には修正をするようにしましょう。
1で作りたいものを先に決めて、2~4の作業にて最終的に作りたいものをプログラミングにより実現していきます。
具体的な例で解説
では、この方法をより具体的な例としてどのような内容となるか簡単に記載します。
1.作るものを決める
ここでは「ブログサイト」とします。
ページとしては大きく、記事のページ、一覧のページ、投稿ページ とします。
また、サーバーから構築することとします。
2.必要な技術や情報を整理する
大項目 | 小項目 |
---|---|
サーバー周りで必要になるもの | ・レンタルサーバ(OS含む) ・ドメイン準備 |
ソフトウェアで必要となるもの | ・Apache ・MySQL ・PHP |
Webサイトで必要となるもの | ・各画面構成、デザイン ・投稿ページの認証機能 ・記事の保存機能 ・DBのテーブル構成 |
これは簡単に記載した一例です。
本来であればここは少ししっかりと考えて文字や図に起こしていきます。
3.実際に作る、プログラミングする
では、それぞれの作業を実際に行っていきましょう。
大項目 | 小項目 |
---|---|
サーバー周りで必要になるもの | ・レンタルサーバ(OS含む)→ レンタルサーバの準備(契約等) ・ドメイン準備 → ドメインの準備、サーバへの紐づけ |
ソフトウェアで必要となるもの | ・Apache → インストールおよび設定 ・MySQL → インストールおよび設定 ・PHP → インストールおよびWebフレームワーク導入 |
Webサイトで必要となるもの | ・各画面構成、デザイン→ PHPでの実装、HTML、CSS ・投稿ページの認証機能→ PHPでの実装 ・記事の保存機能→ PHPでの実装 ・DBのテーブル構成→ MySQLでのテーブル作成 |
4.作ったものを動かす
実際にできたWebサイトに対していくつかの観点にてイメージ通りの動作をするか確認しましょう。
- 実際に記事の投稿ができるか。
- 投稿した記事が一覧ページ及び記事ページにて表示されるか。
もし、うまく動かない場合は、3に立ち戻り原因を確認して修正しましょう。
課題解決の方法
この作業を進めていく中でもちろん課題はたくさんでてくるかと思います。
ただ、全体の道筋の教科書がないため、迷子になってしまいがちです。
ただ何が課題なのか、自分がどうしたいか。というところはわかるはずです。
したがってその課題に対して、解決方法を見つけるしかありません。
手段はいくつかありますが、基本は「ググる」ですね。
一般的なことであればたいていWeb上に答えがあります。
したがって「ググる」が一番早く、タダで解決する方法を教えてくれます。
その他には、書籍にて課題となっている部分をピンポイントで調べる。
また、周りに聞ける人がいるのであれば、聞く。
などが有効です。
具体的な課題解決の記事は以下
ここでのポイントは、課題を解決するためには、その課題に対しての解決方法をピンポイントで見つけて対応する。ということです。
もし、それでも解決の糸口が見えない場合。
その際は、その作る内容を妥協するのも手です。
代替案などで、別方法(ちゃんと作れるやり方)をとるのか。
また、少し簡易な方法に切り替えるのか。
最悪、その機能を作らないというのも手です。
その選択をするのも自分自身の判断にはなります。
ただし忘れてはいけないのは、この課題をどうするかがゴールではなくて、4まで進めて作りきることがゴールと考えてください。
この学習方法により身につく3つのポイント
この学習方法により、プログラミングのスキルは向上するでしょう。
ただ、それ以外でも大きく身につくことが3つあります。
全体の流れ
プログラミング開発における、全体の流れがつかめます。
普通にプログラミング学習をするときには、プログラミングの知識は向上しますが、実際にその知識をつかってどのようにお仕事をしていく、お金を稼いでいくということは学べません。
ただこの一連の流れを体感することで、どのような場所でプログラミングが利用されるということが、全体からつかめるはずです。
自分で解決する力
この進め方については、スタートからゴールまでを自分で組み立てているため、教科書がありません。
したがって、課題が出た際には上に記載したように自分の力で解決(その問題を解決する、その問題を回避するを含む)していかないといけません。
これらすべて自分の考えと判断によって進めるため、自分での問題解決の力は成長するでしょう。
周辺知識
プログラミングの学習だけをするわけではなく、最終的には目的のものを作るところまで行うため、それらに関連するプログラム以外の周りの経験も積めることになります。
実際のプログラマーの現場では、まさしくそこが必要となってきます。
プログラミングの本には載ってなかった・・・。
みたいなことも、この学習方法でしっかりと気づいて学んでいけるわけです。
まとめ
「作るものを決めて、それに対して必要な要素を組み立てて実行する」という方法は、よりプログラマーの現場に近い進め方、また学習というよりプログラムを利用して実際にWebサイトなどのシステムを作るという行為に近いです。
以下の手順でしたね。
もちろん大変な面もあります(自分で組み立てて、解決まで行うため)
その分、成長にはつながる方法となります。
もしかしたら、初心者の方がすぐには難しいかもしれません。
プログラミングを学習して慣れてきた方は、この方法での学習をしてみることで、実際のプログラマーの現場に入るときへのハードルは低くなるかと思います。
コメント