プログラミング上達のコツはあなたの目的をマクロに捉えることにある





壮大な記事タイトルになっていますが、読み進めていただければ理解できるかと思います。

日頃からプログラミングを行い、筆者は小さなプログラムを作成していますが、プログラミング初心者の方にとってはそもそも小さなプログラムすら作成する経験が浅かったり、初めてのエラーで戸惑うことも少なくないでしょう。

当然、経験が浅いからこそ情報収集の仕方や問題解決力をどう身につけていけばいいか試行錯誤する毎日になるかと思います。

その中でも多くの人が、情報収集の際にそもそも参考となる情報をググれない・見つけられないという状況に陥り、プログラミング学習を挫折してしまいがちです。

プログラミング初心者の方は、どこで情報収集を行なって効率よく理解をするべきなのか、どこで自身の問題解決力を養っていけばよいのか、わからない人も少なくありません。

そこで、今回の記事ではプログラミングを上達させるためのコツを解説していきます。

特に、メインとしてググり力を取り上げますが、一言で「ググる」と言っても、使い方は膨大にあります。

この”ググる”とは、具体的にどんな場面で利用するべきなのかを解説していきたいと思います。

そして別の章では、そもそもプログラミングの目的に応じて何を考え、学習を続けていけばよいか、例をあげながら解説していきます。

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

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

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

 

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

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

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

 

プログラミング上達のコツ①:問題点を言語化する

プログラミング初心者の方は、そもそもエラーの対処や小さなプログラムの作成時に、つまずいてしまいます。

その多くの原因は、取り組んでいた内容に対して問題点を言語化していないことが起因します。

具体的な例を以下に記載していきます。

◯ 取り組み内容 – Twitterの自動化(フォロー)

◯ 問題点 – Twitterの自動化方法(フォロー)と準備するものなどがわからない

このように取り組んでいる内容に対して、どんな問題点があるのか、言語化していきます。

いわばプログラム設計の考え方ができているかどうかによって、自身が取り組もうと考えているプログラムを言語化できるかに比例してきます。

本来であれば、さらに詳しくプログラム設計を行わなければ実務レベルには程遠いですが、基本的にどれだけ簡易的であろうと、個人的な取り組みであろうと、この言語化によるフローの作成は重要な考え方になります。

もちろん、取り組んでいる人によってプログラミング言語はそれぞれ異なるので、扱っている言語が明確になればより検索対象(ググる)をピンポイントにしていくことができるわけです。

「そんなことは当たり前のように行なっているんだけどな」と思っている人もいるかもしれません。

一度その言葉を飲み込んでもらって、続きを読んでください。

まず、先ほど挙げた問題点をさらに一語ごとに区切り、Googleにて検索していきます。

ここでは、プログラミング言語pythonにてtwitter自動化(フォロー)を目的として検索をかけていきます。

このように検索をかけるのは同じみかもしれませんが、この後に重要な記事を選定していきます。

ありがたいことに筆者の記事もこれぐらい詳細に語句検索を行うことで、執筆した記事が検索結果として表示されています。

この中の表示された記事から、あなたが求める情報を精査し、確認していきます。

例えば、そもそもコード自体を書くことでつまずいているのであれば、記事にコードが記載されているものを選択する必要があります。

また、利用するものがわからなければ、モジュール検索やTwitter情報を取得する方法も検索していかなければなりません。

このように、あなたが欲しい情報を問題点として言語化することによって手に入れるべき情報は変化していきます。

プログラミング上達のコツ②:エラーコードをググってみる

プログラミング学習を行なっている人であれば、基本的にコードを実行する際に、macであればターミナル、windowsであればコマンドプロンプトを使用しているかと思います。

もちろん、実行環境が異なればその他の実行方法にてプログラムを動作させます。

それらを実行した際に、コード記述のミスや各モジュールに関する使用方法のミス・問題が発覚すると、エラー文としてその問題点となる部分が表示されるのを確認したことがあるかと思います。

そのような場面では、エラー文をコピペして、直接googleにて検索してみるのも手段として有用になります。

例えば、twitterに関する利用規約と異なる現象が発生した場合にエラーが発生したとします。

その際に、エラー文をコピペして検索をかけると、大概そのエラーでの対処方法をすでにネット上で尋ねている人の内容が検索結果として表示されます。

あるいは、サービスがはっきりしていれば、twitterの利用規約に関するドキュメントが検索結果として表示され、そのページにてエラーはどんな問題で発生しているかまとめられているものを確認することもできます。

