プログラミングが上達しない時の具体的な対策





プログラミングを始めてみたはいいものの、意外となぜ取り組んでいるのか明確に答えられない人がいます。

もちろん、『稼ぐため!』『アプリ開発したいから!』など、目的をしっかり定めめることができている人は多く見受けられます。

ですが、稼ぐための段階的な目標、アプリ開発に至る明確な学習目標といった目標設定が曖昧になっている人は少なくありません。

・プログラミング初心者(始めたばかり)

・プログラミングが身につかない

・学習方法がピンとこない

・作りたいものがない

こういった悩みで四苦八苦している人に向けて、記事を通してこれからの学習手順を解説していきたいと思います。

 

汎用性の広いPythonを0から習得するためのフロー及び実際にPythonで開発を行い開発案件を獲得するまでの筋道について解説しているチュートリアル資料と

コーディングの参考となる実際にPythonを使って作ったツールのソースコードを無料で配布していますので、こちらも併せてご覧ください。

初心者・入門者でも30日間で学習できるおすすめPython学習方法

 

おすすめのPython学習サービスをまとめてみました。挫折することなく一直線にエンジニアを短期集中で目指している人はこちらから確認してください。 

【おすすめ】Python学習サイトPyQが初心者に選ばれる理由

プログラミングを学ぶ上で作りたいものがない人へ提案させてください

 

なぜプログラミングが上達しないのか?

おそらく、プログラミングを始めたばかりの人であれば、ネット上で学ぶことができるオンライン学習サービスを利用することかと思います。

この学習方法自体が決して間違っているというわけではなく、始める段階では右も左もわからない状態だからこそ、誰もが取り組めるように学習環境・実行環境が整っているものを選択するのは非常に有効的です。

しかし、だからこそ陥ってしまう落とし穴がここには存在します。

・書籍等のサンプルコードを読むだけ

・サンプルコードを写経するだけ

・ドットインストール/プロゲートの内容をただ解き明かす

・学習教材の問題を解く

こういった行動を初学者だからこそ取ってしまいがちになってしまいます。

一見これらの学習方法はとても有益なものに感じてしまいますが、単純作業のように行なっているだけでは全くプログラミングスキルが身につきません。

 

頭を使わない学習は何も意味がない

プログラミングが全くの未経験であれば、最初の段階でどのようにプログラミングに接して良いかわからないため、コードを1行すら書くことができないはずです。

なぜなら、これから学ぶわけですから当たり前であり、何も恥ずかしいことではありません。

だからこそ、次のような行動を必然的に取ります。

①:ネット・教材等のプログラムをコピペ

②:どこかに記載されているプログラムを写経

これは当然の結果であり、まずは動作するものを体験することで学習意欲に繋げられる可能性もあります。

しかし、こればかりを続けてしまうことでプログラミング初心者から抜け出せなくなります。

 

プログラミング言語は、とにかくルールの塊です。

言語ごとにルールは異なりますが、ルールが違うだけで、ルールに従って記述することは変わりません。

それなのに、なぜいつまでたってもプログラミング言語が習得できないのか?

 

それは、写経する・コピペするだけでは、習得できないものだからです。

例えば日本語の習得で考えると、日本人にとって日本語はなくてはならない言語ですが、当たり前のように日常生活で利用しています。

学生時代に国語で漢字の読み書きや文章構成の学習を行いますが、読み書きだけで日本語が自然と話せるようになっているでしょうか。

間違いなく、自分の考えをまとめるために推敲した日本語を頭の中で整理して、実社会の中で利用しています。

 

他にも、受験英語と呼ばれるものがあります。

これは、受験対策のために英語を勉強しますが、受験が終わればなんの役にも立てられていない人も数多くいるのではないでしょうか。

 

プログラミングでも同じで、暗記のようにプログラムを写経する・コピペするといった行為を繰り返しても、一向に習得することができません。

