こんにちは、フリーランスエンジニア兼テックライターのしろ(@siro3460)です。
皆さんは、プログラミングスキルを身につけるための学習方法を知っていますか?
プログラミング学習サイトや本はたくさんありますが、
- プログラミングを楽しむためのコツ
- スキルアップするために必要な考え方
- 学んだことを確実に腹落ちさせるためのコツ
- 知識だけでなくアプリを作る力を鍛える方法
- 実力をつけるために仕事をとるための戦略
など、仕事でもつかえるプログラミングスキルを鍛えるための、具体的な方法がわからない方もいるのではないでしょうか。
ITスクールに行けば手っ取り早く知識は学ぶことができるかもしれませんが、どれも高額ですぐには手が出せないですよね。
そんな悩みを持った方向けに、エンジニア・プログラマーになるためのプログラミング学習方法について、連載することとなりました。
今回は第一弾として、「プログラミング学習を楽しみながら学ぶ方法 + 学習効果を高めるコツ」について解説します。
プログラミングを始める前に目的を明確化しよう
プログラミング学習サイト、本、ITスクール、MENTA、勉強会、オンラインサロンなど、さまざまな学習方法がありますよね。ただ、学習を始めればある程度知識はつきますが、目的を決めていないと、いつか成長が止まってしまいます。
そのため、最初にプログラミングを学ぶ目的を明確化することが重要です。
・フリーランスになってリモートワークしたい → Web開発
・スマホアプリを開発する仕事がしたい → アプリ開発
・仕事を楽にするためのツールが作れるようになりたい → 自動化ツール開発
のように、なりたい姿をまずはイメージしてみましょう。
なりたい姿がイメージ出来たら、学ぶべき言語が見えてきます。
・Web開発:HTML、CSS、JavaScript、Ruby、PHP、Python
・アプリ開発:Swift、Objective-C、Kotlin、Java
・自動化ツール開発:VBA、RPA
プログラミングを楽しく学ぶための学習サイト
なりたい姿・言語が決まったら、プログラミング学習サイトでプログラミングを始めましょう。
初めてでも使いやすいように、目的別に情報が整理されている学習サイトをご紹介しますね!
Progate
Progateは、わかりやすいスライド形式の解説資料 + プログラミングの実践課題を使って学ぶ学習サイトです。スライド資料がとにかくわかりやすく、初めてプログラミングをする方に特におすすめです。
学習スライド例:
また、以下のように、目的別のレッスンまとめページもあります。コースに沿って学ぶことで、プログラミング学習がしやすくなるだけでなく、スケジュールも立てやすくなります。
まとめページ例:
URL:https://prog-8.com/courses
ドットインストール
URL:https://dotinstall.com/
ドットインストールは、音声 + 画面操作付きの動画で学ぶ学習サイトです。5000本以上も動画があるため、学びたい言語の解説動画はほぼ確実にあります。1動画3分なので、ちょっとした時間を使って学習できることが特徴です。
コンテンツ例:
また、こちらも目的別のレッスンまとめページがあるため、迷わず学習を進めることができます。
まとめページ:
URL:https://dotinstall.com/lessons
パソコンに学習環境を作る必要がありますが、各動画ページの「補足情報一覧」に、環境の作り方が載っています。
はじめてのHTMLの「補足情報一覧」の例:
初めて言語を学ぶときは、必ず補足情報を確認しましょう。
CODEPREP
CODEPREPは、プログラミングを書いて動かしながら学ぶ実践型のプログラミング学習サービスです。言語の基礎解説だけでなく、作りたい機能・アプリをベースにしたコンテンツが多いことが特徴です。
作りたい機能をベースにしたコンテンツ例:
また、ドットインストールと同様、目的別のレッスンまとめページもあります。
まとめページ:
URL:https://codeprep.jp/tracks
プログラミングの学習効果を高めるコツ
わかりやすい学習サイトを使えば、プログラミングは始めやすいです。ただ、同じレッスンに3カ月かかる人もいれば、1カ月で終わる人もいます。
そのため、学習効果を高めるコツをいくつかご紹介しますね!
コツ1:横道に逸れずレッスンを終わらせることを重視する
新しいことを覚えると、使ってみたくなりますよね。「理解がどのぐらいできているか」「もっと〇〇のようにしたらどうなるか」気になる気持ちはわかりますが、自分でオリジナルコードを作ろうとすると・・・次のような壁にぶつかります。
1. 学習サイトのレッスンに出てこないエラーに遭遇してしまう
2. 難易度を飛び越えた機能を作ろうとして、理解に時間がかかってしまう
自分でコードを書いて理解を深めることや、エラーを解決する力はとても重要です。ただ、知識が浅いうちから調べて解決しようとしても、答えは出づらいのです。
一通り基礎を頭に入れることで、見える世界が変わってきます。最初は修業期間と決めて、基礎を学んでいくことがおすすめです!
コツ2:わからないことを完璧に理解して進もうとしない
プログラミングを学ぶときによくありがちなのが、完璧に理解してから進もうとすることです。
プログラミングを始めて間もないころは、わからないことも多いでしょう。ただ、完璧に理解して学習を進めることは・・・とても難しいです。1つのことを理解するときでさえ、基礎解説を見るだけではわからない場合もあります。実践的な課題を数回こなして、初めて使い方がわかるのです。
わからないことを調べて数時間たってしまうよりも、数をこなして学びを進めることがおすすめです。進めていくうちに、「あ、あれはこういう意味だったのか!」と気づけたり、一通り学習した後にもう一度振り返ってみると、理解していることもあるのです。
「完璧に理解はできてないけど、動きはなんとなくわかった」ぐらいでも最初はいいので、まずは進めることを重視しましょう。
わからないと思ったときはメモを取りましょう。メモさえ取っておけば、空いた時間に少し調べたり、勉強会に行ったときに質問することもできますよね。
Evernoteにメモすれば、メモしたノートをマージして一覧化することもできます。
※「わからないこと」を腹落ちさせるテクニックについては、本連載の別記事で詳しくまとめます。
コツ3:プログラミング学習の仲間を見つける
1人で学習をしていると、次のような悩みを持つ人もいるでしょう。
・自分のスキルレベルがわからない
・わからないことで困った時に悩みを相談できない
・屈強な意思がないと、学習を継続すること自体が難しい
プログラミングは、とても長い道のりです。独学で進める場合は特に、早いうちからプログラミング学習の仲間を見つけることがおすすめです!
おすすめのプログラミング仲間の見つけ方について、ご紹介しますね。
Twitter活用法
Twitterでプログラミング学習を公開することで、仲間が見つけやすくなります。プログラミング学習と同じぐらい情報発信は重要なので、ハッシュタグ付きで学習記録をツイートしていくことがおすすめです!
・#100dayofcode
・#プログラミング初心者
・#駆け出しエンジニアと繋がりたい
・#駆け出しプログラマーと繋がりたい
・#progate
・#ドットインストール
勉強会活用法
勉強会と聞くと敷居が高く感じるかもしれませんが、初心者向けのイベントも多いです。
「もくもく会」という参加者がそれぞれもくもくと作業するイベントや、交流会をメインとしたイベントもあります。既にエンジニア・プログラマーとして働いている人と話すきっかけにもなるため、イベントは定期的にチェックすることがおすすめです。
わからないことが多く学習が進まない方へ
「わからないことを完璧に解決しようとせず、学習サイトを進めることが大事」と伝えてきましたが、レッスンの内容がわからず前に進めない方もいますよね。
ググってもよくわからず、時間だけがたってしまう人もいると思います。
そんな方向けに、解決できない問題にぶち当たった時の対処方法をご紹介します!
ITエンジニア特化型Q&Aサイト「teratail」で質問する
teratailは、ITエンジニア特化型のQ&Aサイトです。Yahoo知恵袋のようにわからないことを質問することで、回答が返ってきます。
ただ、思考停止で質問するのはNGです。「あ、こいつ何にも調べてないのに質問してるな」と悟られると、回答が返ってきづらくなってしまいます。
回答をもらいやすくするために、自分がどこまで調べて試したか、何がわからなくて困っているかわかりやすく質問する必要があるのです。
・実現したいこと (知りたいこと)
・実現するために実施したこと
・実施した結果・状況
・わからないところ
のように、状況を整理しつつ質問しましょう。
プログラマの技術情報共有サービス「Qiita」に投稿する
Qiitaは、プログラミングに関する技術情報を共有するサービスです。質問サービスではないですが、調べたこと、実施したこと、わからなかったことなどをまとめて発信することで、コメント経由でアドバイスをもらうことができます。
「誰かよくわからない人」よりも、「毎日頑張って学習している人」の方が困っているときに助けたくなりますよね。
また、情報を整理していく力は現場でも使えるため、そういった意味でもQiitaはおすすめです。
プログラミング学習効果を高める最大の秘訣は楽しむこと
今回お伝えした学習サイト、学習効果を高めるコツ、困った時に使えるサービスはあくまでも方法の1つです。一番大事なのは、プログラミングを楽しむことです。
なんでもそうですが、スキルを高めるためには継続が必要です。
学習サイトのレッスンをやってもモチベーションが上がらないときは、思い切ってオリジナルアプリを作ることも一つの手です。SNSやブログで作るアプリを公開し、作っていく過程を発信していっても良いかもしれません。
わからないと思ったときに相談できる環境さえあれば、立ち止まらず進めていくこともできるでしょう。
ぜひ、プログラミングを楽しんでくださいね!