半年間休職してプログラミングの勉強をした

目次

  • 概要
  • この記事の目的
  • なぜ勉強するのか
  • なぜ休職したのか(働きながらではダメなのか)
  • どのようにして休職したか
  • 金銭面の問題
  • 勉強を継続するために気をつけたこと
  • どのくらい勉強したか
  • 何を勉強したか
  • 反省
  • まとめ

概要

5月に休職しました。
休職開始から今日まで主にプログラミングの勉強をしていました。
11月から仕事復帰します。

この記事の目的

私が休職して勉強することを決めるとき、経験談を参考にしようと思い似たような方がいないか調べました。
しかし、私のニーズに合う情報はほとんど見つかりませんでした。

私と同じように休職勉強を考えている方にとって、少しでも参考になればいいなと思い書きます。

なぜ勉強するのか

私は業務ならば並以上の働きをしていると思っています。
社交辞令もあるでしょうが、社内・顧客ともに良い評価を頂いています。

一方で、経歴を増すごとに自分の中で技術力に対する不安が大きくなっています。
この辺りは細かく書いても自分語りが過ぎるので省略しますが、簡単に言えば次のような不安がありました。

  • 経歴に見合ったスキルは本当に付いているのだろうか
  • 最新技術も惹かれるけど、自分はまず基礎スキルが欠けていないだろうか

この不安を少しでも払拭するため、集中して勉強する期間を設けようと決めました。

なぜ休職したのか(働きながらではダメなのか)

時間は問題ではありませんでした。
問題は「仕事していると気持ちが常にそっちに向く」ことでした。
業務外でも業務や会社に関することを考えてしまう。調べてしまう。やきもきしてしまう。

この状態で業務とは直接関係ないことを勉強するのは至難でした。
(業務に関係することを中心に調べたり勉強していた)

仕事や会社から解放される必要性を感じました。

どのようにして休職したか

「休職したい」「やっぱまだ仕事頑張る」みたいなことは2年ぐらい前から会社と話していました。
休職したい意欲が高まり実際に会社に相談したのは休職の約半年前でした。

休職に際して気をつけたことは、現場(別会社)および自社に与える迷惑を少なくすることです。
与えられた時間で出来ることは限られるので完璧に退任できたわけではないですが、
それでも暖かく送り出してくださった関係者の方々にはとても感謝しています。

ちなみに最初は退職してニートになって勉強するつもりでしたが、
会社が「休職にしておきなよ」と言ってくれたこともあり結果的には休職となりました。

あとなぜ半年かというと、法律的に手続き不要で休めるのが半年までらしいので。
よく知りませんがそれ以上は手続きが必要だとか何とか。

金銭面の問題

一人暮らしですが、無趣味が功を奏して貯金だけで暮らしていけました。 無趣味つよい。

勉強を継続するために気をつけたこと

こういうのはやる気とか意志じゃなくて習慣の話だと思っています。
なので勉強する習慣づくりダラダラしない習慣づくりを意識しました。

具体的には以下のようなことです。

  • 勉強する習慣づくり
    • まずは小さい目標からスタートした(勉強しなくてもいいからカフェに行こう、とか)
    • 外で勉強する(家にいると横になってすぐ寝ちゃう)
    • カフェが集中できた。カフェによっても集中力に差があったので、合うカフェを見つけるのが良いと思う
    • 図書館でも勉強した。最近(昔から?)の図書館って電源使えるんですね。便利。
    • 勉強時間を記録した
  • ダラダラしない習慣づくり
    • 夜更かしはしない。朝ちゃんと起きる
    • Twitterとかあんま見ない
    • はてブとかネット巡回もあんましない
    • 何とかして家を出る

私は家にテレビもマンガもゲームもなければ遊び友達もいないのでこのぐらいで済みましたが、
娯楽が多い人はもっと気をつけることがあるかもしれません。

どのくらい勉強したか

基本的に勉強or作業したことはすべてTogglを使って時間を付けていました。
(家事や移動などは対象外。PC操作とか読書とかに限る)
「勉強は時間より量だ」という意見には賛成で、1時間かけて1学ぶより10分で1学ぶ方が良いに決まっています。
ですが精神を安定させるために、または無駄な時間をあぶり出すために時間の記録は有効だと考えました。

