【読み物】プログラミング入門の入門
いきなりプログラミングを覚えるのってハードル高いですよね。
私も覚え初めの頃は大変でした。
絵で言えば森を描いてくださいと言われるとしんどいし難しいと思うのですが、 木を描いてくださいと言われれば森を描くよりもハードルが下がると思います。
もちろん絵心がないと木すら描くのが難しいのですが(笑)
プログラミングが森でスクリプトが木だと思ってください。
木をいっぱい描いたら森になりますよね?
スクリプトもいっぱい書いてまとめるからプログラムになるんです。
もっと噛み砕いて言うと、運動会のしおりでプログラムって言われてたことを覚えてませんか?
アレがまさにそうで、1つ1つの競技がスクリプトで 競技が順番通りになっているすべてをまとめて運動会のプログラムとされていました。
実際のプログラミングも同じでスクリプトの積み重ねで1つのプログラムになります。
なのでまずは木を見ず森を見て学びましょう。
プログラミング入門サイトの落とし穴
長らくプログラミング入門サイトをやっていないので 最近のレベルはどんなもんかはよくわかってないですが、 恐らくHelloWorldをやったり基礎構文をやったり、 もしくはいきなりnode.jsで凄いものを触ったりなのは変わらないと思います。
土臭すぎたりいきなり完成された物を触らされたりすることがあるので、 正直入門サイトをなぞって勉強するのはオススメできません。
場所によっては1章1章完結タイプで、最終章で1章から組んできた物を流用して 1つのプログラムに完成させるタイプのチュートリアルが望ましいです。
スクリプトを書けるようになろう
変数に値を代入して、入力された値をもとに一定数ループで処理して、結果を出力する。
この基礎構文を使った一連の流れがスクリプト処理になります。
それを1つの関数としてカプセル化し、別のスクリプトで作った関数群を指定の順番で呼び出す。
スクリプトを組む中で既に作られている関数を呼び出して結果を得ることもありますが、 それは次の段階で大丈夫です。
スクリプトを組み合わせて1つの処理をつくることこそが、プログラミングです。
なのでプログラミングを覚えたいのであれば、まずはスクリプトをかけるようになりましょう。
具体的なスクリプト勉強法
JavaScriptでもPythonでもエクセルに入っているVBAでもいいので まずはスクリプトを動かせる環境を作ります。
オススメは特にインストールしなくてもブラウザとメモ帳さえアレば動く JavaScriptがいいでしょう。
ただ、通常のJavaScriptはファイルの読み込みとか書き込みをするには ちょっと難易度が高いので、最もオススメはPythonでしょうか。
Macだと標準でインストールされているのですぐにでも使えます。
windowsでもインストーラーをダウンロードすればすぐに使えます。
Windowsでエクセルが既にインストールされているのであれば VBAが最もお手軽かもしれません。
VBAを動かすために開発者モードにする必要があるので、そこの方法はググってください。
最初にやるのはファイルの入出力
1度でもプログラミング入門をしたことがある人はわかると思いますが、 基礎を学ぶ時に変数に値を入れてその中身を表示するって勉強をしたと思います。
あれも1種の入出力処理ですね。
Hello Worldなんかもそうです。
ただ、正直これらをやっても今からプログラミングを学ぶ人はつまらないんですよね。
プログラミングに慣れている人ほど、Hello Worldからやれ
といってくると思いますが、ぶっちゃけつまらんです。
なので少しおもしろくするためにあえてちょっとだけハードルの高いところから学びます。
といっても最初はコピペしてどう動くかを見るだけでも十分です。
プログラミングは何かを読み込んで何かを出力するということを頻繁にやります。
それがファイルだろうがインターネットにあるデータだろうが、 まずは外部から読み込んだり自分自身でデータを作る必要があります。
これがいわゆるインプット(入力)作業です
その後、テキストファイルにそのデータを書き込んで1つのファイルとして保存したり、 インターネット上にあるデータベースにデータを書き込んだりするのがアウトプット(出力)です。
これがプログラミングの基礎であり最終形でもあります。
複雑な映像や動画なんかも、紐解いてみれば入力して計算して出力するだけです。
なのでその中でも最も簡単で且つ目に見えて変化がある 「ファイルの入出力」を最初にすることをおすすめします。
Pythonであればテキスト処理に強いのでググればいくらでも情報がでてきます。
VBAであれば特性上難しいことをしなくてもエクセルファイルそのものを処理できます。
他のプログラミング言語の場合、エクセルファイルをいじるにはちょっと知識が必要になるため、 エクセルファイルを処理したいのであればVBAを覚えるのが一番いいですね。
JavaScriptはファイルの入出力が標準では少し難しいので、 代わりに入力した値をブラウザに表示することで代用しましょう。
ファイルに書き込んで出力ができたら次にやること
ファイルに書き込む時、変数の中身を一気に書き込むということをやると思います。
次の段階として、改行があるテキストを1行ずつ処理するという方法を学ぶことをおすすめします。
私がプログラミングを覚え始めてなおかつ今でも役立つスキルとして、 このテキストファイルを1行ずつ処理をするという手法は今なお役立てています。
プログラミング言語が変わっても結局やることってそんなに変わりません。
なので1つのプログラミングを覚えたら他の言語は比較的スムーズに扱うことができるようになります。
世の中にあるプログラミングでのお仕事は、何かを入力したり入力されたデータを取ってきて それをスマートフォンに出力したりブラウザに出力したりすることが多いです。
これだけ聞くと対して難しいことではないのですが、具体的に言うとそのための設計とか変数名をどうするかとかを しっかりとやらないと炎上案件になっちゃうからそこが難しいのではないでしょうか。
最適解なんて企業・個人の数だけありますので全員ですり合わせしてルールを決める必要があります。
これに関しては後々学んでいけばいいかなと思ってます。
話がそれましたが、ファイルの入出力が出来たら次はそのファイルに書かれているテキストを 1行ずつ取り出して1秒毎に1行表示するというスクリプトを組んでみましょう。
1行ずつ処理することが出来たら応用編にいく
1行ずつ処理できるようになったら、ただ表示するだけではなくて1行のテキストになにか変化を加えましょう。
オススメでいうとここで「正規表現」という呪文めいた記述をする手法を学ぶのがいいのですが、 正直難しい部類なので慣れてきたら手を出してみることをおすすめします。
正規表現とはいわゆる「あいまい検索」ができます。
普通の検索だと間に何か文字が挟まっていると正しくサーチできません。
例えば「あいうえお」というワードを検索しようとしたときに「あ1い2う3え4お」という感じになっていたら 普通に検索してはひっかからないようになっています。
しかし正規表現を使えば間に何かが挟まっていてもサーチすることができます。
正規表現は色んな書き方ができるのですが、例えば先頭に「あ」があって最後に「お」があるワードを検索することができるわけです。
ただ、これだけだと全然関係ない「あ」からはじまって「お」で終わるワードも取ってきちゃうので もうちょっときっちりと設定してやる必要があるため、ちょっと難易度が高いというわけですね。
なので最初は正規表現を使わない「完全一致検索」の仕組みを使いましょう。
テキストを1行取り出した時に、その「完全一致検索」のメソッドを使って文字が含まれているか判断し もし含まれていたら画面に表示して次の行へ。含まれていなければ表示しないで次の行へ。
という処理を作れば、いわゆる条件を満たすものだけふるいにかけるという処理が完成します。
ふるいにかける処理は日常的に結構つかっている
これが何に使えるのかと言うと、例えば在庫管理システムがあったとします。
エクセルなんかだとスクリプトを組まなくても標準で組み込まれていたりしますし おそらく大体の人はつかっている処理なんじゃないでしょうか?
そう、ふるいにかける処理とはいわゆる「絞り込み処理」の根本のやり方ですね。
SNSなんかでも自分の知りたいハッシュタグでつぶやいているひとのツイートだけを絞りたい とかやってたりすると思うのですが、あれがまさにふるいにかける処理というわけです。
なのでReactとかVueとかRailsとかそういうフレームワークの勉強をするよりも まずはすべての基礎となる入出力を学んで基礎力を身につけるべきだと思います。
プログラミング入門系記事も書いていきたい
コードをコピペできるところなんていろんなブログでもやっているので 私のブログでは考え方とかをメインに教えていきたいところではありますが、 結局同じようなことしか言ってないので、具体的な手法とかをまとめていこうかなと思います。
できる限りコピペでできる簡単なものにしていきたいですね。