1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【技術書】独学プログラマー 第4部, 第5部

Last updated at Posted at 2020-07-26

はじめに

どんなことが書かれているかをまとめただけで、内容は多くありません。
(第3部はこちら)

目次

  1. 第21章 データ構造
  2. 第22章 アルゴリズム
  3. 第5部 ピックアップ

第21章 データ構造

  • データ構造とは、情報をとりまとめて格納するためのフォーマットのこと。これまでに学んできた組み込みのデータ構造(データ型)であるリスト、タプル、辞書などがそれに当たる。本章では、さらにスタックとキューを学ぶ。
  • スタックはLIFO(ラストイン・ファーストアウト)
  • キューはFIFO(ファーストイン・ファーストアウト)
  • それぞれの仕組みを理解するために、クラスを自ら定義して動作を見ているが、実際は提供されているデータ構型(リストなど)やクラスを使う。スタックとキューについては既知のため飛ばす。
  • スタックとキューについてこの記事がよくまとめられているので引用とする。

第22章 アルゴリズム

  • アルゴリズムとは、特定の問題を解決するための、再現可能な一連の手順のこと。
  • よく知っているアルゴリズムがPythonで書かれているだけなので省略。

第5部 ピックアップ

  • 1つの関数には1つのことだけをさせよう。
  • 強力なIDEを使おう。IDLEを使い続けることは推奨しない。著者はPyCharmを使う。開発に役立ち、重宝される機能がいくつもある。
  • ブロガーのHenrik Warneより。「素晴らしいプログラマーと酷いプログラマーの違いの1つは、ロギングしているか、そして、プログラムの異常が起きたとき容易にデバッグするツールを持っているかだ」。
  • ほかの人が利用するプログラムにはテストを書くべきだ。「テストされていないコードは、壊れているコードだ」と。確認するのは、「設計と開発の要求に一致することであり、全ての入力に正しく反応すること、関数が適切な時間内で動作すること、十分に使いやすいこと、想定した環境にインストーできて実行できること、そして関係者が望む結果が得られること」
  • 多くのプログラミングの面接では、データ構造とアルゴリズムに焦点を当てている。この2つの分野に精通しておくとよい。より良いプログラマーになるのにも役立つ。
  • プログラミングをしていくうえで、すべてを知っている必要はない。なぜなら、そんな人はいないから。謙虚な姿勢を保ち、分からないことはしつこく学ぼう。それを継続すれば、素晴らしいプログラマーになっていける。
  • 必読とも言える本がいくつか紹介されている。
  • 本質を探る努力をしよう。先に理論から、ではなく、まずプログラミングをして、本質が知りたいと強く思ってから探るとよい。調べたり、シンプルで簡単なものを自分で作ってみるとよい。作ったら、積極的に公開しよう。
  • 最初は難しいのかもしれないが、ほかの人のコードを読むことに、できるだけ多くの時間を費やそう。これは、プログラマーとして上達するのに最適な方法だ。そしてたくさん学びを得よう。
  • 「ハッカーになろう」を読む。

感想

読み終えることができた。
Python文法の基礎が固まり、スクレイピングにワクワクしたり、バージョン管理など知っておくべきことを効率よく学べた。
Qiitaにまとめた記事を読んでたまに復習しようと思う。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?