とある元SEの思考を探る

ひょんなことからとあるICT企業ではたらくことになったなんちゃって元SEがしたためるブログ。主に、政治・経済・社会問題・日常の出来事について発信していきます。お読みいただけたら、感動にむせび泣くほど嬉しいです。よろしくお願いします。


技術の流行り廃り

昨日の記事の続きになります。

smartenergy.hateblo.jp

 


技術の流行り廃りについてですが、私もこれには頭を悩ませている反面、自分の場合ずっと同じことをやっていると飽きる性格なので、変化がないとつまらないと思う一面もあります。
頭を悩ませている面に関して、自分なりに解決している方法とは、一つは、技術の流行り廃りの少ない分野で地盤を作るという点です。例えば、リレーショナルデータベースにかんしては、ここ数十年、基本的な要素は変わっていません。正規化なんて何十年前からもあり、今でも十分に使える知識です。ただ、最近Railsやってますという人の中にはデータベース設計ができない人も多い。リレーショナルデータベースはどんなシステムでも大抵使われるのできちんと基本を押さえておけば、かなり長い間つかえるスキルとなると思います。
もう一つは、技術に関係のないところで強みを作るという点です。その最たるものが業務知識。あるいはビジネス理解です。エンジニアはビジネスをシステムに落とす仕事ですから、ビジネス理解を避けて通れません。いかに素早くビジネスを理解するかが大切で、それはエンジニアに要件が降りてくる前からの情報収拾が必要です。営業の人の会話やチャットを見てどういう動きをしているのかを把握しておく必要があります。そうすれば、事前にシステム側で対応に時間がかかることであれば問題を早期に摘み取ることができますし、考慮不足である点を指摘できればビジネススキームが洗練されていきます。そのフェーズから携わっていくことで実装速度も上がります。実装とはビジネスを写すものですから、モデル一つをとってしてもビジネスが反映されているわけです。
同様に、対応速度というのも気をつけています。サービスをやっていると不具合はつきもの。それに対して、カスタマーサポートやクライアントから上がってきた報告に対して速やかに対応するように気をつけています。作業中イアホンをする人もいますが、私は周囲の状況を聞くために、よほど集中する作業でない限り、イアホンをせず自席で作業をすることが多いです。逆に言えば、大抵の作業は周りの状況を把握しながらでもやれるように、その技術や実装に対して慣れておく必要があります。

もちろん、新しい技術に関しては、キャッチアップしておく必要があります。
私がSIerからWeb系の会社に転職したとき、Railsのキャッチアップすら大変だった中、同僚はReact.jsがどうだの、webpackがどうだの、そういう会話をしていました。同じタイミングで入社した人は、プログラミング経験がある人だったのですが、私はほぼ未経験だったので、しばらくはずっとinputすることが多すぎて頭が痛かったのを覚えています。
ただ、自分が一度に吸収できる能力にも限界があるので、React.jsとかがあるのだなという知識入れつつも、一旦はそこは今はキャッチアップしないという決意をしていました。step by stepで行かないと自分の能力ではダメだと。

その技術をキャッチアップするメンタリティが揃っていないと学習しても身につきません。

ちなみにReact.jsに実際にふれることにしたのはその1年後ぐらいでした。(厳密にいうと、その年のお正月に触ってみたのですが、全くよくわかず挫折した。)昨年にReact.jsで簡単なゲームを作って見たのです。ある程度Railsができるようになったなという確信がもてたタイミングでした。

そして、大事なのは、自分はできるよアピールです。例えば、そのゲームを作って社内で発表したり、wantedlyポートフォリオに貼り付けたりしているのですが、そうしてアピールすることで、この人はReact.jsができると認識されますし、次の案件があったときに声をかけてもらいやすくなりますし、転職時にも一つ見せるものがあれば大きなアピールになると思います。
このブログではできる限りプライベートにしたいと思っているので、React.jsで作ったゲームのURLを貼ることはしませんので、知りたい方は個別に連絡いただければと思います。(とはいえ頑張ればわかる。。)

ちなみに、開発期間としては、React.jsのチュートリアルなどをやったということも含めて1ヶ月ぐらいです(土日や平日夜の稼働)。学習からアウトプットまで1ヶ月ぐらいでそれなりに人に見せれるものができると思うので、学習に関してはその程度で良いと思います。

ちなみに、僕の場合は独身で子供がいないので、休日にそこまでの時間をさけるのですが、家族がある場合はやはり厳しいのではないかと思ってしまいます。逆に言えば、家族ができるまでにできる限り自分のスキルを向上させていくという必要がありそうです。


最後に、私はプログラミングが好きかと言われると、向いているとは思うが好きとは言えないと答えると思います。プログラミングをしていて良いのは、ダメなら割と早い段階で気づくことができることです。また、基本的な知識を入れておけば、あとは応用なので、新しい技術も取り入れやすくなります。例えば、Railsを一通りできればDjangoの習得も早いでしょう。React.jsができれば、Vue.jsの習得も比較的スムーズにできると思います。あと個別のフレームワークが必要な時は、そのときになってリファレンスを読むしかありませんし、それはみんな同じことです。

次々にでてくる概念はありますが、それをすぐに仕事で使うことはほとんどないですし、とりあえずは概念だけ理解しておくというのが良いと思います。「この技術を使うことがこういうことができる」というのを自分の引き出しの中に入れておくだけで、あとは必要に迫られてから学べば良いかと思います。

いずれにせよ、今の世の中を生きて行くためには一度身につけたスキルだけで年金がもらえる年まで働けるということはないですから、定期的に技術のアップデートはしていかなければならないと思います。

とはいえ、自分のスピードで無理をしないことが大切だと思います。この変化の早い世の中で、自分だけ置いてけぼりにされるのではないかと不安になることも多いですが、よくよく周りをみたら、そこまで頑張ってキャッチアップしていなくても生きている人がほとんどです。上を見るとキリがないですし、憂鬱な気分になることもありますが、そういう時はちょっと周りをみて深呼吸するようにしています。

 

文章が長くなってしまいましたが、書いていて、SIerへの転職に関して、十分に考えれていない気がしました。確かに僕もいまだにSIerへ戻ることは選択肢として消去していませんし、また機会があったら書ければと思います。