ゴミ箱の中のメモ帳

まだ見ぬ息子たちへ綴る手記

経験年数なんて知識となんの関係もない

Webサーバが3台って」を読んで思うことがある。

これは過去に色々なところで話してきた。

まず、仕事の「就業期間」や「経験年数」なんて無意味、何年やってようが関係ない。知識をアピールするために、「俺はこの仕事を○年やってる」というやつがいれば間違いなく底辺。何もわかっていない。何もわかってないから年数でアピールするしか無い。

もし大きな仕事をやって来ればその仕事の概要を言えるが、それがないがゆえに「経験期間」でしかアピールできない。そもそも、プログラマをやっていると「経験年数」が意味が無いことなんてわかっているはずだ。それがわかっていない時点で底辺であることは間違いない。

「どういう仕事してるの?」と聞くと、「○○で働いてる」というバカも居るがあんなのも底辺だ。自分の仕事に自信がないから大企業の看板を出し自分をアピールする。お前が何をしているかを聞いたのに会社名を言われても何もわからない。三菱で働いていると言っても、役員をやっているのか三菱鉛筆の販売店でuniを売ってるのかわからない。
そもそも、こんな受け答えをする奴は話の理解力もないのでまともな仕事が出来るとは思えない。

また、「知識」が「仕事の出来」と全く関係ないことも理解していないと痛い目にあう。知識がどれだけあってもそれを使えなければ意味が無いし、それらの知識から問題解決を行う応用ができなければ仕事ができない。広辞苑を丸暗記しても小説を書けないのと似たようなもんだ。


これらは私が今までいくつかの会社で採用担当をやっていた時にも経験したので、私の偏見ではなく、少なくとも自分の経験からになる。「30年間○菱で開発をやっていました」という50代前半の人が面接に来たことがある。年数や経験ではなく、「あなたは何ができるのか」、「どういうものを作ってきたのか」を答えられる範囲で質問したのだが、まったく見当違いな回答ばかりで埒が明かなかった。理解力がないのか、そもそもなにも作ってこなかったのかはわからない。

ということで、二次試験まで通すかどうかの判断ができず(通常はこういうタイプは一次で落とすが、○菱は地元の大手なのでこことコネクションができるんじゃないかと部長がノリノリの為)、二次試験を受けてもらうことにした。基本的に学生を想定していたため二次試験は非常に簡単なもの。学生でも理解できるレベルとして、とあるコマンドのソースを渡してその動きを説明するものと、別のコマンドにバグを忍ばせてそれをデバッグするというもの。

そうすると、その30年を自慢していた奴が全く進まない。試験時間は最長1時間半としていたので席から離れていたのだが、急に会議室から事務所に来て「嫁が急病という電話があったから帰られしてくれ」と言って帰っていった。もちろんその人とはそれから連絡がつかなかった。


こういう経験を山ほどしてきた。私は現在28歳だが、16歳の頃からWeb制作をやっているので経験年数は12年になる。だが知識で言えば学生にも及ばないかもしれない。上の人を知れば自分の知識の無さを思い知るはずだが、コミュニティ活動などをしていなければそういうことも無いのかもしれない。

自分の知識の無さを知ればそれを補うための努力をするが、その知識のなさを知る切っ掛けが少なく、そもそも「職業プログラマ」は目の前の仕事をこなすことしか考えていないので、それ以外の知識をつけるつもりはないのかもしれない。


私は今までに職業訓練や専門学校、大学でプログラミングや情報処理試験の講師をしたことがあるが、Webプログラマを本気で目指している人がいればこう伝えていた。「GNU/Linuxについて勉強しろ」。

やっと上のリンクの記事に関連する内容になったが、WebプログラムはWebサーバ上で動く。Webサーバといえば「GNU/Linux」か「FreeBSD」が主になる。Windowsサーバも極稀にあるが、あまりにも特異な条件になる。
WebプログラムがWebサーバで動く以上、Webサーバの知識が必要になる。Webサーバが「GNU/Linux」で動くのであれば、それを勉強しない手はない。例えばWebサイトの制作をやっている人が「パーミッション」が何かもわからずに設定しているのを見ることがあるが恐怖すら感じる。
Webサーバで動かす異常、プログラムの問題はWebサーバに直結するし、Webサーバの問題もプログラムに直結する。それを切り分けるためには双方の知識がなければならない。

それほどにWebプログラマにとってWebサーバの知識は重要になる。上の記事の例で言うと、ロードバランサの設定は別の業種になるため行えなくてもいいが、ロードバランサがどういうものかの知識は絶対的に必要だ。Webプログラムを書く以上、Webサーバのメンテナンス担当者とのやりとりが必要になるが、双方ともに共通の知識と認識がなければ会話にならない。
Webプログラムがどうしても遅くそれを解決できないことがあったとしても、それはWebサーバの設定で解決できるかもしれない。Webサイトのアクセスが多くなればWebサーバを複数台に分けるかもしれないが、それであればスケール可能なシステムを作る必要があるかもしれない。これらすべてを考えるにはWebサーバの基本的な知識がいる。

そして、なにより中小ではWebプログラマがWebサーバの管理をすることが多い。私は何人かの知り合いをプログラマに転職させたことがあるが、その一人は今ではマネージャとなっている。経験年数が倍程度ある従業員より上司に当たるのだ。

それもWebサーバを管理できるからに他ならない。Webプログラムを書いても、それをサーバに設定し管理する人がいなければならない。その管理者が実質の管理権限を得るので、プログラムの修正や人員の配備も指示できるようになる。そうすれば包括的にプログラマを管理する必要が出てくるので必然として上司になる。


とにかくWebプログラマを目指すなら「GNU/Linux」について勉強しろ。


SE の教科書 ~成功するSEの考え方、仕事の進め方 (技評SE新書001)

SE の教科書 ~成功するSEの考え方、仕事の進め方 (技評SE新書001)

この1冊ですべてわかる SEの基本

この1冊ですべてわかる SEの基本