今月の営業日が何日存在するのかサクッと求めたいとき

定期券を購入したらどれくらい浮くのか計算する際に、何営業日あるか簡単に計算する方法を見つけたのでメモしとこうと思います。

いくつか便利そうなライブラリを見つけたのですが、今回は jpbizday を用いた方法を紹介します。

github.com

算出方法

jpbizday には任意の月の営業日を求められる関数 month_bizdays があるのでそちらを用います。実行後に返ってくるオブジェクトが営業日を指しているので、その個数を計算してしまえば終わりです。詳しくはREADMEを。

実行コマンド

>>> import jpbizday
>>> len(jpbizday.month_bizdays(2022, 1))
19 # 得たい日数

余談

ちょっとことをしたいときには、別にスター数を考えたりする必要もないかなと思い、今回は一番READMEが読みやすかったライブラリを使ってみました。READMEの読みやすさって大事だなと改めて実感しました( ˘ω˘ )スヤァ ではでは

「Hatty Hour #6 | 日本発グローバルスタートアップで働くということ」の参加ログ

はじめに

Hatty Hour と言うのは Autify が運営するイベントで、今回初めてその第6回目に参加してきました。

AutifyJapan on Twitter: "次回の #hatty_hour テーマは日本発グローバルスタートアップで働くことについて🌏 非日本語話者メンバーも増え、海外のお客様も増え、その中でAutifyメンバーはどんな日常を過ごしているのか。リアルな姿を深堀ります👀 17日(金)19時開催です お気軽にご参加ください🚀 https://t.co/tmxOj9ymUb"

このイベントの対象は必ずしもエンジニアだけでなく、デザイナーやセールス、HRと幅広かったりします( 少なくとも第6回はそうでした )。 イベントのテーマは毎回異なるようで、第2回には「なぜグローバルを志向するのか」、第3回には「今後の技術選定」がテーマだったみたいです。

第2回 Hatty hour ( Autify Open Office Hour )

autifyjapan.connpass.com

第3回 Hatty hour ( Autify Open Office )

autifyjapan.connpass.com

イベントに参加したキッカケ

元々、どこかのタイミングで英語を使って仕事をしてみたいと思っていました。周りでもドイツに研究員として仕事をしに行くエンジニアもいれば、シリコンバレーのスタートアップに飛び込みにいくエンジニアもおり、グローバルで活躍されてる姿はやっぱりカッコいいなと。

自分もそうやってグローバルで活躍するために何か始められることはないかなと模索したところ、たまたま今回のイベントを見つけたので参加してきました。

( 加えて、創業者の方々が元DeNAということでこれも何かの縁かなとも思い笑 )

参加してみてどうだったか

主に2つのことが聞けました。

  • 社内における英語でのコミュニケーション
  • 会社の全般的な話( 会社のプロダクト、メンバーの紹介 etc. )

~ 英語でのコミュニケーション ~

実は、社内で英語を公用語として扱い始めたのも最近でまさに今メンバー全員がこれからキャッチアップしていっているところだと言うことを知りました。

そして、英語をキャッチアップしていくために英語の研修を定期的に行っていることや気軽に英語の悩みを相談できるSlackチャンネルがあることも聞けました。

ただ英語を学ぶ環境を充実させていってるものの、 失敗を恐れずにコミュニケーションを取りに行く姿勢はとても大事 にしているとのことでした。

~ 全般的な話 ~

メンバー紹介や会社概要なども聞けましたが、特に印象的だったのがプロダクトのデモでした。

Autify が提供するプロダクトはソフトウェアテスト自動化プラットフォームで、今回、自分はWebアプリのテストシナリオを作り、テストするデモで見せてもらうことができました。 とても使い勝手が良さそうで、これによりエンジニアがより創造的な時間を過ごせるようになるのかと思うとワクワクしました。

さいごに

今回、グローバルで展開されてる企業の話を聞きにいけて面白かったです。
イベントのフリートークのときには、登壇者の他にもぞろぞろとAutifyメンバーが集まり、どんな質問にも答えようという勢いを感じ、なんだか質問する側としても活力を頂けた気がします笑

ありがとうございました!

DeNAに新卒エンジニアとして入ってみて

はじめに

今回は対象読者をDeNAで働くエンジニアの雰囲気を知りたいという方を意識して執筆しました。主に研修後の配属先で感じたことをもとにしています。

そして感想としては「不安も多少あったけど本当に楽しくて、入社して本当に良かった。」です。 でもこれだけではよくある口コミのサクラと見分けがつかないので、具体的になぜそう思うようになったのかまとめました。

今まで見たことない凄腕エンジニアのコードがわくわくさせた

これまでに自分はRailsエンジニアとして長期インターン、サマーインターン、海外インターン、業務委託と多岐に渡る形で開発経験を積みました。これらの経験を合わせると4年ほどになります。 その過程でリーダブルなコード、クリーンな設計に基づいたコードを読んできました。その経験から、もしRailsを扱う現場に配属された場合は即戦力として活躍してやると意気込んでました。そして、偶然なことにRailsで開発してる現場に配属されることになりました。完全に慢心していた自分はDeNA恒例の新卒MVPを受賞するにも都合の良い展開だなんて思ってしまっていました。その矢先に事件が起きました。