それでは、プログラミングを習得するにあたって具体的にどのような学習方法を取り組んでいけばよいか解説していきます。

 

プログラミングが上達する具体的な対策

プログラミングを上達させるために、以下の内容を意識することが大切になります。

①:エラーを出す

②:デバッグ方法を覚える

③:小さなプログラムを作成する

④:Google検索

一つ一つをさらに解説していきます。

 

エラーを出す

プログラミング初学者にとって、エラーを出すというのはあまり取りたくない選択肢かもしれません。

なぜなら、動作するプログラムを記述したいのにエラーを出すことを学習に取り入れなければならないからです。

もちろん、プログラムを動作させた時にエラーが発生しないに越したことはないように思えます。

ただ、サンプルコードのコピペや写経をしていると、エラーに出くわすことがないので、エラーが起きた時の対処法を身につけることができなくなってしまいます。

 

つまり、自分自身でコードを記述する機会を損失してしまうため、本来つまずくべき箇所をスルーしてしまったり、動作してしまったからこそ復習や重点的な学習を怠ってしまう原因になってしまいます。

エラーを出すことは、その選択肢た言語学習のルールや概念を学ぶタイミングになります。

どのようにエラーを回収するか、どんなコードを記述すればよいかなど、プログラミング学習で重要となる考え方を養うことができます。

 

このようにエラー一つ取っても、問題解決力を養うためのコードへの理解が深められていきます。

 

デバッグ方法を覚える

はじめのうちはどのようにデバッグをすればよいかわからないです。

であるならば、最初の時点では出力関数を利用してプログラム内の各プロセスに配置してみましょう。

プログラムがどのように1行1行を読み込み、実行しているのか理解が深められるはずです。

 

このように、プログラムにおける各プロセスでどのような動作を行なっているか逐一把握することによって、プログラムの全体像が見えてきたり、エラーに遭遇した時にいかにしてその原因を突き止めていけばよいか理解できてます。

写経やコピペをしても、プログラミングのスキルが向上しないのはこういった対処方法を知らないことに他なりません。

特に、オリジナルなアプリ開発や他者に依頼されたプログラムを作成する場合、当然ネット上で見つけられないものも存在します。

そういった時にいかに対応できるようになるかが重要になります。

 

小さなプログラムを作成する

いきなりアプリ開発などに手を出そうとする人などがいますが、まずは小さなプログラムから始めてみるのが効果的な学習方法になります。

アプリ開発から始めてしまうと、それこそフレームワークの利用方法やデータベース、プロジェクト管理など多くの障壁を一度に理解することになります。

プログラミングを始めたばかりの人からすれば、膨大な情報量によって理解が及ばないどころか挫折する原因になる恐れがあります。

そのため、バッチファイルのような小さなプログラムから始めてみましょう。

 

それこそ何もわからない状態でアプリ開発から手を出してしまうと、既存の教材を真似るだけで、動作したら『あ、動いた。でもどうしてこんなコード群で動くのかわからない。』といった残念な理解で終わってしまうことになります。

一つ一つを理解しながらステップアップするためにも、理解しやすいプログラムから手を出し始めてみましょう。

 

Google検索

ここでのGoogle検索は、写経やコピペに利用するためのサンプルコード探しで検索するといった意味ではありません。

エラーの内容を検索して理解しながら解決するための情報としてGoogle検索を用います。

 

おそらく、すべての優秀なエンジニアはエラーとの付き合い方が抜群にうまいです。

気付いたらエラー回収が終わっています。

エラーと認知させないぐらい回収がスムーズに行われます。

 

それは、何度もエラーと向き合ってきたこともそうですが、エラーと遭遇するたびに自分自身でエラーの内容を把握し、自分なりにコードを改変して解決まで導いた経験が圧倒的だからです。

教材を利用した学習方法だとどうしてもエラーが起きない状態で完成されたコードを学んでしまうので、いざエラーと遭遇すると対処できないケースが初心者は多いです。

