paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

プログラミングの勉強で挫折する人は、続けられる人と何が違うのか?

f:id:paiza:20170628120236j:plain
Photo by Peter Alfred Hess
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

最近はオンラインでプログラミングが学べるサービスも増え、プログラミングの勉強を始めるハードルはかなり下がっているかと思います。paizaでも、プログラミングが動画で学べるサービス「paizaラーニング」を公開しています。

ただ、一方で「独学でプログラミングの勉強を始めたけど、どうしてもわからないところがあって挫折してしまった」経験がある人も多いでしょう。

例えば

  • エラーの意味がわからなくて解決できない
  • 正しいコードを書いているつもりなのに思ったとおりに動かない
  • 環境設定で詰まってしまって先へ進めない
  • ネットや本で調べてもわからないことがあるけど周りに聞ける人がいない

といった経験は誰しもあるのではないでしょうか。

多くのエンジニアがそれらを乗り越えて今のスキルを築いてきたのだと思いますが、他方プログラミングの勉強を始めた初心者がさまざまな理由で挫折してしまうケースも見られます。挫折せずにスキルを向上させていくためには何が必要なのでしょうか?挫折要因の発生を防ぐにはどうすべきなのでしょうか?今回はこれについて考えてみたいと思います。

■プログラミングの勉強を始めた初心者が挫折する要因

f:id:paiza:20170628120622j:plain
Photo by amenclinicsphotos ac
まず、プログラミングの勉強を始めた初心者が途中で挫折してしまう要因にはどういったものがあるのか考えてみました。

◆適切な学習内容がわからない

プログラミング言語フレームワークは多数あります。多すぎる選択肢の中から、自分はどの言語から学ぶべきなのか、どの開発環境が何の開発に向いているのか…といった全体像を把握するのは、初心者にとってはわかりづらいものです。

◆詰まった時によい解決策がわからない

いざ学習内容を決めてプログラミングの勉強を始めても、最初はわからないことの連続です。コードが一文字足りないだけでエラーが出て、全く思う通りに動かないのがプログラミングです。

また、それらを乗り越えて基本的な文法を習得できたとしても、次に自分でWebアプリを作ろうと思ったらうまく動かないとか、もしくはコーディング以前、環境設定の段階でうまく設定できずに詰まってしまう場合もあるでしょう。こんなとき、周りに聞ける人がいたりすればまだよいのですが、独学だとネットや書籍で調べてもわからないケースが出てきます。この状態が長く続くと、そのまま挫折してしまいがちです。

◆時間がかかる

プログラミング習得にかかる時間は、どれくらいのレベルを目指すかにもよって異なります。

例えば、一つの言語における基礎的な文法を知りたいだけであれば、paizaラーニングの入門編のレッスンで、早ければ一日程度で習得できるかもしれません。また、一ヶ月程度で初心者でもRuby on Rails等を使った簡単なWeb開発について学べる短期集中型のスクールも最近は増えています。

しかし、業務として成り立つレベルのスキルを習得するには、当然ですが相応の時間がかかります。一般に1000時間や一万時間必要など、いろいろな説がありますが、少なくとも仕事としてエンジニアになった場合、新しい技術に関する勉強に終わりはありません。

◆やる気が続かない

基礎的な文法を勉強している段階の方から、何度か「if文やfor文の書き方はわかったけど、これらがどんなふうに実際のサービスやアプリで使われているのかイメージできない」と言われることがあります。

たしかに簡単な構文を学んだだけで、世の中に公開されているようなサービスやアプリの作り方をイメージするのは難しいでしょう。

また、前述のように時間がかかったり、詰まったりしてしまうと、やる気が続かず心が折れてしまうのも仕方ないかもしれません。

■挫折要因の発生を防ぐには

f:id:paiza:20170628120834j:plain
Photo by Aaron Jacobs
では、上記のような挫折要因の発生を防ぐにはどうしたらよいのでしょうか?

◆学習の目的について考える

目的に対する意識なく、やみくもに勉強をしても挫折要因の発生を防ぐのは難しいかと思います。

まずは勉強するに当たって、自分がどれぐらいプログラミングできるようになりたいのか、何のためにプログラミングを勉強するのか、ある程度明らかにできるとよいでしょう。

ITエンジニアとして開発業務で通用するレベルになりたいのか、開発はしないけど仕事でエンジニアと関わる場面が多いのでスムーズに話せるようになりたいのか、ちょっと興味があるからやってみたいだけなのか(これも立派な目的です)……。まずは今の自分の立ち位置と、何のために勉強するのかという目的を考える必要があります。

例えば、仕事として通用するレベルを目指す!という人の場合は

  • どんなジャンルでどんなサービスを作れるようになりたいのか

エンジニアになりたいわけではないけど、職場のエンジニアとスムーズに話せるようになりたいという人の場合は

  • 職場ではどんな技術やサービスの開発が行われているのか

といったことから考えてみるとよいでしょう。

例えば、エンジニアとスムーズに話せるようになりたい人の場合、まずは現場で使われている言語やフレームワークの基本的な使い方を学んでみるのがよいでしょう。複雑な環境設定や開発技術を学ぶ必要はないかと思われますし、下手にそのレベルに手を出すとまず挫折するかと思われます。

