エンジニアになるまでの道標

大手日系企業に勤めて3年目、仕事について色々と語ります。

最も有用なお金の使い途に気付くことができた

先日、デパ地下で1万円強の某ブランドの顔パックを購入した。6枚入りで1万円強なので、1枚あたり1500円以上する。マツキヨがPBで販売している顔パックは10枚入りで550円なので、ざっと20倍の金額ということになる。(マツキヨPBは、質も良いし、コスパがかなり良いと思っている。個人的には知らないプチプラを漁るよりもドラッグストアのPBブランドの方が信頼できる。)

私にとって大切な人が元気がなく落ち込んでいたから、プレゼント用で購入したのである。普段から顔パックをしていることを知っているので、きっと喜ぶだろうと思ってあれこれ探してみて購入した。Dior, CHANEL, SK-Ⅱ, 資生堂, アルマーニ, Aesopとかデパ地下の化粧品ブランドを色々見たけど、マスクタイプはどれも1万円以上する。ジェルタイプは1万円を切るものもあった。流石に日常の些細なプレゼントとしては高すぎるのかと思い、デパ地下の健康雑貨・日常用品フロアに向かい、ちふれとかドモホルンリンクルとかそういうブランドも見てみたけど、なんかちょっと違う感があった。少しだけ贅沢した感じの顔パックはあるけど、これが良いものかどうか分からないし、たぶん中途半端な金額出して買うよりもハイブランドの顔パックの方が喜んでもらえるんじゃないかと思い、化粧品フロアに引き返した。色々悩んだ結果、某ブランドの顔パックを購入したのである。

お金の使い方について、将来のことを考えて浪費しないことを意識している。コンビニで好きなものを好きな時に買うことは日々のストレスの発散になるので自分に甘やかしている部分もあるが、特にそれ以外のことについては日頃から貯金額が気になるので、あまり消費に意識が向かない生活になってきていた。そういう状況だったので、顔パックで1万円は直感で高っ!!と思ったけど、一歩立ち止まって、何のためにお金を貯めてるんだっけ?これで少しでも喜んでもらえるならかなり実用的なお金の使い道じゃないか?と考えたら、迷うことではなかった。買ってからも一番有用なお金の使い途をできたなとホクホク満足して、紙袋を手に下げて帰路に着くことができた。昔の自分だったらこんなことしないだろうなと思えたので、改めてこういう関係を築くことができた大切な人に感謝したい。(その後、実際に喜んでもらえたのでとても良かった。)

どのプログラミング言語を学ぶべきか考える

自分の考えを整理するために書く。

前提

SIerで働くサラリーマン。業務経験はJavaのみ。個人開発でSpring Bootを使用。Vue.jsとAWS完全に理解した状態のド素人。モダンなフロントエンドに興味あり。インフラも将来的にはできるようになりたい。

これから積極的に触れたい言語ランキング

  • TypeScript

みんな良いって言ってる。フロントエンドもバックエンドもこいつがあれば綺麗に書ける幻想を抱いている。

何を作るにしても必須。

  • Go

将来的にMSAを採用した環境で働くだろうから必要だと考える。サーバレスとの親和性も高い。

sunk costがデカい。初めて触れた言語。基本情報もJavaで取得した。無駄に思い入れがあるので捨てきれない。きっちりかっちりしたモダンな業務系システム、toBシステムでも採用はあるし、Spring Bootを採用するtoCサービスも意外とあるし、オブジェクト指向、型システム、ラムダ式、進化を続けるJavaを追い続けることで、歴史とパラダイムを知ることができるので面白い。学習を続けたい意欲はあるが・・正直、Webに興味があるのに、なぜPHPRubyをやってこなかったんだと新卒の時の自分を恨んでいる節もある・・結局、世の中を見渡してみた時にJavaを採用してるプロジェクトは不幸なことが多い気がする・・サーバレス分野で生き残れない可能性もあると思うので、早いところ見切りをつけても良いのかも知れない。

  • Rust