現場のエンジニアのレベルが想像よりも高すぎる。

浮ついた気持ちは一瞬で散りました。プロジェクトは大規模で複雑なもので、にもかかわらず、1行1行のコードのレベルは今まで見たことがないほどの高クオリティーでした。 そして、現場のエンジニアが出すPull Request(以降PR)の説明文は、論文でも書いているのか?と思わされるほど理路整然と整っていました。そこでは技術的に深い理解を伴っていることは当然で、実行されるコードだけでなく記載されているコメントまで妥協なく議論されていました。中にはRailsの内部実装の変更に起因するバグを修正するPRもあり、それは単にRailsを使いこなすに留まらない技術力を感じました。

そんなコードを読んでいるうちにいつの間にか感動してました。そして、この現場でもっと自分の至らなさを知りこれから高めていくのだと思うとわくわくが止まりませんでした。

任される自由な働き方が自分に合った

ざっくりまとめるとこんな感じ。

  • 朝会はなし。代わりに夕会はあり。
  • 自分は朝はだいたい10:00~10:30スタート。ベテランエンジニアの中には14:00から始める強者も。
  • タスクの状況はどうなってるか聞かれない。基本的に全て自分から報告・共有もしくは相談。

ただ、これは持論ですが自由は責任の裏返しだと念頭に置いてます。この場合も

  • 朝会がないのも朝にわざわざ起きてるか確認しなくても問題なく業務を遂行してくれるよね?
  • 任せたタスクは管理しなくても自分で上手く進めれているよね?

と、しっかり責任を果たすことで獲得できるものと考えられるからです。 朝に弱い自分は、責任を果たすことに燃えながらも、朝は獲得した自由のもとでダラダラしたいのでこの働き方にもフィットしたのかなと思いました。

真摯に向き合ってくれる心強いメンターさんの存在

本当に素晴らしいメンターさんがサポートとしてついてくれることになりました。

実のところ、現場入りしたする前にはあまり素性が分からない状態だったので少し不安もありました。 しかし、メンターさんとは日々の1on1を行っていく過程で結果的に毎日なにか持ち帰れる学びを与えてくれました。 そしてそれだけでなく自分の働く環境の心理的安全性の確保にも尽力してくださいました。 本当に感謝しかありません。

そしてこのメンターさんはサポートして下さる姿勢が素晴らしいだけではありません。純粋な戦闘力がめちゃくちゃ高いんです。例えるなら、自分が悟空の初期の戦闘力334でメンターさん53万です。やばいです。

技術的な相談などでは知らなかった技術をバンバン教えてくれて本当に楽しいです。 ある程度の開発経験がつくと、聞いたことはあるけれど詳しくはない技術は多くなる印象があります。そんな中で、そもそも知らなかった技術の情報をシャワーのように浴びれるのは本当に貴重であり、自分の成長を感じることが出来ています。

さいごに

実は自分も最近知ったのですがDeNARailsを用いて開発しているプロダクトが多く存在しており、採用を強化しているんだとか。もしこの記事からでも、興味を持ってもらえた方がいらっしゃれば幸いです。

JavaScriptで `==` と `===` の違いでうっかりハマりそうだと思ったとこメモ

console.log(1 == "1");          // => true
console.log(1 == "01");         // => true
console.log(0 == false);        // => true
console.log(0 == null);         // => false
console.log(null == undefined); // => true

説明

これらの現象は 等価演算子( == ) の評価を行うときにオペランド同士の型違かった場合に裏で勝手に型を変換してしまうからなんだと。

JavaScriptの現行コードまで見た訳ではありません

続きを読む

ABC167(Atcoder Beginner Contest)で入茶できたので感想をメモ(python3)

f:id:Doppon:20200517010147p:plain

はじめに

いやぁ(´・ω・`)

だいぶ時間がかかったけどやっと茶色になれました!

普通に嬉しい反面、かなりのんびりやっていたので出場回数の割りにレートが上がってないのは...orz

とまぁ後から自分が茶色になりたてのときにどんな感じだったのか振り返れるようにしておきたいなと思って記事として残しておこうと思います!

続きを読む

Github Tranding見てたらお洒落なホワイトボードツール見つけた件

はじめに

最近はコロナ事情で大学も異例の5月からスタートになり春休みが1ヶ月爆誕したわけですが。

仕事先もどこも完全リモート切り替えでモチベーション管理難しいなと思う今日この頃です(´・ω・`)

とまぁ今回はちょっと Github Trandingを覗いていたらシャレオツなツールを見つけたので紹介できればと思います。

f:id:Doppon:20200403102002p:plain

EXCALIDRAW

f:id:Doppon:20200403095707p:plain

今回自分が面白いと思ったのは EXCALIDRAW です。

続きを読む

工数見積もりもフレームワークに乗りたい件

はじめに

工数見積もりって難しい。。

見積もりに正しいやり方、いわゆる正攻法のようなものはあるのかどうか、 どのような手順を踏めばより正確な見積もりを行えるようになるのか。 そのようなことに悩まされ続けてました。

本記事ではそれらを理解するため様々な工数見積もりの手法を調べたのでまとめてみました。

工数見積もりの手法の種類

先に結論

が代表してあるんだそう。( Qiita 記事からの引用 )

qiita.com

続きを読む