ここ約半年間で読んだ本を紹介してみる

はじめに

気が向いたので、2021年に入ってから自分が読んだ本を紹介してみようかと思います。

読んだ時期が古いものから順に紹介していきます。

(古いものほど、記憶の解像度が怪しいので内容も朧気です。) 

 

2021年1月~4月

まずは1月~4月に読んだ本を紹介していきます。

冬は寒さで脳が悴み、ありとあらゆる物事に対して気力が無くなりがちになります。

この時期は心に関する本を読んでいました。

無気力なのにはワケがある 心理学が導く克服のヒント

 無気力状態を抜け出すヒントを得るためにこの本を読みました。

この本では、実験を通して科学的に検証を進めることで、人がなぜ無気力になるのか、どのようにして無気力になるのか、無気力が自身にもたらす影響について述べています。

 

無気力の心理学 改版 やりがいの条件(中公新書

2冊目に紹介する本も無気力に関するものです。

この本では「獲得された無力感」、「効率感」という概念について述べています。

個人的に腑に落ちない内容だと思っているので、オススメです。 

 

功利主義入門 ―――はじめての倫理学ちくま新書

 功利主義、つまり「最大多数の最大幸福」についての本です。

一応、入門書という位置づけらしいのですが、前提となる知識が不足していたので私には内容が理解できませんでした。

 

そもそも、なぜこの本を読んだかというと「ここは今から倫理です。」を読んだ影響です。

 面白いのでオススメです。

 

2021年5月~8月

 この時期は文章に関する+その他(自己啓発ぽいもの)を読んでいました。

「文章術のベストセラー100冊」のポイントを一冊にまとめてみた。

 文章を書く上でのポイントをまとめた本です。

必要な点が完結にまとまっており、読みやすいです。 

 

調べる技術 書く技術 誰でも本物の教養が身につく知的アウトプットの極意 (SB新書)

こちらも文章作成に関するノウハウを述べたものです。

こちらは文章を使ったインプット/アウトプットの方法について重きを置いています。

 

人生は20代で決まる TEDの名スピーカーが贈る「仕事・結婚・将来設計」講義

 とあるブログで紹介されていたので、気になって読んでみました。

内容はタイトル通りです。

個人的にはここ最近で読んで一番泣きそうになりました(叱られている気分になったので)。

 

自閉症スペクトラム 10人に1人が抱える「生きづらさ」の正体 (SB新書) 新書

ここ最近、インターネットでよく目にするようになった気がする「ADHD」について知りたくなり、読みました。※自閉症スペクトラムADHDは異なります。

自閉症スペクトラムを抱えた人がどうやって周りの人間や社会と折り合いをつけていくかについて述べられています。

 

「頭のゴミ」を捨てれば、脳は一瞬で目覚める!

 直近で読んだ一番記憶に新しい本です。

個人的には、ここ約半年で一番読んで為になったと思います。

「頭のゴミ」を捨てれば、脳は一瞬で目覚める!

「頭のゴミ」を捨てれば、脳は一瞬で目覚める!

Amazon

 

終わりに

ずっと家にいるとKindleで本を買い過ぎてしまうのが難点です。

他にも小説とか漫画とか読んだので、また気が向いたら何かしら紹介するかも知れません。

 

 

ISUCON11 参加記録

ISUCON11にチーム「DREAM TEAM TRIANGLE」で参加してきました

ISCUON11に参加してきました。私達のチームは今回で2回目の参加となります。

 

結果を先に述べると、予選敗退でした。ですが去年よりは良い成績を残せました(一緒に参加した友人たちが頑張ってくれました)。

 

備忘録として、当日に行ったことを振り返りしたいと思います。

準備

特別な準備も対策も今回はしていませんでした。

前回、参加時に友人がビルド、デプロイ、ログ収集、etcを行えるようにMakefileを用意してくれていたので、今回もそれを使用しました。

作業の割り振り

作業の割り振りは以下のようになりました。

ふじもり(私):アプリケーション周り

4423:環境周り、アプリケーション

かくでん:DB

9:30

予選開始前に軽く各自の役割を確認しました。

10:00-12:00

以下のことを行いました。

  • 環境構築
  • 問題の確認
  • アプリケーションのソースコードで改善できそうな箇所を探す
  • isu, isu_conditionにインデックスを張る
  • スロークエリのログからボトルネックになっているapiを確認

13:00-16:00

以下のことを行いました。

  • サーバの構成をapp用(2台)+DB用(1台)に変更
  • nginxの設定を変更
  • getTrendで呼び出しているクエリにLIMIT 1を指定

サーバの構成を変更した際にappサーバーからDBサーバーへの接続に手こずりましたが、チームメンバーが解決してくれました。

17:00-18:45

この時点でスコアが46935になりました。

この時間帯は余計な変更は加えず、追試で失格にならないように環境に不備がないか確認していました。

終結

予選の翌日、最終結果が発表されました。

私たちのチームは最終的に

スコア:48076

となりました。

まとめ

去年は追試で失格になってしまった分、今回はスコアが記録として残せたことは良かったです。

私個人としては今回のISUCONで勉強不足であることを痛感しました。

以下のことについては次回参加までにはもっと勉強したいと思います。

・アプリケーション周りのコーディング

・nginxの設定

・クエリの改善などDB周り

・過去のISUCON参加者の記録をもっと読み込む

 

 

WSL2 + Docker + VS Code + Go 環境構築

はじめに

WSL2 + Docker + VS Code + Go の環境を構築したのでメモを残しておきます。

前提

私の環境は以下の通りになります。
Docker Desktopについてはインストール済みなので、これについてはインストール手順の記載は省略します。

  • Windows10 Home
  • Docker Desktop インストール済み


WSL2 設定手順

下記のサイトに従い、手動インストールを行っていきます。
docs.microsoft.com

LinuxWindows サブシステムを有効にする

Windows PowerShell を管理者権限で実行した後、下記のコマンドを実行します。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart


コマンドが正常終了すれば以下のメッセージが表示されます。

PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.18362.1379

イメージのバージョン: 10.0.18363.1440

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。


WSL2の実行に関する要件を確認する

WSL2 を実行するには下記の要件を満たしている必要があります。

  • x64 システムの場合:バージョン 1903 以降、ビルド 18362 以上。
  • ARM64 システムの場合:バージョン 2004 以降、ビルド 19041 以上。
  • 18362 より前のビルドは WSL 2 をサポートしていません。 Windows 更新アシスタントを使用して、お使いのバージョンの Windows を更新します。


バージョンとビルド番号を確認するために、下記のように「winver」を実行してください。

f:id:huji_mori:20210705150903p:plain
winverを実行


「winver」を実行すると、下記のようにバージョンとビルド番号が表示されます。

f:id:huji_mori:20210705151034p:plain
バージョン情報確認

私の環境ではバージョンとビルド番号は以下のようになっており、WSL2の要件を満たしていることになります。

バージョン1909(OSビルド 18363.1440)


仮想マシンの機能を有効にする

Windows PowerShell 上で下記のコマンドを実行します。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart


コマンドが正常終了すれば以下のメッセージが表示されます。

PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

展開イメージのサービスと管理ツール
バージョン: 10.0.18362.1379

イメージのバージョン: 10.0.18363.1440

機能を有効にしています
[==========================100.0%==========================]
操作は正常に完了しました。


Linux カーネル更新プログラムパッケージをダウンロードする

下記のサイトからLinux カーネル更新プログラムパッケージをダウンロードします。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

ダウンロードした更新プログラムパッケージを実行し、以下の画面が表示されればインストール成功です。

f:id:huji_mori:20210705152135p:plain
Linuxカーネル更新プログラムパッケージをインストール


WSL2 を既定のバージョンとして設定する

下記コマンドを実行して、WSL2 を既定のバージョンとして設定します。

wsl --set-default-version 2


正常に設定されると以下のメッセージが出力されます。

WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください


Linuxディストリビューションをインストールする

下記のサイトにアクセスし、Linuxディストリビューションをインストールします。
今回はUbuntu 20.04 LTSをインストールしました。
https://aka.ms/wslstore


インストール後、下記画面からLinuxディストリビューションを起動します。

f:id:huji_mori:20210705153758p:plain
Linuxディストリビューションをインストール後


インストール後、ユーザー名とパスワードを設定します。

f:id:huji_mori:20210705154221p:plain
wslを起動


Docker Desktop 設定

設定画面を開き、「Use the WSL 2 based engine (Windows Home can only run the WSL 2 backend)」にチェックが付いていることを確認します。
Windows Homeを使用している場合、デフォルトでチェックが入っています。

f:id:huji_mori:20210705154407p:plain
設定


Go 設定手順

下記のサイトに従い、手動インストールを行っていきます。
golang.org

Go のインストーラーをダウンロードする

下記コマンドを実行して、Go のインストーラーをダウンロードします。

wget https://golang.org/dl/go1.16.5.linux-amd64.tar.gz


Go をインストールする

下記コマンドを実行して、Go をインストールします。
※必要に応じて「sudo」を付与して、コマンドを実行してください。

rm -r/f /usr/local/go 
tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz


下記コマンドを実行して、環境変数を設定します。

export PATH=$PATH:/usr/local/go/bin


下記コマンドを実行して、Go がインストールされていることを確認します。

go version


VS Code設定手順

下記のサイトを参考にして、VS Codeの設定を行います。
qiita.com

VS Code をインストールする

WSL2 上で下記コマンドを実行してVS Code をインストール&実行する。

code .


Go のプロジェクトフォルダを作成する

下記コマンドを実行して、Go のプロジェクトフォルダを「go-sample」という名前で作成します。

cd ~
mkdir go-sample


Dockerfile と devcontainer.json を作成する

下記コマンドを実行して、フォルダを「.devcontainer」という名前で、またファイルを「Dockerfile」と「devcontainer.json」という名前で作成します。

cd ~/go-sample/
mkdir .devcontainer
touch ~/go-sample/.devcontainer/Dockerfile
touch ~/go-sample/.devcontainer/devcontainer.json

下記のサイトを参考にして、Dockerfile と devcontainer.jsonに設定を記述します。
qiita.com

Remote Development をインストールする

Remote Development をインストールします。

f:id:huji_mori:20210705172132p:plain
Remote Developmentをインストール

Docker コンテナに接続する

画面左下の「WSL: Ubuntu-20.04」をクリックし、「Remote-Containers: Reopen in Container」を選択する。
コンテナへの接続が成功すると、画面左下に「Dev Container: go-sample」と表示される。

f:id:huji_mori:20210705172835p:plain
Docker コンテナに接続

main.goを作成する

go-sample 配下にmain.go を作成して、下記のソースを記述する。

package main

import "fmt"

func main() {
	fmt.Println("Hello, world")
}

Ctrl + F5 でmain.go を実行し、正常終了すれば下記のメッセージが表示されます。

Hello, world


AWS Certified Solutions Architect - Associateに合格した話

はじめに

記事タイトルの通りAWS Certified Solutions Architect - Associateに合格したのでその時のことを書いていきます。

試験結果は以下のとおりです。

スコア:768

受験回数:1

f:id:huji_mori:20210524164734p:plain

図.スコア

勉強期間、勉強方法の参考にしていただければ幸いです。

 

前提

まず、私のバックボーンについて紹介していきます。

  • 高専の情報系コース卒
  • 現在、SIer系の企業に就業中
  • AWSに関しての知識はほぼ知識0(インスタンスの立て方ぐらいは知っていた程度)
  • 業務での使用経験も0

 

勉強の方針について

方針は以下のとおりです。

  1. 短期間で資格を取る
  2. 1を満たすために課金で時短できる部分に関しては課金する

1について

勉強期間が長くなるとモチベーションがダレます。

また、AWSの試験は範囲がそこそこ広いので、あまり時間を掛けすぎると新しい知識を覚えるのと同時にそれ以前に覚えたことを忘れるのでオススメしません*1

 

2について

短期間で資格を取るためには効率よく勉強する必要があります。

そのため私は有料サービスを利用するなどして効率よく勉強しました。

分厚い本を買って勉強するのはオススメしません。

 

勉強期間・時間

勉強期間と時間は以下のとおりです。

  • 勉強期間は3月半ばから4月末での約一月半程度
  • 時間は約70時間程度

 

勉強時間の内訳は以下の通りです

  • Udemyのチュートリアル(後述)に費やした時間は35時間程度
  • 試験対策の過去問題集を利用して勉強した時間は35時間程度

 

勉強方法

勉強方法について前半と後半に分けて説明します。

勉強期間の前半

前半は下記のUdemyのチュートリアルを行っていました。

www.udemy.com

 

書籍も何冊か買いましたが、結局ほとんど読まずに上記のチュートリアルだけをやっていました。

チュートリアルで基本的なことはだいたい学べるので問題ないと思います。

 

一応、購入した書籍についても何冊か紹介していおきます。

 

合格対策 AWS認定ソリューションアーキテクト - アソシエイト

買った本の中では比較的読んでいたものです。

試験対策の本としては内容が不十分ですが、ちょっとした知識の確認程度には使えます。

 

 Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂3版

こちらの本については一通り読みましたが、上記のチュートリアルで事足りるといった印象でした。私には不要でした。

 

こちらの本には上記のチュートリアルと違いHTTPやTCP/IPなどについて基本的な解説が書かれているので、全くのIT初心者が読む分にはアリだと思います。

ただ、サーバーの設定コマンドが時期によっては陳腐化してつかえなくなっていたりするので、そこは都度自分で調べる必要があるので、そこは注意してください。

 

Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)

