どうも、プログラミング未経験からフリーランスのインフラエンジニアになったわかやまゆうやです。
という方って、結構いらっしゃると思うんですよね。
世間ではIT業界が盛り上がっていてエンジニア不足。
YouTubeではビジネス系インフルエンサーが「プログラミングは勉強しておけ!」と、みんな口を揃えて言ってる。
そして2020年度からは小学校からプログラミングの授業が導入開始。
世間の意見として、間違いなく
という流れになってきています。
とは言え、
「どうやってプログラミングを勉強すれば良いの?」 「プログラミングを勉強したところで挫折したらどうするの?」 「プログラミングなんて数字の強い理系の人にしかできないんでしょ?」
といろいろ不安になりますよね。
そこで今回は完全プログラミング未経験の状態からどうやって勉強していくのがオススメか、詳しく説明していきます。
これを読んでプログラミングの勉強が少しでもやりやすくなってくれたら嬉しいなぁと。
プログラミングとは何でしょう?
まず、プログラミングとは何でしょう?
正解は「コンピューターに指示する内容を書くこと」ですね。
街中の信号
駅の券売機や自動改札
Webサービス全般
スマホのアプリ
テレビゲーム
これら全て、誰かがプログラミングした内容で動作してるんですよね。
プログラミングとは、コンピューターに対して
と言う願い事を1行1行心を込めてお手紙に書いて動作してもらうイメージ。
それによって人間の生活が良くなってますからね。感謝しなきゃですね。
まずはプログラミングして作りたいものを決めよう!
最初に一つ質問。
あなたはどの様な気持ちからプログラミングを学びたいと思いましたか?
カッコいいホームページが作りたい!
人工知能を作って世の中を楽にしたい!
面白いスマホアプリを作って世の中の人を楽しませたい!
インターネット上にお店を作りたい!
FacebookみたいなSNSを作って世界中の人と繋がりたい!
Excelの手入力がメンドくさいから自動化させたい!
などなど、何かしらのきっかけがあったはず。
その気持ち、大切にしてください!
まず作りたいものがないと、プログラミングに興味も持てないはずなので。
勉強するプログラミング言語を決めよう!
作りたいものを決めた後は、勉強するプログラミング言語を決めましょう。
作りたいものによって学ぶプログラミング言語が違ってきますよ。
ホームページを作りたい!:HTML, CSS
人工知能に仕事させたい!:Python
スマホアプリを作りたい!:Swift(iPhone), Java(Android)
Webサービスが作りたい!:HTML, CSS, JavaScript, Ruby, PHPなど
Excelの手入力をなくしたい!:VBA
ほんの一例を紹介すると、こんな感じ。
当然これだけではないので、どんなプログラミング言語を使えば自分が作りたいものが作れるか、いろいろ調べてみてくださいね。
プログラムが動作する環境を作ろう!
プログラムが動作する環境が必要なので、作らないといけません。
必要になるのは
パソコン(必須)
インターネット環境(ほぼ必須)
そして統合開発環境ですね。
統合開発環境って何なの?
統合開発環境とは、プログラミングを楽に行うための環境ですね。
これさえあれば、プログラミングがサクサクできるようになるんですよ。
オススメの統合開発環境はこちら。
Windows:Visual Studio Code
Mac:Xcode
Linux:Eclipse
ちなみにプログラミングをするための環境作りなので、まだプログラミングではないんですよね…。
そして、いろいろ設定がめんどくさくて、ここで挫折しちゃう人も多かったりします。
プログラミングの準備も結構大変…。
挫折しないように、本やネットで丁寧に教えている記事などを読みながら環境を作ってみましょう。
プログラミングの勉強を継続する環境を作る!
ここまで来て、やっとプログラミングを勉強する環境が整いました。
おめでとうございます!
あとは勉強のコツをつかんで、ひたすら継続して勉強していくだけ。
継続は正直大変ですが、継続しないとスキルも上がりません。
プログラミングの勉強のコツを挙げていきますので、実践してみましょう。
プログラミング勉強のコツ①:とにかく手を動かす。
プログラミングの勉強は、とにかく手を動かすこと!
本やネットで情報収拾するだけではNG!
知識を吸収するのはいいですが、実践しないと意味ないんですよね。
そのためには、とにかく手を動かしましょう!
プログラミング勉強のコツ②:暗記しない。
プログラミングは暗記しません!
暗記に時間を使うのは効率が悪すぎ!
と言う考えもあるかもですが、それはプログラムを入力しながら覚えていけば良い話。
くれぐれも、ノートに何回も手書きして暗記するような効率の悪いことをするのはやめましょう。
本で情報をインプット→プログラムにアウトプット
ネットで情報をインプット→プログラムにアウトプット
口頭でもらったアドバイス→プログラムにアウトプット
と、勉強したことをプログラムにアウトプットする習慣をつけていきましょう。
プログラミング勉強のコツ③:良いコーディングを真似する。【コピー&ペーストNG!】
プログラミングを勉強していろいろ調べてみると、
「このプログラムはシンプルで分かりやすいなぁ。」
「このプログラムは自分がやりたいことを実現してくれているなぁ。」
と、質の良いプログラムにめぐり会うことがあるんですよね。
で、自分のシステムに組み込みたくて質の良いプログラムを真似することがあります。
質の良いプログラムをマネするのは全然OK!
質の良いプログラムは自分でもどんどん使って、自分のものにしていきましょう。
しかし、質の良いプログラムをマネする上で気をつけて欲しいのは、
コピー&ペーストはNG!ということ。
と思うかもですが、それ本当に内容を理解していますか?
内容を理解した気になっているだけじゃないですか?
多分、次に同じ内容をプログラミングしようとしても忘れてますね。
なので、マネするときも内容を確認しながら1行1行手入力していくことが大事!
これを「写経」と言います。
写経をしないと頭にインプットされない事は、僕も実際に身をもって体験しました!
逆に写経を続けていくと、やりたい事がパッと頭に浮かんで素早くアウトプットできるようになりますよ。
超能力かと思うかもですが、事実です。
意味のないプログラムは1行も存在しない!
そう意識しながら写経していきましょう。
プログラミング勉強のコツ④:分からないことはまず自分で調べる。
プログラミングの勉強をしていると、
「このエラーが解消できない…。」
「イメージしている機能がなかなか実装できない…。」
と、とにかく分からないことが出てくるかと。
このような場合は、まずは自分で分からないことを調べてみましょう。
身近にプログラミングに詳しい人がいて、すぐに質問して問題が解決するなら良いですが、そう言う恵まれた環境がある人はあまりいませんし、思考停止で丸投げの質問をしても嫌がられるので。
・自分なりに問題点をまとめる。
・自分なりにいろいろ調べる。
・それでも問題が解決できなければ、自分なりに意見をまとめて質問してみる。
という段階を踏む習慣をつけるべき。なのでまずは自分で調べましょう。
基本はググることですが、分からないことを解決するためのオススメのサイトも紹介しますね。
プログラミングの質問のオススメサイト①:stackoverflow
stackoverflowは、簡単に言うとyahoo!知恵袋のプログラミング版です。
内容が充実しているので、大体の問題や希望している機能の実装に関しては解決できますよ。
プログラミングの質問のオススメサイト②:Qiita
Qiitaはプログラマーのための情報共有サービスです。
ブログ形式でプログラミングの内容や問題解決の内容を詳しく書いているページが多いので、参考にしてみてください!
使えるプログラムのサンプルや、優秀なプログラマーの考え方なども公開されているのでオススメです。
プログラミング勉強のコツ⑤:初心者向けの勉強会に通う。
通える範囲で初心者向けのプログラミングの勉強会が開催されているなら、通ってみるのもあり。
経験者向けでなく、初心者向けに開催しているところも多いです。
TECH PLAYと言うサイトからプログラミングの勉強会を探すことができるので、参加してみてください。
プログラミング勉強のコツ⑥:形にするまで諦めない!
ちょっと精神論になってしまうんですが、何らかの形にするまで諦めないのが結構大切だったりします。
何か文字を出す。
何か文字を入力するフォームを作る。
何か1つでもボタンを作る。
一つのサービスを作るのって、地味な作業の繰り返しの先にあるもの。
いきなり商品化できるレベルの作品を作るのは、おそらく難しいかと…。
完璧を目指す必要もないので、ブサイクでも何か形にする方がスキルアップへの近道。
プログラムで作品を作るまで行動できる人間は、おそらくプログラミングの勉強を始めた人のうちの20%もいないので、将来的にはエンジニアとしても十分上位にいけます。
何か作れたら、GitHubに登録して技術をアピールするのも良い手段。
就職活動中の学生ならポートフォリオにもなるので、就職活動に有利に働くかもしれません。
【悲報】プログラミングの勉強は挫折率は高い!【挫折対策あり】
悲報ですが、プログラミングの勉強の挫折率は高いです!
独学では90%が挫折すると言われているくらい!
ダイエットの挫折率と同じくらいと言われるとイメージしやすいでしょうか。
なぜ挫折するのかと言うと、
・周りに質問できる人がいない。
・エラーが解消できずに心が折れた。
・サービスが作れなさすぎて途方にくれた。
・流行に乗っかってチャレンジみたけど、やっぱ面白くない。
と挫折の要素満載なんですよね…。
なのでプログラミングスクールがブームになるのです。
ライザップと同じように、高いお金を払って指導されながら学ぶ方がスキルは早く身につくので。
なるべく挫折しない勉強方法を考える必要があります。
プログラミングの勉強に挫折しない対策①:詳しい人間に質問する。
周りにプログラミングに詳しい人間がいたら、分からない点を質問してみましょう。
趣味でプログラミングをやっている友達
プログラミングスキルに優れた先輩
プログラミングに詳しい学校の先生
こう言う人が身近にいたらラッキー!
分からない点を自分なりにまとめて質問し、フィードバックを得ましょう。
自分だけで調べるよりも効率的に勉強できますよ!
また、この際プログラムの内容についてレビューできたらなお良いですね。
レビューというのは
と詳しい人にお願いすることです。
これはすごく有用!
自分では意識してなかった細かいポイントも教えてもらえたりするので、知識が広がります。
レビューでチェックされた点はメモにとっておき、チェックされた内容を忘れないようにして、より良いプログラムを組んでいきましょう。
プログラミングの勉強に挫折しない対策②:プログラミング教材を買う。
どうしてもプログラミングに挫折しそうなら、お金を出してプログラミング教材を買うのもありかと。
プログラミングスクールに通えたら良いですが、全員がそうではないので。
プログラミング教材の中にも多くの支持を得る優れたものがあるのです!
ここでは、Skill Hacksと言うプログラミング教材がオススメなのでちょっと紹介!
Rubyという言語の教材になりますが、「絶対に挫折させない仕組み」をアピールしているだけあって、94本の動画を使って恐ろしいほどわかりやすく教えてくれます。
体験してみたら、「絶対に挫折させない仕組み」と言っている意味がわかるかと思いますよ!
他にもPHPを専門的に学べるPHP Hacksなんかもありますよ!
プログラミングの勉強に挫折しない対策③:プログラミングスクールに通う。
お金に余裕がある、または最短でプログラミングを身に付けたいと言う人はプログラミングスクールに通うのも有効な手。
もうこれは、プログラミング版ライザップとも言って良い選択肢かと。
ここまで矯正しないと結果が出ない人もいるので、プログラミングスクールがブームになるんですよね。
個人的にはDMM WEBCAMP PRO
3ヶ月で未経験からエンジニアに転職!
エンジニア転職成功率98%!
転職できなかったら全額返金!
最大で560,000円キャッシュバック制度あり!
と、受講生をほぼ確実にエンジニアとして転職させる環境が整ってます。
期限を決めて、ライザップみたいに短期間でプログラミングスキルをコミットさせてみるのは非常にオススメ。
Skill HacksとDMMWEBCAMPは以下の記事で詳しく紹介しています。興味のある方はこちらも読んでみてください。
もしプログラミングの勉強に挫折してしまったら…。
と言うこともあるかもしれません。
そうなったら、他のプログラミング言語を試してみても良いかもしれません。
プログラミング言語は、人によってかなり適性が異なります。
- ・C言語が分からなさすぎて挫折→ PHPでWordpressをカスタマイズするのが楽しくて続いた。
・Pythonの人工知能が難しすぎて挫折→ JavaScriptで動くホームページを作るのが楽しくて続いた。
と言う人も実際にいるので。
一つのことで心が折れてしまうのも勿体無いので、色々試してみても良いんじゃないでしょうか。
まとめ:プログラミング未経験からでもエンジニアになれる!
プログラミング未経験がプログラミングを勉強する方法について説明しました。
プログラミング未経験から始めても、最短3ヶ月くらいでエンジニアとして転職することが可能な時代。
未経験 → 派遣や正社員エンジニアを1〜2年経験 → フリーランスエンジニアとして独立
と言うキャリアは、20代の若い人が多くの収入を稼ぐための実現性の高い方法であると自信を持って言えます!
フリーランスエンジニアを目標として、まず小さな一歩を踏み出してみましょう!