を見ての感想ともやっとしていた部分が分かった気がしたので書いてみる。
あくまで自分の中のイメージですが、私が社会人になった当初のSE(システムエンジニア)というのは本当に凄い人たちでした。
プログラムだけではなくお客との話やそれを設計図に落とし込む能力などとても高い人たちでした。
本当にあんなに凄い人たちがいるものなのかと、ちょっと知識がある程度の私からすれば雲上の人たちというイメージでした。
プライベートでもWebサービスを作ったり仕事で色々なネットワークに触れるにあたって、ある程度の自信は付き立ちまわることも出来るようになりましたが、やはりSEと肩書のある人達には遠く及びませんでした。
それでも公私ともにやってきたことがある程度認められて、何かサービスを作ることになりました。
そしてそれが自分としてはとてつもない失敗に終わり自分が公私ともに積み上げてきた技術というのがいかに使えないかというのを思い知りました。
それまでにもユーザーのためにちょっとしたWebサービスや機能をつくったりということもしていたので苦戦しながらも何とかなるだろうと思っていただけでに自分の無能っぷりにショックではありました。
それから問題点を洗いなおして余裕を見越して再挑戦するも失敗・・・ 会社への負担も考慮して自分から作成物に関しての撤退を申し出て、終了となりました。
失敗の要因を振り返ってみると計画が稚拙であったことに尽きます。
工程は知っていても本質を理解していない状態と言えばいいのでしょうか・・・
例えばBBSを作るとして書き込みひとつをとっても、どのように入力されてどのように保存されてどのように出力されるのか?
そしてさらにそれらを掘り下げた部分を事前に考え、連携させ、関係性を維持していくか?
さらに拡張性や今後を見越した設計の上にどのように組み合わせていくか?
その上でそれらの機能をどのように分割して組み立てていくか?
と言った当たり前の視点が欠けていました。
理解できていないものは設計出来ない。
当たり前のことですが理解出来ているつもりになっていたのでしょう。
きっと賢い人たちなら普通に行えることなのでしょうが、元々が文系な私には理解出来ていないということが理解出来ただけでも自分にとっては大きな前進でした。
しかしそれでもプログラムを触って動いたときは毎回うれしい。
なのでプログラムを書いたりするのはとても楽しい。
ですがいくつかサービスを作ってきたとしても我流の域を出ないので、世間一般にいわれているごく当たり前の開発が出来るようになるというのは(個人差はあるんでしょうが)個人のみでは身につけるのが非常に難しいと常々感じています。
これは数をこなすことでしか身につけられない(精度を上げられない)というのは理解しているのですが、このあたりが文系にも体系的に理解できるものがあればと思わずにはいられません。
しかし、そういったものでしか身につけるきっかけが見つけられないのであればそもそもエンジニアには向いてないと考えた方がよいのかもしれないとも思っています。
人間に不可能はないと言う人もいます。
これは間違いではないと思いますが、高いレベルで可能とするのか、低いレベルでも可能とするのかの差はあると思います。
このあたりのことを高いレベルで行えるかどうかがエンジニアとプログラマの違いなんだろうと勝手に思ってます。
関連記事