プログラミング学習がはかどるジョン・ソンメズ氏考案の学習方法10ステップとは??
あなたがプログラミング学習を始めようと思った時に、どのように勉強を開始しますか?
書籍を購入する、スクールに通う、誰かに教えてもらうなど現在は様々な選択肢があります。
ただ、方法はたくさんあれどプログラミングを身につけるということに関しては目的は1つです。
つまり、どのような方法でもあなたにとってプログラミングスキルを身につけることができれば万事OKということ。
今回は自身もソフトウェアエンジニアでありながら、30代前半でドロップアウトに成功したジョン・ソンメズ氏が自ら実践していた、プログラミング学習を加速させる10ステップを紹介します。
何度もプログラミングの独学に挫折している方やもっと効率良くプログラミング学習をすすめたい方にはオススメの学習方法です。
ジョン・ソンメズ氏
SOFT SKILLS~ソフトウェア開発者の人生マニュアル~の著書でもあるジョン・ソンメズ氏とはどのような人物になのでしょうか?
彼は20代前半からソフトウェアエンジニアとして活躍し、その後フリーランスへと独立、プログラミングスキルを軸にアプリ開発やブランディングで成功を収め30代前半でドロップアウトを果たした人物です。
Some Advice On Becoming a Lead Developer – https://t.co/1UbUnWpIJA
— John Sonmez (@jsonmez) 2017年4月8日
彼の経歴で華やかな面だけをクローズアップすれば成功続きの人生に見えますが、実際はフリー転向後の資金繰り悪化や不動産の投資の失敗(後に成功に転じる)など成功ばかりの人生ではありませんでした。
しかし、状況が悪くなっても彼には戦える武器がありました。
そうです、ソフトウェアエンジニアとしてのスキルです。
Webアプリの開発やAndroidアプリの開発など、彼はエンジニアとしても優秀だったことが彼の成功要因の一因となっています。
最初からエンジニアとして優秀だったわけではなく、新しい技術を常にキャッチアップして勉強を重ねていくことで身につけたスキルです。
常に勉強を重ねてきたジョン・ソメンズ氏は著書でこう触れています。
新しい言語も、自分の中でプログラミング学習のフレームワークを確立していれば難しいことではない。
つまり、プログラミング学習を開始するにあたっての勉強のコツを抑えておけばあとはどの言語を勉強してもそのフレームワークを応用できるということです。
彼が提唱しているのはプログラミング学習を10のステップに分けて取り組むこと。
以下で詳しく紹介していきます。
プログラミング学習の10ステップとは?
それではさっそくプログラミング学習の10ステップを紹介していきます。
ここでは分かりやすく新しくRuby on Railsを学ぶケースを想定して説明していきます。
ステップ1:全体像をつかむ
まずはプログラミングの勉強を開始するにあたり、全体像をつかむことが大事になります。
その言語を学習することで何ができるようになるのか?その言語のニーズはあるのか?など勉強を開始する前の全体像をつかみます。
例えばRuby on Railsの勉強を始めたいと仮定します。
Ruby on Railsのことを調べていくと、どうやらRubyで書かれたフレームワークということが分かりました。
さらには、Ruby on RailsでなにかWebアプリを作成しようとすると少なからずHTML/CSS/JavaScriptの知識も必要になることが分かりました。
このように、ただ闇雲に勉強を開始するよりも予め情報収集をたくさん行っていた方がその後の勉強方法も計画が立てやすくなるというメリットがあります。
ステップ2:スコープを決める
ステップ2のスコープを決めるとはどういったことでしょうか?
これは「やる範囲を決める」ということです。HTMLであれ、JavaScriptであれその範囲は多岐に渡ります。
しかし、あるプロダクトを作りたいと考えた時に勉強した全ての知識が必要とは限りません。
プログラミング学習を独学で始める人にありがちなのが分厚い参考書を購入し、現場でも使わないような知識を詰め込もうとすることです。
学んだ知識は使わなければ定着しません。
例えばRuby on RailsでWebアプリを作る際に、どういったものを作るのか先に決めておき、その制作に必要な知識のみキャッチアップしていくというものです。
ステップ3:成功の基準を決める
成功の基準を決める、つまり学習のゴールを設定しておくということです。
成功の基準が曖昧になると、何をもって学習が完了したかが不明瞭になり消化不良に陥ることもあります。
Railsでブログシステムを開発すると決めれば、その制作完了を1つのゴールとみなします。
さらにRailsの勉強をしたい場合は、新たに成功の基準を決めて学習を開始します。
このように1つの学習単位を細かく分割することでプログラミング学習の進捗を可視化することができます。
ステップ4:参考資料を見つける
ここまで全体像を掴み、学習範囲を決め、ゴールも設定しました。
次に行うステップは参考資料を見つけることです。
これは書籍でも学習動画でも公式のリファレンスでも構いません。とにかく、自分の学習目標達成に適した教材を見つけることがポイントです。
ステップ5:学習プランを作る
参考資料も揃ってきたらいよいよ具体的な学習プランを作成していきます。
カレンダー、エクセルなど好きなもので構いません。
仕事や学校のスケジュール以外で、自分がどれだけプログラミング学習に時間を割けるかを算出し、具体的な学習プランを作成していきます。
ジョン・ソンメズ氏は新しい言語を学ぶ際は2週間ほど計画を見ていました。
これは学習経験者なので短期間に設定されている例ですが、最初は1ヶ月くらいを目安に計画を立ててみてはいかがでしょうか?
これが3ヶ月など長期の計画になってくると途中で飽きが来てしまいうまく進まない場合もあります。
例えば、Ruby on Railsを勉強するにあたり、最初の1ヶ月でHTML/CSSで簡単なデモサイトを制作し、次の1ヶ月でRuby on Railsを学習していくというように、計画は分割した方がオススメです。
ステップ6:学習プランに基づきさらに参考資料をブラッシュアップする
具体的な計画が決まってくれば、あとは学習プランに基づき再度参考資料をブラッシュアップしていきます。
ステップ7:学習開始(Just do it)
ここから、さっそく学習を開始していきます。
事前に立てた学習計画に則って学習を進めていきます。途中で修正箇所があれば都度、修正し学習を進めますがここで注意点が1つ。
それは参考資料を熟読し過ぎないことです。
わからない箇所に何時間も費やすよりも、ある程度の理解度で歩を進めた方が全体的な進捗スピードは上がります。
ゲームを始める時に説明書を熟読する人もいると思いますが、説明書を熟読して一向にゲームをスタートさせない人よりも、ある程度の理解度であとは実際にゲームをやってみた方が上手になることはよくありますね。
ステップ8:レールから外れた箇所を積極的に拾っていく(落穂拾い)
実際に勉強を始めていくと、参考資料外のところで気になる点が出てくると思います。
例えば、書籍のサンプルではこう書かれているけど自分なりに修正してみたらどのような結果が得られるのだろう?
つまりはサンプルからの脱却ですね。
ただ参考資料のサンプルをなぞるだけでは学習成果を大きく上げることはできません。
そして、このようなサンプルからの脱却は意識的に行った方が学習成果を上げやすくなります。
ステップ9:できるところまで掘り下げる
学習計画に則り、学習できる所までどんどん掘り下げていきます。
ステップ8で紹介したように意識的にサンプルからの脱却をし、自分が疑問に思うことや途中で理解できなかった部分を振り返りながら掘り下げていきます。
ステップ10:アウトプットする
学習の最後の締め括りとしてアウトプットを行うとより知識が定着しやすくなることをジョン・ソンメズ氏は紹介しています。
彼は知人に自分が得た知識を教えることがベストなアウトプットと紹介していますが、それが難しい人はブログで紹介したり、ノートに書き出してみるのも良いでしょう。
ステップ10は環境が整っていないとなかなか難しいですが、得た知識を誰かに教える・アウトプットすることがより知識を定着できると紹介されています。
目的のないプログラミング学習ほど身につかないものはない
これに加えて筆者の経験から付け加えると、目的のないプログラミング学習ほど身につかないものはありません。
昨今であれば、Pythonが盛り上がっていますがPythonを勉強して何を作りたいのか(または、何をしたいのか)が明確にならないと、何のためにこれを勉強しているの?という状態になりせっかく詰め込んだ内容が右から左に流れていきます。
ネット上に転がっているサンプルアプリを作って、サンプルコードをなぞっている時は知識を吸収した気になります。
しかし、完成した後に「で?これからどうすればいいの?」と思った人は少なくないはず。
漫然とコードをなぞるのではなく、事前にゴールを決めて勉強する方が進捗は全然違います。これはジョン・ソンメズ氏も紹介していますね。
- Rubyを勉強してRuby on Railsでアプリケーションを作りたい
- Pythonを勉強してクローラーを作成したい
- Swiftを勉強してxxxの機能があるiOSアプリを開発したい
このように明確な動機がある方が、ぶれずに効率よく勉強を進めることができます。
まとめ
プログラミング学習の方法10ステップを紹介しました。
一度、プログラミング学習のポイントを抑えればジョン・ソンメズ氏が言っているように他の言語でもそのまま応用することができます。
プログラミングの独学で何度も失敗している人はここで紹介した10ステップを実践してみては?
なお、ジョン・ソンメズ氏が運営するサイト「Simple Programmer」もエンジニアになりたい方、フリーランスに転向したい方など大変役立つ情報を配信しています。
英語で書かれたサイトになりますが、こちらもぜひチェックしてみてください。
プログラミング独学のおすすめ本
アメリカにて独学でプログラミングを学ぶ方法を紹介しているジョン・ソンメズ氏による翻訳本。
どのようにプログラミングを独学で勉強していくかのロードマップが詳しく記載されています。
ソフトウェア開発者のキャリアについても言及されているので、プログラミング初心者以外の人にもおすすめ。