頭の中は異空間

生活を日々ハックしてよりよくするブログ

何でも一から作ってみるのも選択肢だっていう話

どうも。

 

便利なフレームワークやツールが溢れてきて、何か作りたいと思ったら社内システムだろうがwebアプリ、スマホアプリだろうがゲームだろうがロボットだろうが自分一人でも知識さえあれば作れてしまう時代だな〜とつくづく思います。ただ、実際には1から完全に1人で作り切ろうと思うと結構辛くって、いろんなライブラリを突っ込んでそれらに頼りきったプロダクトが出来上がってきやすいかも。

ライブラリなど使い易いものを使うのは自由だけど、それを使うということはライブラリ、ツールの制約に縛られることを意味するということと、そのツール等が使えない環境になるととたんにパフォーマンスが落ちてしまい、最悪開発が進まないなんてことになりかねません。

だから自分なりの考えとして、仕事でやるなら必要に応じて最小限のフレームワーク、ライブラリを使えばいいんじゃないんでしょうかね。趣味でならいくらでも好きに使って作ればいいと思うし。

 


簡単に例えると

たとえばwebで言えばJSを書くのにjQueryがないと書けない、は通常の開発を進める上では支障は出ないかもしれないが、実際にその便利さに触れても有り難みが感じられないかもしれないし、1つ1つのコードの意味やなぜそういう造りになっているのかという大事な部分が頭から抜け落ちている状態になっちゃう。それってエンジニアとしてはどうなんだろう?と度々思います。

学生の頃、プログラミングでよく分からない文法を”おまじない”って教わって、そのままにしちゃってないでしょうか?あとで応用が効かないと確実に苦労するので、ちょっとした空き時間でサンプルコードからでも身につけたほうがいいですね。

 

キャリア的にもまずそう

すでに出来上がっているシステムがあって、その保守開発を中心にやり続けている様なパターン。確かに開発に関して技術力はつくのかもしれないけど、環境構築(サーバ構築含む)、インフラ周り(ルータやスイッチの設定、見積もりの立て方や効率的なテストの方法、プロジェクト管理など細かく分けても結構やるべきことってあるのに、大体同じ様なことを数年もやり続けていたら、それしかできないっていう悲しい将来が待っているのは間違いないですね。。

それだけではないです。特定の企業内でしか通用しないスキルをつけている人もそう。そこから他へ移ることになったらどうするか。前は良かったとか、言ってる場合ではないです。だから、柔軟な適応力があったほうが良いに決まってる。

 

1から作る最大のメリット

最初からやるとなると、自分で全て調べていく必要があるし、嫌でもスキルはつくし、開発の全体の流れがわかる。また、今所属しているチームで作っているプロダクトの中を覗いてみると、普段は気にしてなかったけどいつも目についたあの機能、それがなぜあるのか。認証周りの挙動はどうなっているのか。そういったビジネスロジック含めた作りにも興味が自然と湧いてくるし、必要な情報にアンテナを立てる様になるので次々に知識とスキルを蓄えていけます。何より、自分のために作っているんだから、楽しくないはずはない。フリーでも活躍できるくらい力をつけたら、そのまま独立っていう道も悪くないです。

逆にデメリットといえばやりたい分野だけを頑張るのに比べて大変なことくらいと思います。どうせあとで経験が足らなくて苦労するくらいなら、今の内に苦労して力をつけて、人に教える側の立場に回ったほうがどれだけ有意義かってものです。

 

 

今回はこの辺で。