そしてエラー内容を検索するのではなく、すぐに自分が取り組んでいるプログラムに近しいサンプルコードを検索してしまいがちです。

これではいつまでたってもエラーに強くなることはできませんし、実務で活躍できるエンジニアにはなれませんし、プログラミングスキルは向上しません。

プログラミング学習をする上では、ぜひGoogle検索をエラー内容の理解に留めて欲しいです。

サンプルコードを手に入れるためではなく、エラー内容発見に利用しましょう。

 

目的と目標をしっかり立てよう

よくありがちなことですが、この考え方では間違いなく目的を達成できない典型例を記載します。

①プログラミングができるようになりたい

②エンジニアとして働きたい

③〇〇言語を習得したい

これらを目的に置いて、取り組んでいる人は多いのではないでしょうか。

これほど抽象的で具体的な対策が打てない考え方はありません。

 

プログラミングができるようになりたい

プログラミングができるようになりたいと考えている人は、この言葉を変換してみると「プロサッカー選手になりたい!」ぐらい抽象的だと思います。

具体的にその目的を達成するためにどのような目標をステップごとに用意しているか今一度考えてみましょう。

もちろん、目的に沿って中長期目標などを立てている人もきっといるはずです。

ただ、もしも抽象的な目的だけを掲げ、具体的な目標を掲げられていない人がいる場合は、ぜひ目標設定を確実にしましょう。

 

エンジニアとして働きたい

こちらもプロサッカー選手になりたいという宣言と酷似していると感じますが、そもそもエンジニアになるためにはビジネス面における知識も必要になってきます。

もちろん、エンジニアの本分はプログラミング業務から始まるかもしれませんが、SE/PGを目指すのか、〇〇エンジニアを目指すのかでも選択する企業は変化します。

エンジニアとしての働き方を理解しなければ、適切なプログラミング学習を選択することができません。

 

〇〇言語を習得したい

これは先ほどの二つのパターンに比べて少しばかりマシな目的のように見えますが、これも残念ながら抽象的すぎます。

流行っている言語から廃れている言語まで数多くのプログラミング言語が存在しますが、プログラミング言語一つを習得したからといって活躍できるわけではありません。

むしろ、時代とIT業界のトレンドに合わせて、必要な技術をサポートできるプログラミング言語を選択し続けなければ、言語価値もエンジニアとしての人材価値も下がっていきます。

なぜその言語を取り扱うのか今一度考えてみましょう。

プログラミング言語の特徴も調べてみると、需要と将来性について考えられる情報がたくさんあると思います。

その中で、しっかりと情報を精査して自分自身にフィットする言語を選択できているか確認しましょう。

 

上達のコツは『作りたいものを決めること』

よくプログラミング初心者で、『作りたいものがない』と悩んでしまう人がいます。

しかしこれは考え方が違うように思えてなりません。

なぜなら、既存のプログラムを未だ理解できていない人がどうやって作りたいもの(特にオリジナルなもの)を発想するのか疑問に感じるからです。

 

本来、プログラミング学習を通して既存のプログラムを動作させながら自分自身でコードを改変・拡張しながら、自分自身のプログラミングスキルの幅を拡げていきます。

そういった経緯をたどった人だけが、既存のものとは違う別機能を考えつき、実装することができるようになると思います。

プログラミングの経験が浅い段階で、作りたいものが作れないのは至って当然のことであり、そもそも作りたいものがないという考えは違います。

『作りたいものが発想できないから、作りたいものがない。』というのが作りたいものがないと発する人の正しい解釈なように思えます。

 

であるならば、作りたいものを作れるあるいは発想できるように既存のものを作れるようにならなければいけません。

そのために、『作りたいとか作りたくないとかは抜きにして作るものを決める』ことが大切になります。

そうしなければいつまでたっても発想もできないですし、作りたいものが見つかったところで作れるようにもなりません。

 

プログラミングで作りたいものを決める

これに関しては、あなたのプログラミングに対する目的がどういったものかで判断すれば良いと思います。