買ったはいいが、この本についてはほとんど読んでいません。

一冊読めば構築周りについての知識がつくと思うのですが、資格を取るだけなら上記のチュートリアルをやった後、過去問をガンガン解いた方が効率がいいと思います。

 

勉強期間の後半

後半は試験対策の勉強をしていました。

私は問題集は購入せず、下記に紹介するサイトを利用しました。

 

 

AWS WEB問題集で学習しよう

後半は下記のサイトでひたすら過去問を解いていました。

私はこのサイトで満点が取れるまで勉強しました。

aws.koiwaclub.com

こののサイトは無料プランと有料プランで別れており、無料プランでは解ける問題が少ないので、私は有料プランを利用しました。

お金をケチりたくない人以外は下記のサイトに課金して過去問をひたすら解くのが効率がいいと思います。

 

 

問題集で勉強する方法は他にも以下のようなものがあります。

公式模擬試験

公式模擬試験は有料ですが、実際の試験と同じような問題を解くことができます。

先述の問題集サイトで事足りたので利用していません。

aws.amazon.com

 

Amazon AWS 資格取得のための演習問題集(完全無料、オリジナル)

こちらのサイトでも無料で過去問を解くことができます。

お金を掛けたくない人はこちらで。

こちらについても私は利用していません。

awsjp.com

 

試験当日での所感について

私は近場のテストセンターで受験しました。

当日の試験会場での所感は以下のような感じです。

  • 問題は50分程度で解答完了
  • 見直しは何度もしたほうが良い*2
  • 事前情報だとwebカメラ越しに監視される聞いていたが、webカメラはなかった
  • メモ用のホワイトボードが貸し出される。

 

まとめ

まとめです。

  • 短期間で勉強しよう
  • できるだけ課金する
  • 業務で普段使う人なら、おそらく過去問を解くだけで受かる
  • 初心者はチュートリアルを利用しよう
  • 分厚い本を買って勉強は非効率なのでやめよう
  • 有料のサービスに課金しよう

 

*1:自分だけかもしれませんが。

*2:コレをやらなかったら落ちていた

はじめまして

自分がやっていたことを忘れないためにブログを開設しました。

プロフィール

  • HN:ふじもり(twitter @huji_mori)
  • 性別:男
  • 職業:高専4年生
  • 興味:セキュリティ、Exploit、ネットワーク、オーディオ
  • 言語:Python、C
  • Security Camp2015参加

とりあえず、長く更新し続けられるように頑張ります。