Anonymous

大阪で働く Web システムエンジニアの歩み


テーマ:
はじめまして、さかたまです。

大阪の会社でウェブサイトのシステムエンジニアをしています。
この業界の言葉は、外の業界から見ると良くわからない言葉が多いですよね。

そもそも、システムエンジニア (SE) ってよく聞くけど、
何をする仕事なのか、分かる人のほうが少ないと思います。

一つのウェブサイトを作成するようなプロジェクトにあたって、
大体以下のような役割分担をします。

・営業
・ディレクター (またはマネージャー)
・デザイナー
・システムエンジニア
・コーダー
・プログラマー
・テスター (品質管理)

それぞれの細かい説明は紙面の都合上(?)今回は割愛するとして、
システムエンジニアはこの中で、ディレクターから話を聞いて、
プログラマーに指示を出すという役割を担っています。

プログラミングというのは、作成者個人のセンスによって
三者三様の書き方になるため、
複数人で協力してプログラムを組む場合は
誰かが方向性や枠組みを監視していないと、
システムが全然まとまらなくなってしまいます。
(そうなるとプログラムは動きません!)

最初にレールを敷いて、枠組みを作り、
方向性や設計を監視するのがシステムエンジニアです。

そもそも、システムエンジニアであるためには
プログラミングの知識や考え方を持っていなければなりません。


今日は、僕がプログラマとして必要だと考える基本心得 3 つを紹介します。



1. アンテナを広く保つ

これはプログラマに限らず、IT の世界ではとても重要なことです。
医者や学者が最新の論文を読むように、IT 技術者は
世の中の IT 情勢について知っておかなければなりません。

なぜなら IT の進歩はとても早いからです。

たとえば、ウェブサイトを一つ作ったとして、
そのサイトを携帯向けにも作ることを考えた時、
どんな端末で見ることを想定するでしょうか。

今から新しくサイトを作るのであれば、
i-mode や EZweb のような携帯サイトを作るより
スマートフォン向けサイトを作るほうが効果的です。

そう言った技術や情勢のアンテナは
常に広く保つことが大切です。



2. 省エネに全力を尽くす

そもそもプログラムって何をするために必要なのでしょうか。

数値の計算や解析なんてものは、
本当は紙と鉛筆があれば出来ることなのですが、
そういうものはプログラムに任せてしまいます。

なぜならその方が計算が早いからです。

プログラマは怠け者であるべきです。
しなければいけない仕事をプログラムにさせて、
自分は左団扇を仰いでいるというのが正しいプログラマの姿です。

本来なら人間の手で出来るようなことでも、
なるべく省エネルギーで終わらせたい。
同じような作業の繰り返しはしたくない。
そう言った怠け者精神を持つことが必要です。

たとえば、普通に作業すると 30 分かかる仕事があるとして、
プログラムを組むのに 2 時間かかるかもしれなくても、
そのプログラムを使うと仕事が 10 分短縮出来るのであれば、
プログラマはそのプログラムを作成することに取り掛かります。

そうすれば、次回同じ仕事をするときに、
既にプログラムは出来上がっているから
最初に費やした 2 時間はもう必要ないし、
その上いつもより 10 分早く仕事を終わらせられます。
その後、半永久的にそのプログラムは活用されるでしょう。

ちょっと楽をするために、全力を尽くす。
これがプログラマの理念です。



3. ウィットに富んだ比喩を見つける

『ゴルフ』とかけて『恥ずかしい』と解く。その心は…

『穴があったら入りたい』

なんていう謎掛けのようなものではないけれど、
物事の本質を捉えて共通点を見抜くという目線が、
プログラミングには非常に役立ちます。

ウィットに富んだ、とか言うとスノッブに聞こえますが、
叙情的でポエムのような類の比喩ではなく、
本質的で構造的な比喩のことを指します。


ウェブサイトをスターバックスに例えてみましょう。
PHP や Perl のようなサーバサイドで動くものは
言わばキッチンに相当します。
中で何を行っているかはお客さんからは見えません。
(実際のところ、スタバぐらいなら見えたりするけれど…。)

出力された HTML は、カウンターで提供される商品に相当します。
キッチンで調理された結果がお客さんの目の前に出てくるのです。

Javascript や CSS のようなクライアントサイドで実行されるものは、
コーヒーミルクやストローに相当します。
お客さんが自分で取りに行かないといけません。
なので、この辺りはお客さんによって行動に差があるというか、
使用しているブラウザによって挙動が変わるということになります。

逆に出力される HTML は、
キッチンの中で処理されるので (注文が同じであれば)
お客さんによって結果が変わることはありません。
店舗が変わると (サーバ環境が違うと) 多少結果が
異なることもあるかもしれません。


こう言ったように、物事の構造と本質を捉える。
そして別の事象との共通点を見つけるというのは、
プログラミングを行う上で大切な、
オブジェクト指向のセンスを養うのに最適です。

オブジェクト指向とは、『無駄な処理をしない』のが原則です。
ある機能とある機能が共通点を持っているならば、
その部分は共通の関数としてまとめてしまうべきです。
構造を見抜く力がそこでは必要になります。





このような心得というものは、
明日からやろうと思って一朝一夕で出来るようなものではなく、
性格というか資質というか、そういったものに
大きく影響されるものだと思います。

単純作業が平気とか、面倒臭がりではない人は、
逆にプログラマにはあまり向いていない気がします。
(なので工場の流れ作業とか出来る人を僕はすごいと思います!)



これからも、
システムエンジニアから見た世界というものを、
こうやって発信していけたらいいなと思います。

AD
いいね!した人  |  コメント(0)  |  リブログ(0)

さかたまさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。