はっきり言って、Progateをやっても意味ない気がする。
スライドをめくって練習問題をやって、何周もしたけどまだ完璧には覚えられてない……。
こういうのって、ノートを取ったりして手を動かさないと駄目なんじゃないの?
今回は、こういった疑問に答えていきます。
プログラミング学習のロードマップが頭に思い描けていないと、ついこんなことを考えてしまいますよね。
私も自分がプログラミングを学習していた時代、頑張ってノートを取っていた過去があります。
そのノートは使われることなく、どこかに消え去りました……
ということで、今回は『Progateには意味がないんじゃないか』と考える人のために、Progateの使い方についての記事を書いていきます。
私は、とある企業で10年ほどシステム開発を企画からやっていて、新人教育にも関わってきた者です。Progateも全コーストライしてみました。
なるべく最短時間でプログラミングを覚えたいという気持ちがあると思いますので、そういった気持ちに寄り添える記事を目指していきます。
それでは、さっそく本編にまいりましょう。
Contents
スポンサーリンク
Progateはこうやって使おう
さて、いきなり結論ですが、Progateは以下のような気持ちで使うのが大切です。
- 覚えようとしない
- 全体像を頭の中に浮かべながらこなしていく
- 自分で作る場合を常に意識する
まず、私はそもそもプログラミングって、頑張って暗記するものではないと考えています。
別にエンジニア職として働いている人達だって、プログラミングで使うアレコレをなんでも細部まで記憶しているかと言われたら、そうではないわけです。
どちらかと言えば、1日8時間あったとして、平均5時間くらいはググっている時間だと言っても差し支えないと思います。
もちろんスーパーマンみたいな人もいるので、個人差はありますが。
Progateをやっても覚えられないんですが……
これについては、率直に言えば覚えていなくても大丈夫です。
これから様々なプログラミングを試していく中で、徐々に自然と身についていきますので。
プログラミングで何か作ろうと思うと、色々な知識が必要ですよね。以下のような感じです。
- プログラミング言語ごとの書き方や特徴
- さまざまな関数や構文
- ライブラリ・フレームワーク
たとえば何か1つのモノを作ろうと考えたとして、毎回同じものを作る訳ではないので、必ず新しい知識って出てくるわけです。
そうなると、結局その『新しい部分』というのは調べなければ作れない、という事になりますよね。
このとき、知っている部分はもう一度、実践をもって学んでいるのと同じ状態になります。
これを繰り返すことで、ぼんやりとしていた『なんとなく知っている・読んだ』レベルの知識が、『実践で使える』まで自然と引き上げられて行くんです。
だから、Progateをやっている段階で完全暗記を目指す必要はないと私は考えています。
ということで、Progateで出てくることの全てを頑張って覚えようとしなくて大丈夫です。
自然に覚えているものは自然に覚えている状態、覚えていないことは自然に覚えていない状態でまったくOKです。
なぜかと言うと、記憶することより、調べて解を見つける事の方がプログラミングでは大切だからですね。
Progateをやる時は、Progateとお友達になろうとするのではなく、Googleとお友達になりましょう。
今のうちから、Progateで分からなかった部分をGoogleで補完するくらいのことは、やっておいて損はないはずです。
答えを見ないとクリアできないんですが……
これも、前述の理由で『さっさと答え見ちゃってまったくOK』です。
プログラミングをやる上で大切なことは、細部を暗記することではなく、全体像を頭の中に思い浮かべることです。
たとえば、作ろうとしているものが、どういった要素によって構成されているか。
それぞれの要素は、およそどういった作り方をすれば達成できるのか。
エラーが出力されるとすれば、その種類は何か。どういった解決方法があるか。
具体的な関数や変数名を暗記している訳ではなくて、実際にシステムやアプリを作る時は、こういった概要部分を把握しながら進めます。
Progateでつまづく部分って、だいたい言語ごとの書き方がわからないとか、セミコロンが一部抜けていたとか、Progateのお手本と書き方が合っていないとか、そんな事ばっかりですよね。
これらは『全体像を広く見通す』こととは関係のない部分であることが多い。
だから、もうさっさと答えを見てしまいましょうという、そういうお話です。
真面目な方ほど、『自分で考えないと意味がない』とか、『自分の手で答えを探そう』なんて思ってしまいがちです。
しかし、大切なのは『より多くのケースに触れて』『より多くのエラーの解決方法を知っている』ことです。
あるシステムがあったとして、それをパーツごとに分解することができて、それぞれをググって調べれば作れる。
この状態が最も大切です。
自分で考えようとしても、知識がないので解もないといったことになってしまいがちです。
なるべく全体像を把握していくようにしましょう。
特にProgateの『道場コース』は、Progate側の仕様がきちんと記述されていなかったりで、書かれていないために合格できない状況が多く発生します。
書かれていないことを頑張って探しても仕方ないので、答えは見ましょう。
一度は覚えられても、忘れてしまうんですが……
これは、『自分で作った時のことを想定しながらトライする』という気持ちが大切です。
何度も繰り返し書いてしまうのですが、『プログラミングは大前提として覚えられない』です。
知識が広すぎるので、細部まで覚えるものではないし、仮に覚えたとしても結局新しいものを作る時には調べる事が多くなります。
仮にひとつのアプリを作る技術を全て覚えたとして、それに半年携わっていなかったら、どうしたって半分くらいは忘れてしまいます。
だから、覚えなくても良いんです。ここは安心して頂きたいのです。
大切なのは、あとで調べられることなんです。
一度でもやっておけば、書き方は覚えていなくても、「ああ、あんな書き方あったな」「あんなライブラリあったな」という部分はほとんどの場合、覚えています。
Googleでどうやったら調べられるかというのは、頻繁にGoogleで調べているほど覚えていきます。
私達の頭には、調べるための目次、インデックスだけを記憶しておいて、細部の知識はGoogleを頼りにするんです。
こうすることで、最も効率よく知識を増やしていくことができます。
Progateで効率よくプログラミングを覚える
さて、前述でProgateのハマりポイントや、それらの解決方法についてはお話できたかと思います。
ここからは、より具体的なProgateの活用法ですね。実践編として書いていきます。
主にやるべきことは3つです。
- Progateは一周でいい
- 環境構築をしよう
- プログラムを書いてみよう
細部についてお話していきます。
Progateは一周でいい
Progateは、実際の開発環境とは大きく違う部分があります。
それは、『答えが存在する』ということです。
これは初心者には安心を与える一方、リアルな開発の現場からはどうしても遠ざかってしまいます。
ということで、『Progateは何周もしなくていい』です。
暗記するため、記憶するためにProgateをもう一周やろう、というのは、なおさらリアルな現場から遠くなってしまうからです。
必要なのは、とにかく多くのコードに触れることです。
機能拡張などの理由があるならともかく、既知のコードに触れるというのは、それほど多くの富をもたらしません。
私は様々なアプリのソースコードを作っていく中で、共通項を自然と覚えていく、くらいの認識が大切だと感じています。
環境構築をしよう
Progateには、コラムとして『環境構築をしてみよう』という類のテキストがあります。
一通りProgateでの学習が済んだら、これを使って自分のPCに開発環境を作ってみましょう。
面倒だなとは思うんですけど、これをやらないと先に進めないので。
なぜ環境構築をするかといえば、『自分の思ったプログラムをつくる』という経験が大切だからです。
ここが、Progateの時と大きく異なる部分ですね。
私は、すべてのエラーはプログラマーの血肉となり、エラーによって成長していくと考えています。
Progateで生じるエラーには、正解と違うがために生じているエラーというものがあります。
これの影響がけっこう大きく、Progateで対面するエラーはあんまり吸収できる要素がないんですよね。間違い探しみたいになってしまうんです。
実際に生じるエラーというのは、もっとリアリティにあふれるものです。
エラーの内容を詳しく分析し、どうしたら解決できるかと悩ませている過程で、プログラミングの深い部分がどんどん理解できてくる。
知識として理解していた部分がようやく体感できる技術になって、「ああ、自分はここはできるな」と思えるようになる。
これだけの大きな違いがあると感じています。
プログラムを書いてみよう
ということで、環境構築ができたらプログラムを実際に書く体験をしてみるのがおすすめです。
Webアプリなら、『お買い物サイト』なんかは幅広い知識と経験が得られるので良いのではと思います(決済処理は除きます)。
Windows・Macアプリなら、代表的な所ではチャットアプリを作ってみるというのがおすすめです。
なぜこの2つが良いかというと、他のアプリを作るために必要な知識がそれなりに含まれているからです。
『それなりに』というのは、結局何を作るにしても、新しい知識ってだいたい入ってくるので。
日進月歩で進化していくプログラミングの世界で、『これさえ覚えておけば生涯安泰』みたいな知識ってないです。
ただ、色々な考え方の基盤になるので、上記2つは作ってみても後悔しないかなと思います。
たとえ、世の中には公開しないものであっても。
どうしても課題が欲しい、まだ1人ではちょっと……と思うようであれば、お金はかかりますが、いくつか選択肢があります。
- お金があるので、就職までがっつり!→プログラミングスクール関係
- お金はそこそこ、実績さえ作れれば→Udemy関係
かな、と。
Udemyに関してはまだ私も体験した事がないので、触ってみる機会があったら少しレビューも書いてみようかなと思います。
転職まで面倒みて欲しいと思うのであれば、やっぱり学校が一番強いです。
私も今はやりのプログラミングスクールとは違うにせよ、技術学校のような場所でプログラミングを覚えたので。
それでも、Progateは意味ない気がする
と、そう思う方に向けて少し個人的な話を。
この意見も正直、わかります。
自分が「プログラミングできるようになった!」という実感って、Progateでは得られにくい側面があるので。
教科書のように手順通りにこなしたというだけで、自分で何かを作ったわけでもないし、商品ができたわけでもない。
就職面接で使えるものが手に入ったわけでもない。
自分が何も知らない状態でProgateを始めたとしたら、ちょっと遠回りのように感じてしまうと思うんですよ。
これお金払ってまでやるか? 無料版だけで良いんじゃないか?
本読んで自分でプログラム作った方が早いんじゃないか? とか。
ただ、これについては、プログラミングがある程度こなせるようになった今は、逆だな、と思います。
本を読んで独学するよりも効率がよく、スクールに通うよりもお金がかからない。
それがProgateの立ち位置だと、個人的には考えています。
プログラミングは何と言っても、自分で書くことが何より大切です。
『即、アウトプットできる』という観点から見ると、本よりもProgateの方が優れている側面があると感じます。
誰でも最初はインプットから始めるわけで、覚えた先からアウトプットして学習できるものって、あんまりないんですよね。
だから、月1冊本を読む代わりにProgateを2ヶ月くらいやろう、という意識なら、その価値も感じられるかなと。
Progateが意味なく感じられる段階って、本を読んで実践しても、やはり同じ感想を持つのではないでしょうか。
本に書かれた通りのものを作っただけで、いまいち実感がわかない。できたという達成感がない。
結局、最後は自分で作ってみるしかないんですよね。
でも、やっぱり自分で作るためには、どこからか体系化された知識を学ばないといけないんですよ。
Progateをやる意味はあるか
私としては、Progateはオンラインでアウトプットできる教科書として、非常に有用なツールだと感じています。
独学でプログラミングを覚えたいのであれば、これほど初学者に向いているサービスもそう無いのではと思えるほどです。
ただ、Progate一本でプログラミングを完全に覚えよう! ……というのは、少し違うかなと思います。
Progateはあくまでプログラミングの全体像をやんわりと把握するためのツールで、実際に深い所を覚えるためには、自分でコードをごりごり書いていく意識が必要です。
なので、Progateは必要なコースをやったら、潔く『卒業』しましょう。
Progateに書かれていることを一字一句覚えようとして何周もやるより、自分でソフトウェアを作ってみた方がはるかに有意義です。
Progateに執着することは、おそらくProgate側も望んでいないと思うのですよね。
というわけで、『Progateに意味はあるか?』という記事でした。
同じエンジニアを目指す者として、参考になれば幸いです。