業務効率化を図ったツールであれば、バッチファイルといったローカル環境で完結するようなものでも良いです。

アプリ開発であれば、ブログサイトやToDoアプリ、簡単なSNSやタスク管理アプリなど、取り組みやすく目的に沿ったものを選択しましょう。

 

ここで大切になるのは、、、

・自分で考えること

・情報収集力を養うこと

・エラーや課題に向き合うこと

・問題解決力を養うこと

これらの力を一つずつ身につけることです。

これらを身につけるために、おそらく最初の段階ではただ漫然とする写経やコピペに取り組んでる人よりも、成果物の数や進捗具合は遅く感じるかもしれません。

しかし、最終的に価値あるプログラミングスキルを身につけて活躍しているのは、この力を身につけることができたあなたです。

 

プログラミング学習で作りたいものがない場合

独学・未経験から始める人も少なくないので、プログラミング学習の継続や学習を続けたスキルアップにはそれなりのハードルが設けられています。

また、プログラミング学習においても、学習者によってはすでに学習対象とするプログラミング言語や狙っている分野が存在するかもしれません。

そのため、費用を抑えて効率的にピンポイント学習で取り組みたいと考える人も少なくありません。

また、プログラミング学習において目的を持って取り組むことは大切ですが、『何を作ればいいかわからない。。』といったスタートの切り方で悩む人もいると思います。

そういったプログラミング学習の指標となる取り組み方について詳細に記載したまとめ記事がありますので、そちらも参照して頂けると幸いです。

プログラミングを学ぶ上で作りたいものがない人へ提案させてください

2019.11.21

それでも取り組みに不安を抱く場合は無料相談がおすすめ

まずは取り組むことを優先しすぎたあまり、何から取り組んで良いかわからず、曖昧な計画によって取り組みを断念してしまうのは、非常にもったいないことです。

現在多くのプログラミングスクールが存在しますが、多くのスクールで無料相談や無料説明会を実施しています。

筆者の周りでも、多くの実践者がプログラミングスクールの無料相談と無料説明会に参加して、自身のプログラミングへの取り組み方、エンジニアとして働くためのスキルアップ、転職サポートに至るまで相談をしながら、活躍されている人もいます。

きっかけは人それぞれですが、その後のキャリア形成やプログラミングのスキルアップで悩まれている人はぜひ活用してみてはいかがでしょう。

この本サイトでも、企業研究を含めたプログラミングスクールのまとめ記事がありますので、こちらから参考にして検討してみてください。

また、無料相談・無料説明会の利用も考慮した上での比較表や実施内容も掲載しているので、参考にして頂けると幸いです。

【比較表・無料体験あり】おすすめのプログラミングスクール3選!オンライン学習で完結!

2020.01.14

Pythonに特化した学習を進めたい人へ

筆者自身は、Pythonista(Python専門エンジニア)としてプログラミング言語Pythonを利用していますが、これには取り組む理由があります。

プログラミングの世界では、IT業界に深く関わる技術的トレンドがあります。

日夜新しい製品・サービスが開発されていく中で、需要のあるプログラミング言語を扱わなければなりません。

トレンドに合わせた学習がプログラミングにおいても重要となるため、使われることのないプログラミング言語を学習しても意味がありません。

こういった点から、トレンド・年収面・需要・将来性などを含め、プログラミング言語Pythonは学習対象としておすすめとなります。

オンラインPython学習サービス – 『PyQ™(パイキュー)』

「PyQ™」は、プログラミング初心者にも優しく、また実務的なプログラミングを段階的に学べることを目指し、開発されたオンラインPython学習サービスです。

Pythonにおける書籍の監修やPythonプロフェッショナルによるサポートもあり、内容は充実しています。

技術書1冊分(3000円相当)の価格で、1ヶ月まるまるプログラミング言語Pythonを学習することができます。

特に、、、

・プログラミングをはじめて学びたい未経験者

