昨今では未経験からエンジニアを目指す人がより一層多くなってきていると思います。ただ、すぐにエンジニアになれるほど簡単ではありません。時間をかけて経験を積んでいかないといけません。
ただし、全くの未経験状態ですと何から手をつけて良いか分からないのも現状としてあると思います。
資金と時間に余裕がある人はプログラミングスクールに通うことも可能だと思いますが、全ての人ができる訳ではありません。また個人的にですが、あまりプログラミングスクールはお勧めしません。こちらに関しては別の記事で書こうと思います。
今回は私がオススメする独学方法をご紹介します。
それではいきましょう。
html, cssに触れてみる
え?と思われた方もいると思いますが、ちょっと待ってください。これには理由があります。
html, cssは色んなところでプログラミングではないと言われています。これは確かに事実であり、私自身もプログラミングではないと思っています。ただ、だからといって習得する必要がないかというと、そんなことはありません。
むしろエンジニアにとっては必修科目であると私は思っています。昨今ではアプリエンジニアやSREなど、エンジニアのカテゴリーが細分化しつつあります。中には業務でhtml, cssを触らないエンジニアもいると思いますが、業務で触れないだけで、そういった人たちでもある程度html, cssを書くことができます。それほどhtml, cssは幅広く浸透しています。
少し前置きが長くなってしまいましたね。
それではいかにhtml, cssを習得していくかですが、個人的にはProgateなど無料のプログラミング学習サイトから入るので問題ないと思います。また、範囲は無料枠までで十分です。これだけでhtml, cssの基本的なことはカバーできます。
Progate自体は結構早い段階で完了できてしまうと思います。その後は自分のパソコン上で実際にコードを書いてみましょう。
手順としては
- パソコン上にhtmlファイルを作成
- 作成したファイルを右クリックし、ブラウザで表示
ブラウザで開くと、パソコン上で作成したhtmlファイルが開かれます。Progateはサイト上でコードを書く形でしたが、実際の開発現場は自分のパソコン上でコードを書きます。ですので早めに実際の開発に近い環境にします。
パソコン上での作業ではプログラミング専用の編集ソフトを使った方が良いです。編集ソフトに関しては色々ありますが、独学のうちは無料のもので十分です。私は当時、SublimeTextというソフトを使っていました。
パソコン上でhtml, cssを書く準備ができたら、後は自由に学習を進めていきます。自由となると終わりが見えなくなるので、一例として、Progateで書いたコードをコピペして少し変えて遊んでみたり、お題を設定して自力で1ページ作ってみるといった感じです。
ここまで来れれば、ある程度htmlとcssの基本的な書き方が分かってくると思います。もちろんhtml, cssも深く掘ろうと思えばいくらでもできてしまいますが、未経験のうちはあまり必要ないと思っています。
PHPに触れてみる
ここからは実際のプログラムに触れていきたいと思います。
数多くあるプログラミング言語からPHPを選んだ理由としては、とっつきやすさです。言い方は悪いですが、PHPは割と自由に記述することができ、何となくでも動いてくれます。ただし、実際の現場ではコーディング規約を設けたり、最近のPHPでは制約をつけたりもできるので、何となく書いたりはしません。
PHPの進め方ですが、何よりもまずPHPを動かすことができる環境をパソコン上に準備する必要があります。html, cssはブラウザ上で動くので、そういった環境は必要なかったのですが、PHPはサーバという場所で動きます。ですのでパソコン上でサーバを用意する必要があります。
サーバの詳しい内容は別で記事を書こうと思っています。
とりあえず今は、PHPを動かすためには環境を準備する必要があるとだけ覚えてもらえれば良いです。
その環境の作成は、MacならMAMP、WindowsならXAMPPで良いと思います。これらは有名な環境構築パッケージで、それほど手間をかけず環境を用意できます。また、有名なことから日本語の記事が多いので、途中で詰まったりしても回答に辿り着きやすいです。
ただ、正直なところ実際の現場では上記の環境はあまり使用せず、DockerやAnsibleなどといった環境構築技術を使います。しかし今回はPHPでプログラムを書くことに集中して欲しいので、手っ取り早く環境が用意できる方を選択しています。
PHPの学習については、PHP入門用の書籍を1冊ご購入頂いて、それを元に進めていくのが良いと思います。書籍の内容は基本的に何でも良いと思いますが、個人的には書籍に書いてあるコードを写経していき、最後には簡単なシステムが出来上がるようなものを勧めたいです。
写経することに意味があるのかと思う人もいると思いますが、私はまず、手を動かしてより多くのコードをとりあえず書くことを最優先にしています。プログラミングを始めると分からないことが多く、詰まります。先ほど少し触れたDockerやAnsibleは確かに現場で使われている技術ではありますが、いきなりはハードルが高いです。時にはベテランの人でも詰まったりします。こういったことはプログラミングに慣れてから経験すれば良く、まず最初は簡単なコードをどんどん実践していき、小さい成功体験を積むのとコードに慣れることが大事です。
フレームワークに触れてみる
プログラミング未経験の方はそもそもフレームワークとは?という状態かもしれません。
フレームワークは言わば、プログラム(PHPなど)をより簡単に書けるようにしてくれるツールのようなものです。
例えば、今までは一つ一つ手で田植えを(PHP)していましたが、トラクターを導入(PHPフレームワーク)してより簡単に田植えをしてしまうイメージです。手で田植えをしても、機械で行っても最終的なアウトプットには変わりないですよね。
また、昨今のシステムではほとんどと言っていいくらいフレームワークが使われています。実際に自分でログイン機能やセキュリティ対策をするよりフレームワークを使用した方が簡単かつ堅牢だったりします。
なので、一つ前の項目でPHPがある程度書けるようになったらフレームワークに移行することをお勧めします。ただし、いきなりフレームワークから入るのはお勧めしません。というのも、PHPのフレームワークであれば、もちろんPHPで作られています。先ほどの田植えの例に戻りますが、ある程度田植えの前提知識がないと上手く操縦できなかったりします。これはPHPとフレームワーク間でも同じことが言え、フレームワークでエラーがあった場合、PHPの前提知識がないと対処ができません。
フレームワークの学習については、PHPと同様、書籍を1冊選んで進める形で良いと思います。また内容もPHP同様、1冊終わる頃には簡単なシステムが出来上がっているようなものが良いかなと。
ここも小さな成功体験を積んで、できる限り詰まることを最小限に抑えましょう。そうすればモチベーションを維持しながら学習を進めていけると思います。
以上、私がオススメするプログラミング独学ステップです。
触れなければならない内容が多く、1つの記事にまとめるのはあまりよくなかったかもしれませんね。。
各項目ごとの詳しい記事は別途書いていこうと思います。