また、興味本位でやってみたい人の場合、今は未経験者向けの学習サービスがたくさん公開されていますから、まずはそれで基本を一通り学んでみて、その後も「さらに続けたい!」と思ったら、その時点で学びたい次のステップを考えるのがよいかと思います。この場合も、いきなり全てを網羅した技術書から始めると、わけがわからず挫折を招いてしまいます。

逆に「すぐにでも転職してITエンジニアになりたい!特にWebサービスの開発がしたい!」と明確に考えている人は、手さぐりで進めるよりも、Ruby on Rails等を使った実践的なWeb開発手法を教えてくれる、短期集中型のスクールで学んだほうが手っ取り早いかと思います。

自分の目的に沿っていない勉強を進めても、途中でやる気がなくなってしまったり、必要以上に時間がかかったり、「そもそも何でこんなことやってるんだっけ?」となったりしてしまいます。まずは大体でもよいので、自分の現在の立ち位置と、目標としてどのレベルを目指すのかを考えてみるのがよいでしょう。

◆学習方法について考える

自分の目的や生活スタイルに合った学習方法を考えるのも重要です。

プログラミングの学習方法は、大きく分けて独学で学ぶ方法と、スクール等で誰かに教わって学ぶ方法があります。

◇独学で学ぶ場合

独学のメリットは、何と言ってもあまりお金がかからない点です。

また、一昔前までは少なかった未経験者向けの学習サイトや入門書も最近はかなり増えているため、頑張れば独学でも業務で通用するレベルのスキルを習得することもできます。

ただ、独学ですと当然ながら、詰まったときも自分一人で解決しなければなりません。(paizaラーニングなど、アドバイザーへの質問ができるサービスもありますが、やはり一から十まで横に先生がついて教えてくれるわけではありません)

その上、どんな内容を学習するかも自分で考えて決めなければなりませんから、学習内容が偏ったり、範囲が狭くなったりしてしまう場合もあります。


独学でプログラミングが学べるサービス

paizaラーニング

paizaラーニングは一回3分程度の動画を見ながらブラウザ上で演習問題を解き、すぐに実行して結果を見ることができます。未経験者でもブラウザさえあれば、環境構築不要で手を動かしながらプログラミングの基礎を習得できます

paizaラーニングでは、ただいま有料講座をそれぞれ期間限定で連続無料公開中です。無料公開スケジュールはこちらの記事をごらんください。
paiza.hatenablog.com


Progate

スライドによるレッスンで基礎を学び、オンラインエディタでコーディングをして実行結果を見ることができます。コーディングの際は、エディタやプレビュー画面と一緒にお手本となる見本画面や解説もあります。


ドットインストール

動画でプログラミングの書き方、環境構築方法などが学べます。

◇独学ではない方法で学ぶ場合

独学を避けるなら、誰かに教わって学ぶことになります。

最近はプログラミングスクールの形態もさまざまで、夜間・土日・短期集中型・オンラインレッスン対応型など、社会人・学生問わず、自分の生活に合った学習スタイルが選べます。

独学と違って、あらかじめ目的に沿ったカリキュラムが用意されており、些細な点でも講師に質問できるという点においては、効率的・効果的に学習できるでしょう。

ただ、もちろんスクールに通うのであればそれなりの費用がかかります。また、受講するまとまった時間を確保する必要もあるため、忙しい人の場合はそこがネックになってくるかと思います。


スクール形式でプログラミングが学べるサービス

「知識ゼロから学ぶプログラミング」4日間でWebアプリ作成講座:Ruby on Rails編

paizaはこのたび「知識ゼロから学ぶプログラミング」4日間でWebアプリ作成講座:Ruby on Rails編として、土曜×4回コースの個別指導型プログラミングスクールを開催いたします。

個別指導形式で、動画の学習教材をもとに、ステップごとに実際のプログラミングを行い、分からないところはその場で講師に質問ができます。その後に演習課題を解いて、理解を深めながら学習を進めていけます。一斉指導型のスクールではないため、自分のスピードに合わせた学習が可能です!


テックキャンプ
f:id:paiza:20160226164040p:plain
Webアプリケーションコース、エキスパートコース、Unity/VRコースがあり、自分のプログラミングレベルと、学びたい内容に合わせたコースを選べます。受講時間も、1日12時間みっちり学べるイナズマ一週間コースから、通常の1ヶ月コースまで、自分の学びたいスピードで学べます。

■まとめ

このように、きちんとプログラミング学習の目的とそれに合った適切な学習方法を知るのが、挫折要因の発生を防ぐ第一歩かと思います。

ただ、これはプログラミングに限りませんが、とりあえず授業を聞いているだけ、本や画面を眺めているだけではなかなかスキルが身につきません

特にプログラミングの場合、自分で積極的に手を動かして、コードを書き、実際に動かして結果を見る…という行為が必須です。少なくとも「全部教えてもらわないと無理…」といった受け身な人が、それなりのプログラミングスキルを習得するのはまず無理かと思います。

ずっとプログラミング学習方法についてお話ししておいてなんですが、プログラミングは適性がものを言う仕事でもあります。自分のプログラミングに対する適性について不安がある方は、こちらの記事も見ていただくとよいかと思います。
paiza.hatenablog.com





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

現在、普段有料公開しているPHP、DB/SQL、Webアプリ開発入門(PHP+MySQL編)のレッスンを、期間限定で連続無料公開中ですのでぜひごらんください。

↓詳しくはこちら
paiza.jp

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
paiza.jp
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ITプログラマ・エンジニア向け転職・就活・学習サービスのpaiza


プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編