この1年を振り返って
退職した
転職した先は特に社員というわけでもなかったので正確には退職してないのですが、1ヶ月も経たずお仕事がなくなりました。
転職活動をした
30半ばの転職回数の多い私はあまり好印象を持たれることもなく最初の面接で微妙な扱いを受けることが多く地元企業も5社ぐらい落ちました。
いい年の子が家にこもってるのもあって親と喧嘩したりもしました。人生で初めて怒鳴った気がする。何も良いことなかった。
プログラマーなどIT系人材は売り手市場らしく都内なら転職先も多数あったかと思いご紹介頂いた会社もあったのですが、メンタル面などを考え辞退することにしました。
転職した
地元の小さい会社をハローワーク経由で請けて採用のお話を頂きました。
元の会社に戻る話もしていたのですが、レガシー案件で缶詰みたいなお話を受けていたので成長もできなさそうだし新しい所に期待することにしました。
色々あった
辞めた同僚もいましたし、入社した若い子も増えました。交通事故を起こしてしまい長距離の車通勤を辞めて電車メインに切り替えたりもしました。読書時間が増えたのはいいことですね。
去年読んだ本
- ハイキュー1~40
- アクタージュ1~9
- よふかしのうた
- (新装版)リファクタリング
- Adaptive Code
- DNSがよく分かる教科書
- メンタルヘルスマネジメント検定テキスト
- 異世界おじさん1~3
- ぱらのいあけーじ3
- 僕の心のヤバイやつ (良)
- 映画大好きフランちゃん (良)
- なめらかな世界とその敵 (良)
- JavaScript The Good Parts (良)
- ASP.NET MVC5 実践プログラミング
- 実践TypeScript (未読)
- はねバド!
- 木曜日は君と泣きたい。
- 熱帯魚は雪に焦がれる1~4
- JavaScriptパターン:優れたアプリケーションのための作法
- JavaScriptデザインパターン
- なっとく!アルゴリズム
- プログラムはなぜ動くのか 第2版
- オブジェクト指向でなぜつくるのか 第2版
- ドメスティックな彼女 1~22
- かぐや様は告らせたい 1~14
- エンジニアなら知っておきたいAIのキホン
- 定本 Cプログラマのためのアルゴリズムのデータ構造
- きみが死ぬまで恋をしたい
- リリウム・テラリウム
ドメスティックな彼女、かぐや様は告らせたい、アクタージュ、ハイキューは原作をまだ読んでいます。はねバド!は連載終了してしましました。次の作品に期待したいですね。
JavaScript The Good Partsは大事なことだけ書いてあった。ただこれだけ読むとなぜこれが大事なのかピンとこない事が多くて色んな本を読み漁った結果結局あれがコンパクトにまとまってて良いね。という気持ちになった。
2020年に向けて
2019年はとにかくJavaScriptを仕事でかいていました。IE10互換モード向けに。2020年はもうちょっと良いコード・テストしやすいコードや仕事の良いススメ方(ツール利用方)について理解を深めていきたいですね。
コーディングを支える技術を読んだ。
大学図書館に置いてあったので借りてきた。
コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)
- 作者: 西尾泰和
- 出版社/メーカー: 技術評論社
- 発売日: 2013/04/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (37件) を見る
- 3章 文法の誕生
- 4章 処理の流れのコントロール
- 5章 関数 辺りはとても勉強になった。
全体的に言えることだが、なぜ誕生したのか。その仕組みはどのようになっているか。ということが解説されていて今までモヤモヤしていた所がスッキリすることができた。
あと以下の2冊を読む予定。
はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus)
- 作者: 青柳隆宏
- 出版社/メーカー: 技術評論社
- 発売日: 2013/01/09
- メディア: 単行本(ソフトカバー)
- 購入: 56人 クリック: 1,959回
- この商品を含むブログ (29件) を見る
コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
- 作者: Noam Nisan,Shimon Schocken,斎藤康毅
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/03/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
退職しました。
2017年10月から勤務なので1年3ヶ月出向先の企業様にはお世話になりました。
業務としてはWPFとC#でWindowsのクライアントアプリを増築していくお仕事をしました。 MVVMな設計と非同期処理を扱うのは初めての案件だったのでスレッドセーフになってないと例外がでたり、パフォーマンスが出なく苦労しました。 また、バージョン管理システムがなかったので自衛の為個人的にGitを導入したのも良い経験でした。
次の仕事は、先月からすでに始めていて8年ぶりにウェブの仕事になります。 京都のベンチャーを友人に紹介いただき業務委託という形でリモートワーク出来ることになりました。
Python(Django)とJavaScriptゴリゴリ書くお仕事になります。 まだ慣れないことが多々ありますが、少しずつ勉強して頑張っていきたいと思います。
エディタ環境設定
エディタ設定
キーバインド的にEmacs使いたい所だけど、VisualStudioCodeにした。
設定
ターミナルはWSLにした
"terminal.integrated.shell.windows": "C:/Windows/System32/wsl.exe"
lintを入れたかったのでvsCodeの拡張機能としてrubocopを入れた。
WSLでgemからrubocopをインストールした後に適当なディレクトリにbatファイルを作成する。
私の環境では以下の場所だったので
$ which rubocop /home/kenan/.rbenv/shims/rubocop
このように作成した。
rubocop.bat @echo off wsl ~/.rbenv/shims/rubocop $^(echo '%*' ^| sed -e 's^|\\^|/^|g' -e 's^|\^([A-Za-z]\^)\:/\^(.*\^)^|/mnt/\L\1\E/\2^|g'^)
C:直下にbinフォルダを作成しrubocop.batを配置。
Rubocop: Execute Path: C:\bin\
基本設定
Render Whitespaceをallに変更した。
拡張機能
Japanese Language Pack for VS Code Ruby ruby-rubocop Trailing Spaces indent-rainbow zenkaku
ショートカットキー
Ctrl+Bでサイドバー
Ctrl+@ターミナルへ移動できる。
Ctrl+1で1つ目のエディタ
とりあえずこれぐらい使えればとりあえず良さそう。
追記 2018/10/28
ターミナルがシンプルすぎたので軽く検索したらそれらしいカラースキーム設定があったので以下の様に設定した。
"terminal.background":"#090300", "terminal.foreground":"#A5A2A2", "terminalCursor.background":"#A5A2A2", "terminalCursor.foreground":"#A5A2A2", "terminal.ansiBlack":"#090300", "terminal.ansiBlue":"#01A0E4", "terminal.ansiBrightBlack":"#5C5855", "terminal.ansiBrightBlue":"#01A0E4", "terminal.ansiBrightCyan":"#B5E4F4", "terminal.ansiBrightGreen":"#01A252", "terminal.ansiBrightMagenta":"#A16A94", "terminal.ansiBrightRed":"#DB2D20", "terminal.ansiBrightWhite":"#F7F7F7", "terminal.ansiBrightYellow":"#FDED02", "terminal.ansiCyan":"#B5E4F4", "terminal.ansiGreen":"#01A252", "terminal.ansiMagenta":"#A16A94", "terminal.ansiRed":"#DB2D20", "terminal.ansiWhite":"#A5A2A2", "terminal.ansiYellow":"#FDED02"
参考
Rubyを始めよう(WSL)
切っ掛け
弊社の新人エンジニア研修カリキュラムを惜しみなく公開してみる - Feedforce Developer Blog
参考書籍
プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで
はRuby2.4.1対象だったのでrbenvで環境を作るところをメモ。
環境構築
開発環境系パッケージ
~$ sudo apt-get -y install git curl g++ make libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev sqlite3 libsqlite3-dev nodejs
rbenv
~$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv ~$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build ~$ cd ~/.rbenv && src/configure && make -C src ~$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc ~$ rbenv init # Load rbenv automatically by appending # the following to ~/.bashrc: eval "$(rbenv init -)" ~$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc ~$ source ~/.bashrc
インストール確認テスト
~$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash Checking for `rbenv' in PATH: /home/kenan/.rbenv/bin/rbenv Checking for rbenv shims in PATH: OK Checking `rbenv install' support: /home/kenan/.rbenv/plugins/ruby-build/bin/rbenv-install (ruby-build 20181019-2-gd49b8a1) Counting installed Ruby versions: none There aren't any Ruby versions installed under `/home/kenan/.rbenv/versions'. You can install Ruby versions like so: rbenv install 2.2.4 Checking RubyGems settings: OK Auditing installed plugins: OK
~$ rbenv install 2.4.1 ~$ rbenv global 2.4.1 ~$ ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
参考URL
試して理解 Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識を読んだ
CPU・メモリ・ストレージ等の動きの解説やC言語のサンプルコードでの検証をイラストを交えてわかりやすく解説してあり以前読んだ 動くメカニズムを図解&実験! Linux超入門 と比べると圧倒的に読みやすかった。
「Linux超入門」も詳細に解説してあったが細かすぎたのではじめに読むなら「Linuxのしくみ」にすべきだと感じました。
良かった点
- サンプルコードの中身を理解を理解せずとも要点が後述してあったこと。
良くなかった点
- ターミナル画面でパフォーマンス測定しているキャプチャ画像が本のサイズの問題で途中で折り返されて読みにくい
今後の予定
基礎的な本としては コンピュータの構成と設計-第5版- にしようか考えているのですが、仕事でC#をやっていて辛い局面が多々あるのでアプリケーションの設計や良い習慣などを学びたいという気持ちが高まっています。
一応以下の2冊がすでに手元にあって7割ぐらい読んでいるのですが、うまく消化できていない感じなのでお盆休みを利用してデスクトップアプリケーション等を作りながら読み直したいです。
プログラマの数学第2版を読んで。
読み始めようと思ってからだいぶ時間はかかりましたが先日ようやく読み終わりました。
2章 論理
ド・モルガンの法則では、資格試験で真理値表などの対応表を記憶するだけだったものが丁寧に解説されていて復習にとてもよかった。
4章 数学的帰納法
帰納の証明のあたりから理解が追いつかなくなってきた感じがありました。証明する考え方を読むとわかるしサンプルコードを見てもわかるけど自分の中でちゃんとわかってない感じでした。 なにか普段起きている出来事とかを例に当てはめて自分で考えたりしないとだめそう。
5章 順列・組み合わせ
5P3や、5C3などを試験とかで見たときにPってなんだ?Cってなんだ?ってずっとひっかかっていたのが 順列(Permutation)、組み合わせ(combination)の意味がわかっただけで長年のもやもやがだいぶすっきりした。
7章 指数的な爆発
log とかもlogarithm(ロガリズム)が対数という説明がされていてlogとはなんだったのかやっとわかった。
付録1 機械学習への第一歩
Σ(シグマ)とずっと向き合えなくてコンピューターサイエンスの本を見るたびにこの本は難しいから読めない・・・。と逃げていましたが 今回やっとどういう読み方なのか向き合えたのは大きな一歩だと思います。
感想
内容的に難しいと思わせるところもありましたが、解説の文章がとても優しく読みやすかったため 最後まで読み終えることができたので良い本だと感じます。
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/01/17
- メディア: 単行本
- この商品を含むブログ (3件) を見る