プログラミングの学び方講座vol.3こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。・学習にそこそこ時間は割いているのに、スキルが全然身につかない・・・という方もいるのではないでしょうか。努力しているのに成長が感じられないと・・・辛いですよね。そこで今回は、「超初心者から抜け出すためのプログラミング上達のコツ」について解説します。※こちらの記事は、連載記事です。前回の記事を見てない方は以下からどうぞ。2019.03.31プログラミングの学び方講座vol.1「プログラミングを楽しく・効率よく学ぶコツを解説!」こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。プログラミ...2019.04.06プログラミングの学び方講座vol.2「プログラミングで挫折しないための目標設定のコツ」こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。超初心者から抜け出すコツは腹落ちさせる仕組みづくりコツ1:学習を進めるときのコツ見て覚えるだけでなく、自分で書いて動かすわかりやすい解説をしている学習サイト、本、動画がたくさんありますよね。「わかりやすいこと」には1つ落とし穴があります。それは、わかったつもりになってしまうことです。わかったつもりで終わらせないために、自分でコードを書いて動かすことがとても重要です。自分で書いて動かすことで、次のように理解が深まります。・エラーが起こり、ググって解決する経験を得られる・興味本位で少しコードを変えて、動かした結果を確認できる動くだけの綺麗なコードだけでなく、自分で書いて失敗した経験が知識に繋がっていくのです。学習するときは必ずメモをとる学習するときは、メモを残すことがおすすめです。プログラミングを初めて間もない頃は、とにかく学習サイトを進めていくことも大事です。残念なことに進めるだけでは知識はほとんどつきません。サンプルコードを見て初めて理解したことなど、メモすることでアウトプットに繋がり、知識を深めることができるのです。学習サイトで学んでいるときはわかったつもりになりがちです。ポイントをまとめたメモをいつでも見れる状況にしておくと、学習が加速するのでおすすめです。※記事の後半で、メモを超活用するテクニックについてもご紹介します。メモにはEvernoteがおすすめメモを取るときは、スマホでも見れるEvernoteがおすすめです。保存したメモを後から1つにまとめるマージ機能もあるので、とにかくメモする癖をつければOKです。iPhoneユーザーの方は、FastEverというアプリを使えば、超高速でメモすることもできます。2:調べるときのコツわからないことを整理する癖をつけるプログラミングをはじめてすぐの場合は、「わからないことがわからない」という人がよくいます。何がわからないかわからないけど上手くいかず、どうやって調べればいいかわからないという状況ですね。そんな時は箇条書きでもいいので、今の状況を書き出してみてください。・○○をしたくて、△△を使ってみたが上手く動かない・▽▽を調べてみたが、出てきた記事をそのまま使っても上手くいかないのように、現状を整理することが大事です。整理することで自分が何に困っているか見えてきますし、誰かに質問するときも「現状どこまで調べたか」「何がわからなくて困っているか」を伝えることができるため、良い回答が返ってきやすくなります。エンジニア・プログラマーにとって、問題を切り分けるスキルはとても重要です。いいので、考える癖をつけましょう。ググる力を鍛えるわからないことを調べて腹落ちさせるためには、ググる力がとても重要です。自分で調べて解決することで、初めて腹落ちするのです。ググり方は調べればいろいろ出てきますが、プログラミングの解説を調べるときにおすすめの方法を1つ紹介します。調べたいこと」で調べるたとえば、VBAを調べるときにおすすめの「いつも隣にITのお仕事(https://tonari-it.com/)」の場合は、次のように検索します。クラスモジュール」のように調べることで、「いつも隣にITのお仕事」から、VBAのクラスモジュールに関連する記事一覧を表示しています。このように、お気に入りのサイトから辞書検索をすることができるのです。読みやすいブログの記事を読むことで、すぐに理解ができますよね。腹落ちまでの時間を圧倒的に効率化できるので、覚えておくと便利です。思考停止でサンプルコードを使わないわからないことを調べたときは、サンプルコードも出てきますよね。サンプルコードをそのまま使えば解決できることも多いですが、思考停止でそのまま使うことはなるべくやめましょう。・引数の値を書き換えたらどうなるか?・他にどんな使い方ができるか?・どんな時に使うと便利か?のように、使い方を理解して使うようにしましょう。サンプルコードの意味を理解せず使っていると、すこし内容が変わるだけで途端にわからなくなってしまいます。バグが見つかった時にコードの意味がわからないため、原因を調べるだけでとても時間がかかってしまいます。使うだけでなく、理解して使うことが重要です。理解ができれば、サンプルコードを書き換えてもっと良くできないか思考を巡らせることもできます。完璧に理解できていなくてもいいので、理解して使う癖をつけましょう。3:問題解決するコツ仮説を立てて検証する機会を増やすプログラミングをするときは、仮説を立てて検証していくことがとても重要です。調べた結果をそのまま使っても、あまり意味がありません。調べる技術や速度が上がるだけで、スキルは身につかないのです。最初のうちは調べるだけでも良いですが、ある程度知識がついてきたら「問題が起きた原因」と「何を使えば解決できるか」考えてみてください。仮説を立てたら、1つずつ検証していくのみです。検証するのフローをこなしていくことで、プログラミング脳を鍛えることができます。慣れてきたら、仮説を立てた後に検証する順番を考えてみるのもおすすめです。数をこなしていくことで、問題解決しやすくなります。質問する前に、まずは自分で必ずググるわからないことがあっても、必ず自分で調べてから質問しましょう。「わかっている人に聞いたほうが早い」と思う気持ちもわかりますが、思考停止で質問して得た答えは、なんの知識にも結び付きません。10分でもいいので、自分で調べる癖をつけましょう。エンジニア・プログラマーとして生きていく上で、自分で調べて解決できる力はめちゃくちゃ重要です。答えを早く得ることよりも考える力を養っておくほうが、長い目で見ると得になります。わからないことが出てきたときは知識を増やすチャンスだと思って、まずは自分で調べてみてください。エラーメッセージでググる自分でコードを書くと、「エラー」が出てきます。プログラミング学習サイトでは見たことがないエラーが出てくるため、解決方法がわからず延々とググってしまう人もいるかもしれませんね。エラーが出てきたときは「解決したいこと」を意識しがちですが、エラーメッセージに注目することがおすすめです。エラーメッセージを日本語訳してエラーメッセージの意味を確認したり、エラーメッセージをそのまま使ってググるだけで、同じようなエラーを解決した人の記事がたくさん出てきます。エラーメッセージにはエラー解決のヒントが詰まっているので、活用していくことがおすすめです。相談する環境を作っておく今までの連載でも何度かお伝えしてますが、相談する環境を作っておくこともおすすめです。自分の知識だけでは解決しづらいことも、現役エンジニアに聞けば5分で終わることもあります。自分で調べることも大事ですが、どうしても前に進めないときはわかる人に相談しましょう。相談する環境は、以下のような方法で作ることができます。メンターを付ける・MENTA・ITスクール・オンラインコミュニティ質問する環境を作る・Twitter・teratail・Qiitaコツ4:知識を深堀りするコツ「なぜ?」と疑問を持って学習する新しいことを学ぶときは、「なぜ?」と疑問を持って学習を進めていくことが重要です。知識をインプットしただけでは、深く理解しているかどうかわからないですよね。「なぜ?」と自分に疑問を投げかけることで、初めて分からないことが浮き彫りになってくるのです。・なぜこの方法がおすすめなんだろう?・値を書き換えたらどうなるのだろう?・もっと他に使いやすい方法はないだろうか?と自問自答することで、理解を深めていくことができます。疑問なしでインプットすることは、左から右へ知識を素通りさせることに近いです。知識を定着させるために、「なぜ?」と疑問を持ってみることがおすすめです。「教えること」をイメージして知識レベルを底上げする「調べてなんとなく理解した」という状態から知識を深堀りしたいときは、「教えること」をイメージすることがおすすめです。「教えること」をイメージしてMarkdown、Evernote、Qiitaなどで情報を整理することで、わからない部分が見えてきます。自分で調べたときには気づかなかった1つ上の視点から自分を俯瞰できるようになり、足りない知識に気づきやすくなるのです。誰かに教えることを想定して理解を深めるのように、知識レベルを深めておくと、応用的な使い方もできるようになります。「なんでこんな書き方してるの?」と聞かれたときにも答えやすくなるので、将来エンジニア・プログラマーになってもコミュニケーションがとりやすくなります。小さなアプリから挑戦してみる基礎知識がある程度ついてきたら、簡単なアプリを作ってみることがおすすめです。チュートリアルのようにアプリの作り方をなぞりながら作ることも大事ですが、自分で機能や画面を考えて作っていく経験が、スキルアップにとても重要だからです。エンジニア・プログラマーとして仕事するときは、「〇〇機能を作る」のようにざっくりと作りたい機能から、自分で考えて作っていくスキルが問われます。自分で考えてから作る訓練をしておくことで、少しずつプログラミング脳を養っていくことができるのです。最初は、タイマーアプリ、メモ保存アプリのような簡単なアプリで構いません。・必要な機能は何かな?・画面の要素は何が必要?・具体的にどんな処理になりそう?と自分で考えてから作っていくことが重要です。5:覚えた知識を効率的に使い倒すコツ学んだことを引き出す仕組みを作るせっかく学んだことでも、時間がたつと忘れてしまいますよね。何度も頭に刻み込むことで、初めて知識として定着するのです。そのため、学んだことを引き出す仕組みを作っておくことが重要です。「これ、前に調べた気がするけどなんだったっけな・・・」と思ったときに、毎回同じことを調べるのは無駄ですよね。調べて分かったことをメモする自分でまとめたメモを最初に見ることで、同じことを調べたときに即解決できるようになります。メモになかった時だけ追記するようにすれば、知識もたまっていきます。自分が理解した言葉で書いたメモだからこそ、すぐに情報が頭に入ってくるのです。わからないことを減らす仕組みを作るただ、メモから検索して調べる場合でも、「調べる速度は上がったけどなかなか覚えられない・・・」ということもあるでしょう。何度も調べてしまう場合は、知識が浅い証拠です。そのため、何度も調べてしまうときは、がっつり調べて学ぶ時間を作ることもまた重要です。見つかった時はカウント数を増やすのように、調べた回数をカウントすることで、自分が同じことを調べている回数がわかるようになります。「カウント数が10以上になったときは、がっつり調べて自分でまとめる」のようにルールを決めて知識を深堀りすることで、足りない知識を補うことができるのです。補足ちなみに、カウント数を使ったメモ活用術については、以下で詳しく解説しています。詳しく知りたい方は、以下も見てみてくださいね。新しい知識を効率的に覚えていくための仕組みとは?超初心者から抜け出すコツは腹落ちさせる仕組みづくり超初心者から抜け出すコツは、「腹落ちさせる仕組み作り」です。「何となくわかった」という状態から抜け出すことが、上達する近道なのです。考える力を養うためには、時間がかかります。した意識や習慣を変えるだけで、着実にスキルを高めていくことができます。いう要望を持っている方向けに、週に1度リアルなお役立ち情報を配信しています。「フクザツなことをカンタンに」がモットーのテクニカルライター。IT企業で約5年のエンジニア経験を経て、フリーランスとして独立。フリーランス2年目で、テクニカルライターをメインに活動中。現在は、数社のメディアで記事を執筆しつつ、完全オンラインで学べるテクニカルライターレッスンを開催している。2019.06.04この連載では、駆け出しコーダーが実務優先で後回しにしがちな『Webにまつわる基礎』を、初心者にも分かりやすい図解を使って解説していきます。2019.03.31こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。2019.04.06こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。USイメージキャラクター『Freena』フリーランスの羅針盤となるメディアサイト『東京フリーランス』。フリーランスの皆さんに役立つコンテンツを配信しています。