こんにちは、みっちゃんです。
本業の傍ら、マイペースにブログで情報発信しています。
プログラミングの学習方法を知りたい。プログラミングを習うことができる学校(プログラミングスクール)があるけど、通う必要があるほど、独学は難しいものなの?お金もかかりそうだし、できれば独学で済ませたい。とはいえ、何から手をつけたらいいのか分からない。
この記事を書いている私は、10年以上、プログラミングを駆使して、世界中に散らばっているビッグデータを分析する仕事をしています。
プログラミングは、インターネット上の情報を使って、学ぶことができます。
最近では、教養の一つとして「プログラミング」が必要とされる時代になり、TechAcademyやテックキャンプなどといった、いわゆるプログラミングスクールも登場しています。
スクールの登場はありがたいことですが、逆に、スクールの存在が、プログラミング習得の難しさを印象づけてしまっているかもしれません。
プログラミングは、本人のやる気次第で、スクールに通わなくても習得できる技術です。
プログラミングを学ぶための方法を知りたい!
そんな風に考えている方に。
※ このWebサイトでは、データサイエンスに関連するプログラミングに絞って解説します。
初心者のためのプログラミングの学び方
プログラミングは、独学で習得することができます。
ただし「独学=本を読んで覚える」という思考は捨ててください。
プログラミングのために必要なコードや知識は、インターネット上で公開されています。
しかも、コード自体が英単語で成り立っていることもあり、世界中から情報を入手できます。
プログラミングで実現したいことを思い浮かべる
プログラミングで実現できることはさまざまです。
例えば、クラウドワークスなどで、プログラミングが必要な仕事のカテゴリを見てみると、システム開発やアプリ開発、ホームページ制作などがあります。
実は、仕事のカテゴリによって、学ぶべきプログラミング手法(言語)が変わってきます。
つまり、プログラミングで実現したいことを具体的に思い浮かべて、必要な知識を学んでいくことが効率的です。
タブ区切りのテキストファイルを読み込んで、ファイル中の数字を足し合わせたい。
例えば、
① テキストファイルを読み込む方法
② 文字列をタブで分ける方法
③ 数字を足し合わせる方法
を学べば実現することができます。
テキストファイルに必要な情報を書き出して、そのファイルを使ってグラフを描きたい。
例えば、
① テキストファイルに書き出す方法
② グラフを描く方法
を学べば実現することができます。
このように、プログラミングで実現したいことを思い浮かべて、それに必要な知識を一つ一つ覚えていきましょう。
プログラム=シンプル構造の組み合わせ
どんな複雑なプログラムでも、実は、シンプルな構造を組み合わせることで、書かれています。
プログラムを構成する3つのシンプル構造
① 順次(上から順に実行)
② 選択(分岐文を使って、別の処理を実行)
③ 繰り返し(繰り返し文を使って、同じ処理を何度も実行)
これらの構造を書けるようになれば、プログラミングの基本はOKです。
とはいえ、「順次」構造については特に覚えるものはないので、「選択」構造や「繰り返し」構造を覚えていくことになります。
どんなプログラミング言語を使ったとしても、最終的には、コンピュータに理解させることを目標にする必要があります。
コンピュータ(または、他の人)が理解できるように、シンプルな構造が求められます。
以下に示しているRuby言語のサンプルコードは、例えば、”sample.rb” と名付けて保存して、Macのターミナル上などで “ruby sample.rb” と実行すれば、結果を出力させることができます。
① 順次(上から順に実行)
プログラムには、コンピュータにやってもらいたいことを、上から順番に記述していくのが基本になります。
例①
花子(flower_child)さんが、花束を3束持って出かけました。
お店で、花束を2束買いました。
花子さんが持っている花束は全部でいくつでしょうか?
例えば、Ruby言語というプログラミング言語では、以下のように書くことができます。
flower_child = 3 #最初に花子さんが持っていた花束の数
flower_child = flower_child + 2 #お店で買った花束の数を足す計算
p flower_child #合計の花束の数を出力する
ただこれだけです。
上から順番に、コンピュータにやってほしいことを書くだけです。
② 選択(分岐文を使って、別の処理を実行)
選択構造では、いわゆる「場合わけ」を実現します。
例②
花子(flower_child)さんが、花束を3束持って出かけました。
山田(mountain)くんが、花束を2束持って出かけました。
お互い、相手が何束持って出かけたのか知りません。
どちらが多くの花束を持っているでしょうか?
例えば、Ruby言語では、以下のように書くことができます。
flower_child = 3 #花子さんが持っていた花束の数
mountain = 2 #山田くんが持っていた花束の数
if(flower_child > mountain) #flower_childとmountainが持っている花束の数を比較
p "flower_child" #flower_childと表示
else
p "mountain" #mountainと表示
end
「場合わけ」なので、「もし***だったら***を実行する」というように、条件文(IF文)を使うことになります。
③ 繰り返し(繰り返し文を使って、同じ処理を何度も実行)
繰り返し構造では、「繰り返し」を実現します。
例③
花子(flower_child)さんが、花束を3束持って出かけました。
お店(store)に5回、繰り返し通って、1束ずつ花束を購入したいと思っています。
購入後、花子さんは何束の花束を持っているでしょうか?
例えば、Ruby言語では、以下のように書くことができます。
flower_child = 3 #花子さんが持っていた花束の数
for store in 1..5 do #お店に5回、繰り返し通う
flower_child = flower_child + 1 #毎回、1束ずつ購入
end
p flower_child #合計の花束の数を出力する
「繰り返し」には、繰り返し文(FOR文)を使うことになります。
ということで、初心者向けにプログラミングの学び方についてまとめてみました。
「プログラミングで何がしたいのか」
当たり前ですが、やりたいことを具体的にイメージできていないと、効率的に学ぶことができません。
やりたいことに対して必要な知識を、インターネットから集めていきましょう。