paiza開発日誌

IT/Webエンジニア向け総合求人・学習サービス「paiza」(https://paiza.jp ギノ株式会社)の開発者が開発の事、プログラミングネタ、ITエンジニアの転職などについて書いています。

現役エンジニアが選ぶ、初心者でもアルゴリズムについて学べる4冊の書籍

f:id:paiza:20181107153205p:plain
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

プログラミング初心者のみなさんは、アルゴリズムについて勉強された経験がありますか?

「プログラミングは勉強しているけど、アルゴリズムについてきちんと勉強したことはない」「プログラミング言語の書き方やフレームワークなどの勉強を優先しているから特にやっていない」という方も多いと思います。

ただアルゴリズムを全然知らないと、ちょっと開発が複雑になってきたときに

  • どう実装すべきかわからない
  • とりあえず力技で作る
  • 力技で作ったコードは改修が面倒
  • できる人に「もっといいやり方がある」と言われる
  • しかし自分ではその「いいやり方」を思いつけない…

…といったことも起こりえます。

そこで今回は、paizaを作っているエンジニアたちに、実際に読んでアルゴリズムの勉強に役立った書籍を聞いてきました。

アルゴリズム初心者の方の参考になればと思います。



長田です。ブログでは健康オタクエンジニアとして何者なのかわからない記事ばっかり書いていますが、一応エンジニアとして、主にpaiza新卒の開発を担当しています。前職はフリーランスのエンジニアでした。

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

検索やデータ圧縮など、世界中で使われているアルゴリズムについて、いい感じに解説されている本です。

小難しい数式などはほとんど出てこなくて、非エンジニアの人でもわかるように書かれているので、アルゴリズムに苦手意識がある人や、まずとっつきやすいところから入門したい人にもおすすめできます。もちろん、技術的な知識を補強したい人にもおすすめ。



青木です。paizaラーニングの企画・開発を担当しています。

[改訂新版]C言語による標準アルゴリズム事典

[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

[改訂新版]C言語による標準アルゴリズム事典 (Software Technology)

各種アルゴリズムの具体的な実装がわかりやすくまとまっています。最近、新版としてリニューアルされました。

アルゴリズムの紹介と一緒にC言語による実装コードが掲載されているので、「コードに書いたらどうなるんや?」というのがわかりやすいです。(C言語が読めれば…)

The Art of Computer Programming

The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition 日本語版 (ASCII Addison Wesley Programming Series)

The Art of Computer Programming Volume1 Fundamental Algorithms Third Edition 日本語版 (ASCII Addison Wesley Programming Series)

  • 作者: ドナルド・E・クヌース,有澤誠,和田英一,青木孝,筧一彦,鈴木健一,長尾高弘
  • 出版社/メーカー: アスキー
  • 発売日: 2004/02/18
  • メディア: 単行本
  • 購入: 2人 クリック: 150回
  • この商品を含むブログ (65件) を見る

※日本語版

The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版

The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版

  • 作者: Donald E.Knuth,有澤 誠,和田 英一,有澤誠,和田英一,青木孝,筧一彦,鈴木健一,長尾高弘
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2015/06/26
  • メディア: 単行本
  • この商品を含むブログ (2件) を見る

TeXの開発者としても知られ、「コンピュータアルゴリズムの特徴についての理論」を研究し続けるクヌース先生の集大成と言える著書です。あらゆるアルゴリズムが分野別に徹底解説されているので初心者にはちょっとしんどいかもしれませんが、いろいろなアルゴリズムを学びまくりたい人におすすめ。

全7Volume構成の予定で、現在Volume4のBの途中までが出版されています。



吉岡です。ブラウザ上でWeb開発やプログラミングが実行できるPaizaCloudpaiza.IOの開発を担当しています。

プログラミングコンテストチャレンジブック[第2版]

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

改めて挙げるまでもないかもしれませんが、競技プログラミングのバイブルですね。競プロの世界でトップレベルの方々が書いた本なので、競プロにおけるレベルアップやコーディング選考を受けるのに役立ちます。

全探索、ダイナミックプログラミング、整数や素数の扱いなどなど、競プロでよく使われるテクニックや主要なアルゴリズムについてがC++でていねいに解説されています。

まとめ

現役エンジニアがおすすめする、アルゴリズムの勉強に役立ちそうな書籍をご紹介しました。

興味を持たれた方は、この読書の秋にぜひ読んでみてください。


なお動画でプログラミングが学べる「paizaラーニング」では、「アルゴリズム入門編」のレッスンも公開しております。FizzBuzz、フィボナッチ数、ハノイの塔、巡回セールスマン問題といったアルゴリズムが初心者でも学べます。

「アルゴリズム入門編」について詳しくはこちら





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのスキルチェック





※このブログで紹介しているキャンペーンやイベント、およびサイト内の情報については、すべて記事公開時の情報となります。閲覧されたタイミングによっては状況が変わっている場合もございますのでご了承ください。

ITプログラマー・エンジニア転職・就活・学習のpaiza

プログラミング入門講座|paizaラーニング

PHP入門編Ruby入門編Python入門編Java入門編JavaScript入門編C言語入門編C#入門編アルゴリズム入門編

エンジニアのためのプログラミング転職サイト|paiza転職

プログラミング スキルチェックエンジニア求人一覧

未経験からエンジニアを目指す人の転職サイト|EN:TRY

プログラミング スキルチェックエンジニア未経験可求人一覧

エンジニアを目指す学生の就活サイト|paiza新卒

プログラミング スキルチェックエンジニア求人一覧

ブラウザを開くだけで エディタ、Webサーバ、DB等の開発環境が整う|PaizaCloud