わりとぶっちゃけて書くプログラマから見たプログラマという職業(概要編)
技術的に見ればSUGEE人たちって一部、主に基幹を作った人たちだけだなー、と。
そうでなければ変態技術者と呼ばれるレベルの一部の人たちだけかな。
ぶっちゃけ環境さえあれば中学生でもできることですからねー、プログラミングって。
単に、求められる知識が一般的なところと外れすぎてて専門職になってるだけだと思う。
とは言っても、英語で数学の記述問題解くよりは簡単という感じですかね。
というか実際コーディングって何してるのかって、機械を動作させるための命令文作ってるだけだからね、と。
ただ書き方に一定のルールがあるだけで。
それって普通の人が口にする言葉とどこが違うの、って思いますけどね。
一定のルールと共通の単語があるから意思疎通ができる訳ですし。
要するに、知識がないと理解しにくい言葉を使って作文してるだけ。
ある意味学生とかが自分たちにしか理解できないスラング作ってそれで会話してるのと同じレベル。
むしろ新しい言葉を作ってる分そっちの方が高度かもしれない。
高尚かどうかは置いておくにしても。
というか、人に対して同じ入力をしたところで確実に同じ結果になる訳じゃないことも考慮すると人と話しする方が面倒に感じてしまったりするダメ人間さ。
無駄な言葉とか迷子な会話とか結構多いですしねぇ。
私も無駄話好きな方ですけど。
と、言いつつも、プログラミングの方はプログラミングで全体的な暗黙知と言語的な暗黙知とかいろいろとあるんでそのあたり考え始めるとやっぱり専門職なのかな、と、思わなくもない。
例えば、
int main () { return 0; }
とか。
普通にプログラミングしてたらどんな言語使っててもある程度理解できるだろう最小プログラムですけど、これにしたって暗黙知が多分に含まれてますしねー。
intがint型整数値を返すメソッドという意味で、mainがメソッド名、()は引数なし(外部から引っ張ってくる値がない)という意味で、return 0;がとりあえず0を返すという感じ。
int型というのが(一般的に32bit/64bit環境では)4byteの数値(暗示的signedで負数も表現できるんで範囲は-2,147,483,648 ~ 2,147,483,647)だとか、メソッド名は『基本的に』自由に命名できるだとか。
他にも、基本的にコード上の改行は(言語によるものの)必須ではないとか、結局何もしてないプログラムじゃねぇかとか。
そういう、初めて触れると無数にあるんじゃないかと思えるほどの暗黙知を大まかに理解して覚えておく必要がある辺りは確かに専門職なのかもしれない。
基本的にどんな言語でも大まかに同じなのだけでもそんなのですからね、言語特有の暗黙知まで考えると確かに素人には難しいかもしれない。
そしてプロにしたところで複数の言語を覚えるのがどれだけ手間かというのはなんとなく理解してもらえるかもしれませんが。
正直新しい言語の学習のためのハードルって新しい暗黙知を覚えることへのハードルでしかありませんし。
というか、もともと使ってる言語の暗黙知を一定以上理解してないと差分を出すのが難しいというだけかとも思いますけどね。
と、言ってもそこまで理解するのは詳細な違いとかを調べ始めるレベルに入ってきてからで良いとも思いますけど。
同系統の言語なら同じノリでコーディングできなくもないですし。