少し出遅れた感はあるが、今学ぶべき言語だと思う。低レイヤーやるなら、CよりRustを選びたい。

  • WAsm

Rustの次に来ると言われている。状況はウォッチし、将来的に必要であれば学ぶ。

WebやるならやっぱりPHPだよね・・軽いし。転職活動してみて、PHPの強さを思い知った。徳丸さんがいなければ、Webサービス作るにしてもバックエンドは最悪、他言語でもいいや!となれるかも知れないが・・ウェブセキュリティの考え方とか、ウェブ自体の考え方とか事例が多いのはやっぱりPHP

  • Kotlin

サーバーサイドKotlinが2020-2021で瞬間的ムーブメントになったと思う。JVM系好き。Kotlinも今は安定していると聞くし、Javaの良い面も取り入れた新しい言語なので、積極的に触れていきたい。モバイルにシフトしていく足がかりともしたい。

JVM系好き。JavaでチョットStreamを試してみて興味を持った。

全然興味ないけど、構文は理解してる。簡単にスクレイピングとかはできるようになっておいた方が良いとは思っているが、必要に応じて学習すれば良い。ジョブとか、Lambdaで簡易なスクリプト書くときに使えるから、早く綺麗に書けるようにやっておいてもいいのかな・・と思う程度。

  • C

Atcoderの解説がほとんどCばかりなので、アルゴリズムの勉強用にCに慣れたいなという思いがある。

スタートアップで採用するところも多いし、需要はある。でも今からRubyやるならPHP頑張った方が良い。

全然興味ない。

作業メモ

OAuth認証 SPA session cookie

現状、バックエンドで実装し、Twitterへのリクエストークン要求、リダイレクト(コールバック指定)、アクセストークン要求、認証、Cookieでセッション保持をさせている。この実装の場合、SPA上の画面遷移はできてしまう。また現状、APIへの通信もできてしまうので、セッションを張っている状態時のみコールできるような実装とする必要がある。セッションが切れている場合、認証画面へ遷移させるようにする。

fintan.jp
atmarkit.itmedia.co.jp

ログインフォーム作成

  • TypeScript
  • TSX
  • Vuelidate
  • VeeValidate


zenn.dev

blog.cloud-acct.com

jasonwatmore.com

stackoverflow.com

Java

  • Gradle
  • Web API
  • Spring Sec
  • JJUG Spring初心者

qiita.com
codezine.jp

転職に対する甘い考え方

転職先が決まっていないのに退職しようと思っている考えを伝えたところ、友人に真顔で止められた。家庭事情とか色々推察してくれて、本気で思ってくれているから心配してくれたのだと思うので、ありがたい(色々背景ぶっ飛ばして、結果だけ伝えているというのもある)。たしかに景気次第ではどうにもならなくなることもあるから、リスクがないとは言えないけど。そしてキャリアチェンジかので確実に待遇は悪くなるけど。
ただやるべきことはやってきたと思うので、退職後の転職活動でも困ることはそんなにないんじゃないかと考えていること(もちろん転職活動の難易度は最終的に給与面などの条件次第だが)、また周囲にも話して了承得ていることから、自分の中ではほぼ転職先が決まっていないのに退職する方針で固まっていた。けどやっぱり世の中的には次の職場見つけて転職という考え方が一般的なのだろう。客観的に見たら心配に見えるのもそりゃそうなんだよな。
口には出さないけど、現職に出戻りの仕組みがあるので、最悪それで戻ることもできると思ってしまっている自分もいる。それを少しでも頼るようじゃ、どこに行ってもやっていけないと思うので、選択肢からは外してはいるのだが。もう少し最悪のケースを想定する必要もあるのかもしれない。
ちゃんと考えを伝えて選択を尊重し、了承してくれた周囲の人には、

インフラはクソつまらないと思ってたけど

