うつ病との付き合い方の雑記

うつ病と診断され、1年位休職していた大企業の研究開発エンジニアの自分用メモです

本を読めない病、新しいこと難しいことができない病

うつ病になる少し前から復職した今まで、本が読めない 。何にも活かすことができないと思ってしまうからである。(特に技術書、ビジネス書)

新しく先の見えないことをやるのもしんどい。先が見えないと不安になって行動に移せなくなる。できない理由が沢山思い浮かんで無能に感じてしまう。

私にとっては無能感を感じるのが一番つらい時間帯である。仕事で新しいもの難しいものに向き合うとき、必ず強い不安に襲われる。

 

私は仕事で依頼されたことをやる際に、一度車輪の再発明をすることが多い。その車輪の再発明をまとめるのに、下のような新しいブログをつくった(車輪の再発明https://reinvent-the-wheel.hateblo.jp/車輪の再発明はあんまり意味がないという意見もあるが、うつ病にとってはリハビリになってよいと思う。

本来は車輪の再発明で終わらず、一つでも新しいことができるのがよいのだが、私にはとても無理そうなので、今は諦めている。賢い先人ができていたことをもう一度やあってみて理解できればそれでいいと思っている。

プライベートでは積ん読されている技術書や購読していたSoftwareDesignの雑誌が溜まっているので処理していこう。

f:id:inai17ibar:20210718060830p:plain

車輪の再発明(いらすとや)



 

車輪の再発明

https://reinvent-the-wheel.hateblo.jp/

復職して5ヶ月の振り返り

しばらく文を書いていなかったが、朝はやく起きるのが習慣になって暇なので書いてみる。

 

病状は安定してきているが、夕方には仕事を切り上げてひまになると不安が襲ってくる。

 

以前、インターンに誘っていただいた元CTO(いまは新しい会社の社長)とZoom会議をして、彼自身のうつの経験もきいた。

傍から見ると、天才エンジニアや優秀な経営者であっても薬を服用していることが多いそうである。

「しんどいときは、上と比較せず、下をみるようにすること」「プロジェクトの成功にこだわらず、自分の世界をもつこと」「別の仕事やプライベートの趣味で逃げ場をつくっておくこと」などアドバイスを受けた。

うつ病経験のないひとからのアドバイスは聞く気になれないのだけど、彼のアドバイスは少し聞く気になった。

 

先日30歳になった。「まだ30歳だから若いし」と言われるがいうほど若くない。

成功する人、優秀で上に上がっていくひととの差が感じられる時期。まだ心機一転なにかやれるチャンスは無くもないが、遅いと感じられる年齢になった。

運や環境のせいもあるとようやく思えるようになった。自分の力だけではどうにもならないし、自分の力では’変えられないということ。


「それでも生きていかないといけない」と少しセンチメンタルになる。

能力も強い意志もないし、環境も使い切れてないけれど、一歩一歩前に進んで事切れるまで続けてくしかない。

作業記録 ならし出社(12)

体調不良のため夜にGoの開発を進められなかった。

 2/10~2/12の作業内容

  • 人事面談
  • ES課面談
  • 仕事のひととのミーティング
  • Androidのドキュメントを読みつつ、実験用アプリを書く

Go言語開発

 usernameとpasswordでSignupする実装をしていたが、課題の仕様に合わせて、 usernameのみで user/createする仕様に変更する。発行されたトークンの情報をデータベースに送るべきなのかわからない。

 JWTの署名の仕組みがいまだによくわかっていないので勉強が必要。週末にはuser/get, user/updateを終わらせたい。認証の部分が一番むずかしい気がする。

 できれば来週には、仕様通りの実装を終わらせて、改良に時間をかけたい。

 

goのjwtライブラリの仕様

jwt · pkg.go.dev

作業記録 ならし出社(11)

土日月のgoの開発の進捗

  • Docker-composeでMySQLの環境構築。Upの初期化の際に、SQLファイルにバグがあってエラーを起こして死ぬのでハマった。Sequel Proに先につなげて、そこでSQL文が正しいことを確認しながらすすめるのに落ち着いた。VScodeSQLは書きにくい。変なところで赤線がひかれる。
  • goからDBサーバーへの通信確認。ポートまわりやログインユーザの指定の仕方でハマった。
  • goの"database/sql"パッケージなどを使って、databaseからSELECT文でデータをとってきてParseする部分も実装
  • HTTP POSTでのSIGNUP機能の実装。Passwordの暗号化、databaseへの登録まで実装
  • メンターとの面談。トークンを使った認証について、トークンの中にuseridがあるのがPasswordとちがうよいところ。公開鍵の話を思い出さないとイマイチ理解しきれなかった。セッションIDはなくてもよい。複数トークンを管理できるようにするのがよい(そのときのIDを入った順につけるとかならあり)。他サービスを使った認証を組み込むのが主流。自サービスはユーザテーブルをもち、発行されたトークンIDを管理すればよい。Twitter認証やFirebaseを使うと実装面でも楽だし、Passwordの再発行という面倒な実装もさけられるのがよい。
  • 設計に関して、Fat Controllerやクリーンアーキテクチャという設計の考え方。データベースとのやり取りなど、別クラスに分離できるとよい。サーバーサイドでMVCというとき、Cはhttpの部分のみ、Vはjsonまで。ビジネスロジックとか多くがMになり、Mが肥大化するのが正しい。フロントエンドはまた別、Reduxとか別のアーキテクチャがある。SAPはアプリ全体の設計指針。
  • 直近ハマっていた、ユーザ情報登録時のINSERT文で出るエラーについて、SQLのPlaceholderの話。$はPosgre、MySQLは?を使う。MySQL側のPasswordの型は今日実装していて足りないと気づいてなおした。

所感

 Goの文法もSQLの文法もわからないまま手探りで勧めていたが、ようやく公式ドキュメントを読めるようになってきた。

2/8の作業記録

  • AndroidのWifiManagerクラスを使ったWifiスキャンサンプルアプリの実装
  • 現在のAndroid SDKでは、固定IPを設定するAPIがないことを公式ドキュメントから確認
  • AndroidのSupportライブラリとAndroidXライブラリの調査。複数のOSバージョンに対応するアプリの書き方について調べた。

作業記録 ならし出社(10)

2/4, 2/5の作業内容

 メモリ4GBの古いPCではエミュレータを動かすと固まる。Grandleのビルドも異常におそい。来週、新しいPCのほうでやる。

  • 会社のチームの人とのミーティング

 まだ大した仕事もしていないのに進捗を報告すると、明るい反応をしてくれるので嬉しく感じる。改めて誰と働くかが大事だと思った。いまは私自身はやりたいことはないが、その人のちからになれればよい。

  • アクセシビリティの学会参加が決定(オンライン)
  • 元CA小澤さんのところのTechTrainというサービスで、GoでWebAPIをプログラムをつくりはじめた。

 

 

作業記録 ならし出社(9)

2/3の作業内容

  • 実験用のAndroid設定アプリの実装方法の調査

  複数のAndroid端末をアクセスポイントにつなぎ、固定IPを設定したい。また、アクセスポイントになるAndroid端末では、他の端末がネットワークにつながったことを確認できるとよい。現在の運用だと「システム」の「Wifi」を開いて手動でIP設定を変更している。

 2015年の記事のAndroid4系のころには、APIを叩いてStatic IPを設定できたらしい。現在できるかどうかは不明。

  • 2週目のならし出社レポートを作成
  • Unityのカスタマーサポートにライセンスのディアクティベートを英語で依頼

勉強

  • Go言語の勉強

 TechTrainさんのMISSONに入る前に、文法がわからなすぎるので基本を覚える。一日5時間やると宣言したので頑張る。

  • mikan 英単語アプリ 50単語 3日継続中

 先週、水木の忙しさと日曜さぼってしまったが、立ち直りつつある。

転職活動の進捗

  • S社最終面接で落ちた

 PMを求められていたが、私自身エンジニアとしてまだやりたい気持ちがあったのでミスマッチだった。

 2,3社の転職活動を振り返って、自分がソフトウェアエンジニアとしての市場価値がないこと、リサーチャーをするには研究実績が足りないこと、PM適性は感じてもらえることがわかった。

 PMに変わるタイミングは、30代のうちならいつでも間に合うかなと思っている。いまはエンジニアなどで手を動かしたい。将来から逆算で考えているわけでもない。

 そもそも、自分がどうなりたいか、自分が何をしたいか、特にない。

 負けるのは嫌いでイライラはするけれど、自分には何もできないと諦めてそのままでもいいかと思えるようになった。楽しいことも特にない。モチベーションがない制約でできる範囲のことをする。無力感を感じながら、しばらくはただ目の前のことをこなそうと思う。

明日以降の予定

  • 会社の人とのMTG

 AndroidWifi設定アプリの仕様について相談する。

タスクリスト

作業記録 ならし出社(8)

2/2の作業内容

  • 会社Windows PCの再セットアップ

 管理者権限を取り上げられるタイミングで、Windows Subsystem for Linuxを有効にして再起動したらOSが起動できなくなって死んだ。修復もクリーンアップもできなくなったのは初めて。BitLockerでハードディスクにロックがかかっているからか、ハードディスクへのアクセスをするたびにBitLockerの回復パスを求められた。結局、USBにインストーラーを入れて初期化した。

 定期的にバックアップをとったり、復元ポイントをつくっておこうと身にしみた。

  • 病院にいって薬をもらった。