
プログラミングの良し悪しの話で、「車輪の再発明をすな!」とよく言われますが、
個人的に「車輪の改良作業」は大好きです。
そして、エンジニアの成長するポイントの一つにもなっているんではないかという持論を展開してみたいと思います。
エンジニアの成長についてのプログラミングスキルの向上セオリー
何故か、初心者プログラマーの人は、
勉強になる書籍を書いたがる特性があります。
「いい書籍があれば教えてください」
この質問をされたら、あ〜またこの質問がきたか〜と、心の中でうんざりしてしまいます。
良い書籍は、コードの書き方と同じで人それぞれ
良いの基準が違うので、
よほど、弟子入りする覚悟がある人以外には、おすすめ本は自分で探す様に進めています。
エンジニアの成長って、こういう質問をしなくなることだと思うんですよね。
あと、もう一つエンジニアの成長で重要なポイントとして、
「自己開発で作りたいモノが無い問題」
というのがあります。
より多く経験を積むために、仕事で優秀な先輩に囲まれて、手取り足取り教えてもらいながら自分のスキルを上げていく・・・
なんていう夢の開発環境は、世の中に存在しません。
多くの場合、やったこともない作業を無茶振りされて、できない自分に憤りを感じるエンジニア初心者ばかりで、
かなりの確率で心が折れてしまいます。
要するにエンジニアって、何か自分で作りたいものがある好奇心旺盛の人が成り上がることができる領域なんじゃないかと気がついてしまいました。
バニラプログラミングについての見解
このブログで何度も紹介している
バニラJS(vanilla js)ですが、
ライブラリなど使わず自分で全て手作りする、お手製システムを作りましょうシステムの事を指しますが、
JS以外の言語でも、フレームワークなどを使わない事を「バニラ」という場合もあるそうです。
このバニラプログラミングをWikipediaでみてみると、以下の様なことが書かれていました。
wikipedia : バニラ (ソフトウェア)
メリット
・勉強になる(自己スキルアップ)
・ブラックボックスが無くなる。
・自由度が高くなる。
・作業をするほど効率が増す。
・コードルールなどを統一しやすい
デメリット
・車輪の再開発をやってしまう。
・複数人開発の場合に学習コストがかかる。
もちろん、メリットだけじゃなく、デメリットも存在しますが、
デメリット部分は、バニラJSじゃなくても発生するデメリットなので、メリット部分を理解できた人が、成長並みに乗れると思ってもいいんじゃないかな?
心が折れないバニラプログラミング
実際にやってみるとわかりますが、自分でなんでも全部作るって、本当に大変で、しんどくて、疲れるし、誰も助けてくれない環境だと本当に心が折れそうになります。(自分はならんけど)
そんな時に、質問できるメンターがいる人は恵まれていますが、そんな人が周囲にいない場合はどうすればいいでしょう?
多くの初心者エンジニアの特徴として、自分の力量に見合わない大きなプログラムを作ろうとする傾向があります。
もちろん、その大きさの度合いがわからないという大問題があるんですが、実は最初はソレでいいんです。
作ろうとするプログラムが、思いの外大きくて、大変で、完成しなくていいんです。
だってできなんだもん!
そして、自分の力量を思い知ることができることも一つの経験です。
でも、その大きなプログラムで、どこまで作れて、何が壁になって作れなかったかを自分で分析することができたら、
その後、また同じトライをした時に、きっと前回つまづいた場所よりも先に進むことができます。
多くの人がここで諦めてしまうのですが、諦めなければ、試合終了にはなりません。
そう考えると、エンジニアって、心が強い人が慣れるブレイブジョブなのかもしれませんね。
あとがき
とある会社のエンジニアと話をしている時に、
会社の愚痴ばかり言っているエンジニアと、どうすれば会社のシステムが良くなるか真剣に考えるエンジニアで、
モチベーションだけじゃなく、力量の差も雲泥の差がつくということがわかりました。
これって、ポジティブに考える人の未来は非常に明るいということが証明されているとも言い切れます。
そして、こうしたポジティブなエンジニアは、バニラが好きという傾向があることも、多くのエンジニアを見てきた経験で、傾向が傾いているんですよね。
でも、アイスを食べる時は、バニラよりも、チョコやストロベリーの方を食べてしまいますけどね。
あなたは、どんなバニラが好きですか?
0 件のコメント:
コメントを投稿