この一年間、プログラミングを独学してきた過程を振り返ってみた。
これから勉強を始める人の参考になれば嬉しい。
記録はつけてこなかったが、これまでの総勉強時間はだいたい800時間程度だと思う。
他の人のブログなどを読むと、超短期間で自分のサービスを作ったり、というものが多い。
ただ、僕はこれといった目的意識もなく、あれこれ寄り道しながら学んできたので、一般的な人のプログラミングの習得速度に比べるとだいぶ遅いと思うのであしからず。
結論だけ先に言ってしまうと、プログラミングの独学は思っている以上に大変だし、好きでないと続かないということ。
初心者向けの教材が溢れてるのに対して、中級者向けの教材が非常に少ないのもその事実を裏付けてると思う。
これから勉強を始めるよって人は、時間とお金を無駄にしないためにも、ぜひメンターか勉強仲間を見つけてほしい。
お金に余裕があれば、スクールに通うのもいいし。
僕のようにスクールに通うお金は…。
という人は、プログラミング独習者のコミュニティで勉強仲間やメンターを探してみるといいと思う。
一年やった感想として、プログラミングは本当に楽しくて学ぶ価値のあるものだと感じるので、ぜひ一人でも多くの人がプログラミングを楽しんでくれたらなと思う。
一部のスクールなんかは、初回体験は無料らしい。
通うつもりがなくても、行き詰ったときにこういう無料体験にいって質問だけするのはありだったなと、今更ながら感じている。
本記事の構成
この記事の構成は以下の通り。
1~3ヶ月目
まずは学習初期。
この頃学んだ言語は以下の通り。
・HTML
・CSS
・Javascript&jQuery
・PHP
僕がもともとプログラミングを学び始めたきっかけは、自分が所属していた団体のHPを作ろうと思ったこと。
そんな経緯もあって入り口はWEB言語だった。
とはいえ、それまでほとんどPCすら触ったことがなかった僕は、何から初めていいかわからず、とりあえず二冊ほど本を買ってみた。
僕が初めて買った書籍はこちら。
HTML5&CSS3標準デザイン講座
HTML5 & CSS3 デザインレシピ集
この記事を書いてる2018年の8月時点では、少し古い情報が混ざってるかもしれないが、参考になる部分は多い。
この本を見ながら自分なりのHPを作ったのが2ヶ月目くらいまでの活動。
この時点で私はまだ、レスポンシブデザインもjavascriptも、書き方どころか名前すら知らなかたt。動きも一切ない、PCサイズの固定幅のWEBページを作っていた。
苦労して完成させたサイトのクオリティも低く、達成感と言うよりはむしろこんなに難しいのか、というハードルを感じた方が大きかった。
この時期は、低クオリティとはいえ自分のサイトを作ったという満足感と、そこで感じたハードルの高さのせいで、しばらく勉強をサボっていた時期でもあった。
書籍で学習をされているかたはわかると思うが、動画やWEB教材に比べ、書籍で初めての学習をスタートさせるのはなかなかハードルが高いと思う。
このころ並行して使っていたのがドットインストールとSchooという動画学習サイトだった。
有料会員で使用していたが、何から勉強したらいいのかもわからないという状況だった。
この頃は学習は進まないし、本は面白くないしでモチベーションが下がり、何も勉強しないという日もしばしばだった。
3ヶ月ほどたった頃には、すっかり勉強をやめてしまったものの、中途半端で終わりたくないという悔しさから、何故かITパスポートの勉強を開始。
正直迷走しただけではあるが、レポートくらいでしかPCを触って来なかった僕が、PCの仕組みやプロトコルやDBといったものの存在を知るいいきっかけにはなった。
当時使っていたPCはヤフオクで9000円で買った、celelon、4GB、HDD500GBのマウス製ノートPCだった。
正直このPCも、購入価格から考えたらかなりのコスパだったのだが、そうは言っても激重。
ちょっとしたネットサーフィン程度なら問題ないが、どうしても学習動画を見ながらググってコードを書くという作業をしているとストレスが溜まってくる。
ITパスポートの勉強を通してCPUやメモリがPCの快適さに直結していると知った僕。
どうやらcoreシリーズが早いらしいという噂を聞いて、購入したのがsurfacePro4。
それまで実家か学校の重いPCしか使ったことがなく、PCとはそんなものだと思っていたので、SSDの尋常じゃなく早い起動スピードとネットサーフィンの快適さには感動した。
これがきっかけでPC好きになったと思う。
余談だけど、子供にネット触らせたくない親は、使用禁止するとかフィルタかけるとかじゃなくて、とにかく低スペックのパソコンを買い与えたらいいと思う。
ほっといてもそのうちやらなくなるんじゃないかな。
それはさておき、1ヶ月後、61%というギリギリの点数でかろうじて合格。
参考書2周と過去問2年分程度のあっさい努力しかしてなかったものの、そこはお調子者の僕。
プログラミング学習のための意欲が再燃。
低クオリティのまま公開していた自作のWEBページのクオリティアップを目指し、再び教材探しから勉強を再開したのだった…。
5~8ヶ月目
それからまた勉強の意欲がだんだん萎んでいき、学習を始めてから5ヶ月目になろうかという頃に出会ったのが、最近話題のProgateだった。
Progateとの出会いは本当にプログラミングにハマるきっかけになったと思う。
Progateのいいところは、スモールステップで着実に達成感を得ながら学んで行ける点。
それと何より大きいのは、自分の力でコードを書くっていう経験を積める点。
ここでHTML、CSS、Javascript、jQuery、PHPのコースを終了して、レスポンシブ対応のHPを作ったことで完全にプログラミングにハマった。
Bootstrapを使ったこともあり、始めに作ったサイトとはクオリティが雲泥の差だったのも、自分の成長を実感できて良かったと思う。
それまでの勉強がいかに力になってなかったかと言うと、width=device-width, initial-scale=1っておまじないを知らなかったくらい。
正直ここまでの4ヶ月くらいは、ほとんど勉強していたうちに入らないと思う。
勉強時間も、平均したら1時間程度だったし。全然勉強してない期間もあった。
この頃Progateを始めてからは、毎日3時間以上は勉強するようになったので、本格的にプログラミングを学び始めたのはこの頃からと言っても過言ではないかもしれない。
自作のHPをつくってからは、Ruby、Rails、Pythonのコースを修了。
自作のWEBサービスをつくりたいと思い、RubyとRailsを中心に、2周目を開始した。
このときが大体7ヶ月目くらい。
ここから大迷走時代が始まることとなる…。
何となくWEBサービスをつくりたいと思いついたものの、つくりたいもののイメージを一切持っていなかった僕は大苦戦。
とりあえずProgateのRailsコースのSNSを自分の環境で再現しようと思ったものの、WindowsでのRailsの環境構築に3日かかった挙句挫折したり。
挫折した結果他の言語の勉強に逃げようとしてDjangoを始めたり。
Djangoのリソースの少なさに挫折してまたRailsに戻ったり。
唐突にトーナメント表を作成するマクロを作りたくなってVBAを勉強し始めたり。
ITに関する知識が足りないと思い、基本情報技術者の勉強を始めてみたり。
プログラミングの実力をつけるにはJavaだと思って入門書を買ってから2日でやめてみたり。
この時期はほんとに同じところをぐるぐるぐるぐる回っていたような数カ月だった。
このときに購入した教材は、Progateの他に、
Ruby
・プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)
・たのしいRuby 第5版
・Ruby on Rails 5アプリケーションプログラミング
Python
・詳細! Python 3 入門ノート
Excel
・Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術
・入門者のExcel VBA―初めての人にベストな学び方 (ブルーバックス)
・できる大事典 Excel VBA 2016/2013/2010/2007 対応 (できる大事典シリーズ)
Java
・スッキリわかるJava入門 第2版 (スッキリシリーズ)
・スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
その他
・(全文PDF・単語帳アプリ付) かんたん合格 基本情報技術者教科書 平成30年度 (Tettei Kouryaku JOHO SHORI)
・基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ~流れ図と擬似言語~ 第3版
・キタミ式イラストIT塾 基本情報技術者 平成30年度 (情報処理技術者試験)
だった。
改めて見ると、たった2~3ヶ月の間に随分いろんなものに手を出したなと思う。
何か新しく始めるときはとりあえず適当に関連する本を買う癖があるせいで、新しい言語に手を出すたびに書籍が増えていく…。
そんなこんなで、自分のHP以外に作品と呼べるようなものが何もないまま、3月を迎え、ついに大学を卒業して社会人の仲間入りを果たしたのだった…。
履歴を見るとちょうどこのタイミングでProgateを解約。
4ヶ月有料会員で使ってみて、到達レベルは256レベルだった。


