新人プログラマ応援
生存戦略

20代プログラマに贈る、この先生きのこるために

このAdventCalendarに三度目の登場になります。 @diostray です。

今回の記事はタイトルの通り、少々エモい話をしてみようと思います。

タイトルはネットスラングですが、「ぎなた読み」というちゃんとした用語があったことを最近知りました。


はじめに(&経歴)

そもそもお前は何様じゃいという斧やマサカリが飛んできそうなので、先に自己紹介しておきます。(というかなぜ最初の記事でやらなかったし…)

約10年SEの業界(通称SIer)にいましたが、今月justInCaseに入社したばかりです。

それまでやってきた技術をつらつらと書くとこんな感じです。


  • Infrastructure (基礎知識レベル)


    • CentOS / Ubuntu / WindowsServer

    • MySQL / PostgreSQL / Oracle

    • Apache / Tomcat / nginx



  • Backend


    • Java

    • PHP (Wordpress)

    • Ruby on Rails

    • SOAP / Rest API



  • Frontend


    • JavaScript


      • jQuery

      • CoffeeScript



    • CSS / SCSS

    • C#

    • Kotlin



  • Mobile


    • Java (Android)

    • Objective-C (iOS)




巨人の肩に乗る

上の記事は個人的におすすめ(特に一番上)なので、一読することをおすすめします。

高名な記事ばかりですので、見たことある方が多いとは思いますが。


本題

というわけで、10年近くIT業界で生きてきた身として、「若いプログラマ(エンジニア)がこの先生きのこるにはどうしたら良いんだろう?」という疑問に答えてみたいと思います。

偉大な先人を含め百家争鳴な気はしてますが、私の考えというのを述べてみたいと思います。


Be lazy

一番はこれだと思います。

上のMatz氏が言及していますが、プログラマの三大美徳の一つに「怠惰」というのがあります。

これはサボれと言っているのではなく、効率化しなさいと言っているのは有名な内容なので、詳細は割愛します。

コンピュータの性能や機能は進歩の一途をたどっています。特に同じような仕事を手作業でやっているのならば、それらをツールなりにして自分の作業を効率化した方が早いですし、ヒューマンエラー防止に繋がります。

私個人の話になりますが、とあるシステムが自動生成したファイルをリポジトリにコミットする時、ファイルを移動する必要がありました。

今までは手作業でやっていましたが、それをPowerShellで実装してヌケモレとかのヒューマンエラーをなくした記憶があります。

そんな小さなことかよ!と思うかもしれませんが、そういう小さなところから効率化の恩恵に与ると、ちょっとしたことでも効率化しようという意識が働きます。


Make your knowledge

この業界はとにかく進歩が早い業界として知られています。2年前の最新技術が今となっては使い物にならないとかよく聞く話でもあります。

そんな中個人的に大事にしているのは、技術や単語そのものを覚えることを重要視しないことだったりします。


  • その技術はそれまでに出ていたどんな問題を解決するためのものだったのかという背景や歴史

  • その単語が表現している概念

  • 技術や単語の親和性

比較すると、こちらの方を重要視しています。

技術や言葉の意味だけであれば、GoogleやWikipediaに頼ればある程度知ることができます。

それはすなわちコンピュータの進化や発展によって、人間でなくてもできる分野ということです。

コンピュータではできないことができていないと、飯のタネがなくなってしまうことになるので、そんなスキルを身に着けていかないといけないと思っています。


Create value

結構前なんですが、ものすごく印象に残っている記事があります。

Simejiを開発された方のインタビューで、プログラマ/デザイナーとはどういう人かを答えて頂く内容だったと思います。

そこで、「プログラマとは0を1にする人、デザイナーは1を100にする人」という内容がありました。

(すみません。記事を見つけることができませんでした…何分昔のものでして…)

プログラマとは、大なり小なり世の中に存在しないものを作り出す人、つまるところクリエイターだと私は理解しました。

ものを作り出すクリエイターにとって重要なことは、「価値があるかどうか」だと思います。

価値があるかどうか。それは作ったものによってどんな問題が解決できるのか、そしてその解決できた量によると思います。

逆から言うと、今から作るもので、どんな問題が解決できるのかを認識していないと、元は価値あるものであっても、価値のないものに成り下がってしまうことになってしまうわけです。

自分が今から作るものは、どんな価値を提供するものか。それを問うてから目の前の仕事に取り組んでもらいたいなと思います。


終わりに

長文失礼しました。この駄文文章がどこかのどなたかの蒙を啓くことになれれば幸いです。