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




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

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

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

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

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

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

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

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

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


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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4-2. 転職や就職を考えている人

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

・代表的な開発手法

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6. 最後に

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

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

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

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

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

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

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

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



ABOUTこの記事をかいた人

sugi

大学卒業後、IT企業に就職を果たす。システム開発・人工知能に触れながら大手企業と業務をこなす。2年半後脱サラし、現在フリーランス活動中。 2019年2月から起業する予定。 自社サービス及び製品を開発し、売り上げを立てている。