プログラミングを勉強するとき、どうやって始めるのがいいかな?
とにかく情報量を増やすのがポイントだよ
私が仕事をしてきたいくつかの小さな会社では、お客さんの特注でシステムを受注する案件が多かったです。新しい技術を取り入れなければならないような状況が案件毎にあるような感じでした。そのような中で、どのようにできるだけ短期間で目的を実現していくかという点は、すごく勉強になったと感じています。周りにいた先輩など、モノづくりができる人(目的を実現して納品出来る人)の共通の雰囲気も感じとることができました。そのような人には、共通する情報の収集方法がありました。
※プログラミングスクール等、誰かに頼る勉強方法ではなく、自分で勉強する場合のお話です。
情報をインプットをする
一つのコンテンツに執着しない
書籍を購入すると、どうしても「すべてのページを読んでしまわないと損をしてしまう」と考えがちです。私がそうです^^;
おそらく、最初に理解できる部分は、分厚い本の最初の1章くらいになってしまうと思います。また、全てを消費しようとするとかなりのエネルギーが必要になってきます。
そのため、私はわからなくなってきたら、1章の技術の全体が見渡せるような部分を理解できればそれでよかったかな、と思うようにして、そっと封印します 笑
複数の入門コンテンツに触れる
入門サイトや、入門書籍、入門動画、それぞれに大体同じようなことを言っていると思いますが、著者の表現によって微妙に切り口が違ったりする場合があります。
ある本で全然わからなかった内容が、ある動画では理解できたりすることがあります。
複数の人の意見を見ることで、より自分の中にその技術の概念が明確になっていきます。
情報をかき集めよう
情報を集めるための一例です。
Webサイト(Google検索)
検索の仕方をどんどん工夫することで、より深い情報へたどり着くことができます。もちろん、ない場合もありますので、そうした時は、自分で検証することになります。
最初、C言語について学びたい場合、「C言語 入門」などのように検索して行くと思います。入門など、初級のサイトで勉強したら、個別の概念を検索して深掘りしていきましょう。
入門サイトで「変数」のことを知ったら、「C言語 変数とは」などで検索することでどんどん知識を吸収していきます。
わからない言葉をどんどん検索していこ〜
最初は検索するたび、全てわからないことだらけだよね〜
英語のサイトでも情報を集める
少しハードルが高くなりますが、日本語の検索に慣れてきたら、英語で検索することにも挑戦していきましょう。喋ることができる英語ではなく、読むことに慣れていけば大丈夫です。google翻訳などを利用して目的の情報を探しましょう。
プログラミングのわからないことは、海外のサイトがより詳しく説明されていることが多いです。日本語のサイトだけで解決できない場合、英語のサイトで、こうしたらできたよ、みたいなプログラム例をどんどん試していきます。
日本以外の方が人口がプログラム人口が多いから、情報量が多いのも納得できるよ
Udemyの動画
Udemyの動画で勉強する方法があります。
動画はセールになっていることが多く、人気動画も安く購入できることが多いですので、入門などは、動画でサクッとみて理解するのが良いと思います。特に、プログラミングの環境構築などに迷いを感じたら、動画で同じように操作して環境構築すると良いと思います。
Udemyの動画は、書籍と同じような内容でも価格が比較的安い印象があります。私は、書籍購入の前に、まずは入門動画を1本購入して、それでもわからないことがある場合は書籍という流れで情報を収集していきます。
書籍
プログラミングの書籍情報は、分野によっては古くなってしまう事もあります。
古いものでも大丈夫な場合
アルゴリズムなどを解説している本
アルゴリズムは、プログラムのパターンですので、古いものでもずっと使われることが多いです。しかし、より効率的な方法などもアップデートされ続けていきますので、基本を書籍で学習し、より効率的になっていないかをWebなどで検索すると良いです。
C言語などのずっと利用されている言語の基本
C言語は、すでに確立されている分野の言語ですので、古い入門書を参考にしても結構大丈夫だったりします。ですが、10年前とかの本を友達からゆずりうけるより、新しいものを買いましょう。
※C++、C#、objective CはC言語を拡張したようなものです。C言語といった時は、これらを含みません。
古くなると使えないもの
マイコン(小さなチップコンピュータ)の入門書など
マイコンという小さなチップにプログラミングをして、モーターなどのハードウェアを動作させる組込系という分野では、チップ仕様の変更や、コンパイラ(プログラムをチップに実行できるように変換するソフト)の仕様変更によって入門書通りにやっても動かないなどがありました。
プログラミングライブラリの使い方など
プログラミングライブラリとは、特定の目的を素早く作成するためにテンプレート化されたプログラムの集合体です。
例えば、サイトを作成するwordpressは、phpというプログラミング言語でサイトを作成する時によく使う機能をまとめたライブラリということができます。wordpress自体は、アップデートされ続けているので、数年前のwordpress入門という書籍は、すでに古い情報の可能性があります。特に、ネット関連の技術は、アップデートしていかないと、セキュリティが甘くなったりしますので、注意が必要です。
言語の仕様
言語の仕様はアップデートされます。Pythonは2系と3系があったり(2と3は別物だと思うのが良い)、PHPもバージョンが上がっていきます。また、C++も更新されて、C++11やC++17といった、年度が後ろについています。
仕様を見ていると、よく英語で、「deprecated」という言葉がでてきますが、これは非推奨ということで、今後使われなくなる機能などを説明するときに出てきます。
頭の片隅にこの点を注意しておくと、保守性の良いプログラムを作ることができる、はず・・・
極端な人は、興味ある分野の新刊は全て買ってました・・・
それが趣味になっている人はいいよね、最近は内容がアップデートされることの多い動画の方がおすすめかなぁ
小さなアウトプットをする
新しいプログラミング言語や、技術を勉強していくうえで、それで何かを実際に作ることが大事です。
最初から大きなアプリケーションを実現しようとするのではなく、目標とするアプリケーションにどんな機能が必要なのかを徹底的に細分化して、
「一番小さな機能のみできるアプリ」
をたくさん作っていくことが良いと考えています。
教科書の第1章の最初のプログラムを動かすだけでもいいかな
最初の小さな一歩を踏み出すことが大事だよ〜