プログラミングを10ヶ月独学

ボクが体験した『プログラミング独学』のリアルを記事にしました。
プログラミングを10か月間独学

今回はタイトルにもあるようにプログラミング学習について、私の体験談を中心にどのように取り組んでいくべきかを皆様にお届けできればと思います。
自己紹介

簡単に私の自己紹介をしようと思います。
2020年5月に某ウイルスの影響で現在の職業に不安を抱き、 何かあった時のため、 自分の武器(スキル・資格・専門知識)を身に着けたいと思い、 プログラミングを学習することを決意。
その時はどうしたら良いかよくわからず、とりあえずWEBで「プログラミング学習方法」と検索し、 記事をただ眺めているだけで実際にコードを書いたり、 ブログを書いたりできるわけではありませんでした。
それから少しづつ勉強を重ね、 現在は皆様にご覧いただいているこの記事を書いたり、 自身のブログサービスの機能向上に努めています。
10か月間で習得した知識
※出来問わず
- HTML(マークアップ記法・マークダウン記法
- XML(サイトマップ作成)
- CSS
- SCSS/SASS
- Javascript(jQuery・Vue・Ajax)
- PHP
- SQL(MySQL
- CSV、JSON、TXTファイルの扱い方
- ブログアフィリエイトの仕方(AdSense・A8 net)
- ドメインやDNSサーバーなどの知識
- サーバーの知識(htaccess・FTP・SSL)
- SEOの知識
- パソコンの環境構築方法(VS code・XAMPP・FFFTP)
- Googleアナリティクスの使い方
- Google search consoleの使い方
- アイキャチ画像の簡単な編集
プログラミング言語はPHPやJavascript、SCSS/SASSですが、 現在の私が行っているブログというものはプログラミング以外に沢山学ぶべきことがあり大変です。
上記記載の知識に関しても、 現役のプログラマの方や過去にプログラミングにかかわっていた人からすると、 初心者とそんなに変わらないと思われてしまうレベルかもしれません。
ですが今は10か月前と違い、 一種の趣味としてプログラミング学習をしているので、 今後はさらに他のプログラミング言語にも自分のペースで挑戦していきたいと思っております。
それでは自己紹介はここまでとし、早速本題に入ろうと思います。
プログラミング学習はどのように始める?

それでは具体的にプログラミングの学習はどのような方法で学習を進めていくべきか?
これが一番効率よくプログラミング学習を進めることができます。
なぜそう思ったのか?
その理由の1つ目にプログラミング言語には現在200種類以上の言語があると言われており、様々な環境・用途に応じてどの言語にするか選択する必要があるからです。
プログラミング言語の主な種類は以下の通りです。
- C/C++
- Python
- Java
- PHP
- JavaScript
- SQL
- HTML/CSS
- Ruby
- VBA
- VB.NET
- C#
- GO
- Swift
- GAS
このように様々な種類の言語があります。
また言語によって実現できる事が異なります。
言語選択の際に市場の需要だけで決めてしまうと、自分のやりたい事と実際にできる事が違ってしまい、プログラミング学習を続ける事が辛くなってしまいます。
イメージが湧きづらいと思うので具体的な例を挙げてみます。参考程度にどうぞ。
例えばJavascriptの学習をすると決意した人がいました。
しかしその人が描いている将来はアンドロイドのアプリ開発をしたいと思っています。
このような場合、Javascriptはブラウザ上で動く言語なのでWEBアプリのフロントエンドはできるかもしれませんが、 アンドロイドのアプリ開発は別の言語が使えわれていることが殆どです。
つまりこの場合、頑張って学習してきた内容を生かすことができません。
※全く生かせないわけではないですが、、
この様な自体を招かないためには、まず自分がどのようなものを作りたいかしっかりと整理して明確にすることが重要です。
自分の貴重な時間やお金を割いてまで学習した知識が全く役に立たないのは 想像しただけでもやる気がなくなりますよね。
なのでまずはプログラミング学習のゴールを決めるというのはとても大事なことなのです
そしてゴールを決める理由2つ目に、学習の無駄をなくし効率良くプログラミング学習を進めることができるというのがあります。なぜ効率が大事か?それはプログラミングは奥が深いので学習を進めれば進むほど、「あれも、これも勉強が必要だ!!」となるからです。
ここで効率が悪いと、違うことが勉強したいけどできなかったり、苦労して勉強した内容も自分の分野では全く必要のない知識だったなんてことになってしまいます。
このようにゴールをきめることで
- 自分が作りたいものがどの言語で実現可能かはっきりする
- 学習を効率よく進めることができるためより深く学べる
ぜひこれからプログラミング学習をしてみたいと思っている人は、自分の作りたいものを明確化してみましょう。
プログラミング学習のコストについて

なにを学ぶべきかが決まった後に考えることはどのように学習を進めていくか。
そこで必ず出てくる問題→有料のスクールに通うべきかor自己学習(独学)で進めていくかでしょう。
より短期間で効率的に知識を学べるスクールはお勧めできます。
下記リンクからプログラミングスクール無料体験の申し込みが出来るので、興味のある方はどうぞ。
何事もそうですがとにかく行動あるのみです。
プログラミングの世界は広く深いので、考えている時間に学習を進められないのは、時間が凄く勿体無いと思います。
考えるよりも学習を始めてみて、自分に合っているかどうかは学習しながら決めるスタイルはプログラミングに限らずどの分野でも言えるでしょう。
いつ行動をするか
まず大前提として、学習方法はあなたのライフスタイルによって大きく異なると思います。
仕事で忙しい中、休日や隙間時間を使って学習を進めていく、休職もしくは転職の為ガッツリ時間を作って短期間で進めていくなど、人によって様々です。
私の場合は、通勤時間の合計が往復2時間30分ほどあるのでその時間を使って独学を進めました。
学び方は効率を考えなければ自分が一番継続できる方法を選択しましょう。
通勤中独学をしてみて感じたこと
正直プログラミング学習に限らず何かを勉強することで感じる事は人それぞれだと思いますが、私自身は凄く通勤時間が有意義な時間になり、休日にゆっくりコードを書く時間が楽しみになりました。
プログラミング学習の方法

今の時代、プログラミングを学習するためのチャンスは沢山あります。
- YouTubeではエンジニア経験者の方々が有料級の動画を投稿
- プロの講師がスクールを開き就職までサポート
- 実際のコードを見ながら自らコードを書き学べるメディアがある
そうなんです、 プログラミング学習のスタートは難しそうに見えて方法は沢山あり、 しかも今の時代無料で始めることが殆どです。
参考にしたサイト
オンラインスクール【※無料】
※有料講座もありますが基礎文法などの学習は無料です。YouTubeチャンネル
プログラミング学習の感想

辛いこともありました

プログラミング学習は専門的分野なので一般的なイメージとして習得が難しそうですよね?
私自身もそう思っていた1人です。
そこで学習する為にスクールに通う事を考えていましたが、スクールに通う為にはある程度まとまったお金と時間が必要だった為やめました。
ここが辛い経験の始まり
私はブログを自分で作り運用してみたいと思っていたので、『HTML・CSS・JavaScript』を習得する事に決めました。
初心者でも比較的習得しやすいと言われている言語ですが、いざ学んでみると奥が深く何から学んで行くべきかわからなくなってしまいました。
わかりやすい例を上げると、独学で英語を一から学ぼうとした時の感覚に似ています。
様々な単語と文法を覚えたところで、日常的な会話はできたとしても、ビジネスシーンなどで役立つ専門的な会話は難しいと思います。
何故なら何が今の自分が描いているビジョンに必要な知識がわからないからです。
もう一つ例を上げると、少し英語が話せるようになり自分では話している英語の発音は正しいと思っています。

ですが本当にそうでしょうか?ネイティブの人に伝わるか、そして何が間違いか気づけるのか?
結局経験者は近くに居た方が良い
恐らくこれらの問題を簡単に解決できるのは、今英語を習得済みの人でしょう。
プログラミングも同じです。
経験者からすると簡単な事でも、初心者が一人で解決するのはとても難しい事なのです。
自分で書いたコードがエラーになってしまったり、ブラウザで思うように動かない事が多々ありました。
その時自分1人で調査し、問題を探し解決するのに3日以上かかった事もあります。
1人で勉強するのは本当に大変で、何度も諦めました。
問題を解決する所まで至らず自分には向いてないと何度も感じました。
経験者と一緒に学習を進められればよかった
そうなんです、やる気があれば多少の困難は乗り越えられると思いますが克服する為に必要な時間はやる気だけではある程度しか縮まりません。
経験者目線のアドバイスで10秒あれば解決できる事も、未経験の自分だけでは1日かかっても解決できないなんて事は独学ではザラにあります。
私は独学で効率を意識していなく、とにかく続ける事を意識してました。
ですが同時にそれだけ苦痛に感じる時間が長いという事でもありました。

プログラマーの友人はいないの?
残念ながら周りにそのような人はいませんでした。
私と似たような状況で、これからプログラミング学習を始めようと考えている人には冒頭でも書いた通り、短期間で効率的に学べるスクールをおすすめします。
楽しいこともありました
ここまでマイナスな事を紹介しましたがもちろん楽しいと感じる事も沢山ありました。
個人的に一番楽しいこと
私が1番楽しいと感じる時は、色々試行錯誤しながら書いたコードが自分が思った通りに動いた時です。
はい、この瞬間たまらないです。
完成した達成感と自分自身の成長を感じる事ができプログラミングをしていて本当に良かったと心から思いました。
うまくいかない分自分の経験になり、その経験からさらに知識が増え結果的に前まで理解できなかった概念を理解できる。そしてコーディングをする。
この状況になると学習スピードが格段に上がります。
専門用語・難しい概念
そしてもう一つ専門用語や概念が理解できた時。
プログラミング始めたてではまず初めに専門用語や概念の部分でつまずく人が多いのではないでしょうか?
専門用語の意味も未経験者からすると今まで一切触れたことのない内容の事が多いいので頭でイメージする事も難しいです。
ですがここがわかるようになるとネットに載ってる解説記事などもすらすら読めるようになります。
すると頭に入る情報量も多くなるので、学習スピードが上がるのです。
つまり今までよりより正確にコードを書けるようになりアイディアをモノに変えられる幅が広がり色々なものを作りたいと思います。
ここまで来ると他の言語も学んでも良いんじゃないかと思います。
まとめ

いかがでしたでしょうか?
今回は私がプログラミング学習を始めてから10ヶ月間の全て紹介させて頂きました。
私なりにわかりやすくまとめたつもりですが、わかりにくいところがあればお問い合わせにてお知らせください。
伝えたかった内容を簡単にまとめると
- プログラミング学習は奥が深い
- 考えるよりもとにかく行動
- 自分がプログラムでなにを作りたいか明確にする事
- 経験者がそばにいればなお良し
- 継続することがポイント
こんな感じです。
特に『とにかく行動』は何事でも大事なことですし、この変化の激しい時代に生きているあなたの生き方を変えるかもしれません。
私自身プログラミング学習は今後も続けていく予定なので、次は『プログラミング学習を20ヶ月間して感じたこと』を記事にしたいと思います。
ここまでお読み頂きありがとうございます。
それではまたお会いしましょう。