2023/06/06
プログラミング学習において私が経験した壁を順番にまとめてみようと思う
面倒なインデントをする壁
インデントとは簡単に言えば「段落」みたいなものだ、文字ばかり並んでいる状態を見やすくするために一定のまとまりを段落としてまとめなくてはならない。
👇こんなかんじ
これが最初はなかなか面倒だ。
初めのうちは無視していい加減に作成してもなんとかなる。
しかし、プログラム内容が複雑化してくると、これをやっていないと何が何だかわからなくなるため、結果的にやるハメになる。
特にエラーで修正が必要な場合にはインデントしていないとエラーの場所を探すのに苦労することになる。
変数の壁
プログラミングは変数をいかに操れるかでその人のセンスがでてくる。
変数の概念は中学生くらいで勉強し始めたかと思うが、代入、関数を理解できているかである。
If文(条件式)の壁
エクセル関数にもIFの条件式は出てくるが、VBAやWebプログラムで使用するIf分は条件式を終わらせるタイミングや、Else(条件式に合わない場合)の概念が頭を悩ませる。
ループの壁
If文と似ているところがあるが、ループの作業を理解できてくると、いよいよプログラミングが面白くなってくる。
i = i + 1
↑これがループの中に入ると面白くなってくる。
同じ作業を条件を変えて繰り返すため、簡単なものから複雑なものまで様々だ。
まさに無限大の可能性がそこにある。
デバッグの壁
エラーが出た時にはデバッグをしなければ絶対に解決できない。主に変数を処理した時にどこかで起きているエラー探すために使用することになる。
VBAはエラーが起きているところを自動で表示してくれるが、Ruby on Railsやjavascriptなどは変数の中身を表示させるプログラムを組まなくてはならない。
そこが面倒だ。
データベースの壁
Webブログラミングは静的なページ、動的なページがあることをまず理解する。
静的なページは文字や画像を表示するだけのページ。
動的なページは掲示板やコメントのように書き込みができたり、入力の内容に応じて返答があるページである。
さらにSNSや掲示板のようなデータが残るシステムを構築するにはデータベースの概念を理解しなければならない。
エクセルVBAの場合はデータがセルに入っているため場所を指定するだけだが、Webプログラミングの多くはデータを扱う場合、エクセルのセルのような箱を作らなくてはならない。
そしてその箱を呼び出し、データの場所をIDで指定して読み込むところがややこしい。
さらに、Ruby on RailsなどはデータベースをsqliteやMysqlなどに保管するため、わざわざそれらを呼び出して参照しなくてはならないところがエクセルと圧倒的に面倒くささがちがう。
学習先のURLが迷子問題
プログラミング学習をする際、行いたい演算の方法やエラーの解決方法は大体ググれば解決する。
先駆者が悩んで、悩んで、悩みまくってくれている。
そのため、学んだページのURLをメモしたり、お気に入りに入れておくが、しっかりと整理したり、自分の知識に蓄積していないとまた同じエラーにぶつかった時に参照することになる。
しかし、その頃には他のお気に入りに埋もれ、なかなか見つからないため、結局同じキーワードでググることになる。