これは経験上ですが、そういったエラー文の検索を行うと、大概英語表記の内容が記事として検索されます。

当然、エラー文自体が英語表記だからですが、その内容をgoogle翻訳にかけることで、内容を理解することができ、対処方法に結びつくことがあります。

必要に応じて、エラーコードの検索も実施してみるのはありだと思います。

プログラミング上達のコツ③:問題解決力を養うこと

前述でも、twitterに関する自動化(フォロー)を取り組む内容として例を挙げました。

その時に、あなたがフォローだけでなくアンフォローも実装してみたいと考えたとします。

確かに、ネット上にあるコードをただ写経し、プログラムが動作したはいいものの、情報収集力だけが卓越し始めても、一番必要となる問題解決力が身につくことはありません。

そこで、あなたは新たなプログラムを考え、アンフォロー自動化も実装することを試みたとします。

もちろん、アンフォロー自体も先ほど同様、言語化して検索をかければ簡単に見つけることができると思います。

ただ、実際に学んできたことが理解できているのか確かめる作業もとても重要になり、フォローと同じ仕組みでアンフォローも作成していけば良いのです。

ここで、ただ写経で終わらず、あなたの実力をしっかり向上させていけるか問われてくるわけです。

逆に言えば、小さなプログラムをまずは真似ることは、とても重要な学習の役割になるということです。

いきなり、「あれを作ろう」「これを作ろう」と考えても、経験がなければ応用することもできず、そもそも基礎として何が存在していて、その基礎をどう応用していけば目的の成果物にたどり着けるかわからないわけです。

なので、まずは真似ること、正しく欲しい情報を検索する力である情報収集力を身に付けることです。

そして、その正しい情報収集力を元に、得られた知見とコードを応用し、自身の課題を類似内容から始めてみることで、調べた内容と同等の実力を身に付けることができます。

プログラミング上達のコツ④:周辺知識も身に付けること

ここまでなんとか独学で学んでこれたプログラミングも、あなたが掲げる目的によっては限界を感じることもあるでしょう。

例えば、とても簡単で小さなプログラムであれば、1人で作成することはできても、webアプリやちょっとしたサービスとなるとハードルは格段に上がります。

ネットワーク、データベース、サーバー、開発工程やチームでの働き方、他サービスとの連携、複数言語の使用など、幅広い多くの周辺知識が求められてきます。

筆者自身、大学四年間の工学部での教育課程や、IT企業での実務経験と開発経験、これらの経験があるからこそ日常的にプログラミングを利用できているなと実感しています。

もちろん、全ての人がこのような経験を積み上げながらエンジニア・プログラマーとしての実績を手に入れているわけではないですが、当たり前のようにこれらの経験を実体験として獲得できているかいないかで大きな差は生まれます。

ネット上に広がるITに関する情報も実際に経験をしている人の記事やニュースなど、とてもタメになる情報がたくさんありますが、プログラミング初心者からすれば、文字だけの理解になってしまいます。

実体験どころか、経験が無いからこそ自信を手に入れることができず、いつまで学習を続ければよいか目処を立てることも困難です。

プログラミングを趣味で続けていくのであれば、自身の計画の元の取り進めていけばなんの問題もありません。

ただ、掲げている目的によっては、働き方を変えたい、稼ぎ方を変えたいなど、それぞれの思惑が存在することでしょう。

そういった目的を掲げている人は、その目的に沿ったプログラミング学習をしていかない限り、学習内容のステップアップが見込めません。

ここで、以下に目的別の学習内容の例を記載していきます。

単純なコーディングやアプリ開発に取り組みたい人

箇条書きに列挙しながら、ざっくり解説していきます。

・学ぼうとしてるプログラミング言語とはなんなのか

私たちが利用している本来の言語をどう捉えるか似ています。例えば日本人なら日本語。アメリカ人なら英語のように各言語の特徴や、できればなぜ目的に応じて利用されるのかなどをより把握しておくとよいです。

AIで言えば、機械学習を利用していますが、計算処理に強いpythonを利用するなどですね。

・プログラミングを学ぶ中で高頻出な単語への理解

例えば、コンパイルやビルド、実行ファイル、バグ、デバッグ、デプロイなどなど、挙げればキリがないほどありますが、押さえるべきポイントは目的に応じて見つかるので、これらの単語の理解を深める必要があります。

・アプリ開発での設計とはなんなのか

プログラミングを通してアプリ開発するにしても、開発するアプリの目的や手法によって設計は異なります。

プログラミング言語はどれなのか、どんなシステムなのか、webアプリなのかスマホアプリなのか、一つのアプリを開発するにしても設計できると進捗具合はスムーズになります。

