WEBエンジニアが読んでおきたい技術書 2021年07月26日

WEBエンジニアが読んでおきたい技術書 2021年07月26日
目次

情報系学部の大学4年間の学びを使った参考書と共に紹介する

## はじめに

この記事はQiita エンジニアフェスタ 2021「今まで買ってよかった技術書を紹介しよう!」の参加記事です。

https://qiita.com/official-events/d409f91fc8b9b44cefb4

このフェスタに参加しつつ、Qiitaに貢献できることを考えた結果、情報系大学生が何を学んでいるかを紹介することを考えつきました。

現時点、Qiitaに大学の参考書の記事はありません。これをきっかけに、様々な情報系学部の参考書が共有されたら、エンジニアにとって役に立つのではと思います。

実力社会と言われるエンジニア業界です
が、全くの初心者が学んだ軌跡なので、全くプログラミングを触ったことのない人にも参考になると思います。

## この記事の構成

カテゴリに分けて紹介していきます。

おすすめの本には★をつけています。

## プログラミング

### [プログラミング言語C 第2版 ANSI規格準拠](www.amazon.co.jp/dp/4320026926)

伝わる報告書、レポート、メールが書けるようになる厳選2冊

本稿は、[『Qiita エンジニアフェスタ 2021「今まで買ってよかった技術書を紹介しよう!」』](https://qiita.com/official-events/d409f91fc8b9b44cefb4) 向けの投稿です。

# はじめに ~ 2冊を推薦する理由
以前、レポートや報告書の書き方の本を30~40冊ほど読んたことがありました。結果、まずはこの2冊読んでおけば充分なのでは?と理解した2冊を紹介します。

[**1. 『レポートの組み立て方』 木下是雄 著、1994年、ちくま学芸文庫**](https://www.chikumashobo.co.jp/product/9784480081216/)
[**2. 『【新版】日本語の作文技術』 本多勝一 著、2015年、朝日文庫**](https://publications.asahi.com/ecs/detail/?item_id=17593)

これらの2冊は、事実・意見を的確に伝える文章について論じています。

どちらの書籍も、

* 文章を書く際の原理、原則
* なぜそう書くべきかの理由

が明確で、本書で記述の定

元記事を表示

今まで書いてよかった技術書を紹介しよう!

今まで買ってよかった技術書を紹介しよう!
https://qiita.com/official-events/d409f91fc8b9b44cefb4

の企画に参加する記事です。

今日は、今までで書いてよかった技術書を紹介しようかなって思うんです。

企画の意図のずばり中心にあるかなって思うんです。

自分で書いた本は、必ず「買って」配っている。
「買ってよかった」技術書に違いない。

買って配る先は、
1. 書いた本の参考文献欄に記載したもののうち、知人。
2. 自分の出身大学、勤務先図書館、地元図書館(法政大学、名古屋工業大学、静岡大学、岐阜大学、春日井市図書館、名古屋市図書館、愛知県図書館、国会図書館、名古屋市工業研究所図書室、名古屋市職員図書室など)
3. 書籍を寄贈いただいたことのある著者。
4. 著作した際に、お世話になった方々、読書会に参加いただいた方々。

技術書は、たぶん5000冊くらい購入している。

図書館で読んだ本もresearchmap, booklog, bookmaker, amazonに感想を記載している。

amazonには、技術書 6,000冊く

元記事を表示

Web エンジニア1年生で読んだ本からおすすめの本5選+自分なりの技術書との付き合い方をまとめた

## はじめに
本記事は、

https://qiita.com/official-events/d409f91fc8b9b44cefb4

の参加記事です。

ちょうど一年前くらいに、

https://qiita.com/sho-hata/items/e54aef0ddc31217a9ded

このような記事を書きました。今回は、Webエンジニアとして新卒入社してから1年間で出会った素晴らしい本の中から、特によかった技術書5冊を独断と偏見でまとめた記事になります。

## エンジニア一年生で読んだ本

自分は技術書は専ら紙で読む派です。色々と不便なところもありますが、電子書籍は味気なく感じる…あと本棚に背表紙が並んでいるのをみると幸せになります。

この中から、特によかった本5冊を紹介します。

## 特に良かった

元記事を表示

エンジニア転職して一年経つので自宅学習で使った技術書&Udemyをジャンル別に評価してみた

#はじめに
2021年7月でエンジニアになって1年経ちました。

エンジニア転職直後に年収が700台から300台まで落ちて、爆速で市場価値をあげなければ!!というモチベーションで一年間いろいろ勉強してきました。
これまでその内容を振りかえることもなかったので、この機会に自宅学習で使った技術書とUdemyをまとめてみることにしました。

参考資料選びに悩んでいる方の助けになれば幸いです。

ちなみに、転職して半年間は学習の成果も市場価値の向上も全く感じられなかったのですが、最近になってようやくそれらを感じられるような出来事が増えてきています。

– WantedlyやQiita Jobsで有名企業(Y社とか)からスカウト
– 転職ドラフト初参加で4社から指名(2社から700万提示)

#JavaScript
##JavaScript本格入門〜モダンスタイルによる基礎から現場での応用まで
JSの歴史やシングルスレッドについて触れられており、非同期処理(Promise)やPrototypeの項が特にわかりやすかった。
JS学習の2冊目としておすすめ。
![image.png](https:/

元記事を表示

エンジニアのインプットと読書術

# エンジニアのインプットと読書術

# まえおき

フルリモート時代においてエンジニアの情報インプットのスタイルも様変わりしているように感じます。

2019年までのリアル社会では、競争率の高い勉強会とか海外カンファレンスの招待枠が取れる/取れないのような価値観が、たしかに存在していた気がしますが、物理の制約を解かれたセミナーイベントにはもはや人数制限はなく国境も超え無償になり、エンジニアの情報インプットにおいては劇的に恵まれた時代に突入したと言えます。

また、オンラインが主流になることでイベント内の登壇発表部分には収録動画の配信を活用するケースも増えてきています。

私が新しい技術情報をインプットするメディアの割合は、

* オンライン文字 > オンライン動画 > 書籍

ではありますが、まさにいまこうして文章を書くための情報インプットなどでは、よくまとまってて精査されている書籍の文章も非常に頼りになります。

オンラインイベントが自由を手に入れ、生まれ変わりつつある一方で、日本の活字媒体の事情も変化しつつあるようです。

# 活字メディアの動向

## 新型コロナ影響下の書籍

元記事を表示

Operating System Concepts Chapter 4 Threads まとめ ( OS におけるスレッドについて)

Operating System Concepts という本を OS と英語の勉強を兼ねて読んでいます。アメリカの大学等で OS の基本教科書として一番よく読まれているものらしく、内容が網羅的で、かつ英語ではあるのですが内容がとてもわかりすいです。

今 4 章を読み終えたところなのですが、何もアウトプットしないと理解が進まないなと思いまして。思いつきでとりあえず 4 章から私なりに理解した内容をまとめていこうと思います。

# (マルチ) スレッドが生まれた背景と新たな要求
現代の汎用 OS (Windows, Linux など) は複数のタスクを見かけ上にも事実上にも並列で実行することが求められます。このような複数のタスク (マルチタスク) を実行するために、OS 上に複数のプロセスを起動するという発想が生まれました。これがマルチプロセスです。

さらに、多数のユーザからのアクセスが要求されるシステムが生まれてくると (Web など)、より容易にスケールするマルチタスクが求められるようになりました。これによって生まれたのがマルチスレッドという概念です。もともと 1 プロセス 1 ス

元記事を表示

技術書プラットフォーム”Hello Books”の紹介と個人開発のすすめ

仕事以外の時間もプログラミングやその他技術を学習するなどして過ごしているエンジニアも多いと思いますが、自分もその一人でした。インプットとして技術書などもよく読んでいるのですが、勉強する中で下記の様な不満を慢性的に持っていました。

* 買う前と買った後のギャップが大きい技術書が少なくない
* 技術書は比較的高価なことが多いので、ダメージが大きい。。。
* 何か良い書籍ないかな〜とブラウジングするのに適したプラットフォームがない
*  amazonを基本的に利用しているものの、amazonの検索UIは様々な商品に適合する様に汎用的なデザインになっているため技術書のブラウジングに関してはあまり使い勝手が良くない
* 他のエンジニアさんがどんな技術書を読んでいて、それをどの様に評価しているのかリサーチして自身の学習方針の参考としたい
* amazonでレビュー自体は確認できるものの、参考とするには内容が薄かったり投稿主に関する情報が少ないため信憑性が判断できない

いっそのこと自分で作ってしまおうかな、とリリースしたのが[“Hello Books”](https://hellob

元記事を表示

[プリンシプルオブプログラミング] プログラマーの見る視点

# プログラマーのコードを見る視点

## 凝集度
モジュールは純粋に保ちましょう。
純粋なモジュールとは、独立性の高いこと、凝集度が高いものになります。
コードはモジュール化することによって管理しやすくなります。
分割したモジュールは独立性を保つことによって、コード複雑さを減少させ保守しやすくなります。

モジュールが純粋ではなく、凝集度が低いものになると以下の弊害が起きます。

– コードが理解しにくい
– コードが保守しにくい
– コードが再利用しにくい
– コードが脆弱で、変更による影響を絶えず受け続ける

一方、凝集度の高いモジュールは適度に細分化されたものなので、限定された目的に特化されています。
以下のような利点があります。

– コードの設計の明確さと理解のしやすさ
– コードの保守と拡張が容易
– コードの再利用性が高い
– モジュール間の疎結合が促進する

## 結合度
モジュール間の関係の密接さを表すのが結合度です。
結合度は疎結合であれば、それゆえに独立性が高いコードになるので、いいコードになります。
逆に結合が密なコードは互いに依存しあい、独立性が低いモジュー

元記事を表示

[プリンシプルオブプログラミング] プログラマの三大美徳と法則

# プログラマの三大美徳

## プログラマは怠慢、短気、傲慢であれ

### 怠慢
楽をするのであれば、手間を惜しまない気質のことです。
コードやテストの自動化など、めんどくさいことはコードで行います。
業務やプロジェクトでは、めんどくさいと思う何回も繰り返すものがあります。そういったものを自動化して怠惰であれるようになりましょう。

### 短気
上手く動かなかったらコードをかき直したりする気質です。
また、今ある問題に着目せず、今後起こりうる問題を想定したコードを書きます。
コードの動作が遅い、動作がおかしいなどの面で短気となり、すぐに修正しましょう。それらのコードを残すのは負債となりえます。

### 傲慢
高いプライドを持つ気質です。
レビューされても指摘する場所が無いほどのコードを書きます。
プロフェッショナルの意識を持ちましょう。コードは時として汚いものになりますが、意識をすることで常にキレイな状態に保てます。

## エゴレスプログラミング
プログラミングでエゴを捨てます。
うぬぼれやプライドを捨てて、仲間にコードを見せる、コードを見る時に、自分のほうが優れているという

元記事を表示

この単語さえわかれば、英語の技術書がサクサク読める!英単語まとめ(保存版)

# はじめに
英語のプログラミング教材って、良いって聞くけど、英語に苦手意識があるから使ったことがない…。

私もその一人でした。ですが、この単語さえわかっていれば、なんとか[英語のDjangoの本](https://www.amazon.com/Django-Beginners-Learn-web-development/dp/1980377898)を読み切ることができました。

これから英語でプログラミング学習したい人は見ていただけると役に立つかもです!

## execute 実行する

### 例文
execute the migrate command
migrate コマンドを実行する

## navigate 移動する
### 例文
Navigate to our homepage at http://localhost:8000/
http://localhost:8000/のホームページに移動する

## configure 設定する
### 例文
the project configured for local development
ローカル環境で設定された

元記事を表示

[プリンシプルオブプログラミング] UNIX思想

# UNIX思想
UNIX思想とは、UNIXの文化で育まれたプログラミングの経験に基づいた実践的な技の集合体です。
以下の17個の原則があります。

– モジュール化原則
– 明確性の原則
– 分離の原則
– 単純性の原則
– 倹約の原則
– 透明性の原則
– 安定性の原則
– 表現性の原則
– 驚き最小の原則
– 沈黙の原則
– 修復の原則
– 経済性の原則
– 生成の原則
– 最適化の原則
– 多様性の原則
– 拡張性の原則

## UNIXの設計判断の正しさ
1969年にUNIXは生まれ、今なお使われ続けているこのソフトウェアのプログラミングから生まれた思想は、UNIXの堅牢さを見れば分かるとおり、このような設計判断は正しいことがわかります。

### モジュール化の原則

– 肥大したモジュールは作らない
– 控えめなモジュールを心がける
– クリーンなインターフェースを持つ
– モジュールの入り口を狭くする
– 余分な他のモジュールと関係を持たない

### 明確性の原則

– 巧妙なコードより、明確なコード
– パフォーマンスではなく読みやすさ

元記事を表示

[プリンシプルオブプログラミング] UNIX哲学

# UNIX哲学
UNIX開発の根底にある哲学です。
9個の定理でまとめられています。

– 小は美なり
– 一つ一つ仕事
– 速行プロトコル
– 効率性より移植性
– データはテキスト
– レバレッジ・ソフトウェア
– シェルスクリプト活用
– 対話インターフェース回避
– フィルタ化

## 小は美なり

– 小さいソフトウェアは扱いやすく、美しい
– 理解しやすい
– 保守がしやすい
– マシンリソースを食わない

## 1つ1仕事

– ソフトウェアをピュアに保つ
– 1つのソフトウェアに1つの仕事を集中して行わせる

## 速行プロトタイプ

– できるだけ早くプロトタイプを作成する
– プロトタイプで確度を高める
– 方針を決めることでコードを作成しやすくする
– 要件不備を早い段階で見つけやすい

## 効率性より移植性

– 効率性より移植性の高いコードを書く
– ソフトウェアの価値を持続させるコードを書く
– ハードウェアに依存しない

## データはテキスト

– バイナリで持つよりテキストフ

元記事を表示

[プリンシプルオブプログラミング] セオリーと基本原則

# プログラミングセオリー
プログラミングの最大の関心事は最高のコードを作り上げること。
最高のコードとは、拡張性が高く、余分な要素が無く、読みやすいコードのことです。
そのコードに到達するのは、3つの価値が重要になります。

– コミュニケーション
– シンプル
– 柔軟性

## 価値観を技術の選択に
上記に上げた価値を、技術の選択基準にしましょう。
プログラミングは、問題解決を目的としています。エンジニアとしては、技術を知る、理解する、覚えるというのは重要ですが、技術を知っていても「使える」ようにはなっていません。

## 価値観は原則を通じてコードに適用
価値観を判断に使用しましょう。技術や手法の適用、不適用などの判断が正確になります。
しかし、価値をそのままプログラミングに使用するには抽象的すぎます。なので、価値をプログラミングに橋渡しをする6つの原則を使用して、価値を適用しましょう

– 結果の局所化
– 対称性
– 繰り返しの最小化
– ロジックとデータの一体化
– 宣言型の表現
– 変更頻度

# シンプル
## コードの複雑性を排除する
コードから余分な複雑性を排除し

元記事を表示

[プリンシプルオブプログラミング] プログラミングに特効薬は無い。コードの原則など

# プログラミングに銀の弾丸はない
プログラムをする上で、エラーが発生するもの、処理が上手くいかないものなど、たくさんの事例があります。それらに対抗する銀の弾丸はありません。なぜならば、プログラムで最終的に出来上がるソフトウェアは困難であるからです。

## ソフトウェアは基本的に困難である
ソフトウェアが困難な理由は以下の4つがあるからです。

– 複雑性
– 同調性
– 可変性
– 不可視性

### 複雑性
ソフトウェアは複雑です。
作っていくうちにファイル数が増え、依存関係が増え、また自分以外の人が書いた部分もあるでしょう。
規模が大きくなるうち、それらは非線形に増大します。

### 同調性
ソフトウェアは実世界に同調していなければなりません。
ハードウェアやネットワーク、他のソフトウェアの連携、それを使う人間…
ソフトウェアはそれらと接続され、使用します。

### 可変性
ソフトウェアは変化し続けるものです。
作り終えたソフトウェアは使われるうちに、さまざまな課題や問題点や改良点が見つかるでしょう。
ソフトウェアの開発に安寧はありません。

### 不可視性
ソフトウェア

元記事を表示

プログラミング初心者の学生が2年間で読んだ本の中でオススメを紹介する

# 目次

[01. はじめに](#1-はじめに)
[02. ネットワーク](#2-ネットワーク)
[03. データベース](#3-データベース)
[04. セキュリティ](#4-セキュリティ)
[05. linux](#5-linux)
[06. web](#6-web)
[07. 機械学習](#7-機械学習)
[08. 低レイヤ](#8-低レイヤ)
[09. uiux](#9-uiux)
[10. リファクタリング](#10-リファクタリング)
[11. aws](#11-aws)
[12. その他](#12-その他)
[13. さいごに](#13-さいごに)

# 1. はじめに

プログラミングってなに?ってレベルの学生が2年間で読んだ技術書の中でオススメの書籍を分野別に紹介します。また、これから読もうと思っている書籍や現在読み進めている書籍など、気になっているものを一通り上げています。プログラミング言語やフレームワークなどの特定の言語を追求するような書籍は紹介していません。

# 2. ネットワーク

### マスタリングTCP/IP 入門編(第6版)
https://ww

元記事を表示

「UNIXという考え方」読書メモ

# まえおき
以前、初めて業務の中でシェルスクリプトを使い効率化ツールを作った↓
[シェルスクリプトでスキャフォールドツール作った話](https://qiita.com/michida/items/dd186a73782c0b0aabf0)

チームメンバーにも展開し使用してもらうことも出来て割と好評だった。
ただ作る上で迷いが生じた部分がいくつかあり、感覚的にそこは進めていったのだが、その解がこの本の中に書かれていた。更にこの本を読みながら思ったのは、平成13年に発行されたものとは思えなかった。
と言うのも約20年経った現在でも通じることばかりが書かれており、やはりこう言う思想や哲学という部分は何年経っても根底にあり続けるのだなと感じた。

# お気に入りの一節
ここからはお気に入りの一説を抜粋していく。

> – 小さなプログラムは、分かりやすい。分かりやすいと保守も容易になる。プログラムを理解するのが保守の第一歩だ。 p18
>
> – シンプルであるために簡単に書け、理解しやすく保守しやすい。人間にとってもマシンにとっても優しいのが小さいプログラムだ。さらに重要なことは、作

元記事を表示

良いコードを書く技術ー読みやすく保守しやすいプログラミング作法を読んで

参考 [良いコードを書く技術ー読みやすく保守しやすいプログラミング作法を読んで](https://amzn.to/3v0EGNF)
# 1章
#### 良いコードの定義
本書での良いコードの定義
* 保守性が高い
* 素早く効率的に動作する
* 正確に動作する
* 無駄な部分がない

#### 保守性が高い
コードは想像よりも長く利用される。あとから見て何をしているのかわかりにくいコードは良いコードとは言えない。
誰が見ても理解出来るコードが良いコードである。
意識する部分としては
* 名前付け
* スコープ
* コードの分割
* コードの集約

#### 素早く効率的に動作する
効率の良い適切なパフォーマンスのコードが良いコードである。
いくつも似たようなコードを書く必要はない。

#### 正確に動作する
確実に動作して、信頼性の高いことは良いコードである。
「防御的プログラミング」→正常に動くだろうと決めつけをせずに
不正な値が来ても被害を受けないように防御的にプログラミングを行うこと
「ユニットテスト」でバグが少なく正確に動作するコードを実現する

#### 無駄な部分が少ない

元記事を表示

リーダブルコードの読み方 ほぼ個人メモ

# 目的

– リーダブルコードという技術書を読んでみて自分に合った読み方を見つけたのでまとめておく

# 詳細

– 読んだ本
– リーダブルコード: [https://www.amazon.co.jp/dp/4873115655/ref=cm_sw_em_r_mt_dp_97MYJ3X5JEN95S49YD0P](https://www.amazon.co.jp/dp/4873115655/ref=cm_sw_em_r_mt_dp_97MYJ3X5JEN95S49YD0P)(アマゾンのリンクですがアフィリンクではないので安心してクリックしていただいて大丈夫です。)

# この本の概要(ネタバレにならない程度の内容のまとめ記事を別途記載予定)

1. 読みやすいソースコードの書き方が書いてある。
1. 「初心者エンジニアはとりあえず読んだほうが良い技術書」として取り上げられる事が多い。
1. 初心者エンジニアだけではなくベテランエンジニアさんも読んでいらっしゃる。
1. もともと著者は海外の方で日本語訳されたものが多く出回っている。

# 個人的におすすめの読み方(完全自分向

元記事を表示

“Re:VIEW Starter”で技術系同人誌を書こうと思い、初期設定でつまづいたので健忘録がてらにまとめました。

# Re:VIEW Starterを使ってみる

## “Re:VIEW”とは?
”Re:VIEW”とは、Open Source Softwareで技術系の同人誌やプロが書くような書籍に使われているものです。
簡単にいうと、素人でもプロが書いたような書籍や電子書籍を書くことができるソフトです。
現在、ver. 5.0まで出ています。
詳しくは下をご確認ください。
[Re:VIEW knowledge](https://review-knowledge-ja.readthedocs.io/ja/latest/index.html)

## “Re:VIEW Starter”とは?
そしてRe:VIEW Starterとは、Re:VIEWでは少々面倒くさい書籍の体裁の設定を、初心者にはわかりやすいUIで設定できるようにしたものです。

[Re:VIEW Starter](https://kauplan.org/reviewstarter/)のページから、体裁に必要は初期設定を行います。
ちなみに、Re:VIEW StarterはRe:VIEW ver. 2.5で動作します。

##”Re:

元記事を表示

OTHERカテゴリの最新記事