プログラミングをはじめてから、トータルで勉強時間が100時間を超えました。これからプログラミングをはじめたい!勉強をはじめたけどなかなかモチベーションが続かない、という人に向けて、最初の100時間がどんな感じなのか、挫折しないで続けられるコツなどをまとめました。
- そもそも全く未経験からプログラミングを習得するまでに、どのくらいの学習時間が必要なんだろう。
- 100時間だとどのくらいのことができるようになるのかな。
- ちなみに100時間とは、仕事やりながらだとどどんなペース?仕事が忙しくてなかなか時間が取れないけどどうしたらいいの?
- 初心者は挫折しやすいと言われるけれど、まず100時間続けるには?
こうした疑問に答えていきたいと思います。
ちなみにこのブログの筆者は、
- 2019年4月に全くの未経験からプログラミングをはじめる
- 仕事は通訳。通訳している間だけではなくて、自宅での準備などもありON/OFFがあまりない仕事。地方への出張などもあり
- 4月はじめ-5月27日の2ヶ月弱でプログラミング学習時間が100時間
- プログラミングスクールには通っておらず、かといって独学でもなく、「プロサー」というオンラインサークルにて勉強
- この2ヶ月で「やめたい」と思ったことはなく、プログラミングの楽しさがわかってきたのでもっと勉強したい、という高いモチベーションが続いている
現役エンジニアや経験者の方のブログを拝見すると、仕事の入り口に立てるまでに200-300時間、一人でサービス開発ができるまでに800-1000時間というのが一つの目安のようです。
もちろん人によっては短時間でどんどん吸収する人もいるし、遅い人もいるので、あくまでも目安です。
ちなみに仕事の入り口に立てると言われている200時間というのは、どのくらいかというと。。
- 1日8時間フルタイムモードで勉強 25日(約1ヶ月)
- 1日2時間、週末4時間のコツコツ頑張るモード 11週間(約3か月)
- 平日は無理、週末だけ4時間頑張るモード 25週間(約6ヶ月)
- 1日1時間コンスタントに頑張るモード 28週間(6-7か月)
仕事を辞めてプログラミングスクールに行き、自宅でもがっつり学習すれば1か月で200時間達成ですが、仕事もしながら勉強をしたい、という人も多いと思います。私もそのひとりです。
私は平日も休日も関係なく、できるときにやる、というスタイルでした。1日30分から5時間くらいだったと思います。仕事が忙しい時は、寝る前に30分だけ、とか、カフェに入って30分だけ、というようにできることを続けてきました。このペースだと、約4か月で「仕事の入り口に立てる」という200時間にはいきそうです。
通訳者なので、英語の勉強や通訳のトレーニングをしてきた時間を考えると200時間というのは、本当にあっというまという感覚です。ちなみに通訳者になる前に通訳学校やNCCなどで勉強していた時は、あらゆる隙間時間(歩いている時やお風呂、人と待ち合わせしている時も)を使って、仕事時間以外に1日5-6時間は勉強していたと思います。200時間というのは、勉強する習慣さえつけてしまえば難しいことではないと思います。
では、100時間だと実際のところ、どのくらいのことができるようになるのでしょうか。
100時間のほとんど、座学ではなく課題に取り組んできました。課題では、例えば「この場合はこうなるようにこれを作ってください」というお題があり、それをまずはノーヒントで作っていくというアクティブ・ラーニング方式です。ググって「これが使えるかな」とやってみて、エラーが出てまたググって、の試行錯誤の繰り返しです。これはとても力がつく勉強法だと思います。
これまでPHPとSQLを学んで、先日の課題ではログイン/ログアウト機能を実装して、入力されたパスワードなどをセッションに入れたり、MySQLからデータを取ってきて表示したり、ということができるようになりました。次の課題は掲示板作りです。
3月の終わりまでは、PHPも配列も関数もechoも、すべてが同じレベルでハテナ?だったのですが、100時間あればそれぞれの言葉の概念がわかり、「この時はあれを使おう!」という引き出しが少しづつ増えている段階です。
英語学習で言えば、SVOの仕組みが分かって、日々新しい単語を吸収して「makeやgiveはこういう風に使うのか!」と、土台を少しづつ自分のものにしている段階と似ています。
たった100時間ですが、されど100時間です。この100時間の中にも幾つかのステップがありました。プログラミング学習のまさに初期の段階の体験談は、これから始めようか迷っている人には参考になるかもしれないので、紹介していきます。
最初の1週間〜ターミナルを恐る恐る立ち上げる〜
オンラインプログラミングサークル「プロサー」の活動スタート
Slackに入ることができたので、Slack内で過去にどんな会話をしているのかを読んだりして雰囲気をつかんだりしていました。
プロサーの持っているサーバに接続できる環境ももらえるので、ターミナルを立ち上げたりもしました。今思うと、ターミナルを立ち上げるのは普通にワードを立ち上げるのと同じくらい簡単なことなのですが、これまで使ったことがなかったので、恐る恐る。。でした。まあ、最初はこんなもんですね。
(ちなみにターミナルとは端末のことではなくて、上の写真にあるような文字コマンドがずらっと並んだ黒い画面です。色は指定できることも知りました。呼び方を知らなかったのは私くらいですね)
「プロサー」では課題を一つづつ解いていくスタイルなのですが、その前に「このへんの言葉とかネットで検索して勉強しておいてねー」ということでした。
ググるとわかりやすくまとめている記事がたくさんあるので「ふむふむ」と読んでみたり、ドットインストールやProgateなるものもやってみました。こうした有益な無料教材があることも知りませんでした。
Progateだと実際に手を動かしてものを作っていくので、時間はかかりますがこうしたらこうなるのね、ということが目に見えてわかりやすいです。また、ターミナルの環境がなくてもweb上でできるので、最初はとっかかりやすいと思います。
ドットインストールは、ターミナルの画面を見せながらの解説、という感じなので、移動時間にスマホで復習することもできます。ターミナルを使って自分で同じ動作をするのが本来の勉強の仕方だと思いますが、いろんなコマンドが次々と出てくるのでノートをとって整理するのもオススメです。実際にvimで作業をする時に見返すことができるので、今でも役に立っています。
Progateやドットインストールは、やさしいレベルのものだけしかやっていませんが、情報がコンパクトにまとまっていて秀逸な無料教材だと思います。(有料部分もあります)
2週間目〜独り焦りからの初の手応え
いよいよプロサーの課題1を取り組むことにしました。ところが、課題文の意味が全く分からず、青くなりました。その時の私から見ると「次元が違う」ことが書いてあり本当に焦りました。同じ時期にプロサーをはじめた仲間はどんどん課題を提出しているのに、私は課題の意味さえわからない。。
質問はいつでもできるありがたい環境なのですが、わからなすぎて「質問の仕方がわからない」という状況でした。「これ(質問全体)はどういう意味ですか?」と聞くのもバカすぎるし、ある程度理解してから、わからないことをはっきりさせてから聞こう、と思って、ひとまず一つ目の課題は寝かせておくことにしました。
心は焦りながらも、ドットインストールを復習してみましたが、あまり直結するものはなく途方にくれました。
「プログラミング難しすぎる!!一つ目の課題の意味がわかるのに数ヶ月かかるかも」
そんな時にプロサーの仲間で軽々と課題をこなしている方に、思い切ってDMをしてみました。もともとプログラミングを相当やっていたのかな、と思いきや、そういうわけではなさそうでした。
「どうやって質問してるんですか?」と一番聞きたいことを聞くと、「課題にある言葉をググって調べて、自分なりに理解して「こういうことですか?」と聞いていますよー」となんとも親切に教えてくれたのです。
そ!そうなのか!!と思い(今思うと、なぜ課題にある言葉をググらなかったのか不思議なのですが。笑)、その通りにやると、出てくる出てくる。グーグルは知識の宝庫だということがわかりました。「ググる力が必要」と聞いていたのですが、これがそうなのか!と。ググる力、本当に必要です。
通訳の仕事では毎日ググっているんです。登壇者の経歴を調べたり、スピーチがあればYouTubeを見て予習をしたり、業界全体を調べたりしています。ググることは日常茶飯事でやっているのですが、全く新しい世界のことだと、本当に何もわからないものなんですねぇ。と実感しました。
そんなこんなで課題1は合格!
プログラミングを勉強をスタートして2週間、はじめて手応えを感じた瞬間でした。
今回の100時間記事、全体で6000文字を超えるボリュームになったので前編・後編でわけることにしました。続きは後編に