どうも。ネットベンチャー勤務時代、プログラマーとして消耗していたタクスズキです。
今回は、ぼくがプログラミング学習で挫折して学んだ経験談を書きます。
これからプログラマーを目指そうと思っている方は参考にしてみてください。
結論を先に書いておくと、独学はしんどいので、プログラミングスクールに通いましょう。(授業料の価値あります。ぼくも有料でプロに習いました)
※以下で紹介してるサイトなら、5万円の授業料で800万円のリターンを得られます
プログラミングとは?
ではまず、そもそもの話から。
プログラミングとは、機械(PC)に特定の処理を実行させる指示書を書くことです。
(人間も、バイトなどをやる前、マニュアルを読まされて行動を指示(指定)されますよね。それのPC版です)
その指示書は、プログラム(コード)と呼ばれます。
(プログラム[コード]の一例)
こういった指示書を書くことで、SNS、アプリ、ゲームを作れるのです。
スポンサーリンク
プログラミングで独学したら挫折したよ
そしてフリーター時代、このプログラミングに興味を持ち、独学を始めたんですが、まもなくして挫折しましたw
その理由は、プログラミング学習には挫折ポイントがたくさんあるからです。
では、それらをこれからまとめていきます。
>>プログラミングとは?入門者向けに勉強のやり方、無料アプリなどまとめとく
スポンサーリンク
初心者の挫折ポイントまとめ
1.何から学べばいいかわからない(まずHTML?)
まずこれ。
プログラミングの世界は奥が深く、言語の種類もめちゃくちゃあります。
いま思いついたものだけでも、C言語、Java、C+、Objective-C、Swift、JavaScript、Ruby、PHP、Python、R言語など色々あります。
この中から、何を学べばいいか理解するのは初心者には無理なんですね。
(プログラミング前段階のHTML、CSSも理解しないといけないので、余計こんがらがります)
2.どの本を読んだらいいかわからない
仮に学ぶべき言語を理解したとしても、言語を学ぶための入門書の選定でも迷うわけです。
アマゾンを見たり、本屋の書籍コーナーに行ったりするとわかりますが、1つの言語の本に対してかなりの数の学習本があるのです。
それらの中から、初心者が厳選して良書を選ぶのは無理です。
こんな感じで、参考書選びでも挫折ポイントがあるんですよ。
3.本の専門用語が多すぎて理解が進まない
いざ本を読み始めても、挫折ポイントがあります。
それは本の難解さ。専門用語がめっちゃ出てきて、都度つまづくのです。
(オブジェクト指向とか、型とかなんだよ!とキレたくなります)
がんばって用語を調べても、用語を解説してるサイトでも専門用語が使われており、一向にその意味を理解できないこともあります。
これはマジでこれは地獄でした。
4.サンプルコードを書いてみてもエラーがでる
理解不能ながら読み進めて、サンプルコードなるものを見つけその通りに書いてみても、エラーが出ることもありました。
その場合、解消するために、エラーメッセージでググって質問サイトなどを巡回するわけですが、
初心者のうちは書いてあることがさっぱりわからず、一向にエラーが解消されないのです。
5.エラー解消にめっちゃ時間がかかる
こんな感じで、エラー解消に励んでも、初心者にはどうすることもできず、ただ時間を浪費してしまいます。
プログラミング中級者、上級者からしたら、すぐ解決するような問題でも初心者にはその何倍も時間がかかるのです。
また、プログラミングは「”」と「’」のような細かいタイプミスでもエラーがでます。
そんな感じで、しょうもない原因のエラー解決にも時間がかかって、泣きそうになることもありました。
6.1番詳しい質問サイトが英語
プログラミングのエラー解消の際(エラーメッセージでググると)、だいたい上の方に「Stack Overflow」というQ&Aサイトがでてきます。
これは質問数も回答数も多く、参考になるのですが、すべて英語なんですよね。
なので、グーグル翻訳などをかけつつ、問題の対処にあたらなければならないのです。
これもかなりしんどかったですね。
7.質問サイトで解決しないエラーがたくさんある
Stack OverflowなどのQ&Aサイトに解決したいエラーの質問があったとしても、その通りにやって解決するわけではありません。
(構築)環境の違いなどで、自分はその通りにならない場合があるんですよ。
こうなったら、もうお手上げです。(諦めるしかないですw)
8.同士がいないのでモチベーションが続かない
独学だと、1人でやるため、モチベーション維持も難しいです。
塾とかサロンだと仲間がいるので、「自分も頑張ろう」となりますが、独学は孤独な作業なので、気持ちが切れやすいです。
実際、ぼくは何度も学習を投げ出してましたw
こんな感じで、独学ゆえの悩みも出てくるのです。
9.かなりムダな時間を過ごしていることに気づき、むなしくなる
学習本(参考書)に書いてある内容がわからず、コードを書いてもエラーだらけで、その解消も難しく、、、
という状態が続くと、ある時「俺はなんてムダな時間を過ごしてるんだ」と”三井寿”状態に陥ります。
こんな感じで、一人で学んでおいて、勝手にへこむなんてことも体験することになります。
10.フィードバックがないため、自分のやり方が正しいかわからない
一人でコードを書いていると、エラーが出ずに動いてはいても、書き方がよろしくない場合がります。
(エンジニア時代は、Gitを使ってよくコードレビューしてもらって、改善点を教えてもらっていました)
そうやってよくない書き方を続けていくと、変な癖がついてスキル向上につながりにくくなります。
このように、独学だと、よくない学び方をしてしまうこともあるのです。(添削者必要!)
挫折しないために使うべきサービス
こんな感じで、独学だと弊害がたくさんあることに気づき、ぼくは独学をやめました。
そして、当時お会いした方に教えてもらったプログラミング講座(有料)に参加することにしました。
当時のぼくはフリーターでお金を出すのをためらいましたが、「このままじゃラチがあかない」ということで投資を決意。
ついに誰かの元で学ぶことになったのです。
有料の講座に参加してマジでよかった
結論から言うと、プログラミング講座はめちゃくちゃよかったです。
おかげで、学習効率が何十倍にもなりましたし、理解も進み、簡単な診断系サービスを作れるようになりました。
こうした経験をして、学びに投資すること、プロが開催する講座に参加することはプログラミング学習で必須とわかりました。
失敗してわかったプログラミング学習の正しいやり方
というわけで、失敗してわかったプログラミングの正しい学び方をまとめておきます。
・作りたいサービスを決める(これがモチベーションになる)
・クライアント・サーバーの簡単な関係性を知る(ググるだけでOK)
・ドットインストールでHTML、CSSを学ぶ(これを学ばないと何も始まらない)
・実際にプログラミング言語を学習し始める
・初心者の言語はPHPがオススメ。学びやすいので(逆にC言語、Javaから入ると絶対挫折する。メモリ管理とかムズイのです)
・まず1冊入門書を読んでサンプルコード書きつつ、ざっくり理解する(「よくわかるPHPの教科書」がおすすめ)
・そしたら、作りたいサービスを完成させるために、講座に通う
こんな感じですね。
今ならネットでもプログラミングが学べる
「講座に通う」ですが、僕の時代(2012年)は東京のセミナールームのような場所で開催されており、物理的な制限がありました。
(地方の人は参加しづらかったし、関東住みでも受講できる人は限られていた)
ただ、今であれば、「侍エンジニア塾」のようにネットで学べるプログラミングスクールがあります。
ここだと、無料体験でもかなり手厚い待遇が受けられます。
プログラミングからの指導で学習効率が高まる
また、現役エンジニアから教えてもらえるという大きなメリットもあるのです。
なので、プログラミング学習に興味ある方は、スクールのサイトをチェックしてみるといいですよ。
無料動画もあり、講座のイメージもできるようになりますので。
プログラミング学習でお世話になったサイト(入門者向け)
以降ではプログラミング学習で役立ったサイトや必要だったツールなどを紹介していきます。
まず役立ったのは、先ほども紹介したQ&Aサイト。
Stack Overflow以外だと、日本語版の「Qiita(キータ)」、「teratail(テラテイル)」があります。
他に役立ったサイト
他だと、以下の記事で紹介してるサイトが役立ったので、参考にしてみてください。
関連記事:短期間でプログラミング言語を学習してWebサービスをつくるための基礎知識と方法まとめ
関連記事:短期間でJavaScriptを習得し、アプリ・Webサービスをつくるための勉強法
>>【短期で】iPhoneアプリとAndroidアプリ開発初心者のための入門書とサイトまとめ
使うと役立つツール(PC、エディタなど、その他の道具)
プログラミングをやるなら、パソコンはMacがいいですね。
ぼくはプログラミングをやるためにMacを買いました。(環境構築がWindowsと比べて圧倒的に楽)
WindowsでもMac環境はつくれますが、作業が面倒なので、Macを用意した方がいいです。
>>フリーター向けのおすすめ職種はIT系アルバイト!20代から正社員就職を目指す
エディタも大事(Sublimeおすすめ)
プログラムを書くためのエディタ(メモ帳の進化版とイメージしてください)は、「Sublime Text」が圧倒的におすすめ。
上級者だと、vimが楽らしいですが、初心者には難しいです。
「Sublime Text」は色分けや、かっことじなどが見やすく、気に入って使ってました。
なので、これを使ってコードを書くといいですよ。
プログラミング学習のおすすめ本
おすすめ本は以下の通り。
・たのしいRuby
・Ruby on Rails 5アプリケーションプログラミング
・RailsによるアジャイルWebアプリケーション開発
・リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック
あと、最近は「プログラミングゼミ:低学年から使えるプログラミングアプリ」というものもあり、学習ツールが充実しています。
プログラミングはその後の仕事に役立つよ
と、こんな感じでプログラミングを学んでいけます。
今は仕事でプログラミングをほとんど使ってませんが、プログラマー時代に培った考え方は記事執筆に生きています。
役立っているのはオブジェクト思考で、これを学んでいて本当に良かったと今は思っているし、論理的思考も身につきました。
なので、ぼくはプログラミングを学ぶことは非常に有益と思っています。
【追記】基礎を学んだ後、上達のためにやりたいこと
紹介してきた方法でプログラミングの基礎を学んだら、その先に進むために以下のこともやるといいです。
・プログラミングの本質を学べる本を読む
・GitHubで良いコードを見て学ぶ
・スキマ時間を使ってアプリでも勉強
・(できれば)1万時間費やしてみる
では、それぞれについて詳しく書いていきます。
プログラミングの本質を学べる本を読む
PHPで基礎を学んだ後、内定先のベンチャーからの以下の本を読むよう指示され読みました。
・Webを支える技術 -HTTP、URI、HTML、そしてREST
・オブジェクト指向でなぜつくるのか
この辺のアプリケーションレイヤー以外の本も読んでおくと、プログラミングへの理解を深められます。
あと、インフラレイヤーの方に行くためにもこの辺の理解は必須ですので、覚えておきましょう。
GitHubで良いコードを見て学ぶ
これも上達には必須ですね。
ライター(物書き)がスキルを上げるために、うまい文章を写経するという方法があるように、きれいな良いコードをみることにも効果があるのです。
ぼくはあまりやってなかったのですが、ぐんぐん成長していく動機とかはちゃんと良いコードを見て勉強してました。
GitHubは無料で見れるので、ひまな時とかに見ておくといいですね。
スキマ時間を使ってアプリでも勉強
空いてる時間をプログラミング学習に当てれば、学習効率は高まります。
ぼくは「CoffeeScript At Once」というアプリでJSを学んでました。
今だと『Progate(プロゲート)』、「codebelle」などのiOS(Android)アプリがあるので、この辺も試してみるといいですね。
(できれば)1万時間費やしてみる
1万時間の法則についてはこちらもどうぞ。
「1万時間とは、1日8時間、年間200日を投じたとすると約6年です。ですので、6年で少なくともその仕事ではプロレベルになれます」
西野亮廣「僕はこれで100万人に1人を目指す」 https://t.co/dL9hASr15G
— タク@仮想通貨&プロブロガー&FXも開始 (@TwinTKchan) 2017年2月14日
「あくまで目安」だそうですが。
>スキルを習熟レベルに持っていくためには、1万時間を費やす必要があると言われています。しかし、それまで待てないという人には「まず20時間頑張る」のがオススメ。
1日45分を1か月間頑張れば、ある程度、概略をつかんでしまうことは可能https://t.co/3DZheiTEGv— タク@仮想通貨&プロブロガー&FXも開始 (@TwinTKchan) 2017年10月30日
プロは、1万時間の練習の結果生まれると考えられています。しかし、それは間違いです。『1万時間の意識的な練習』に加えて、『1万2500時間の戦略的休息』と、『3万時間の睡眠』の結果、世界レベルのパフォーマンスは生まれるのですhttps://t.co/d5VEITI5yK
— タク@仮想通貨&プロブロガー&FXも開始 (@TwinTKchan) 2017年7月9日
Linuxコマンドも覚えよう
あと、ターミナル(vim)などでのコマンド(CUI用)も覚えておきましょう。
【こぼれ話】未経験からプログラマーになれた人の話も知っておく
僕同様、未経験でも企業に就職(転職)できた人の事例は以下の記事をどうぞ。
カメラ販売員から独学でプログラマーになった方がいるのです。
>>第二新卒の転職って成功するの?大手に行ける?を求人サイトのエージェントに聞いてきた
>>「社会人2年目、3年目だけど転職できる?」「ブラック企業でエンジニアやってたけど需要ある?」←聞いてきました!
>>未経験でプログラマーになるにはどうすれば?仕事内容や給料はどんな感じ?に答えておく
【関連記事】プログラミングの心構え
以下のことも知っておくといいですね。
>>プログラミング初心者が特定言語でいいコードを書くための心構え7つ
>>これは便利!初心者でも挫折しないプログラミング学習サイト5選
>>【入門】初心者がプログラミングを独学するときに役立つ記事12本
学びをアウトプットしてました
勉強したことはブログにアウトプットすることで、より定着します。
技術ブログ書きましょう。
>>【便利】Rails でのデバッグ方法を知れば開発が楽になる!
>>Ruby on Rails入門者におすすめしたい便利なメソッド7つ【サンプル付き】
>>Railsでログイン、ユーザー登録機能を簡単に実装できるgem「devise」の使い方
エンジニアとして働くことについて(仕事内容、年収など)
>>「IT業界に転職したいけど未経験だ」って人が求人を見る前に知っておくべきこと
>>「プログラミングをやると就職で有利になる」という理由で始めて仕事にすると後悔するよ
>>web系プログラマーを辛い、辞めたいと思って1年で辞めた人間がその理由と当時の生活書いとくよ
プログラミングは転職に有利か?
>>ベンチャー企業ランキングは参考にならないので、経験者として転職したらお得な会社まとめとくわ
>>IT業界求人サイトの「未経験でもプログラマーになれます」は本当なのか?
>>ゲームプログラマーになるにはどうすりゃいい?未経験で就職できた人間が年収などを書いてみる
プログラミングを学ぶメリット
>>年収が高いwebベンチャーにおけるエンジニアの仕事内容がエグすぎる件
>>「プログラミングをやると就職で有利になる」という理由で始めて仕事にすると後悔するよ
>>Webプログラマーになるには独学でもOK?未経験可?←経験者として答えておきます
プログラミングスクールの口コミ、評判
なお、プログラミング学校の受講者は以下のような感想を書いてました。
先日、やっとテックアカデミーのwebデザインコースのカリキュラムを終えた。最後のオリジナルサイト作成まで全うすることができなかったが、受講前とは比べ物にならないくらい学べたと思う。今では他の様々なサイトを見るたびに「あ、これはこういうコード入れてるのか!」と分かるようになった。
— ヒョンケンマン (@hyonkenman) 2018年5月16日
テックアカデミーの付加価値はメンターがマンツーマンで教えてくれることなのだけど、そこはエンジニアの友人にまかせよーっと
— nell🙊💭Java学習中 (@nell7pizzaworks) 2018年5月20日
>>20代で未経験から新卒エンジニアになれた!30代の転職だと難しいかも書いてみる
素人状態でも理解できるようになる
テックアカデミーのSQLの教材、基礎のところなのに、受講した時はわけわかんねえなって思ってたけど、いまは「そうそう、それはそう」って読めたから嬉しい
— 千鳥あゆむ (@chidoriayumu) 2018年5月22日
>>【実態と評判】未経験からプログラマーになれるスクール「ギークジョブ」に取材!フリーランスになれた受講生も
テックアカデミーは
受講が終わっても
教材はずっと見れて
アップデートも
続くようですその後の学びにも
貢献してくれる
育成は良い#テックアカデミー— ふきだし@web仕事見習い (@fukidashi_san) 2018年5月30日
東京を始めとする大都市には無料のプログラミングスクールが多数ある
これからの時代を生き抜くスキルを得るには、とても良い環境だ
都心以外の人はオンラインのスクールを受ける事ができる
初心者なら無料のプロゲート
就職まで考えてるなら
コードキャンプ
テックアカデミーが良さそうだ
— 転職男あのアラタ (@anoarata) 2018年5月30日
本業のある社会人も参加中
6月はRuby on Railsの学び直し。テックアカデミーとProgateを2周ずつが目標。そして7月に何かしらリリースしてみるが目標。
本業は採用コンサルでエンジニア採用のために単語とか知りたいと思って勉強し始めたら、プログラミングはまったw
— ケイ@人事のお仕事 (@funtou_26) 2018年6月3日
そして、6月4日からテックアカデミー「webアプリケーションコース」
受講して、大宮のコワーキングスペースに篭っていますが、竹内さんの動画は勉強サボってしまうほど面白いです(笑)(笑)(笑)(笑)— ゆ〜やん@6月からTechAcademy再受講 (@Yu_yan42) 2018年6月7日
フリーランスとして独立、副業、転職にもOK
>>【0円起業】副業でも一人で、資金なしで始められる仕事(商売)まとめ
>>サラリーマンにおすすめの複業!副業との違いやその種類、求人などをまとめとく
>>【副業】月5万円稼ぐ方法33コ!在宅、ネットで収入を得られる、時間が自由な仕事