9~12ヶ月目
社会人になった4月。
非エンジニア職として、地方で仕事を始めることになった。
大迷走時代を経て、結局学習言語はPythonに落ち着くことになり、ここから本格的にPythonの勉強をし始めた。
Pythonに落ち着いた理由は単純で、単に一番書いてて気持ちよかったから、というだけだった。
Rubyはいろんな書き方があったり、何となくコードがごちゃごちゃしているように感じたし、Javaはprintメソッド一つとっても冗長で、書いてて疲れたのでやめた。
その点Pythonはシンプルかつ、読みやすく書きやすい。
5月になるころには、完全にPythonにハマっていた。
並行して、勉強したことを残していくために、4月末にこのブログ『かえるのほんだな』を立ち上げた。
5月からは、脱初心者を目指して勉強をしてた。
初心者から中級者に進むための教材って、これといったものがないように感じて困った。
やっぱりマーケット自体が小さいんだろうか?
初心者向けの教材は溢れかえっているだけに、独学で初級者から中級者レベルになる壁はもしかしたら想像以上に厚いのかもしれない。
逆に上級者向けの何が書いてあるかさっぱり意味がわからない教材は豊富にあった。
本職の上級エンジニアのマーケットはそれなりに大きいのだろう。
そんな中で出会ったのはPyQというブラウザでPythonの学習ができるサービス。
月およそ3000円と、Progateの3倍の金額ではあるが、それだけの価値は十分あるコンテンツだと思う。
とはいえ、当時はPythonのProgateと入門書を一周した程度のレベルで、少し難しかったので1ヶ月でやめてしまった。
公式サイトにこんな説明があるくらいなので、ある程度のリテラシーは必要っぽい。

