プログラムを打っていたらレイヤが下がっていった話

しがないベンチャー企業で働く筆者です。
職務内容は基本的にマネジメントらしいですが
一応プログラムの心得は持っているつもりです。

プログラムを勉強していた

さて、筆者はもともと、ERPエンジニアで
サポート部隊で働いておりました。
その頃の仕事内容は問い合わせがあって
システムの挙動を確認して
回答するといった感じでした。
どちらかというとプロダクトに関しては読むほうが多かったと思います。
プログラムを読むということですが
文系卒の筆者はプの字も知らないなかこの業界に入ったので
最初は全く仕事ができませんでした。
なので仕事ができるようになるためのはプログラミング言語を勉強しなければ
と思い立ち、当時仕事で使用していたVB.NETを勉強し始めました。

わかれば割と面白い

プログラムを勉強するにつれて書けるようになり
読めるようになりました。
また自宅で簡単なシステムを作れるようになり
例のごとく、プログラムにはまっていくのでした。
VB.NETだけによらず、JavaやらC#やらいろんな言語に手を出していきました。
筆者は何事も浅く広くなので、得意な言語は実は全くなく
HELLO WORLDくらいかければいいや精神でいろんな言語を学んでいきました。

動かす喜びより、なぜ動いているのかを知るという喜び

いろんな言語を学んでいくにつれてふと思いました。
プログラムってなんで動いてんだ?
というかプログラムを動かすOSもプログラムでできてるしそれって何なんだ!?と
まぁググれば一発で出てくるのですが、そう思って調べたときにC言語に出会いました。
C言語の悪名高き噂は聞いておりポインタが難しいと
筆者は割と馬鹿な人で、人間が理解できるなら自分も理解できるだろ
と思い、かの有名なプログラミング言語Cを買い読み始めました。

結果なんもわからん

さてプログラミング言語Cを買って読んでいた筆者ですが
何もわかりませんでした。そう何もね!!
ただ大きな収穫というのは、プログラミングというのは超ざっくり言うと CPUに命令を出すためにメモリに指示を格納するためのものだと学べました。
そこからというもの、プログラミングの見方、考え方が変わりました。
メモリに対してどのように指示しているかを考えれば
適切なプログラミング技法はおのずと導かれてきます。※自己満の世界ですが

キラキラしている世界よりも数字に近い世界へ

昨今Webエンジニアが人気らしいですし、そんなに強く思っていなくても Webエンジニアになれたらなぁと思っている人は多いと思います。
しかし、それはうまく言えませんが、表面的な世界の煌びやかな部分を見ているだけかもしれません。
レイヤが下がるにつれて地獄です。
よくわからない文字列がたくさん出てきて、CPUよりの考え方を求められます。
ただその下のレイヤがなければ、Webなどの表面のシステムは絶対に動きません。
システムとはレイヤを積み重ねたものだ
とよく言ったものです。
Webエンジニアをもし目指すのであれば、下のレイヤを気にするのも良いことだと思います。
きっと厚みのあるエンジニアになれるのではないかと思う今日この頃です。