振り返ってみれば、記録していてよかったなと思います。

  • 5月: 189時間15分
  • 6月: 182時間57分
  • 7月: 102時間43分
  • 8月: 160時間18分
  • 9月: 84時間16分
  • 10月: 182時間13分(現時点)

7月と9月は急激に気力を失いました。
こういう場合の対策はまだ自分の中で確立されていません。

勉強を再開するきっかけは「またカフェに行き始めた」ことなんですが、
どうしてカフェに行く気力を取り戻せたのかがイマイチ自己分析出来ていません。

何を勉強したか

本で勉強(やりたかったことのメイン)

さらっと一読した本からがっつり読んだ本までまとめて。
リンクは張りませんが書籍名で書くのでググれば引っかかるはず。

  • アルゴリズム
    • 定本Javaプログラマのためのアルゴリズムとデータ構造
    • アルゴリズムクイックリファレンス
    • 数学ガール 乱択アルゴリズム
    • 珠玉のプログラミング
    • 最強最速アルゴリズマー養成講座
  • SQL
    • SQL ゼロからはじめるデータベース操作
  • DB
    • マンガでわかるデータベース
    • 達人に学ぶDB設計 徹底指南書
  • ネットワーク
    • ネットワークはなぜつながるのか
    • ネットワーク超入門講座
  • HTML/CSS
    • 実践 Web Standards Design
  • JavaScript
    • パーフェクトJavaScript
    • JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング
  • Webセキュリティ
    • 体系的に学ぶ 安全なWebアプリケーションの作り方
  • 正規表現
  • Linux
    • ふつうのLinuxプログラミング
  • オブジェクト指向
  • プログラミング全般
    • プログラミングの基礎
    • Code Complete(上)
    • Code Complete(下)
  • 計算機科学(という分野でいいのかな?)
    • コンピュータプログラミングの概念・技法・モデル -> (これは途中まで)
    • プログラミング言語の基礎概念
  • コンピュータについて
    • CODE コードから見たコンピュータのからくり
  • その他(プログラミング系)
    • コーディングを支える技術
  • その他(プログラミング以外)
    • 論点思考
    • 仮説思考 BCG流 問題発見・解決の発想法
    • ストーリーで学ぶマーケティングの基本
    • ソーシャルシフト -> 途中
    • コトラーのマーケティング3.0 -> 途中
    • 時間泥棒を探せ!

個人開発

共同開発

諸事情でここでは公開しませんが、仲間と趣味的な共同開発もしていました(しています)。
これを通してGithubに慣れたり、普段の業務では扱わないアーキテクチャに触れたりしました。

その他

  • ブログ書いたり
  • Vimいじったり
  • vim-jpに初めてissue報告したり
  • vital.vimにspec.shを追加したり
  • 他の人のリポジトリに初pull requestしたり
  • ネットで最近の動向を多少追ったり
  • 勉強会に参加したり
  • Project Euler解いたり
  • オープンソースのコード読んだり

反省

  • Good
    • カフェで勉強するスタイルを身につけた
    • ここなら勉強できるというスポットをいくつか見つけた
    • 自分にとっては家で勉強しようとすることが間違いだと気付けた
    • いくつかの項目は基礎力付いたことを実感している
    • 自由を感じる幸せな生活だった
  • Bad
    • SICPとかCTMCPとかプログラマのためのSQLとかもっとやりたいのがあったのに手を付けられなかった
    • アルゴリズムが未だに苦手意識
    • コードリーディングにもっと時間を使うべきだった
    • 自分の思う「勉強」に費やした時間の割合が少なかった
    • こまめに計画を振りかえればよかったんだけど、その習慣が身につかなかった

時間があり気力もあるのでアレもコレもやりたくなりますし、出来るような錯覚に陥ります。
でも実際はそんな万能ではないので、やりたいことを絞る必要がありました。
(これでも随分絞ったんですが、もっと絞る必要があることが分かった)

しかし絞ると今度は「こればっかやっていて大丈夫か?」という不安に襲われます。

自分を過信しない一方で、自分の立てた計画に自信を持たないと中途半端に終わるという。難しいです。

まとめ

休職してよかったと思っています。

明日からまた仕事します。