実際にDjango、Flask、機械学習、チャットボットのアプリを作ってデプロイした経験を得た今ならサクサクすすめられそうなので、そのうちまた再開しようと思う。
その後に出会ったのがこちらの動画学習サイト、Udemy。
Udemyは、Progateについで僕のプログラミング学習を大きく変えてくれた教材。
なんと言っても中級クラスのコンテンツが他の教材よりはるかに多いのが特徴。
今では10本以上の動画を購入し勉強している。
Udemyでの学習を始めてから少しずつ自分のコードを書けるようになってきた。
Udemyの機械学習講座で、オリジナルの画像判別アプリを作成してHerokuにデプロイしたり。
スクレイピングではてなブログの人気記事を抜き出してまとめるWEBアプリを作ったり。
Djangoでブラウザ上からHPの文章と写真を更新できるようなサイトを作ったり。
FlaskでLINEボットを作ったりした。
これから
改めて振り返ってみると、最初の半年くらいはすぐに嫌になって投げ出してしまうことが多かった。
当然学びも薄くて、前半年と、後半年で比べたら、圧倒的に後半年の方が達成できたことが多い。
やっぱり独学でプログラミングを勉強していくのってほんとに大変なんだなと思う。
僕も何度も挫折した。
そのままやめてても全然おかしくなかったと思う。
たまたま僕が迷走しながらも1年続けられたのは、単にプログラミングが好きだからだ。
今ではすっかり勉強の習慣がついて、平日は毎日3~4時間以上、休日は一日PCを触ってる生活になった。
そんな日々が楽しくてしかたない。
ただ、今思い返すと、やっぱりプログラミングの学習は一人では難しいと思う。
何から手をつけていいのかわからないし、調べても情報が多すぎて何を参考にしていいかわからない。
なかなか進まないからすぐに挫折するし、迷走もする。
もしも誰かメンターや勉強仲間がいたら、序盤の半年間はもっと効率よく勉強できて、今頃は更にスキルアップできてたんだろうなと思うと、もったいなかったと思う。
これからプログラミングを始める人は、よっぽど頭がいいか、意志の強い人以外は、独学は苦労するというのを知っておいたほうがいいかもしれない。好きでも苦労する。
世の中には素晴らしいアプリやサイトが溢れてる。
その多くは、何年も本職でエンジニアをしているプロが、チームで開発・運用・保守している。
身の回りに溢れているレベルのアプリやサイトと、自分がちょっと勉強して作れるアプリやサイトとのギャップに萎えてしまうかもしれないし、言語、サーバー、フレームワークなど、学ぶべき項目の多さに心が折れるかもしれない。
開発環境の構築や、オリジナルのエラーなど、教材には解決方法がないトラブルにも対処しなきゃいけない。
僕のようなアホは特に、好きでなければ乗り越えられなかったと思う。
僕の二年目の目標としては、とにかく自分のポートフォリオを増やしていこうと思う。
具体的には、
・チャットボットを育てて、ユーザー数50人達成
・機械学習をもっと勉強して、チャットボットに組み込む
・ブログとは別に自分の営業用のHPを作成
・プログラミングスキルで副業で月に20万の収入を得る
ことを目指す。
VRとかにも挑戦してみたい。
追記(2019年5月)
この記事を書いた8ヶ月後に新たに振り返り記事を書きました。
良ければぜひ読んでください。
[…] 一年間プログラミングを独学した過程を振り返ってわかったこと。 この一… […]