技術の選択を何だと思ってるのだろうか?と思う記事やツイートが多すぎて気持ちが悪い問題
こんにちわ
がじぇったー (@hackmylife7) | Twitter
です。
最近パッパラパーだなぁと思う記事が多くあるのでポエムを書こうと思います。
TL;DR(要約)
- 使ってる技術を理解している(理解しようとしている)のだろうか?と思うことが多い。
背景
Qiitaのトレンドに上がっていたので見ちゃったのですが、こういう考えって自分はおかしいと思し、もし同僚になったら、、、と思うのです。
紹介してるQiitaの記事もセットアップの記事だし
そろそろこの辺の人たちがKubernetesとかIstio!!!って言い始めるんじゃないかとソワソワしてます。
Dockerは初学者には大きなハードルとなりますが、現在の開発現場ではスタンダードになっているとの情報を得ましたので必ず手をつけることをお勧めします。
前職場の先輩がベテランプログラマーの知人に私のことを話した際「Dockerを使用してポートフォリオを開発しAWSへデプロイした」と伝えたところ「それは就活成功するやつだね」と言われたそうです。
そのくらい「Dockerを扱える」というのは初学者への評価をするにあたって一つの指標となるのかなと思いました。
あとこういうのもね、だから何?って思うんです。
サロンの方で新たに公開されたポートフォリオ、
— 勝又健太@雑食系エンジニア (@poly_soft) 2019年10月23日
・UI整っている&テストもしっかり書かれている
・インフラはAWS(EC2/S3/CloudFront/SES)
・開発環境でDockerとdocker-composeを使用
・CI/CDはCircleCI
という感じで、技術に対する強い好奇心と高い自走能力の伝わる素晴らしい作品でございました😁
こう言う考えって現場だととても危険。
— がじぇったー (@hackmylife7) 2020年2月8日
技術を使う理由はあくまでもサービスの先にいるカスタマー価値起点で考えるべき
>「Dockerを使用してポーロフォリオを開発しAWSへデプロイした」と伝えたところ「それは就活成功するやつだね」と言われたそうです。 https://t.co/gw3P3lxny8
自分の意見
上ではった記事のようなDocker使ってますドヤァ、CircleCI使ってますドヤァみたいなツイートや記事を見ることが多いのですが、そもそも技術の中身を理解してる(理解しようと)しているのでしょうか?
例えばコンテナ技術を使ってクラウドで動かすだけならGCPのCloud Run使えば一瞬です。ドメインと証明書を別でとってDNSの設定すればそれだけでサービスが動きます。
googleもクイックスタートのドキュメントを書いています。
cloud.google.com
技術を使える、というだけでは現場で全く使えないし、もし障害が起こったらこういう人たちはどうするんでしょうか。
トラブルシューティングできないと思います。
動かないからOS再起動させて他のコンテナも昇天させそうですよね。
そんな理由でDocker使ってる人よりも、EC2の上でモノシリックな三層アプリケーション使っているが、自分が使ってる技術要素を理解し説明をできる人の方が現場では重宝されると思います。
例えばDockerという技術であればあくまでもLinuxカーネルの機能を用いて(複数のシステムコールを組み合わせて)プロセスを分離しています。
この辺を理解していなければ「VirtualboxとDockerって何が違うの?」とか「Windowsのコンテナは立ち上げられないノォ?」というアホな質問をすることになってしまいますよね。
ついでにDockerについて書いているとても良い資料貼っておきます。
speakerdeck.com
自分は6年近くエンジニアをやってきて「技術の中身を理解して使っているか?」ということがいかに重要かということを身を以て経験してきています。
そして文系と理系出身者の思考過程で一番違うところが技術探求の姿勢であるなと思います。
新しい技術が使えること、よりも和田さんがおっしゃっているような根幹となる技術を勉強した方が後々ためになると思います。
変わらないもの。UNIX、REST/Web、RDBMS/SQL
まずは変わらないものからお話をしたいと思います。変わらず、長生きをして、使われ続けてる現役の技術で思い浮かぶものを3つ持ってきました。
OSとしてのUNIXと、Webの仕組み、RESTのアーキテクチャスタイルやそのうえで動いているWorld Wide Webの仕組み。
一方で以下のしょうもない意見を耳にしましたが、不要になるのはただ「技術をただ使える人」であって、本質的なことを理解し、技術探求を続けている人は新しい技術の吸収も早いし、何を主戦場にしてるかってあまり関係ないと思うんですよね。
本日はエンジニアの友人と飲んでたのですが、そこで出た話題が「バックエンドエンジニアが不用になる未来」です。
— マナブ@バンコク (@manabubannai) 2019年7月29日
ほぼ間違いないと思うのですが、2〜3年でサーバーエンジニアは不用になると思う。Firebaseというテクノロジーをみたら明らか。更にいうと、その後はエンジニア自体も不用になる未来
しょうもないアウトプットを吸収している暇があったら本質的な技術を勉強していきたいものです。。。。。