・本、動画、他のオンライン学習システムで学習することに挫折したプログラミング初心者

・エンジニアを目指している方(特にPythonエンジニア)

かなり充実したコンテンツと環境構築不要なため、今すぐにでも学び始めたい・学び直したい、Pythonエンジニアを目指したい人におすすめです。

オンラインPython学習サービス「PyQ™(パイキュー)」
※技術書1冊分の価格から始めて実務レベルのPythonが習得できます

【おすすめ】Python学習サイトPyQが初心者に選ばれる理由

2020.03.07

おすすめしたいプログラミング学習プラットフォーム

独学・未経験から始める人も少なくないので、プログラミング学習の継続や学習を続けたスキルアップにはそれなりのハードルが設けられています。

また、プログラミング学習においても、学習者によってはすでに学習対象とするプログラミング言語や狙っている分野が存在するかもしれません。

そのため、さらに費用を抑えてピンポイント学習に取り組みたいと考える人も少なくありません。

そこで費用を抑えた上でプログラミングに取り組みたい人へ、オススメしたいプログラミング学習プラットフォームを紹介していきます。

 

プログラミング学習プラットフォーム – Udemy

Udemyは、世界最大級のオンライン学習プラットフォームとなります。

世界中の学びたい人と教えたい人をオンラインでつなぐサービスとなっており、Udemyは米国Udemy,Inc.が運営するプラットフォームで日本ではベネッセが事業パートナーとして協業をしています。

<利用者実績>
受講者数:約3000万人
講師数:約42000人
講座数:約10万

 

お手頃な価格帯の豊富なコンテンツ

1講座あたり数千~数万円程度で実践的なスキルアップが可能となっています。

講座は一度購入すれば視聴期限なく受講することができます。

また、30日返金保証もついているので安心して始めることができます。

 

学びやすい多彩な機能

0.5~2倍の変速機能で自分のペースで受講を可能にする機能や、専用アプリを利用することでスマホからオフライン環境でも学習対象となる講座の視聴が可能です。

また、講師にアプリ・サイト等の直接掲示板から質問ができるため、疑問を解決し自学自習をサポートしています。

 

どんな人が対象者になるのか?

 

Udemyを検討するにあたって、次のような内容で悩んでいるあるいは目的としている人にオススメすることができます。

・習得したいプログラミングスキルが明確で、年収アップのために学習しているエンジニア

・テクノロジー、ビジネスに関するスキルアップに関心が高い人(特にAI・機械学習を学んでスキルアップを検討されている人)

・Adobeのソフトなどウェブデザインを学びたいと考えている人

・仕事に関連して、スキル獲得や資格取得が必須な人

・転職・再就職・副業のために自己投資を検討している人

これらの内容に当てはまる人は、利用しやすい環境が整っています。

 

Udemyの主要コース

Udemyには数多くの講座ありますが、分野ごとに学習対象を区分けしておきましょう。

登録してすぐにでも学習が始められるので、特化した分野を以下にまとめておきます。

プログラミング学習は時間を無駄にせず、素早く学習を始めることも大切なので、一分一秒でも習得したいプログラミングスキルに時間を費やしましょう。

世界最大級のオンライン学習サイトUdemy
※講座数10万の中から取り組みたいものが分野別・レベル別で見つかります

Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座
※実践的なPythonスキルを身に付けたい人におすすめ

 

まとめ

ここまでプログラミングが上達しない時の具体的な対策について解説してきました。

いかに短期的な方法で効率的だと思える学習を続けようと、本質的なプログラミングスキルを身につけなければ意味がありません。

それこそコピペプログラマーのような状況に陥ってしまいます。

そうならないためにも、理解を深めるためのプログラミング学習を継続することが大切になります。



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、フリーランス活動経験を経て 2019年2月から起業し、今に至る。 自社サービス及び製品を開発、ブログ収入、クラウドソーシングなど、多方面で売り上げを立てている。