インフラはクソつまらないと思ってたけど、楽しいと感じることができた。インフラ構築も運用も設定や操作をGUIで操作するのを見聞きすることが多かったので、つまらなさそうだなと思っていた。
実装は書くものによって、良し悪しがでるし、作り方を考えるので楽しさがある。構築は答えは決まっているし、設計通りに設定するだけで、作り方の自由はほとんどない。そんな印象があった。
今回、シェルで特定のメッセージを含むログをgrepし、確認したり、ansibleのplaybookでconfigやスクリプトを複数ノードに配布したり、定期実行されているジョブの中身を見て影響確認したりしてインフラに対する印象が変わったのだ。運用保守する上での効率さや品質をいくらでも追求できるところが面白いなと。
awsの管理コンソールから作業することも多いので、cliから色々もっと便利なことができるようになったりしたいものである。

SIerで経験できて良かったこと

単なるネタを忘れないように記録する。パトライトおじさん、マシン室の監視おじさん、マークダウン大好きお兄さん、マークダウンを恐れる若手、ノード追加絶対のお偉いさん、AMIお兄さん、ぴちょんおじさん、ジュパイターおじさん、上長席突撃謝罪おじさん、メンヘラ派遣、マイクロマネジメントサイコパス、突き上げキラー、まともに用を足せない人たち、胸ぐらの掴み合い…色々経験してきたけど、書き出してみると意外と少ない。今は嫌な思いとかも全然しないし、業務も楽しいので、本当に環境には恵まれている。

WEBサービスの開発案件に最短距離で参画したいけど、血迷ってる話

「うちに来れば、開発には一通りできるようになる自信はある。」とカジュアル面談で言ってくれた方がいて、直近の開発内容や働き方を聞いて、いいなと思えた企業があった。
転職活動を一旦延期することにしたものの、面接の日程は既に抑えてしまっていたので、現状を話して面接をしてもらった。
カジュアル面談を担当した方とは別の方と面接をすることになり、その方も物腰が柔らかく、技術スタックの話も盛り上がり楽しかった。
しかし、SESで単独で契約先に送り込まれること、経歴を良い感じに作り上げる必要があること、またそれを協力的にできるのかどうか確認されたこと、土日も普通に業務外で出社している人がいることを割とダイレクトな言葉で言われてしまったので、なんか違うかもしれないと思った。いや、むしろ簡潔明瞭に言ってくれるのは潔いし、良いことなのかもしれない。
あとコロナ禍で実務経験3年は必要と要件が厳しくなっていたが、最近は2年程度に落ち着いてきているらしい。実務経験3年さえあれば、逆にほとんどの案件は参加できるのだそう。

とりあえず今は実務経験が足りないので、上手く良い感じに経歴を作って、Java案件に参画しましょう。その後にphpとかのスキルも身に着けて、スキルチェンジもしていけるって話をされたが、Javaの古臭い案件にぶち込まれて、辛い思いをするだけな未来が予想できてしまった。

spring bootでtoCやってる開発がないことはないのだが、スキルセットがあるわけではないので、そりゃ古臭いJava案件にアサインされるリスクは高くなるよな。モダンなウェブ開発をやりたいのに、Javaにこだわってきた自分も馬鹿らしく思えてきた。完全な戦略ミス。

最近はフロントエンドが楽しいので、バックエンドもJSでできるようにnode.js、express、nest.js、nuxt.js,next.jsやろうかなって話をしたら、node.jsは参考となる情報源が少なくて辛いと思うので、phprubyあたりから始めるか、いっそのこと最近流行りのgo、rust、wasmあたりでもいいのではというアドバイスなどをもらった。

モダンなバックエンド開発に参画することを目的にphprubyを今からやるはないかな。それならリスク取ってでもjavaでspringちゃんとやればいいし、小規模なサービスを探せばいい。今はとりあえずjavaとjs頑張るか。