モロ屋

アキバではたらくWebエンジニア。JavaScript / AWS / Mac

Web系のエンジニアとプログラマの違い

WebエンジニアとWebプログラマの違いって人によって曖昧だと思うんだけど、個人的にはかなり明確に違いがある。Web業界以外はよくわからない。

一般的にはコードを書くのがプログラマで、設計やるのがエンジニアみたいな見方が強いんだけど、エンジニアもコードを書くしプログラマも設計する。

じゃあ何が違うかってなると、学習ステータスをプログラミング言語もしくはアーキテクチャに振ってる人がプログラマ。ユーザービリティやユーザーエクスペリエンスの向上にステ振りしてる人はエンジニアだと思っている。

設計は複数アルゴリズムデザインパターンを理解していて、案件ごとに最適なパターンを選択出来る優秀なプログラマが担当すべきで、そうしないと後々拡張性が苦しくて密結合になっているスパゲッティと化したコードを人力で何度もテストしながらもがき苦しむハメになる。 優秀なプログラマが先に設計や規約を設定しておけば、他の人は基本的に近くのコードやパターンを真似しながら書くから、その人がデザインパターンについて詳しく知らなくても必要以上に破壊されることがない。

プログラマは職人タイプで、とにかく知識が豊富。プログラミング言語に精通しているのはもちろん、その言語ごとのパターンやフレームワークなど、情報工学と言われるような部分が好きな人達。というイメージ。

対してエンジニアは芸術タイプ。最終的に達成したいビジョンが頭のなかに広がっていて、それを作ることが出来るなら特に手段に興味はあまり無い。 基本的に目線はサービスと、サービスを使うユーザーにしか向いていなくて、アプリケーション内部よりもアプリに触れたときの体験とか感覚に重きを置く。なのでアプリのデザインとかめっちゃ大切にする。

プログラミングを勉強してサービスを作るのがプログラマ。サービスを作りたくてプログラミングを勉強するのがエンジニアとも言える。

自分を含め、フロントエンド系のエンジニアはだいたい後者に当たると思っていて、ブラウザの中で使える言語がJavaScriptしかないから当然JavaScriptを覚えるし、言語に興味があまりないからRubyだろうかPHPだろうがなんでもいい。というかJavaScriptでバックエンドも書けるなら学習コストがかからないしそれでパフォーマンスも良くてメンテナブルに書けるならそれでいいと思っている。

ただプログラミング言語を書くということに関しては三流もいいとこなので、プログラマとエンジニアは似ているけど違う職種として認識して、お互い補完しあって開発することが出来たら満足度高そうだなあと思った。