paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

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

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は、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのおすすめコンテンツ

Webセキュリティ入門 ハッカー入門 Webセキュリティ講座がスタート!CVは内田真礼さん! Python✕AI 機械学習入門講座 CVに上坂すみれさんを起用!人気の機械学習講座を公開中!
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.