この記事は 共同開発鯖1 Advent Calendar 2022 10日目の記事です(尚、1投稿目の模様)。
今年はテスト等で予定が合わなかったりなどして、1投稿目が10日になっちゃいました......
(遅刻してごめんなさい)
前書き
この記事は高専1〜2年生に読んでほしい初級〜中級の技術書を紹介した記事です。技術に興味はあるけど何をやったらいいか分からない、学校で習ったことをなにかに使いたいけど何をしたらいいか分からない。そんな人におすすめの本を紹介しています。
経緯
先日、あすぱらさん(@ultrasupara)と1年生にプログラミングを好きになってもらうにはどうしたらいいかという話になり
そそのかされた結果、テスト期間にもかかわらず、「高専1年生に是非読んでほしい技術本を教えてください」というタイトルのフォームを成績を代償に生成し募集するに至りました。
おかげさまで、20冊近いおすすめの本・サイトが集まり、読み応えのある記事になったと思います。
この記事はフォームを書いてくださった方々のおかげで出来上がりました。ご協力ありがとうございました。
しばらく募集しているので、おすすめの技術書があれば送ってください。高専1年生に読んで欲しい技術書・技術記事を募集しています!
— 唯岸 雪 (@yuigishidev) December 5, 2022
分野はハード・ソフトを特に問いません
自分が初学者の頃に読んで良かったという本や、初学者の頃に知りたかった本があれば、是非送ってください!
(1人いくつ送っても大丈夫です)#高専 https://t.co/qe0XoZ3yza
高専1年生に読んでほしい技術書N選
ノンデザイナーズ・デザインブック
デザイナーではない全ての人におすすめしたい一冊です。何気ないデザインを良くしたい人は是非読んでみてください。
りんたろー(@10969_rintaro)
プログラムはなぜ動くのか 第3版 知っておきたいプログラミングの基礎知識
プログラムがコンピュータで実行される過程を図を用いて分かりやすく解説してくれるため。また2進数やCPUなど基本的な知識を一つ一つ丁寧に解説していて分かりやすかったため。
―― abokado(@abokado_niko)
つくろう!モータードライバ 完全に理解して自作できる本
この本は高専ロボコンで回路班といえば、というほどに設計されている基板であるモータードライバについて徹底的に解説されている本です。Hブリッジ回路やNch/Pch MOSFET、デッドタイム等の説明といった初歩的な内容からノイズ対策、熱設計といった応用的な内容までしっかりと書かれており、読み終わったころにはモータードライバに限らず回路についての様々な知識が得られると思います。実際に自分も、MOSFETもわからないくらい回路について無知な状態からこの本を読み始めましたが、読み終えてからモータードライバはもちろん、その他にも積極的に回路を制作することができるようになりました。本当におすすめです。
―― ていく(@TakenMaker)
スッキリわかるJava入門
Javaの入門書でもありながら, オブジェクト指向プログラミングの基本もきっちり学べる一冊で, 私が読んだ唯一の紙媒体の技術書でもあります. 不意に誤魔化したり, ブラックボックスを導入したりせず, 割とストレートに解説されている為, 理解もし易いと思います. プログラミングやJavaの入門だけでなくオブジェクト指向プログラミングの入門としてもお勧めします.
―― Nanai10a(@n7idev)
The Rust Programming Language
Rustの入門書. 紙書籍が欲しいなら この辺 を当たってみることもおすすめする (最も, 本書にこのリンクは載っているが). Rustを実際に使わなくとも, CやC++に代表される "無保証, 非安全さ" を伴うプログラミングに関係するエッセンスも得られる. 私はこれを読むまでそういった領域に無知 (触れたことすら) だったのだが, 読んだ後CやC++に触れ, より理解が深まった. Rustが書きたいならまずここを通っておいて損はない. 余裕があれば 'nomicon も読んでみることをお勧めする. これらの本は何度も読み返したくなる言葉遣いや理解を促す努力が感じられ, 定期的に読み返してしまう. プログラミングの入門には難しいかもしれないが, 決して難解ではないので, 一度読んでみて欲しい.
―― Nanai10a(@n7idev)
プログラミングに慣れたら、Rustという言語にチャレンジしてみると良いでしょう。C言語の代替や後継として期待が高まっている言語で、最近はAndroidなどのOSにも採用される機会が増えています。綺麗なコードが書けるようになり、他の言語を扱う際にも活かせる考え方を身につけることができます。
―― iso(@iso12800jp)
ハッカーになろう
アクロバチックにコンピュータを乗りこなしたいあなたへ
―― 普通科高校の刺客
あなたの知らない超絶技巧プログラミングの世界
あっと驚く楽しいプログラムの世界を味わってみるのはいかがでしょうか。
高専生活で身につけた知識を総動員してあなただけの作品を作ってみてください。
―― 加藤
アンクの絵本シリーズ
初学者向けの資料としてよくまとまっており、また見開きで一つの情報を載せる構成のため後からのリファレンスとしても優秀です。
―― 加藤
良いコード/悪いコードで学ぶ設計入門
プログラミングの基礎を理解してきたら、今度は「ソースコードを保守する」ことに挑戦してみましょう。プログラミング言語は、あくまで何かを作るための手段であって、目的ではありません。何かプロダクトを作り、バグ修正や機能追加を行い、ソフトウェアを成長させ続けるには設計と保守が不可欠です。本書では、設計の知識がなくとも、実例を基に実践的な設計を学べます。設計に苦手意識を持ってしまう前に、こう言った本で設計の勘所を掴みましょう。
―― こるく(@Colk_)
リーダブルコード
個人的には、本書はプログラマーなら誰もが 1 度は読んだことがあるほどの、いわば「プログラマーのバイブル」だと思っています。
プログラミングで何かプロダクトを作るのには、共同作業が不可欠です。
チームメンバーと気持ちよく一緒にコードを書くため、なにより、ソースコードを書いた後の未来の自分のために「読みやすい」コードを意識しましょう。
最初は、何を言っているのか全く分からなくても、プログラミングの学習を始めたらまずは 1 度通読しましょう。
そして、プログラミングに慣れてきて、プロダクトをつくるときには、ぜひ熟読し、「読みやすいコード」のエッセンスを本書から十分に取り入れ、実践していきましょう。
―― こるく(@Colk_)
入門 Python 3 第2版
最初に学習するプログラミング言語を悩んでいませんか?
それなら、Python が圧倒的におすすめです。
近年では Python の他にも TypeScript や JavaScript をおすすめする声もありますが、Python は初学者にとって、「プログラミングとは何か」という基礎概念を理解できる言語で、しかも、実務でも大変多く使われている優れた言語です。
Python を扱えるようになったら、自分のつくりたいモノに合わせて、他の言語にもチャレンジしてみましょう。
その時のあなたは、他の言語を数時間で習得できてしまうほどの知識があることをお約束します。
私のオリジンと言っても過言ではない一冊です。
―― こるく(@Colk_)
Code Complete 第2版 上 完全なプログラミングを目指して
設計をせずにプログラミングを始め、思いつくままにコーディングした結果スパゲッティコードができた、そんな経験を持ってる人にお勧めの本です。
本書は設計からテストまでの広い内容に関しての「リーダブルコード」と呼べるような本です。設計の重要さ、コードの品質を高める方法、ソフトウェアの開発に関するプロのプログラマが蓄積してきたハウツーが豊富に含まれており、読むとプログラムの品質を高めることができると思います。
プログラミングを始めて少し慣れてきた人などにぜひ読んで欲しいです。
―― io(@kira_i_o)
お前は絶望的にプログラミングに向いてないから諦めて刺身にタンポポ乗せる仕事でもやってろ
編集者注: 名文ですが劇薬なので容量用法を守って読みましょう。少なくとも始めたばかりの初心者にはおすすめしません
高専というと全員が技術に強いイメージもありますが、一方実際は高学年でも簡単なプログラムが書けない人も大勢居ます。そんな技術的ポテンシャルが低い人が、どう見えるかということが、強い言葉で批判的に書かれた名文です。この記事中で批判されるような人にはならないためにも、日頃から技術に多く触れるようにしましょう。2年生の終わりくらいにもう一度読むと沁みると思います。
―― iso(@iso12800jp)
マスタリングTCP/IP 情報セキュリティ編(第2版)
Webなどネットワークが絡む開発をやりたい人や、XSS?マルウェア?音ゲーの話?っていう人におすすめです。
特にWeb開発やりたい人はWebセキュリティの章読むだけでも価値あります。Webアプリケーション作って公開するのは比較的お手軽な反面、情報漏洩のリスクも桁違いです。どういうリスクがあって、どういう対策を講じるべきなのか含めてしっかり載っています。
最近第2版が出ました 買わなきゃ(私が)
Web以外、特に暗号関連の部分も読み応えあります。おすすめです。
低レイヤを知りたい人のためのCコンパイラ作成入門
君もコンパイラを作らないか?
本記事はC言語のコンパイラを作成する記事です。丁寧にコンパイラの仕組みから解説してあり、C言語についても新しい発見などがあるはずです。読み物としても面白いのでぜひ読んでみてください。
―― io(@kira_i_o)
MDN Web Docs
MDNにはWeb開発に必要な全てのことが詰まってるんだ
―― 宮野 慧(@miyacorata)
Practical Vim: Edit Text at the Speed of Thought・Emacs実践入門・任意のVSCode本
すきなエディターをえらぶのじゃ
(相棒となるエディターを探そう!)
―― ○ーキド博士
ハイ・パフォーマンス・アナログ回路設計 理論と実際 (アナログ・テクノロジ・シリーズ)
ノイズの対策をしっかりと行いたいならこの一冊
[改訂第8版]LaTeX2ε美文書作成入門
TeXでのレポート作成などにどうぞ
たった1日で基本が身に付く!Docker/Kubernetes超入門
Dockerを触りたいならこれを一通りやってみるとよいかも
ゼロからはじめるPID制御
PID制御の一冊目にいかがでしょうか
超凄いIPv6解説書(488ページ)を無料配布します
IPv6について本格的な興味がある人に向けて、レベルは高め
電子工作のための電気回路基礎
電気回路のお勉強にどうぞ
図解でわかる! 理工系のためのよい文章の書き方 論文・レポートを自力で書けるようになる方法
レポート地獄への相棒として
岡部洋一のトップページ
リンクから興味のある記事を読むとためになる
竹内修@筑波大
基本的な数学から発展的な内容まで様々です
DeepL翻訳機
外国語で困ったらとりあえず使ってみる感じで使いましょう
Qiita.com
プログラム等でわからないことがあったら調べてみましょう。豆知識てきなものも多いので暇な時に読んでみてもいいでしょう
zenn.dev
プログラム等でわからないことがあったらここで調べましょう。豆知識的な記事もあるため、暇なときに読むのもいいでしょう
stackoverfow.com
プログラム等でわからないことがあったらここで調べましょう。豆知識的な記事もあるため、暇なときに読むのもいいでしょう
計算機プログラムの構造と解釈
この本ではLispの方言の一つであるSchemeを用いてプログラミングに関するあらゆるテクニックや,プログラムを動かすための仕組みについて学ぶことができます.最初の方ではSchemeのシンプルな機能だけを用いて様々な抽象化テクニックを学びます.次に手続き型や関数型などのアプローチによるモジュール化について学びます.その後はプログラミング言語が動く仕組みに焦点を当て様々なパラダイムによるScheme処理系の実装を実際に行ったり,レジスタマシンの実装を行ったりします.
この本ではSchemeの処理系を用いて実際に手を動かしながら読んでいくことで,プログラミングに関するテクニックや知識を身につけると同時に実装力も身につけることができます.また,例題では実際によく使われるアルゴリズムやデータ構造,ソフトウェアなどを実装したり,他の分野と融合した問題を実装したりするので非常に面白いです.
この本には章末にたくさんの難しい問題が掲載されているので,もっと考えたり実装をしたいという人でも飽きることがありません.また,PDFでも公開されているため気軽に試してみることができます.
プログラミング言語の仕組みやプログラミングのテクニック,パラダイムなどに興味がある人にはぜひオススメしたい1冊です.
PDF日本語版(真鍋訳)
@Kosuke.F
ハッカーと画家
プログラミングが好きで好きでたまらない人が書いたエッセイ集です.ものづくりとは何か,プログラマーとはどういうふうにあるべきかが書かれています.軽く章題を紹介すると,「どうしてオタクはもてないか」,「天邪鬼の価値」,「普通のやつらの上を行け」,「晴らしきハッカー」などです.複数の章から構成されていますが,どれも1章完結なので興味ある章から読みましょう.いくつかのエッセイはWebでも公開されているので興味ある方は是非どうぞ!
しゅん(@shun_shobon)
ふつうのLinuxプログラミング 第2版
Linuxの中で何が動いているのかを学びながら、C言語でできることを増やしていける本です。Linuxでよく使うコマンドを自作しながらLinuxのAPIやC言語に対する理解を深めることができます。
Linuxの勉強をしたいって人や、学校でC言語を習ったけどやることが特にないって人におすすめです。
唯岸雪(@yuigishidev)
マスタリングTCP/IP 入門編
「インターネットってどうやって繋がるの?」という疑問に答えてくれる本.ネットワークの基礎の基礎(物理)から学ぶことができます.実践的な内容ではないですが,手元に一冊持っておくとサッと調べられて便利です.
しゅん(@shun_shobon)
体系的に学ぶ 安全なWebアプリケーションの作り方
Webアプリケーションを作りたい人は一読しておきたい本.Webサービスにありがちな脆弱性について網羅されています.実際に攻撃する手順などもあるので手を動かして学びやすいです.ただ,いわゆるMPAにおける話が多いので現代のモダンなSPAアプリケーションを構築するならば他の本や記事も読んでおくと良いでしょう.
しゅん(@shun_shobon)
あとがき
この記事はほんとに多くの方々のご協力の下出来上がりました。この記事で知った本がなにかの糧になってくれることを願っています。
宣伝
この記事は共同開発鯖 Advent Calendar 202210日目の記事です。
共同開発鯖 とは?
高専生・高校生を中心とした開発者の集まりで、やりたい人を募ってOSSの開発をしたり、各自で好きに開発をしながら雑談をしたりしているDiscordサーバーです。
なんちゃって招待制をとっているので、興味がある方は 共同開発鯖のメンバーに声をかけて、招待してもらってください。
なにかあればTwitterのDMまでどうぞ
Titter: @yuigishidev