転職や就職を考えている人

つまり、プログラミングを通して仕事を考えている人になります。

・代表的な開発手法

1 – ウォーターフォールモデル
2 – アジャイルモデル
3 – スパイラルモデル

開発手法といっても、いくつか存在しています。

もちろん今すぐに覚えなければならないというわけではありませんが、知っておくことで頭の整理ができます。

・そもそもSEやPGとはどのようなポジションなのか

意外とSEと呼ばれるシステムエンジニアや、PGと呼ばれるプログラマーの住み分け(主に上流工程と下流工程)などで混在して覚えている人も少なくありません。

前職でSE/PGとして働いていた筆者は、IT企業の中でもプログラミングを行える人の割合の少なさに、当時は驚きましたが、業務内容によってポジションの違いなどを知ることができました。

こういった業務に関わるポジションの違いも知っておくと、いざ仕事に就いた時、会話内容や業務内容で戸惑うことも防いでくれるかもしれません。

プログラミング上達のコツ⑤:メンターを持つこと

これは、至極当然のことで、私たちは最初から自分で多くのことを考えられるようになったわけではないということです。

教育機関の中で、道徳や学問について先生から教わりながら物事に対して判断する力を身につけてきています。

プログラミングにおいても同じことで、いきなり多くを調べてもわからないものはわかりません。

メンターとなる人何か自分の目的に応じた参考になる人を見つける必要があります。

当たり前のように教育を受けてきていますが、しっかりと私たちは教育に対してお金をかけられているわけです。

そのために自己投資が必要な分野だと感じた人は、選択肢としてスクールなどをオススメします。

特に、SEやPGの経験がある人からの教えというのは、やはりそれだけの価値があるわけなので短期間での習得を考えている人には必要なコストだと考えています。

本気でプログラミングを通して働くという選択ができる人であれば、必ず回収することができるので損にはなりませんし、今まで悩んでいたことやわからなかったことが解消されるというのはそれだけ価値のあることだと思います。

そして、今後あなたにとって活用できるものとしてプログラミングレベルが昇華されればよいわけです。

プログラミング上達のコツ⑥:基礎学習を振り返る

これは根本的な部分になります。

ここまでで、ググることの重要性やエラー文に対する対処法などをメインとして解説してきました。

しかし、それらでググることや情報収集から何を解決すればいいか理解できたとしても、コードにその解決方法をいかにして落とし込むか理解していなければなりません。

つまり、解決方法をコード化する力が必要になります。

ただ、コード化するということは基本的にトリッキーな記述方法や特殊な書き方があるわけではありません。

プログラミング言語学習で培った構文の記述方法をいかに理解しているかだけです。

どのようにして基本となる構文を組み合わせ書き換えることで、解決方法となるコードとなるか理解して使用できるだけになります。

逆に言えば、解決方法は〇〇を□□にするだけだと理解していても、それをコードとして反映させる方法がわかっていない場合は、そもそも取り組んでいるプログラミング言語の基本となる構文をおろそかに学習していたことになります。

解決方法さえ分かれば、コード化する方法を考えるだけなのに、それが思いつかないということはまだ言語に関するコード学習の理解が深くないことになります。

もしも、やりたいことはわかっているのにイマイチ指が動かずコードだけを眺めていつまでもプログラムが完成しない場合は、改めてプログラミング言語の基礎学習を振り返ってみましょう。

間違いなくおろそかに学習をしていた内容が浮き彫りになるはずです。

最後に

いかがでしたでしょうか?

多くのことを記載したいのは山々でしたが、記事一つで盛り込める内容は限られてくるので概要レベルで、ググり力の具体的な方法とプログラミング学習の目的をどのような学習で補っていくかについて解説してきました。

もしかすると、この記事ですら内容が複雑でピンと来ない方もいらっしゃるかもしれませんが、それほどまでにプログラミング一つを切り取っても奥が深い分野であるということだけ認識してもらえれば幸いです。

当然、誰もがプログラミング初心者だからこそ、ここまで想定できません。

それでも修正しながら、目的に沿って目標を一つ一つこなしながら実力を身に付けるほかありません。

多くのことを学ぶことで、点のような知識だったものが、いずれ別の知識と関連を持つことで結びつき、線のような知識に変化します。

少しずつでも、手に入れた知識や経験を元に学習を継続しながら情報収集力と問題解決力を身につけていただければと思います。

最後まで一読していただき、ありがとうございました。

プログラミング言語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月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。