はてなキーワード: バックエンドとは
「エンジニアって給料高いしホワイトらしいじゃん。大学卒業したらエンジニアになりたいからプログラミングの勉強しよう」と考えてるタイプの、大学1~2年生に向けた話を書こうと思う。
実のところ、お前らはギリギリなんとかなる可能性があるんだが、詐欺みたいな情報商材やスクールに騙されてやすい層でもある。
頼むから騙されないでくれ。見ていて心が痛む。
これ以外の層、例えば転職しようとしてる奴らには少なくとも増田からまともなアドバイスはできないが、参考になるところはあるかもしれない。
あと、情報系の奴は素直にそのままCSを学べ。学部の勉強を頑張ってくれ。
大学時代で長期インターンかアルバイトで経験を積み、現場のノウハウを身に着けてから新卒でWeb系ベンチャー(給与は並程度だが、ホワイトで今後のキャリアにも繋がる)に就職
これが唯一の正解というわけじゃないが、現実的な路線の1つとして推しておく。要は完全未経験の人がまともなエンジニア職に就くのは難しいため、未経験状態を脱してから就活に臨もうというプランだ。
今回はこれを達成するための話をする。
まず基本的にお前らははカモ扱いされている。前提知識があれば詐欺みたいなスクールに引っかからなくて済むので最低限でいいので把握しろ。
エンジニアは給料が他の仕事より高い部類だと思う。だが、それでも平均で500~600万円台だ。普通に1000万円もらえると思ってた奴はまずこの現実を受け止めろ。
平均でこれなんだから、未経験者が1000万円で雇用されることなどまずありえない。
何の仕事でもいいから雇う立場を考えてみろ。未経験者に1000万円出すか?冷静になって考えれば分かると思うけどな。
もちろん、働きやすさや将来性などを鑑みるとエンジニア職を目指す意味はあると思うが、夢を見すぎないことは大事だ。
「年収1000万とはいかなくても、フリーランスなら高収入かつ自分のペースで働けてウハウハなんでしょ?」とかいう奴も時々見かける。
馬鹿を言うな。これも未経験者には無理なんだよ。未経験者が目指すべきは就職、これ一本で考えろ。
至極当然の話だが、フリーランスはどこかの会社から仕事を発注してもらうことで報酬をもらっている。発注者にとって魅力的な人材じゃないと仕事はもらえない。
仕事を発注する会社はどういうフリーランスを選びたいと思う?そりゃ経験者だよな。スクールや自習くらいの経験しかない未経験者に頼むわけねーじゃん。
「IT業界は人手不足だから未経験者にもチャンスが」とか言われてるけどさ、それは「ちゃんとしたスキルを持った人材が足りてない」という意味であって、人がいれば誰でもいいという訳じゃないからな。
日曜大工で犬小屋しか作ったことないような人に家を建ててほしくないだろ?エンジニアもそれと同じだよ。
とにかく、いくら社会や就活が嫌でも「フリーランスになればいい」という甘言だけは真に受けるな。痛い目を見るぞ。
ここはフロントエンドエンジニア、バックエンドエンジニアとかそういう話じゃない。
お前ら、「稼げて楽な仕事」「将来性がありそう」だと思ったからエンジニアを目指してるんだよな。まずはその関心に基づいた分類を知ったほうがいい。
IT企業には大まかに言って、自社でサービスを企画・開発してリリースしてる企業(自社開発企業)と、顧客から受託開発をする企業の2つに分けられる。
みんなが憧れるキラキラホワイトエンジニアは大抵が自社開発企業だ。受託開発の会社は俗に言うIT土方になることが多いが、どちらも職種としては「ITエンジニア」扱いされる。
「エンジニア」という雑なカテゴリでしか仕事を認識してないやつは、上手く騙されてブラックな受託開発の会社に吸い込まれていく。
当たり前だが、ブラックな方が人手不足なので未経験でも就職しやすい。
そこで、「就職保証」をやっているプログラミングスクールの多くは、キラキラホワイトエンジニアのイメージで人を集めておいて、ブラックな会社に送り込むようなことをやっているケースがある。
最低でもこれには引っかからないようにしてくれ。
ちなみにブラックなところは延々と単純作業をやらされ、転職するためのITスキルすらつかない例もある。
そういう環境に放り込まれると基本的には詰むので、1回でも足を踏み入れてはいけない。
もちろん自社開発が100%ホワイト、受託開発が100%ブラックだとは言わない。
それぞれ例外はあるし、あくまで傾向にすぎないが、受託開発と聞いたら一旦は身構えるくらいの心構えではいてほしい。
プログラミングスクールは「未経験でも頑張れば誰にでも出来る」としか言わないし、広告でも未経験者の体験談を列挙して誰にでもできるような雰囲気を醸し出している。
こういうのを見ると「自分も出来るのでは」と思うかもしれないが、残念ながら物事には適性というものがある。プログラミングは万人が習得できる奇跡のシロモノでもなんでもない。
頑張っているのに何も習得できない人も実際に多く存在する。逆に未経験なのに恐ろしい勢いで理解する人もいる。これらは単純に適性の問題であるとしか言いようがない。
体育が苦手、歌が苦手、数学が苦手、古文が苦手、それと同じで、プログラミングが苦手というだけだ。
苦手な奴が苦しみながら長時間頑張ったとしても、得意な奴には楽勝で追い抜かされている。そんなことを仕事にするメリットはあるのか?
他の分野については得意・不得意が存在することを受け入れているはずなのに、何故かプログラミングだけは「誰でも短期間で出来るはず」と思いこんでいる人が多い。
これはプログラミングスクールのPR手段が詐欺まがいなのが悪いのかもしれないけどな。
もし適性がなかった場合、プログラミング自体に魅力を感じているわけじゃなければ素直にエンジニア以外の道を進む方がよい。ITに関心があるなら、IT企業の企画職みたいな携わり方もある。
別にエンジニアになれなくたって高給・ホワイトな仕事はいくらでもある。なんならエンジニアを超える待遇の仕事だってあるわけだ。
適性がないのに無理してエンジニアになろうとしたところで、先程書いたようなブラック企業にしか入れないかもしれない。それよりは別職種でホワイトなものを探すほうが絶対に良いと思う。
どんな仕事でも就活を突破したら終わりではない。その先にその仕事が続くことを考えると、自分の得意分野で勝負するほうが良いだろう。
語学学習の雰囲気でやってんのかな。プログラミング言語の文法を覚えたらもうプログラミングを習得したと思いこんで、現場に入ろうとする人がいて驚くときがある。
文法っていうのはツールの使い方みたいなもので、それ自体がエンジニアの価値じゃない。プログラミングの勉強に終わりはないから表現として正しくはないかもしれないが、文法ってのは10%未満に過ぎない。
例えば、ひたすら包丁の使い方だけ練習してても凄腕シェフにはなれないじゃん?プログラミングもそれと同じ。
エンジニアってのはプログラミングをするだけの人じゃなくて、プログラミングによって何かを作る人だからな。
プログラミングのための環境構築みたいな周辺知識もしっかり鍛えて、ちゃんと何か作れるようになろう。
「環境構築なしでプログラミングが勉強できます」と謳っているサービスは便利だけど、そこだけで勉強を終わるのは絶対にダメだぞ。必ず自力で何かをリリースできるようになってくれ。
金があったら好きにしろとでも言いたいが、入る前によく考えてほしい。
スクールに入ろうとしている奴は「先輩エンジニアたちはみんなスクールを卒業してエンジニアになった」と勘違いしているのかもしれないが、そんなことはない。
未経験でエンジニアになれているのは、だいたい自主的に勉強して才能を伸ばした奴だ。スクールがきっかけだった奴もいるかもしれないが、あくまできっかけだ。スクールの修了=エンジニア就職と考えてる奴はブラック企業に吸い込まれると思うぞ。
とはいえ完全に独学するとなると、何から始めていいのかわからないという問題はあると思う。そういう意味で何かしらカリキュラムが設定されているスクールが便利なのはわかる。
ただし、数十万するようなスクールに行く必要があるのかは甚だ疑問である。
まずは1ヶ月数千円くらい、格安で利用できるオンラインの教材からスタートするといいだろう。
オンライン教材でも質問サービスを提供しているところはあるから、完全に1人というわけじゃない。
もし、オンライン教材だけで能力が身につけられないと思ったら、その段階になってからスクールを検討すれば十分だろう。
ただし、エンジニアは自分で調べて自分で習得するスキルが必要な仕事だ。もしオンライン教材ですら難しいのであれば、適性が無い可能性を少しは考えておいた方が良いかもしれない。
#駆け出しエンジニアと繋がりたい 的なハッシュタグがあるんだけど、粗悪スクールのカモみたいな奴がやたら多い。
以前定期的に観察していたが、何やら教材の数をこなすのがメインになっている人が多い。
本を読んだりスクールに行ったりといったことでいってエンジニアの力が身につくわけじゃないので、これを見ていると悪い影響を受けやすいと増田自身は思っている。
心細いから初心者同士で繋がりたいと思う気持ちはわかるが、詐欺師まがいの粗悪スクールが紛れ込んでくるハッシュタグで傷の舐めあいをするのはリスクでしかない。
競技プログラミングほどのアルゴリズム能力を求められる会社はまだまだ一握りだ。しかもそういう企業はトップクラスの人間を求めている。
トップクラスの人間は東大や京大で情報系を専攻しているような人間で占められており、悲しいが「未経験の文系が競技プログラミングで大逆転」みたいな事例は聞いたことがない。
趣味としてやる分には全然良いが、競技プログラミングさえやれば就活で安泰だとは思わない方が良い。
それよりも、未経験者レベルであれば、自分で何かプロダクト(Webアプリやスマホアプリ)を一通り作れる方がよほど評価される。
時間が限られているなら、開発スキルの養成を優先した方がいいだろう。
実はこれがあるから、大学生なら未経験からでもエンジニアを目指しやすい。1年・2年でなるべく早い段階でアルバイトかインターンで実績を積み始めるといい。
「未経験から転職」ではこの手が使えないので厳しいという事情もある。
一般的な就活でアルバイトは職歴・経験としてみなされにくいが、エンジニア新卒採用では経験としてきちんとカウントされる場合が多い。
ただし、短期インターンだとプラスにはなりづらいので、インターン≧長期アルバイト>>短期インターンくらいに捉えておくといいと思うぞ。
Web系エンジニアの求人はバイト情報サイト・バイト情報雑誌には掲載されていない場合も多い。載っていても微妙なケースだったりする。
各社の採用サイトやWantedly等だけに掲載されている場合が圧倒的に多いと思うので、そちらをメインに探せ。
まずは自分が知っているWeb系企業の名前と「アルバイト」みたいな検索を掛けてみたら、案外見つかると思うぞ。
「初心者はどの言語から始めればいいのか」というのはよく見かける疑問だが、特に答えはない。別にPythonから始めてもいいし、Rubyで始めてもいい。PHPも悪くない。どれでも正解だ。
そこで、自分が希望するバイト・インターンの候補からスキルを逆算するのも一つの手だと増田は思っている。
例えば、ちょっと興味あるけど採用されるかは分からない、というレベルの企業が「PHP・Ruby・Python・Java等によるWebアプリの開発経験」をアルバイトに求めていたとする。
このような場合、特に注意書きがない限りどれか1つの言語で条件を満たせばよい。一番最初に書いているくらいだからPHPを中心にしているんじゃないだろうか?とアタリを付けて、PHPを中心にした開発スキルの習得を目指せばよいだろう。
良いことなのか悪いことなのかわからないが、日本のWeb系エンジニア新卒採用は学部で足切りされることが少ない。
要は文系学部出身でも、アルバイトや個人開発で実績があれば問題ないケースが多いということだ。
海外だとCSの学位を要求されることも多いので、これに関してはお前ら日本で学生やってて運が良かったなとしか言いようがない。
ただ、この風潮いつまで続くかわからない。今後5~10年スパンくらいで考えるとCSの学位を重視するブームが来てもおかしくはないと思う。
実は結構いるんだけど、プログラミングスクール卒をまるで学歴のように誇示している奴はかなり不利となる。
正直なところ、採用側であるエンジニアはプログラミングスクールに対してネガティブなイメージを抱いている人が多いのだが、スクール卒の人間はそれを誇りに思っている事があるらしくミスマッチが生じている。
これだけ書くとスクールを馬鹿にするなと言われそうだが、ネガティブなイメージには2つ理由がある。
まずは質が悪いスクールが多いこと。さっきから言っているが、昨今のエンジニア志望者は楽して稼ぎたいからエンジニアを目指すという奴が増えている。
その結果として情報商材のパラダイスとなっている。再生するだけで英語力が身に付くCD、絶対に株で儲かる方法、そんなレベルのプログラミング情報商材が大量に出回っている。
これはスクールも例外ではなく、そのレベルの教材だけで生徒をエンジニアとして送り出すところが多い。エンジニアはこの状況を知っている。
それに、プログラミングスクールは無限にある。採用側はそれらのカリキュラムを調べるほど暇ではないため、スクール卒となると全体的にそういう扱いをせざるを得なくなる。
もう1つはスクール出身者の問題。わざわざスクール卒と書く奴は書くことが他にない。
未経験者の採用における理想像は「エンジニアとしての就業経験はないが、これからOJTで学んでいけるだけの基礎知識があり、技術に興味があって今後も新しいことを学ぶ意欲のある奴」という辺りになる。もちろん会社の文化へのフィットなどもあるがな。
ただ、新しいことを学ぶ意欲というのは評価しづらい。誰だって聞かれたらそう答えるじゃん。そこで実質的には、自主的に何か作った経験があるか否かがその指標として機能している。
「技術に興味があれば、習得した技術をより深めて自主的に何か作るもんじゃないの?」という考えを持っているエンジニアが多い。
最初に結論から書くと、「毎日新聞さん正論すぎる」「だけどまだちょっと時間あるで」。
『「COCOA」がグーグルとアップル基本ソフト最新仕様に未対応』
→ https://mainichi.jp/articles/20210315/k00/00m/020/165000c
うん。コード見てる人はだいたい知ってる。
まあ、そうですね…。
COCOAの動作の基盤となっているのは、Exposure Notification API(曝露通知API)というやつで、GoogleとAppleが共同で開発した、AndroidとiOSの両方で使えるAPI。OSと近いところで動くライブラリみたいなもので、おかげでBluetoothを使っても電力消費は最小限で済むし、アプリがプライバシー関係でよからぬ手出しができないようにもなってる。iPhoneではiOSの一部として組み込まれているし、AndroidはGoogle Play経由の「Google Play 開発者サービス」の新しい版に含まれてる、みたい。
このAPIにはバージョンがあって、V1ってのが最初のやつで、もう少し検出方法が洗練されたV2ってのがある。Exposure Notification APIのセットの中にV1とV2が重複しつつ混在してて、今から作るアプリなら使えるAPIバージョンをアプリ側で確認して、使える方を使う、という感じになるかと思う。
現在、COCOAがまがりなりにも動いていることからも分かるように、API V2が使えるようになっても、後方互換性のためにV1も使えるようになっている。Apple/GoogleはV1のメソッドとかには「deprecated」(使用不可)っていう印をつけて、今後は使わないように、と言ってる。
「deprecated」になったやつは、Apple/Googleは「もう使わんでね。いつ使えなくなっても文句言わんでね」という扱いをする。だから、「ソフトの更新次第で作動停止」という指摘は間違いではない。間違いではないが…。
Apple/Googleのデベロッパならよく知っていると思うけれど、「deprecated」になったからといって、そのAPIを予告なく使えなくすることは、まず、ないのです。
増田はIOSのデベロッパなのでiOSの例をあげると、画面を表示する基本的な部品であるところの UIWebView っていのうがあったんだけど、これはiPhone OSの頃からあった古い古い部品で、これまでずっと使われてきた。これはwebの画面を表示するのと同じやりかたができるので、iOSのアプリはほぼみんな使ってたんだけど、いろいろ問題もあるので、iOS 8の頃に WKWebView っていう新しい部品を出したのです。で、UIWebView をdeprecatedにしたのがiOS 12のとき。
ここからAppleは、「UIWebViewを使ったアプリをApp Storeに提出したら警告するからね」→「今後新規アプリやバージョンアップのときUIWebView使ってたらリジェクトするからね」→「UIWebView使ってるアプリはAppStoreから削除するからね」という感じにデベロッパの様子を見て期限を延長したりしながら段階を踏んで、ほんとに削除(一時的な非表示)始めたのは去年の12月ですよ。しかもiOS 14でもまだ既存アプリのUIWebViewは動く。
もちろん、滅茶苦茶使われていたUIWebViewと比べたら、Exposure Notification APIみたいなマイナーなAPIでこんな丁寧なことはやらないかもしれないけれど、でも重要度で言ったらExposeure Notification APIなんて「超重要」でしょ。V1が全然使えないならまだしも、一応動いてるし。
Exposure Notification API V1は、使えなくなる前には必ずデベロッパに期限を知らせるはずで、いきなり切るはずはない(ないよね(ないんじゃないかな(まちょっと覚悟はしておけ)))。
だから、COCOAが急に使えなくなっちゃう! と不安になる必要は、当面はないと思っていい。かな。
これはスレたデベロッパであるがゆえの油断であると言われてしまえば、そのとおりです。「deprecated」は「deprecated」。普通のプロジェクトなら、すぐさま対応を検討して、バージョンアップ計画を立てるのが正しい。普通のプロジェクト、なら。
記事中では「21年2月になって、ようやく最新使用に対応するための具体的な検討に着手した」って言ってて、まあこれはダメなんだけど、そもそもプロジェクト運営がグダグダだったんでしょうがねーんじゃね? というのがいちヲチャーとしての感想ではある。だって、Android版動いてなかったんじゃよ? プロジェクト立て直す時間はあるはずなので、体勢立て直してから検討してもいいかな、という気はしている。それくらいの時間はある。はず。
そういう意味で、毎日新聞の記事はちょっと叩きすぎな感はある。正論ではありますよ。正論では。
で、ここでぶっちゃけてしまうと、実はもうCOCOAは要らないっちゃ要らないのです。
保健当局がアプリを作れない/作らない国/地域のために、iOSでもAndroidでも、AppleとGoogleが用意したCOCOA相当機能「Exposure Notification Express」というやつが、OSに組み込まれている。これを使うことにすれば、当局はサーバ側のバックエンドだけ用意すればいい。
『グーグルとアップルの新型コロナ接触確認機能に新たな仕組み「Exposure Notification Express」――日本には影響なし』
→ https://k-tai.watch.impress.co.jp/docs/news/1274374.html
『Supporting Exposure Notifications Express』
「だけ」って簡単な言うな。そりゃ大変だけろうれど、わざわざ使いづらい/どマイナーなミドルウェアXamarin(Microsoft謹製)使って、頑張ってクロスプラットフォームなアプリを開発/運用するよりはずっと負担は少ないよね(必要な予算も)。
もう、バンザイして、Expressにしたらいいんじゃね? と、増田は考えるんじゃよ。知らんけど。
COCOAは嫌いになっても、Exposure Notificationの仕組みは嫌いにならないでください…(´・ω・`)
COCOAは出自がアレで、採用の意思決定が不透明で、契約もテキトウで、アプリ運用も誰が何をどうしたらいいのかわかってない/身動きができない、という悲惨なアプリです。
でも、2月以降変わってきたんですよ。COCOAの立て直しチームにCode for Japanの人やオープンソースの知見を持った方が参加して、githubでのissue解決の動きも再開している。ちょっと見てみてくださいよ、いろんな人が寄ってたかってコードを検証して、それが反映されつつあります。
『Issues・cocoa-mhlw/cocoa・GitHub』
→ https://github.com/cocoa-mhlw/cocoa/issues
いままでよりはまともに動くようになるはず。
前述のように、Exposure Notification APIで消費されるCPU資源も、通信も、ストレージも、バッテリも微々たるものです。
Exposure Notification API自体は非常によくできており、プライバシーに関しても、よくまあここまで、というくらい考慮されています。アプリ側でいろんな悪さを仕込むことは技術的には可能ですが、小細工を仕込んでもAppleやGoogleのアプリ審査で弾かれます(通常の小細工入りアプリが弾かれる程度には)。運営への不信からプライバシーについても疑ってしまう人もいるけど、COCOAはその点まず心配ありません。
だから、渋々でいいので、もうしばらくスマホの奥においといてもらえませんか。そんなにお邪魔にはならないですよ?
そして万が一曝露通知が届いたりしたら宝くじ大当たり級の驚きが(うれしくない)
記入する項目の例
「やりたいこと、興味のある仕事・分野」記入例
開発環境について触れる
今まで小さなチームでインフラからフロントエンドまで全てを担当してきたが、次は少し大きなプロダクトでバックエンドのパフォーマンス改善に挑戦できるような環境で仕事がしたい。
------------------------------------------------------
興味のある分野・領域について触れる
Railsアプリケーション設計・開発から、Heroku, AWS, GCPなどのインフラ構築もできるような、Webアプリケーションエンジニアになりたいと思っています。興味のある分野は、医療・健康などです。現在転職活動中です。 ------------------------------------------------------
より具体的な記入例
例1
# 目標 新しい技術に柔軟に対応できるようにしたい 自社開発のサービスに携わり、常に機能の改善・拡張を考えながら開発がしたい
# 興味のある仕事 自然言語処理や画像分析など、データを扱うアプリケーションの開発
# 転職先に求めること 新しい技術に対して敏感に反応し、プロダクトにマッチする場合はどんどん導入してゆく風習があるような職場で働きたいです。
日本の超大手企業(繊維系)の内製システムのエンジニア採用を受けて落ちた時の記録
虚実織り交ぜて書いてるので真にうけないように
受かった人の話を聞いてみたい
割と普通の内容だったがRubyのコードを見せられたときは面食らった
サービスのアーキテクチャ設計するときに気をつけていることは何?
セキュリティ面で気をつけていることは何?
唐突にRubyのコードを見せられ、このコードの悪いところはどこですか?
サービス規模の割に社員数が少ないけどどんな編成になってるのか
なんでもクラウドベンダーの特定技術に縛られたくないからKubernetes使いたいみたいなことを言っていた気がする(そういうための技術じゃないけど)
なぜアプリエンジニアと面接したか不明(当方の専門はバックエンド)
経営陣がクラウドの予算を出さないが24/365守れと言われたらどうする
交渉してだめだったら
24/365関連の質問です。サービスをスパイクさせないためにはどうしますか?
あなたの考える最強のバックエンドアーキテクチャをおしえてください
質問を変えます、月の予算1億円もらったらどんな構成にしますか
// 過去にアプリ開発をしたことがあったのでアプリ開発について質問を受ける
iOS/Androidのアーキテクチャを設計するとしてどこまで同じ技術を使うように強制しますか
SwiftUIはメモリ食いまくりで大規模アプリでは使い物にならないことですね(ドヤ)
SwiftUIではメモリ食いすぎてインフィニットスクロールが使えません(ドヤ)
先ほどSwiftUIについての質問を受けましたが御社のアプリではSwiftUIを導入されてますか?
私はITの開発系のエンジニアだ。(ゲームの開発、Webのバックエンドの開発やフロントエンド開発をやってきて、今は機械学習のエンジニアをやっている)
「一番じゃなきゃいけないんですか?2位じゃなきゃいけない理由は?」という感じの科白をふと思い出した。もうたぶん10年くらい前の言葉だ。ちょうど私がソフトウェアエンジニアとしてのキャリアを積み始めたころだ。当時はあの言葉に憤慨したものだった。そのあと、京や富岳が世界一になった。そのことでふと思うことがある。
京や富岳が世界一になった。でも、日本においてソフトウェアエンジニアの地位が向上したのだろうか?
実感として私はそこまって変わってないように見える。結局はハードだからだ。
もし、あのとき京や富岳のため資金を、ソフトウェアのために使っていたらどうなっただろうか?と時々思う。
いまやっている紙の業務やらを電子化するための資金につかっていたらどれほど、より良い対応ができたのだろうか?
「一番じゃなきゃいけないのは、シェアを守るため。日本のIT技術を守るため。」という発言もいろいろあったが、あれはクソみたいな大企業を守るための口実に過ぎなかったような気がする。
next.js が vercel を提供して CDN からサーバーサイドでの処理までをワンストップに提供しているとか、 firebase がクライアントサイドでの SDK と Cloud Functions をなるべく一貫した体験で提供しようとしていることとか、あるいは今話題の React Server Component とかについて、フロントエンドの最前線がいったいどのような苦しみにあるか、理解できる人は実はあまり多くないのではないか、と僕は思っている。
それは何かといえば、絶望的なまでのサーバーサイド/バックエンドへの忌避感だ。「とにかくフロントエンド領域しか絶対にやりたくない」という人が沢山いるが、しかし一方フロントエンドで無理しないでサーバーを書くだけで楽になるようなタスクはいくらでもある(典型的には API たくさんアクセスするとか)。
そうしたときに、フロントエンドメインだがバックエンドも書けるみたいな人がそういうサーバー忌避患者を介護する層として BFF の需要があり(無論それだけが BFF に求められるのではなく認証などの要素も大きいが)、サーバーサイドレンダリングというタスクもあるため node.js で何らかのサーバーが書かれていった。
アイソモーフィックな JS によりフロントエンドとサーバーサイドを統合する、という試みはこれまであまり成功しなかったので(結局どっちにも詳しくないといけないから正しく書ける人がすくない)、 next.js の getStaticProps や React Server Component は「サーバーサイドだけで動くコードを見た目上フロントエンドのコードの中に含める」という解決策を提示した。
ここまでしないとフロントの人がサーバー側を書いてくれないという現実は、あるわけですよ。「そんな奴言って聞かせりゃいいじゃねえか」とか思うかもしれないけど、これが現実。これが全てという話でもないけど、わりとこんな話が大きいように僕には見える。
起きていることはそういう話なのだけど、これはけして JSP 時代への先祖帰りではなく、この進歩の先にはサーバーとクライアントを跨いで快適な UX を誰でも簡単に実現するという未来が、もしかしたら今回こそ実現できるかもしれない、と僕は思ってます。
■30半ばで年収900万円達成したんだけど、向上心が失われて行って辛い
新卒時は大手SIer(プライムコントラクター)に就職、30手前でユーザ企業に転職して今は上流・下流工程を知ってるITシステムの発注者側の立場にいる。
新卒でIT企業に就職した時はまだ自分がこれからどうなっていくのか明解なキャリアパスは描けていなかったが、
30歳に近づくにつれ、ユーザ側(発注側)に転職してITエンジニアを指揮する立場にならなきゃダメだと思い転職活動を頑張り、結果望み通りユーザ側の企業に転職して現在に至る。
新卒当初はSIerの中でチームメンバー(システム設計・実装・テストをする人) → チームリーダー → PM → 統括PMのようなキャリアパスを描くのが王道だと思っていた。
だが、元請けとは言えどんなに非合理なシステムでも客に言われた通りに作らなきゃいけない下請け企業でPMになったところで大して意味がないことに気づく。
自分に裁量などほとんどなく、理不尽な客に怒られたりバカにされたりする頻度が増えるのに比べて給料は大して上がらない。
担当していたプロジェクトは超大企業のサービス開発。なのだが、ユーザ側の担当者のレベルがびっくりするほど低い。発注担当者は中学生の作文みたいなクソRFP書いてよこしてくる。納期も費用も工数もめちゃくちゃ。しかもやりたいことが全く分からない。多分発注担当の上の奴がテキトーに言ったことをそのまんま真に受けて左から右に流してるだけなんだろうが、有名な大企業にもこんなおバカな社員が堂々と給料もらって平気で定年まで安泰なんだなと思ったら複雑な気持ちになっていた。
だけど、幸か不幸か、そのダメな担当のおかげで20代のうちにユーザ側へ転職しないと仕事のレベルも上がらないしスキルも上がらないことに気づけた。30半ばになって思い返すと、本当に感謝しかない。
まだ30半ばで成功とか失敗とか書くのは時期尚早だとは思うが、給料も大幅に増えてフルリモート・フルフレックス・コアタイム無しの環境を手にしている現状は控えめにいっても成功だと思わざるをえない。
年収も30半ばにして900万円を超えた。
ユーザ企業に転職して思うのだが、ユーザ企業ではITのスペシャリストというのは新卒ではほとんどいない。ゼロとは言わないがSIerのレベルから見ても平均から下のレベルしかない。
なので業務を改善する社内システムの開発や、売り上げに直結するWebサービスのバックエンド・フロントエンドの開発プロジェクトが検討され始めると必ず声がかかり、システムのアーキテクチャを選定する段階から意思決定で主導権を握れる。
こちらとしてもそういう役割を期待されて中途採用されたというのもあるし、何よりこういう会社は新卒採用時にITのスペシャリストを採用することもないので、社内の新卒の誰かと争って主導権をようやく握る、などのようなこともなく、自然と企画、設計、実装、運用まで全て意思決定に関われる。
まさかSIerから転職した身で、自分でTypescript, React, Firebase, Java, C#, C++, SQL, Python, TensorFlowを駆使してゴリゴリ開発して企画を実現し、それがプレスリリースされて正式に会社のサービスとして世に出るようなことになるとは20代の頃は想像していなかった。
ここまでは20代の頃に目指していた理想の30代のキャリアパスそのものだと自負していて大変満足している。
だが、30半ばにして20代の頃ギラギラとした向上心が次第に失われつつあるのを日々実感している。
30前半までは自分で目標設定してそれを達成するのが楽しかったが、30半ば以降は金と評価が欲しくなってくる
30代前半までは日々成長し、技術の選択肢も勉強する度に着実に増え、サービスの企画が持ち込まれるとそれを実現するためには~すればいい、などとパッと浮かんで日夜シミュレーションしてPoCして…というサイクルが楽しくしょうがなかった。
今でも楽しくはあるのだが、これまでとは違って「ただ楽しい」だけでは到底満足できなくなっている自分に最近気づいた。
これまでは金になろうがなるまいが、依頼された仕事は自然と全力で取り組むことができた。報酬はやりがい、のようなところは正直あった。
だが、30半ばを超えてくると物の価値がだんだんとわかってくる。
仕事が忙しくなった時に皆さんはタスクに順位付けをするだろう。
これまではその優先度は難易度で昇順ソートかけて上から順に消化していく方式をとっていた。
すぐできるものから片づけることで、仕事の見かけのスループットが上がる。客観的には仕事が早く進んでいるように見える。
だが、今では、そのタスク・プロジェクトが将来金になるかならないかでタスクの優先順位を検討するようになりつつある。
結果が魅力的でなければそもそも仕事のやる気すら湧き上がってこない。
年収900万円
これは30代半ば、理想のキャリアを追い求めて突っ走ってきた人間の向上心が奪われてしまうような大きな金額なんだろうか。
このへんで満足してあと20数年まったり定年まで過ごすべきなんだろうか。
20代の頃あれだけ将来のキャリアについて真面目に考えていたのに、30代になって40代の理想のキャリアパスが描けない。
うちの会社は年功序列なので、年収も40代になれば自動で1000万円を超える。
このへんで走るのをやめてジョギングに切り替えても、多分未来はそう暗くない。
なのに、アクセルが減速しかかっている自分を冷静に見つめると、何か、本当はもっとできるのに手を抜いている、みたいな罪悪感が湧き上がって止まらない。
はてなを読んでいると、自分と同じ30半ばくらいの年代の人が多くいるように感じる。
30半ばでようやく安定を手にしつつある自分と似たような境遇の人がいれば、
40代に向かってどのような準備をしているのか、さらに上を目指しているのかそれとも今のポジションでの安定を取るのか、それとも会社を辞めて起業を考えているか、など、
恐縮ではあるが共有してほしい。
30半ばでクズになりかかっている自分に、勝手ながら発破と刺激を与えてやってほしい。
よろしくお願いしたい。