2019/03/07Progateをディスる記事ではありません。Progateはプログラミング学習の入り口としてとても優れています。プログラミングの入門なら基礎から学べるProgate[プロゲート]非常に分かりやすく説明してくれるので、周りに聞く相手がいない独学者にとっては福音のようなものです。Progateを何周かした(してもらった)ところで「脱初心者には程遠い」ことは知っておいた方がいいです。脱初心者できないのでしょう?脱初心者するには何をすべきなのでしょう?多分に主観が入りますが、私の考えを書きたいと思います。有識者が道を示そう最後にProgateは釣り方は教えてくれないProgateでは答えが提示されています。答えにたどり着く方法は提示されていません。参考情報があらかじめ提示されているProgateのレッスンは懇切丁寧なスライドと、それに対応した練習問題の構成になっています。練習問題を解くのに必要な情報は、スライドに全て含まれています。参考にすべき情報があらかじめ提示されているのです。実際のプログラミングで参考にすべき情報が提示されていることはありえません。自分の知識か他人の知識を総動員します。他人の知識とはほとんどの場合Webサイトです。国内・海外を問わずWebサイトを調べながら作ります。全部知ってる人なんていませんからね。プログラミングにおいて「調べられる」ことがとても重要です。以下のポイントを外すと、得られる情報は限られてしまいます。日本語の情報だけ調べていないか?掲示板を避けていないか?コピペできそうなWebサイトだけ見ていないか?検索結果の1ページ目だけ見ていないか?特に日本語のWebサイトだけを情報源にするのはやめましょう。大衆の意見は誤っていないことが多いある程度のキーワードを元にググれば、何かしらの情報がヒットするでしょう。それが信頼性のあるWebサイトなのか即断するのは難しいです。最低限、以下はチェックしましょう。いつの情報なのか?自分が使っているバージョンに合っているのか?より新しく洗練された方法はないのか?公式の情報はないのか?理屈が説明されているか?理屈が理解できるか?よく使われている解決方法なのか?(高評価か?)個人的に一番注目するポイントが一番最後です。複数のサイトを見て、より使われている方法を採用した方が良いことが多いです。同じような意味で、海外の掲示板で高評価の回答も信頼性が高いと思います。説明できないならコピペしない答えらしきWebサイトがヒットしたとして、サンプルとして載っているプログラムや解説をすぐには理解できないと思います。ソースをじっくり読み解くことが求められます。コピペして、コンパイルが通るまで何度も微調整して、なぜコンパイルが通ったのか、どうして動いたのか分からないまま、あー動いた動いたラッキー、なんて最悪です。コピペは決して悪くありません。成長するために他人のソースをマネるのは基本ですから。問題なのは理解しないままコピペすることです。ペーストした時点で自分のプログラムです。実際のプロジェクトで説明を求められた時、コピーしたから分かりません・・・なんて通用しません。Progateで学ぶのは断片だけ回答を書くだけだから仕組みが分からないProgateでは回答用のテンプレートがあらかじめ用意されています。してプログラムが動くのか知る必要はありません。コンソールに出力する練習問題だった場合、コンソールに出力する部分だけ書けば正解となります。コンパイルはおろか、プログラム自体を動かすためにどんなクラスやメソッドを書く必要があるのか分からなくてもよいのです。注目すべき箇所に集中させるためにそのような形式になっていると思われますが、それ自体は何の問題もありません。余計なところでつまづかなくて済みますからね。断片だけ知っていてもプログラムを書けるようにはなりません。World”が出力できないと思います。これ以上簡単にならないようなプログラムさえ書けません。やっていないのだから当たり前です。実際のプロジェクトに配属なんてできるはずもありません。Progateの次は北ソフト工房の練習問題集がいい感じProgateの次にやるオンライン学習でオススメなのが、北ソフト工房の練習問題集です。北ソフト工房Progateと北ソフト工房のどちらにもある言語はJavaしかありませんが、別の言語でも入門の入門の後でやるには最適です。特徴は良い意味で不親切なことです。問題が書かれているだけで、Progateのように実行環境は用意されていません。自分で開発環境を整備して、一からプログラムを作る必要があります。簡単なプログラムであっても断片ではないので、ファイル構成はどうすべき?どうやって実行する?結果はどこに出力される?コンパイルってどうやる?といった基本的なことが分かります。問題自体の難易度はProgateよりちょっと上ぐらいですのでハマることもないでしょう。Progateの次にやるにはちょうどよいのです。Progateで考え方は学べない英文法を覚えたとして、そのまま文章が書けるでしょうか?Progateで学べるのは文法のごく一部です。独学でオブジェクト指向は理解するのは大変thisとか多態性とか継承とかクラスメソッドとかインスタンス変数とかサラっと出てきますが、Progateで理解するのはムリです。スライドに書かれていることを表面上分かったことにして、何となく正解をなぞるだけで終わります。クラスを分けるべきなのか、メソッドのシグネチャはどう設計すべきなのか、ネーミングは?などなど知るべき考え方は山ほどあります。例としてオブジェクト指向を挙げましたが、他のパラダイムでも同じです。有識者が道を示そうこういったことは有識者が解説すべきでしょう。一から独学なんて非効率です。当人も言われるまで重要さに気づかないことがありますからね。全部解説するのはムリでも、どんな情報を元に学習すべきなのか道ぐらいは示すべきです。最後にProgateは全くの初学者が最初にやる学習としてはベストだと思います。位置付けを誤らないことが大切です。最初に苦手意識を持たれないように、つまづかないようにするためのものだと思っています。(さすがに無いとは思いますが)間違っても戦力としてプロジェクトに配属するなんてありえません。学ぶ側も、Progateで学べることは10のうち1も無いことは認識した方がよいと思います。記事はアーザスでの導入事例が元になっております。IT関連のコンサルタントおよびご相談はこちらまでお願いいたします。法人様お問い合わせはこちら私たちアーザスは一緒に成長してくれるメンバーを随時募集しております!経験者はもちろん、新卒・未経験の方でも歓迎いたします!新卒採用ご希望の方はこちら中途採用ご希望の方はこちらこの記事を読んで興味を持っていただけましたら、下記のボタンからご購読をお願いします。RSSで購読するfeedlyで購読する記事に関するご意見・ご質問がございましたら、SNS投稿をお願いします。2019/09/18Laravelでログインできない問題に詰みました。DOGA管理人、ブロガーなどなど、色々やっている御老体です。難しい専門用語は使わず初心者に優しい投稿を心がけています。365などITについて「誰でもわかる」ような記事を公開しています。