以下はSIer時代に、実体験をもとに書いた初心者向け記事なんですが、ありがたいことに今でもたくさんの方に読んでもらっています。
qiita.com
職業プログラマー目指して頑張っている人、初心者から次のステップに進みたい人が想像以上にたくさんいることを知り、
それならばと思い 脱初心者を目指すプログラマーにむけて、ぜひ読んでほしい書籍をピックアップしてみました。
想定読者
- 職業プログラマーを目指している未経験プログラマー
- 何から勉強すればいいか分からない若手プログラマー
- プログラミングはできるがなんだか上手くいかないプログラマー
- 加速度的に成長したいプログラマー
を想定して、自分だったら何をすすめるだろう?という気持ちで選んでみました。
この記事の特徴
似たような記事はたくさんありますが、この記事の特徴は、
- 現役プログラマーが実務目線で選んでいること
- 僕自身がもともとは未経験プログラマーだったこと
- SIer、Web系のどちらも経験していること
- プログラミング技術以外にも意識すべきことを挙げていること
あたりが差別化ポイントかなと思っています。
そこそこ量があるので、目次をザッと眺めて、興味の湧いたところから読んでみてください。
初心者プログラマーの方たちに少しでも参考になれば嬉しいです。
目次
1.プログラミング技術
リーダブルコード
理解しやすく、メンテナンスしやすいソースコードを書くためのノウハウが詰まった書籍。
名著であり、コードを書く際の共通認識となっています。プログラマーは絶対に読むべき本。
Webを支える技術
Webサービスの実践的な設計をテーマとし、HTTPやURI,HTMLなどの仕様を歴史や設計思想を織り交ぜて解説しています。
組み込み系などを除くほとんどのプログラマーはWebを利用した開発に携わると思います。
なんとなくでプログラミングしているとどこかで頭打ちになるので、早いうちにWebについて体系立てて勉強しておくよいです。
現場で役立つシステム設計の原則
変更に強いシステム設計について学べる書籍。
オブジェクト指向、(難解で有名な)ドメイン駆動設計(DDD)のエッセンスをサンプルコードを用いて分かりやすく解説してくれています。
この本を読めば良い設計の勘所がわかるようになり、脱初心者の足がかりになると思います。
はじめてUNIXで仕事をする人が読む本
UNIXを利用する人が最低限覚えておくべき内容を網羅的に解説した書籍。
プログラマーの仕事はWebアプリをコーディングするだけでなく、サービスを公開するためにサーバを操作する必要があります。
「黒い画面」と呼ばれ苦手意識をもつ人は多いですが(僕もそうでした)、基礎を学べば怖がるどころか強力な武器になると思います。
2.チームで働く
プログラマーは、広義な意味でほぼ間違いなくチームで行動します。
プログラミング技術だけでなく、メンバーとのコミュニケーション、立ち振舞い方がとても重要です。
Team Geek
エンジニアがチームで働く上で意識すべきことについて、Googleエンジニアがまとめた書籍。
「HRT」と呼ばれる、謙虚(Humility)、尊敬(Respect)、信頼(Trust) の3つの行動規範が特に有名。
「チーム文化のつくり方」から「有害な人への対処法」まで、エンジニアに求められる社会性について解説しています。
エンジニアリングチーム論の名著であり、ぜひ読んでほしい一冊です。
ヤフーの1on1
サブタイトルにある通り、「部下を成長させるコミュニケーションの技法」についてまとめた書籍です。
昔と比べ個々のコミュニケーションを重要視するようになり、1on1を行う会社が増えてきたように思います。
上司(メンター)目線の書籍ですが、メンティーも1on1の在り方を理解しておくことで、得られるものが格段に変わってきます。
成長角度がグッと上がり、数年後の成長度合いがかなり変わってくるので若いうちから意識しておくと良いです。
3.成長力を高める
一つの経験からどれだけ多くのことを学び取れるかによって、その後の成長度合いが大きく変わってきます。
この成長力は、実は方法論を学ぶことによって高めることができます。言い換えると「正しく努力をする」スキルです。
がむしゃらに頑張るだけでなく、方法論を学んでさらに成長を加速させるのが成功の近道だと思っています。
たくさん読んだ中で、本当におすすめの2冊を紹介します。
神メンタル 「心が強い人」の人生は思い通り
成功するために必要なメンタルを作り出す方法についてまとめられた書籍。
よくある自己啓発の精神論/根性論とは異なり、心理学やNLPなど科学的根拠に基づいた極めてロジカルな方法論を学べます。
エンジニアにとても相性の良い本だと思いました。ぜひ読んでみてください。
メモの魔力
メモを「記録」のためだけでなく、「知的生産」のツールとして使うことで成長スピードが劇的に高まるメモ術を学べる書籍。
"ファクト(事実) → 抽象化 → 転用" の流れでメモすることで思考が整理され、より深まり、たくさんのアイディアにつながります。
SHOWLOOM代表 前田裕二さん(@UGMD)の著書です。
DeNA在籍中に幸運にも社内イベントで生トークを拝見し、物腰の柔らかさとロジカルな思考、そして熱量の高さに圧倒されファンになりました。
サービスの仕様検討、課題の深堀りなど、なんにでも応用できます。絶対に読んでほしい1冊です。
4.キャリアや人生について考える
長い人生の大半を占める「仕事」について、方針や戦略をきちんと立てるのは非常に大切なことだと思っています。
それらを考えるきっかけを与えてくれた書籍を紹介します。
Soft Skills
エンジニアが「より良い人生」を送るためのノウハウ・スキルを網羅した人生マニュアルをまとめた書籍。
キャリアの築き方、自分の売り込み方、技術習得法、生産性の高め方から、財産の築き方まで、「人生より良く生きる方法」を具体的に説明します。
著者が海外のエンジニアなので時々文化の違いを読み替える必要がありますが、学校や会社では教えてくれない大切なノウハウが詰まっています。
LIFE SHIFT
年々平均寿命が伸び、誰もが100年生きる時代をどう生きるべきかについて書かれた書籍。
皆が足並みをそろえて教育、勤労、引退という3つのステージを生きた時代は終わり、生き方と働き方が大きく変わる時代が来ています。
なんとなく肌で感じていた時代の変化が的確に言語化されており、衝撃を受けるとともに、このタイミングで読んで本当に良かったと思いました。
エンジニアという比較的自由な働き方ができる職種を選んだ私達こそ、今後どう働くのかをしっかりイメージする必要があります。
なかなか分量のある書籍ですが、読む価値はあります。
金持ち父さん 貧乏父さん
お金や人生に対しての考え方や哲学を学べる書籍。
「お金とは?」「働くとは?」について深く考えさせられる一冊です。
社会人になり、家族を持って強く感じたのは、「正しいお金の知識」を学ぶことの重要さでした。
当たり前のように企業に属し、何も疑わずサラリーマンをしてきた中で、起業家の「金持ち父さん」の教えは新鮮で衝撃的でした。
前述のLIFE SHIFTにもあるように、今後働き方が多様化する時代の中で、「お金とは?」「働くとは?」をしっかり考え行動するのが大切だと感じています。
おまけ
エンジニアは知識が商品
持論というと偉そうですが、「エンジニアは知識が商品」だと思っています。
「お金が勿体ないからググってやり過ごす」
「誰かが貸してくれたら読む」
「会社がお金を出してくれたら読む」
という人が時々いますが、とても勿体ないなと思います。
ググれるのは、自分の知っているキーワードの範疇であり、概念すら知らないものは検索できません。
優れたエンジニアほど、飲み屋で話題に上がった書籍をその場でポチッと購入している印象です。
「読書は投資、絶対にケチらない」を心がけています。
とはいえ技術書は特に高いので、
- 近くの図書館にないかさがす
- メルカリ、アマゾンで中古を探す(なければ割り切ってすぐ新品で買うのが大事)
- 読み終わったら(読み返す必要がなければ)メルカリで売る
で節約したりします。
たくさん本を読んで、メキメキ成長する人が増えたらいいなと思っています。
読書ログをつける
アプリなどで読書ログをつけるのがオススメです。自分がどれだけ本を読んできたか可視化することで、
- 自分自身の自信につながる
- あれ、どこかで読んだ気がする、の手がかりになる
- オススメの本を聞かれたときにスッと出せる
などの良いことがあります。
僕はブクログを使って読んだ本を管理しています。よかったら参考にしてみてください。
booklog.jp